@ozdao/prometheus-framework 0.2.322 → 0.2.324
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/Media-BjSScxrV.js +1 -0
- package/dist/Media-CCVndMgQ.mjs +111 -0
- package/dist/main-BBmjvE8i.js +92 -0
- package/dist/main-BCskq3d2.mjs +13068 -0
- package/dist/main.css +1 -1
- package/dist/prometheus-framework/src/components/Button/Button.vue.cjs +9 -11
- package/dist/prometheus-framework/src/components/Button/Button.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/components/Button/Button.vue.js +10 -12
- package/dist/prometheus-framework/src/components/Button/Button.vue.js.map +1 -1
- package/dist/prometheus-framework/src/components/DatePicker/Calendar.vue2.cjs +37 -9
- package/dist/prometheus-framework/src/components/DatePicker/Calendar.vue2.cjs.map +1 -1
- package/dist/prometheus-framework/src/components/DatePicker/Calendar.vue2.js +37 -9
- package/dist/prometheus-framework/src/components/DatePicker/Calendar.vue2.js.map +1 -1
- package/dist/prometheus-framework/src/components/DatePicker/DatePicker.vue.cjs +27 -18
- package/dist/prometheus-framework/src/components/DatePicker/DatePicker.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/components/DatePicker/DatePicker.vue.js +27 -18
- package/dist/prometheus-framework/src/components/DatePicker/DatePicker.vue.js.map +1 -1
- package/dist/prometheus-framework/src/components/EmptyState/EmptyState.vue.cjs +2 -2
- package/dist/prometheus-framework/src/components/EmptyState/EmptyState.vue.js +2 -2
- package/dist/prometheus-framework/src/components/Feed/Feed.vue.cjs +6 -2
- package/dist/prometheus-framework/src/components/Feed/Feed.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/components/Feed/Feed.vue.js +6 -2
- package/dist/prometheus-framework/src/components/Feed/Feed.vue.js.map +1 -1
- package/dist/prometheus-framework/src/components/FieldBig/FieldBig.vue.cjs +1 -1
- package/dist/prometheus-framework/src/components/FieldBig/FieldBig.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/components/FieldBig/FieldBig.vue.js +1 -1
- package/dist/prometheus-framework/src/components/FieldBig/FieldBig.vue.js.map +1 -1
- package/dist/prometheus-framework/src/components/Media/Media.vue.cjs +154 -0
- package/dist/prometheus-framework/src/components/Media/Media.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/components/Media/Media.vue.js +154 -0
- package/dist/prometheus-framework/src/components/Media/Media.vue.js.map +1 -0
- package/dist/prometheus-framework/src/components/Popup/Popup.vue.cjs +1 -4
- package/dist/prometheus-framework/src/components/Popup/Popup.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/components/Popup/Popup.vue.js +1 -4
- package/dist/prometheus-framework/src/components/Popup/Popup.vue.js.map +1 -1
- package/dist/prometheus-framework/src/components/Slider/Slider.vue.cjs +68 -37
- package/dist/prometheus-framework/src/components/Slider/Slider.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/components/Slider/Slider.vue.js +69 -38
- package/dist/prometheus-framework/src/components/Slider/Slider.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/auth/views/components/layouts/Auth.vue.cjs +3 -3
- package/dist/prometheus-framework/src/modules/auth/views/components/layouts/Auth.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/EnterCode.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/EnterCode.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +3 -3
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/EnterPassword.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/Invite.vue.cjs +3 -3
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/Invite.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.cjs +5 -4
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.js +5 -4
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileBlogposts.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs +3 -3
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/ProfileEdit.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +3 -3
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/ResetPassword.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/SignIn.vue.cjs +3 -3
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/SignIn.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/SignUp.vue.cjs +3 -3
- package/dist/prometheus-framework/src/modules/auth/views/components/pages/SignUp.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/backoffice/backoffice.client.cjs +0 -2
- package/dist/prometheus-framework/src/modules/backoffice/backoffice.client.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/backoffice/backoffice.client.js +4 -6
- package/dist/prometheus-framework/src/modules/backoffice/backoffice.client.js.map +1 -1
- package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.cjs +119 -4
- package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.js +120 -5
- package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/backoffice/components/partials/Sidebar.vue.cjs +112 -163
- package/dist/prometheus-framework/src/modules/backoffice/components/partials/Sidebar.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/backoffice/components/partials/Sidebar.vue.js +119 -170
- package/dist/prometheus-framework/src/modules/backoffice/components/partials/Sidebar.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/backoffice/router/backoffice.cjs +0 -17
- package/dist/prometheus-framework/src/modules/backoffice/router/backoffice.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/backoffice/router/backoffice.js +2 -19
- package/dist/prometheus-framework/src/modules/backoffice/router/backoffice.js.map +1 -1
- package/dist/prometheus-framework/src/modules/community/community.client.cjs +0 -3
- package/dist/prometheus-framework/src/modules/community/community.client.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/community/community.client.js +6 -9
- package/dist/prometheus-framework/src/modules/community/community.client.js.map +1 -1
- package/dist/prometheus-framework/src/modules/community/components/blocks/CardBlogpost.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.cjs +18 -78
- package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.js +23 -83
- package/dist/prometheus-framework/src/modules/community/components/layouts/Community.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/community/components/pages/BlogPost.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/community/components/pages/BlogPost.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/community/components/pages/Community.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/community/components/pages/Community.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/community/components/sections/HotPosts.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/community/components/sections/HotPosts.vue.js +5 -5
- package/dist/prometheus-framework/src/modules/constructor/components/elements/Card.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/constructor/components/elements/Card.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/constructor/components/elements/Embed.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/constructor/components/elements/Embed.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/events/components/blocks/CardEvent.vue.cjs +34 -25
- package/dist/prometheus-framework/src/modules/events/components/blocks/CardEvent.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/events/components/blocks/CardEvent.vue.js +35 -26
- package/dist/prometheus-framework/src/modules/events/components/blocks/CardEvent.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/events/components/elements/ButtonCheck.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/events/components/elements/ButtonJoin.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/events/components/pages/EditEventTickets.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/events/components/pages/EditEventTickets.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/events/components/pages/Event.vue.cjs +9 -4
- package/dist/prometheus-framework/src/modules/events/components/pages/Event.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/Event.vue.js +20 -15
- package/dist/prometheus-framework/src/modules/events/components/pages/Event.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/Events.vue.cjs +221 -50
- package/dist/prometheus-framework/src/modules/events/components/pages/Events.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/Events.vue.js +225 -54
- package/dist/prometheus-framework/src/modules/events/components/pages/Events.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/EventsBackoffice.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/events/components/pages/EventsBackoffice.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/events/components/sections/EventsHot.vue.cjs +98 -0
- package/dist/prometheus-framework/src/modules/events/components/sections/EventsHot.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/events/components/sections/EventsHot.vue.js +98 -0
- package/dist/prometheus-framework/src/modules/events/components/sections/EventsHot.vue.js.map +1 -0
- package/dist/prometheus-framework/src/modules/events/components/sections/FeaturedEvents.vue.cjs +9 -9
- package/dist/prometheus-framework/src/modules/events/components/sections/FeaturedEvents.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/events/components/sections/FeaturedEvents.vue.js +9 -9
- package/dist/prometheus-framework/src/modules/events/components/sections/FeaturedEvents.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/events/components/sections/List.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/events/components/sections/List.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/events/components/sections/List.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/events/components/sections/List.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/events/events.client.cjs +1 -0
- package/dist/prometheus-framework/src/modules/events/events.client.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/events/events.client.js +1 -0
- package/dist/prometheus-framework/src/modules/events/events.client.js.map +1 -1
- package/dist/prometheus-framework/src/modules/events/router/events.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/events/router/events.js.map +1 -1
- package/dist/prometheus-framework/src/modules/events/store/events.cjs +2 -1
- package/dist/prometheus-framework/src/modules/events/store/events.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/events/store/events.js +2 -1
- package/dist/prometheus-framework/src/modules/events/store/events.js.map +1 -1
- package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +4 -4
- package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.js +4 -4
- package/dist/prometheus-framework/src/modules/globals/views/components/blocks/BlockSearch.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/blocks/BlockSearch.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/blocks/CardHeader.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/layouts/App.vue.cjs +4 -4
- package/dist/prometheus-framework/src/modules/globals/views/components/layouts/App.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/layouts/App.vue.js +4 -4
- package/dist/prometheus-framework/src/modules/globals/views/components/layouts/App.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.cjs +20 -6
- package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.js +20 -6
- package/dist/prometheus-framework/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/partials/CitySelection.vue.cjs +100 -0
- package/dist/prometheus-framework/src/modules/globals/views/components/partials/CitySelection.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/globals/views/components/partials/CitySelection.vue.js +100 -0
- package/dist/prometheus-framework/src/modules/globals/views/components/partials/CitySelection.vue.js.map +1 -0
- package/dist/prometheus-framework/src/modules/globals/views/components/partials/Header.vue.cjs +7 -8
- package/dist/prometheus-framework/src/modules/globals/views/components/partials/Header.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/partials/Header.vue.js +7 -8
- package/dist/prometheus-framework/src/modules/globals/views/components/partials/Header.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/partials/NavigationBar.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/partials/NavigationBar.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/partials/Sidebar.vue.cjs +2 -7
- package/dist/prometheus-framework/src/modules/globals/views/components/partials/Sidebar.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/partials/Sidebar.vue.js +2 -7
- package/dist/prometheus-framework/src/modules/globals/views/components/partials/Sidebar.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/sections/SectionPageTitle.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/components/sections/SectionPageTitle.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/mixins/mixins.cjs +30 -14
- package/dist/prometheus-framework/src/modules/globals/views/mixins/mixins.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/globals/views/mixins/mixins.js +30 -14
- package/dist/prometheus-framework/src/modules/globals/views/mixins/mixins.js.map +1 -1
- package/dist/prometheus-framework/src/modules/icons/actions/IconShopcartAdd.vue.cjs +33 -0
- package/dist/prometheus-framework/src/modules/icons/actions/IconShopcartAdd.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/icons/actions/IconShopcartAdd.vue.js +33 -0
- package/dist/prometheus-framework/src/modules/icons/actions/IconShopcartAdd.vue.js.map +1 -0
- package/dist/prometheus-framework/src/modules/icons/entities/IconCommunity.vue.cjs +4 -17
- package/dist/prometheus-framework/src/modules/icons/entities/IconCommunity.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/icons/entities/IconCommunity.vue.js +4 -17
- package/dist/prometheus-framework/src/modules/icons/entities/IconCommunity.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/icons/entities/IconPayments.vue.cjs +34 -0
- package/dist/prometheus-framework/src/modules/icons/entities/IconPayments.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/icons/entities/IconPayments.vue.js +34 -0
- package/dist/prometheus-framework/src/modules/icons/entities/IconPayments.vue.js.map +1 -0
- package/dist/prometheus-framework/src/modules/icons/entities/IconPrice.vue.cjs +27 -17
- package/dist/prometheus-framework/src/modules/icons/entities/IconPrice.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/icons/entities/IconPrice.vue.js +28 -18
- package/dist/prometheus-framework/src/modules/icons/entities/IconPrice.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/icons/icons.client.cjs +2 -0
- package/dist/prometheus-framework/src/modules/icons/icons.client.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/icons/icons.client.js +50 -48
- package/dist/prometheus-framework/src/modules/icons/icons.client.js.map +1 -1
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionEarn.vue.cjs +83 -81
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionEarn.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionEarn.vue.js +83 -81
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionEarn.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionFeatures.vue.cjs +25 -62
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionFeatures.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionFeatures.vue.js +25 -62
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionFeatures.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionGuide.vue.cjs +6 -6
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionGuide.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionGuide.vue.js +6 -6
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionGuide.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionJoinUs.vue.cjs +89 -0
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionJoinUs.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionJoinUs.vue.js +89 -0
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionJoinUs.vue.js.map +1 -0
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionMobileApp.vue.cjs +97 -0
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionMobileApp.vue.cjs.map +1 -0
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionMobileApp.vue.js +97 -0
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionMobileApp.vue.js.map +1 -0
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionOverview.vue.cjs +3 -6
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionOverview.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionOverview.vue.js +3 -6
- package/dist/prometheus-framework/src/modules/landing/components/sections/SectionOverview.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/landing/components/sections/SubscribeNewsletter.vue.cjs +34 -37
- package/dist/prometheus-framework/src/modules/landing/components/sections/SubscribeNewsletter.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/landing/components/sections/SubscribeNewsletter.vue.js +34 -37
- package/dist/prometheus-framework/src/modules/landing/components/sections/SubscribeNewsletter.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/landing/landing.client.cjs +6 -4
- package/dist/prometheus-framework/src/modules/landing/landing.client.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/landing/landing.client.js +18 -16
- package/dist/prometheus-framework/src/modules/landing/landing.client.js.map +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/blocks/CardOrderItem.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/blocks/CardOrderItem.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/blocks/CardOrderItem.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/blocks/CardOrderItem.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/pages/OrderBackoffice.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +4 -4
- package/dist/prometheus-framework/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +4 -4
- package/dist/prometheus-framework/src/modules/orders/components/pages/Orders.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/pages/Orders.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormAddCustomer.vue.cjs +3 -3
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormAddCustomer.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormCustomerDetails.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormCustomerDetails.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormDelivery.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormDelivery.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormPayment.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/orders/store/shopcart.cjs +67 -2
- package/dist/prometheus-framework/src/modules/orders/store/shopcart.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/orders/store/shopcart.js +67 -2
- package/dist/prometheus-framework/src/modules/orders/store/shopcart.js.map +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardOrganization.vue.js +7 -7
- package/dist/prometheus-framework/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +4 -4
- package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.js +4 -4
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Organization.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Organization.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +4 -4
- package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.js +4 -4
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Organizations.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Organizations.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Organizations.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/pages/Organizations.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/DetailsTabSection.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/organizations/components/sections/Documents.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/sections/Documents.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.cjs +3 -3
- package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/organizations/components/sections/Organizations.vue.cjs +3 -3
- package/dist/prometheus-framework/src/modules/organizations/components/sections/Organizations.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/pages/pages.client.cjs +888 -860
- package/dist/prometheus-framework/src/modules/pages/pages.client.js +888 -860
- package/dist/prometheus-framework/src/modules/pages/views/components/blocks/CardPage.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/pages/views/components/blocks/CardPage.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/pages/views/components/pages/PageEdit.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/pages/views/components/pages/PageEdit.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/CardPosition.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/products/components/blocks/CardPosition.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.cjs +4 -15
- package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.js +4 -15
- package/dist/prometheus-framework/src/modules/products/components/blocks/CardProduct.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/ImagesThumbnails.vue.cjs +3 -3
- package/dist/prometheus-framework/src/modules/products/components/blocks/ImagesThumbnails.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/ImagesThumbnails.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/products/components/blocks/ImagesThumbnails.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/LeftoverPositions.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/LeftoverPositions.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/ListPositions.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/blocks/ListPositions.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/elements/Price.vue.cjs +24 -30
- package/dist/prometheus-framework/src/modules/products/components/elements/Price.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/elements/Price.vue.js +25 -31
- package/dist/prometheus-framework/src/modules/products/components/elements/Price.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/Categories.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/Categories.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.cjs +3 -3
- package/dist/prometheus-framework/src/modules/products/components/pages/CategoryEdit.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/products/components/pages/EditLeftover.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/EditLeftover.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/products/components/pages/Leftovers.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/Leftovers.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/Product.vue.cjs +236 -13
- package/dist/prometheus-framework/src/modules/products/components/pages/Product.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/Product.vue.js +239 -16
- package/dist/prometheus-framework/src/modules/products/components/pages/Product.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.cjs +3 -3
- package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/pages/Products.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/EditModifications.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/EditModifications.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/EditProductInfo.vue.cjs +3 -3
- package/dist/prometheus-framework/src/modules/products/components/sections/EditProductInfo.vue.js +3 -3
- package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.cjs +62 -16
- package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.js +67 -21
- package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.js.map +1 -1
- package/dist/prometheus-framework/src/modules/products/products.client.cjs +0 -3
- package/dist/prometheus-framework/src/modules/products/products.client.cjs.map +1 -1
- package/dist/prometheus-framework/src/modules/products/products.client.js +48 -51
- package/dist/prometheus-framework/src/modules/products/products.client.js.map +1 -1
- package/dist/prometheus-framework/src/modules/reports/components/sections/FormReport.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/reports/components/sections/FormReport.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/spots/components/blocks/CardSpot.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/blocks/CardSpot.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/spots/components/blocks/SpotMemberModify.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/layouts/Spots.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/pages/Map.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/pages/Map.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/spots/components/pages/SpotEdit.vue.cjs +4 -4
- package/dist/prometheus-framework/src/modules/spots/components/pages/SpotEdit.vue.js +4 -4
- package/dist/prometheus-framework/src/modules/wallet/views/components/blocks/CardDeposit.vue.cjs +1 -1
- package/dist/prometheus-framework/src/modules/wallet/views/components/blocks/CardDeposit.vue.js +1 -1
- package/dist/prometheus-framework/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.cjs +2 -2
- package/dist/prometheus-framework/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +2 -2
- package/dist/prometheus-framework/src/modules/wallet/views/components/pages/Wallet.vue.cjs +3 -3
- package/dist/prometheus-framework/src/modules/wallet/views/components/pages/Wallet.vue.js +3 -3
- package/dist/prometheus-framework.cjs.js +1 -92
- package/dist/prometheus-framework.es.js +36 -13005
- package/package.json +1 -1
- package/src/components/Button/Button.vue +43 -40
- package/src/components/DatePicker/Calendar.vue +15 -7
- package/src/components/DatePicker/DatePicker.vue +50 -40
- package/src/components/EmptyState/EmptyState.vue +2 -2
- package/src/components/Feed/Feed.vue +6 -2
- package/src/components/FieldBig/FieldBig.vue +0 -2
- package/src/components/Media/Media.vue +211 -0
- package/src/components/Popup/Popup.vue +19 -21
- package/src/components/Slider/Slider.vue +57 -21
- package/src/components/index.js +1 -0
- package/src/main.js +3 -1
- package/src/modules/auth/views/components/pages/Profile.vue +2 -1
- package/src/modules/backoffice/backoffice.client.js +0 -2
- package/src/modules/backoffice/components/pages/Dashboard.vue +95 -2
- package/src/modules/backoffice/components/partials/Sidebar.vue +115 -132
- package/src/modules/backoffice/router/backoffice.js +0 -14
- package/src/modules/community/community.client.js +0 -3
- package/src/modules/community/components/layouts/Community.vue +1 -52
- package/src/modules/events/components/blocks/CardEvent.vue +28 -22
- package/src/modules/events/components/pages/Event.vue +2 -6
- package/src/modules/events/components/pages/Events.vue +241 -56
- package/src/modules/events/components/sections/EventsHot.vue +93 -0
- package/src/modules/events/components/sections/FeaturedEvents.vue +17 -15
- package/src/modules/events/components/sections/List.vue +1 -1
- package/src/modules/events/events.client.js +1 -0
- package/src/modules/events/router/events.js +0 -4
- package/src/modules/events/store/events.js +1 -0
- package/src/modules/globals/views/components/layouts/App.vue +4 -5
- package/src/modules/globals/views/components/layouts/Client.vue +17 -2
- package/src/modules/globals/views/components/partials/CitySelection.vue +88 -0
- package/src/modules/globals/views/components/partials/Header.vue +3 -3
- package/src/modules/globals/views/components/partials/Navigation.vue +75 -20
- package/src/modules/globals/views/components/partials/Sidebar.vue +2 -9
- package/src/modules/globals/views/mixins/mixins.js +56 -35
- package/src/modules/governance/DESCRIPTION.MD +238 -0
- package/src/modules/governance/controllers/factories/initiatives.controller.js +3 -1
- package/src/modules/governance/controllers/routes/initiatives.routes.js +1 -1
- package/src/modules/governance/controllers/routes/tasks.routes.js +1 -1
- package/src/modules/governance/controllers/routes/votes.routes.js +1 -1
- package/src/modules/governance/controllers/routes/votings.routes.js +1 -1
- package/src/modules/governance/governance.client.js +35 -35
- package/src/modules/governance/governance.server.js +8 -8
- package/src/modules/governance/models/milestone.model.js +98 -0
- package/src/modules/governance/models/task.model.js +39 -7
- package/src/modules/governance/views/components/pages/Initiative.vue +1 -1
- package/src/modules/governance/views/components/pages/InitiativeCreate.vue +2 -2
- package/src/modules/governance/views/components/pages/Initiatives.vue +3 -2
- package/src/modules/governance/views/components/pages/Task.vue +1 -1
- package/src/modules/governance/views/components/pages/TaskCreate.vue +2 -2
- package/src/modules/governance/views/components/pages/Tasks.vue +2 -2
- package/src/modules/governance/views/components/pages/Voting.vue +3 -3
- package/src/modules/governance/views/components/pages/VotingCreate.vue +2 -2
- package/src/modules/governance/views/components/pages/Votings.vue +2 -2
- package/src/modules/governance/views/components/sections/VoteForm.vue +1 -1
- package/src/modules/governance/views/router/goverance.router.js +263 -0
- package/src/modules/icons/actions/IconShopcartAdd.vue +15 -0
- package/src/modules/icons/entities/IconCommunity.vue +4 -6
- package/src/modules/icons/entities/IconPayments.vue +14 -0
- package/src/modules/icons/entities/IconPrice.vue +12 -3
- package/src/modules/icons/icons.client.js +5 -0
- package/src/modules/icons/logos/Logotype.vue +50 -17
- package/src/modules/landing/components/sections/SectionEarn.vue +42 -42
- package/src/modules/landing/components/sections/SectionFeatures.vue +25 -63
- package/src/modules/landing/components/sections/SectionGuide.vue +5 -5
- package/src/modules/landing/components/sections/SectionJoinUs.vue +95 -0
- package/src/modules/landing/components/sections/SectionMobileApp.vue +87 -0
- package/src/modules/landing/components/sections/SectionOverview.vue +3 -3
- package/src/modules/landing/components/sections/SubscribeNewsletter.vue +32 -31
- package/src/modules/landing/landing.client.js +5 -3
- package/src/modules/orders/components/blocks/CardOrderItem.vue +2 -0
- package/src/modules/orders/store/shopcart.js +100 -1
- package/src/modules/organizations/components/pages/Organizations.vue +1 -1
- package/src/modules/products/components/blocks/CardProduct.vue +5 -11
- package/src/modules/products/components/blocks/ImagesThumbnails.vue +4 -4
- package/src/modules/products/components/elements/Price.vue +33 -56
- package/src/modules/products/components/pages/Product.vue +235 -13
- package/src/modules/products/components/sections/SectionProduct.vue +50 -25
- package/src/modules/products/products.client.js +0 -4
- package/src/styles/base/all.scss +22 -21
- package/src/styles/config.scss +2 -2
- package/src/modules/backoffice/components/layouts/Backoffice.vue +0 -55
- package/src/modules/community/components/sections/JoinUs.vue +0 -75
- package/src/modules/events/components/sections/SectionLineup.vue +0 -42
- package/src/modules/events/components/sections/SectionMainGuest.vue +0 -95
- package/src/modules/events/components/sections/SectionPreviousEvents.vue +0 -117
- package/src/modules/events/components/sections/SectionSpecialGuests.vue +0 -46
- package/src/modules/governance/controllers/factories/projects.controller.js +0 -65
- package/src/modules/governance/controllers/routes/projects.routes.js +0 -34
- package/src/modules/governance/models/project.model.js +0 -26
- package/src/modules/landing/components/sections/FeatureSection.vue +0 -80
- package/src/modules/landing/components/sections/HeroSection.vue +0 -76
- package/src/modules/landing/components/sections/HowItWorksSection.vue +0 -88
- package/src/modules/landing/components/sections/MobileApp.vue +0 -133
- /package/src/modules/{landing → spots}/components/sections/MapSection.vue +0 -0
@@ -4,17 +4,15 @@ const vue = require("vue");
|
|
4
4
|
const Loader = require("../Loader/Loader.vue2.cjs");
|
5
5
|
;/* empty css */
|
6
6
|
const _hoisted_1 = ["disabled"];
|
7
|
-
const _hoisted_2 = {
|
8
|
-
const _hoisted_3 = { key: 1 };
|
9
|
-
const _hoisted_4 = {
|
7
|
+
const _hoisted_2 = {
|
10
8
|
key: 2,
|
11
9
|
class: "t-semi loading t-black"
|
12
10
|
};
|
13
|
-
const
|
11
|
+
const _hoisted_3 = {
|
14
12
|
key: 3,
|
15
13
|
class: "error"
|
16
14
|
};
|
17
|
-
const
|
15
|
+
const _hoisted_4 = {
|
18
16
|
key: 0,
|
19
17
|
class: "button-counter"
|
20
18
|
};
|
@@ -72,6 +70,7 @@ const _sfc_main = {
|
|
72
70
|
const loading = vue.ref(false);
|
73
71
|
const finished = vue.ref(false);
|
74
72
|
async function Submit() {
|
73
|
+
console.log("click");
|
75
74
|
button.value.style["pointer-events"] = "none";
|
76
75
|
error.value = null;
|
77
76
|
loading.value = true;
|
@@ -115,15 +114,14 @@ const _sfc_main = {
|
|
115
114
|
}, [
|
116
115
|
vue.createVNode(vue.Transition, { name: "FromTop" }, {
|
117
116
|
default: vue.withCtx(() => [
|
118
|
-
!loading.value && !error.value && !finished.value || !__props.showLoader ? (vue.openBlock(), vue.
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
])) : finished.value && __props.showSucces ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4, vue.toDisplayString(__props.text.success), 1)) : error.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_5, vue.toDisplayString(error.value), 1)) : vue.createCommentVNode("", true)
|
117
|
+
!loading.value && !error.value && !finished.value || !__props.showLoader ? vue.renderSlot(_ctx.$slots, "default", { key: 0 }) : loading.value && !error.value && __props.showLoader ? (vue.openBlock(), vue.createBlock(Loader.default, {
|
118
|
+
key: 1,
|
119
|
+
class: "pos-relative pos-t-0 pos-l-0 loading"
|
120
|
+
})) : finished.value && __props.showSucces ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2, vue.toDisplayString(__props.text.success), 1)) : error.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3, vue.toDisplayString(error.value), 1)) : vue.createCommentVNode("", true)
|
123
121
|
]),
|
124
122
|
_: 3
|
125
123
|
}),
|
126
|
-
__props.counter ? (vue.openBlock(), vue.createElementBlock("p",
|
124
|
+
__props.counter ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_4, vue.toDisplayString(__props.counter), 1)) : vue.createCommentVNode("", true)
|
127
125
|
], 8, _hoisted_1);
|
128
126
|
};
|
129
127
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Button.vue.cjs","sources":["../../../../../src/components/Button/Button.vue"],"sourcesContent":["<script setup>\n\timport { ref } from 'vue'\n\n\timport Loader from '@pf/src/components/Loader/Loader.vue'\n\n\tconst props = defineProps({\n\t\tsubmit: {\n\t\t\ttype: Function,\n\t\t\tdefault: async () => { console.log('Button click.') }\n\t\t},\n\t\ttext: {\n\t\t\ttype: Object,\n\t\t\tdefault: (textComponent) => {\n\t\t\t\treturn textComponent = {\n\t\t\t\t\t...textComponent.text,\n\t\t\t\t\tsuccess: '✔',\n\t\t\t\t\terror: '✖'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tcounter: {\n\t type: Object\n\t },\n\t\tcallback: {\n\t\t\ttype: Function,\n\t\t\tdefault: async () => { console.log('Button callback.') }\n\t\t},\n\t\tcallbackDelay: {\n\t\t\ttype: Number,\n\t\t\tdefault: 750\n\t\t},\n\t\tshowSucces: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t},\n\t\tshowLoader: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t},\n\t\tvalidation: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t})\t\n\n\tconst emits = defineEmits(['error'])\n\n\tconst button = ref(null);\n\tconst error = ref(null);\n\tconst loading = ref(false);\n\tconst finished = ref(false);\n\n\tasync function Submit() {\n\t button.value.style['pointer-events'] = 'none';\n\t error.value = null;\n\t loading.value = true;\n\n\t // Функция для сброса состояния кнопки.\n\t const resetButton = () => {\n
|
1
|
+
{"version":3,"file":"Button.vue.cjs","sources":["../../../../../src/components/Button/Button.vue"],"sourcesContent":["<script setup>\n\timport { ref } from 'vue'\n\n\timport Loader from '@pf/src/components/Loader/Loader.vue'\n\n\tconst props = defineProps({\n\t\tsubmit: {\n\t\t\ttype: Function,\n\t\t\tdefault: async () => { console.log('Button click.') }\n\t\t},\n\t\ttext: {\n\t\t\ttype: Object,\n\t\t\tdefault: (textComponent) => {\n\t\t\t\treturn textComponent = {\n\t\t\t\t\t...textComponent.text,\n\t\t\t\t\tsuccess: '✔',\n\t\t\t\t\terror: '✖'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tcounter: {\n\t type: Object\n\t },\n\t\tcallback: {\n\t\t\ttype: Function,\n\t\t\tdefault: async () => { console.log('Button callback.') }\n\t\t},\n\t\tcallbackDelay: {\n\t\t\ttype: Number,\n\t\t\tdefault: 750\n\t\t},\n\t\tshowSucces: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t},\n\t\tshowLoader: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t},\n\t\tvalidation: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t})\t\n\n\tconst emits = defineEmits(['error'])\n\n\tconst button = ref(null);\n\tconst error = ref(null);\n\tconst loading = ref(false);\n\tconst finished = ref(false);\n\n\tasync function Submit() {\n\t\t\tconsole.log('click')\n\t\t\t\n\t button.value.style['pointer-events'] = 'none';\n\t error.value = null;\n\t loading.value = true;\n\n\t // Функция для сброса состояния кнопки.\n\t const resetButton = () => {\n if (button.value) {\n button.value.classList.replace('bg-second', 'bg-main');\n button.value.style.pointerEvents = 'auto';\n loading.value = false;\n finished.value = false;\n error.value = null;\n }\n\t };\n\n\t try {\n await props.submit();\n\n button.value.classList.replace('bg-main', 'bg-second');\n\n loading.value = false;\n\n // Используем функцию сброса состояния кнопки здесь.\n if (props.showSucces) { \n\t\t\t\t\tfinished.value = true;\n setTimeout(resetButton, 500);\n } else {\n resetButton();\n }\n\n // Если есть callback, мы также установим таймер для его вызова.\n if (props.callback) setTimeout(() => props.callback(), props.callbackDelay);\n\n\t } catch (err) {\n \t\temits('error',err)\n // Если возникла ошибка, мы изменяем стили и устанавливаем сообщение об ошибке.\n button.value.classList.replace('bg-main', 'bg-fourth-nano');\n error.value = props.error;\n \n // После задержки снова сбрасываем состояние кнопки.\n setTimeout(() => {\n resetButton();\n // Так как класс кнопки был изменен, вернем его в исходное состояние.\n button.value.classList.replace('bg-fourth-nano', 'bg-main');\n }, 1330);\n\t }\n\t}\n\n</script>\n\n<template>\n\t<button @click.stop=\"Submit\" :disabled=\"validation\" ref=\"button\" class=\"button\">\n\t\t<transition name=\"FromTop\" >\n\t\t\t<!-- Slot -->\n\t\t\t<template v-if=\"!loading && !error && !finished || !showLoader\"><slot></slot></template>\n\t\t\t<!-- Loading Circle Animation -->\n\t\t\t<template v-else-if=\"loading && !error && showLoader\"><Loader class=\"pos-relative pos-t-0 pos-l-0 loading\"/></template>\n\t\t\t<!-- <Loader v-else-if=\"loading && !error && showLoader\"/> -->\n\t\t\t<!-- Success -->\n\t\t\t<span v-else-if=\"finished && showSucces\" class=\"t-semi loading t-black\">{{text.success}}</span>\n\t\t\t<!-- Error if not finished -->\n\t\t\t<span v-else-if=\"error\" class=\"error\">{{ error }}</span>\n\t\t</transition>\n\t\t<!-- Counter -->\n\t\t<p v-if=\"counter\" class=\"button-counter\">{{counter}}</p> \n\n\t</button> \n</template>\n\n\n<style lang=\"scss\" >\n\n\t.FromTop-enter-active,\n\t.FromTop-leave-active {\n\t\ttransform: translateY(0);\n\t\topacity: 1;\n\t\ttransition: all 0.5s ease; \n\t\t\n\t}\n\t.FromTop-enter-from,\n\t.FromTop-leave-to {\n\t\tposition: absolute;\n\t\ttransform: translateY(-1rem);\n\t\topacity: 0;\n\t\ttransition: all 0.5s ease;\n\t}\n\n\tbutton[disabled] {\n\t\topacity: 0.75 !important;\n\t \tpointer-events: none !important;\n\t \tcursor: default !important;\n\t \tcolor: rgba(var(--black), 0.5) !important;\n\t\tbackground: rgba(var(--grey), 1) !important; \n\t}\n\n\t.button {\n\t\tdisplay: flex;\n\n\t\tpadding: 1rem 1.75rem;\n\t\tborder-radius: 3rem;\n\n\t\ttransform: scale(1);\n\t\topacity: 1;\n\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\t\n\t\tcolor: black;\n\t\ttext-align: center;\n\t\ttext-transform: uppercase;\n\t\tfont-size: 1rem;\n\t\tletter-spacing: 5%;\n\n\t\ttransition: all 0.33s ease;\n\t \n\t\t&:hover {\n\t\t\tcursor: pointer;\n\t\t\topacity: 0.9;\n\t\t}\n\n\t\t&:active {\n\t\t\ttransform: scale(0.95);\n\t\t}\n\n\t\t&-small {\n\t\t\tpadding: 0.5rem 0.75rem;\n\t\t\tborder-radius: 0.5rem;\n\t\t\theight: fit-content;\n\t\t}\n\n\t\t.button-counter {\n\t\t\tposition: absolute;\n\t\t\tright: -8px;\n\t bottom: -8px;\n\t background: yellow;\n\t height: 16px;\n\t border-radius: 16px;\n\t width: 16px;\n\t font-weight: 500;\n\t text-align: center;\n\t line-height: 16px;\n\t font-size: 10px;\n\t\t}\n\t}\n</style>"],"names":["ref"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKC,UAAM,QAAQ;AAwCd,UAAM,QAAQ;AAEd,UAAM,SAASA,QAAI,IAAI;AACvB,UAAM,QAAQA,QAAI,IAAI;AACtB,UAAM,UAAUA,QAAI,KAAK;AACzB,UAAM,WAAWA,QAAI,KAAK;AAE1B,mBAAe,SAAS;AACtB,cAAQ,IAAI,OAAO;AAEjB,aAAO,MAAM,MAAM,gBAAgB,IAAI;AACvC,YAAM,QAAQ;AACd,cAAQ,QAAQ;AAGhB,YAAM,cAAc,MAAM;AACvB,YAAI,OAAO,OAAO;AAChB,iBAAO,MAAM,UAAU,QAAQ,aAAa,SAAS;AACrD,iBAAO,MAAM,MAAM,gBAAgB;AACnC,kBAAQ,QAAQ;AAChB,mBAAS,QAAQ;AACjB,gBAAM,QAAQ;AAAA,QACf;AAAA,MACT;AAEK,UAAI;AACD,cAAM,MAAM;AAEZ,eAAO,MAAM,UAAU,QAAQ,WAAW,WAAW;AAErD,gBAAQ,QAAQ;AAGhB,YAAI,MAAM,YAAY;AACzB,mBAAS,QAAQ;AACZ,qBAAW,aAAa,GAAG;AAAA,QACrC,OAAe;AACL;QACD;AAGD,YAAI,MAAM,SAAU,YAAW,MAAM,MAAM,SAAU,GAAE,MAAM,aAAa;AAAA,MAE5E,SAAQ,KAAK;AACb,cAAM,SAAQ,GAAG;AAEf,eAAO,MAAM,UAAU,QAAQ,WAAW,gBAAgB;AAC1D,cAAM,QAAQ,MAAM;AAGpB,mBAAW,MAAM;AACf;AAEA,iBAAO,MAAM,UAAU,QAAQ,kBAAkB,SAAS;AAAA,QAC3D,GAAE,IAAI;AAAA,MACT;AAAA,IACJ;;;;;;;;;;;;;;;;;;;;;;;;"}
|
@@ -1,18 +1,16 @@
|
|
1
|
-
import { ref, openBlock, createElementBlock, withModifiers, createVNode, Transition, withCtx, renderSlot, toDisplayString, createCommentVNode } from "vue";
|
1
|
+
import { ref, openBlock, createElementBlock, withModifiers, createVNode, Transition, withCtx, renderSlot, createBlock, toDisplayString, createCommentVNode } from "vue";
|
2
2
|
import Loader from "../Loader/Loader.vue2.js";
|
3
3
|
/* empty css */
|
4
4
|
const _hoisted_1 = ["disabled"];
|
5
|
-
const _hoisted_2 = {
|
6
|
-
const _hoisted_3 = { key: 1 };
|
7
|
-
const _hoisted_4 = {
|
5
|
+
const _hoisted_2 = {
|
8
6
|
key: 2,
|
9
7
|
class: "t-semi loading t-black"
|
10
8
|
};
|
11
|
-
const
|
9
|
+
const _hoisted_3 = {
|
12
10
|
key: 3,
|
13
11
|
class: "error"
|
14
12
|
};
|
15
|
-
const
|
13
|
+
const _hoisted_4 = {
|
16
14
|
key: 0,
|
17
15
|
class: "button-counter"
|
18
16
|
};
|
@@ -70,6 +68,7 @@ const _sfc_main = {
|
|
70
68
|
const loading = ref(false);
|
71
69
|
const finished = ref(false);
|
72
70
|
async function Submit() {
|
71
|
+
console.log("click");
|
73
72
|
button.value.style["pointer-events"] = "none";
|
74
73
|
error.value = null;
|
75
74
|
loading.value = true;
|
@@ -113,15 +112,14 @@ const _sfc_main = {
|
|
113
112
|
}, [
|
114
113
|
createVNode(Transition, { name: "FromTop" }, {
|
115
114
|
default: withCtx(() => [
|
116
|
-
!loading.value && !error.value && !finished.value || !__props.showLoader ? (openBlock(),
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
])) : finished.value && __props.showSucces ? (openBlock(), createElementBlock("span", _hoisted_4, toDisplayString(__props.text.success), 1)) : error.value ? (openBlock(), createElementBlock("span", _hoisted_5, toDisplayString(error.value), 1)) : createCommentVNode("", true)
|
115
|
+
!loading.value && !error.value && !finished.value || !__props.showLoader ? renderSlot(_ctx.$slots, "default", { key: 0 }) : loading.value && !error.value && __props.showLoader ? (openBlock(), createBlock(Loader, {
|
116
|
+
key: 1,
|
117
|
+
class: "pos-relative pos-t-0 pos-l-0 loading"
|
118
|
+
})) : finished.value && __props.showSucces ? (openBlock(), createElementBlock("span", _hoisted_2, toDisplayString(__props.text.success), 1)) : error.value ? (openBlock(), createElementBlock("span", _hoisted_3, toDisplayString(error.value), 1)) : createCommentVNode("", true)
|
121
119
|
]),
|
122
120
|
_: 3
|
123
121
|
}),
|
124
|
-
__props.counter ? (openBlock(), createElementBlock("p",
|
122
|
+
__props.counter ? (openBlock(), createElementBlock("p", _hoisted_4, toDisplayString(__props.counter), 1)) : createCommentVNode("", true)
|
125
123
|
], 8, _hoisted_1);
|
126
124
|
};
|
127
125
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Button.vue.js","sources":["../../../../../src/components/Button/Button.vue"],"sourcesContent":["<script setup>\n\timport { ref } from 'vue'\n\n\timport Loader from '@pf/src/components/Loader/Loader.vue'\n\n\tconst props = defineProps({\n\t\tsubmit: {\n\t\t\ttype: Function,\n\t\t\tdefault: async () => { console.log('Button click.') }\n\t\t},\n\t\ttext: {\n\t\t\ttype: Object,\n\t\t\tdefault: (textComponent) => {\n\t\t\t\treturn textComponent = {\n\t\t\t\t\t...textComponent.text,\n\t\t\t\t\tsuccess: '✔',\n\t\t\t\t\terror: '✖'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tcounter: {\n\t type: Object\n\t },\n\t\tcallback: {\n\t\t\ttype: Function,\n\t\t\tdefault: async () => { console.log('Button callback.') }\n\t\t},\n\t\tcallbackDelay: {\n\t\t\ttype: Number,\n\t\t\tdefault: 750\n\t\t},\n\t\tshowSucces: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t},\n\t\tshowLoader: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t},\n\t\tvalidation: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t})\t\n\n\tconst emits = defineEmits(['error'])\n\n\tconst button = ref(null);\n\tconst error = ref(null);\n\tconst loading = ref(false);\n\tconst finished = ref(false);\n\n\tasync function Submit() {\n\t button.value.style['pointer-events'] = 'none';\n\t error.value = null;\n\t loading.value = true;\n\n\t // Функция для сброса состояния кнопки.\n\t const resetButton = () => {\n
|
1
|
+
{"version":3,"file":"Button.vue.js","sources":["../../../../../src/components/Button/Button.vue"],"sourcesContent":["<script setup>\n\timport { ref } from 'vue'\n\n\timport Loader from '@pf/src/components/Loader/Loader.vue'\n\n\tconst props = defineProps({\n\t\tsubmit: {\n\t\t\ttype: Function,\n\t\t\tdefault: async () => { console.log('Button click.') }\n\t\t},\n\t\ttext: {\n\t\t\ttype: Object,\n\t\t\tdefault: (textComponent) => {\n\t\t\t\treturn textComponent = {\n\t\t\t\t\t...textComponent.text,\n\t\t\t\t\tsuccess: '✔',\n\t\t\t\t\terror: '✖'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tcounter: {\n\t type: Object\n\t },\n\t\tcallback: {\n\t\t\ttype: Function,\n\t\t\tdefault: async () => { console.log('Button callback.') }\n\t\t},\n\t\tcallbackDelay: {\n\t\t\ttype: Number,\n\t\t\tdefault: 750\n\t\t},\n\t\tshowSucces: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t},\n\t\tshowLoader: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true\n\t\t},\n\t\tvalidation: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t})\t\n\n\tconst emits = defineEmits(['error'])\n\n\tconst button = ref(null);\n\tconst error = ref(null);\n\tconst loading = ref(false);\n\tconst finished = ref(false);\n\n\tasync function Submit() {\n\t\t\tconsole.log('click')\n\t\t\t\n\t button.value.style['pointer-events'] = 'none';\n\t error.value = null;\n\t loading.value = true;\n\n\t // Функция для сброса состояния кнопки.\n\t const resetButton = () => {\n if (button.value) {\n button.value.classList.replace('bg-second', 'bg-main');\n button.value.style.pointerEvents = 'auto';\n loading.value = false;\n finished.value = false;\n error.value = null;\n }\n\t };\n\n\t try {\n await props.submit();\n\n button.value.classList.replace('bg-main', 'bg-second');\n\n loading.value = false;\n\n // Используем функцию сброса состояния кнопки здесь.\n if (props.showSucces) { \n\t\t\t\t\tfinished.value = true;\n setTimeout(resetButton, 500);\n } else {\n resetButton();\n }\n\n // Если есть callback, мы также установим таймер для его вызова.\n if (props.callback) setTimeout(() => props.callback(), props.callbackDelay);\n\n\t } catch (err) {\n \t\temits('error',err)\n // Если возникла ошибка, мы изменяем стили и устанавливаем сообщение об ошибке.\n button.value.classList.replace('bg-main', 'bg-fourth-nano');\n error.value = props.error;\n \n // После задержки снова сбрасываем состояние кнопки.\n setTimeout(() => {\n resetButton();\n // Так как класс кнопки был изменен, вернем его в исходное состояние.\n button.value.classList.replace('bg-fourth-nano', 'bg-main');\n }, 1330);\n\t }\n\t}\n\n</script>\n\n<template>\n\t<button @click.stop=\"Submit\" :disabled=\"validation\" ref=\"button\" class=\"button\">\n\t\t<transition name=\"FromTop\" >\n\t\t\t<!-- Slot -->\n\t\t\t<template v-if=\"!loading && !error && !finished || !showLoader\"><slot></slot></template>\n\t\t\t<!-- Loading Circle Animation -->\n\t\t\t<template v-else-if=\"loading && !error && showLoader\"><Loader class=\"pos-relative pos-t-0 pos-l-0 loading\"/></template>\n\t\t\t<!-- <Loader v-else-if=\"loading && !error && showLoader\"/> -->\n\t\t\t<!-- Success -->\n\t\t\t<span v-else-if=\"finished && showSucces\" class=\"t-semi loading t-black\">{{text.success}}</span>\n\t\t\t<!-- Error if not finished -->\n\t\t\t<span v-else-if=\"error\" class=\"error\">{{ error }}</span>\n\t\t</transition>\n\t\t<!-- Counter -->\n\t\t<p v-if=\"counter\" class=\"button-counter\">{{counter}}</p> \n\n\t</button> \n</template>\n\n\n<style lang=\"scss\" >\n\n\t.FromTop-enter-active,\n\t.FromTop-leave-active {\n\t\ttransform: translateY(0);\n\t\topacity: 1;\n\t\ttransition: all 0.5s ease; \n\t\t\n\t}\n\t.FromTop-enter-from,\n\t.FromTop-leave-to {\n\t\tposition: absolute;\n\t\ttransform: translateY(-1rem);\n\t\topacity: 0;\n\t\ttransition: all 0.5s ease;\n\t}\n\n\tbutton[disabled] {\n\t\topacity: 0.75 !important;\n\t \tpointer-events: none !important;\n\t \tcursor: default !important;\n\t \tcolor: rgba(var(--black), 0.5) !important;\n\t\tbackground: rgba(var(--grey), 1) !important; \n\t}\n\n\t.button {\n\t\tdisplay: flex;\n\n\t\tpadding: 1rem 1.75rem;\n\t\tborder-radius: 3rem;\n\n\t\ttransform: scale(1);\n\t\topacity: 1;\n\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\t\n\t\tcolor: black;\n\t\ttext-align: center;\n\t\ttext-transform: uppercase;\n\t\tfont-size: 1rem;\n\t\tletter-spacing: 5%;\n\n\t\ttransition: all 0.33s ease;\n\t \n\t\t&:hover {\n\t\t\tcursor: pointer;\n\t\t\topacity: 0.9;\n\t\t}\n\n\t\t&:active {\n\t\t\ttransform: scale(0.95);\n\t\t}\n\n\t\t&-small {\n\t\t\tpadding: 0.5rem 0.75rem;\n\t\t\tborder-radius: 0.5rem;\n\t\t\theight: fit-content;\n\t\t}\n\n\t\t.button-counter {\n\t\t\tposition: absolute;\n\t\t\tright: -8px;\n\t bottom: -8px;\n\t background: yellow;\n\t height: 16px;\n\t border-radius: 16px;\n\t width: 16px;\n\t font-weight: 500;\n\t text-align: center;\n\t line-height: 16px;\n\t font-size: 10px;\n\t\t}\n\t}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKC,UAAM,QAAQ;AAwCd,UAAM,QAAQ;AAEd,UAAM,SAAS,IAAI,IAAI;AACvB,UAAM,QAAQ,IAAI,IAAI;AACtB,UAAM,UAAU,IAAI,KAAK;AACzB,UAAM,WAAW,IAAI,KAAK;AAE1B,mBAAe,SAAS;AACtB,cAAQ,IAAI,OAAO;AAEjB,aAAO,MAAM,MAAM,gBAAgB,IAAI;AACvC,YAAM,QAAQ;AACd,cAAQ,QAAQ;AAGhB,YAAM,cAAc,MAAM;AACvB,YAAI,OAAO,OAAO;AAChB,iBAAO,MAAM,UAAU,QAAQ,aAAa,SAAS;AACrD,iBAAO,MAAM,MAAM,gBAAgB;AACnC,kBAAQ,QAAQ;AAChB,mBAAS,QAAQ;AACjB,gBAAM,QAAQ;AAAA,QACf;AAAA,MACT;AAEK,UAAI;AACD,cAAM,MAAM;AAEZ,eAAO,MAAM,UAAU,QAAQ,WAAW,WAAW;AAErD,gBAAQ,QAAQ;AAGhB,YAAI,MAAM,YAAY;AACzB,mBAAS,QAAQ;AACZ,qBAAW,aAAa,GAAG;AAAA,QACrC,OAAe;AACL;QACD;AAGD,YAAI,MAAM,SAAU,YAAW,MAAM,MAAM,SAAU,GAAE,MAAM,aAAa;AAAA,MAE5E,SAAQ,KAAK;AACb,cAAM,SAAQ,GAAG;AAEf,eAAO,MAAM,UAAU,QAAQ,WAAW,gBAAgB;AAC1D,cAAM,QAAQ,MAAM;AAGpB,mBAAW,MAAM;AACf;AAEA,iBAAO,MAAM,UAAU,QAAQ,kBAAkB,SAAS;AAAA,QAC3D,GAAE,IAAI;AAAA,MACT;AAAA,IACJ;;;;;;;;;;;;;;;;;;;;;;;"}
|
@@ -189,31 +189,59 @@ const _sfc_main = {
|
|
189
189
|
__props.allowRange ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, [
|
190
190
|
vue.createElementVNode("button", {
|
191
191
|
onClick: selectToday,
|
192
|
-
class: "font-second t-nowrap pd-thin bg-
|
192
|
+
class: "font-second t-nowrap pd-thin bg-white radius-small"
|
193
193
|
}, "Today"),
|
194
194
|
vue.createElementVNode("button", {
|
195
195
|
onClick: selectLastWeek,
|
196
|
-
class: "font-second t-nowrap pd-thin bg-
|
196
|
+
class: "font-second t-nowrap pd-thin bg-white radius-small"
|
197
197
|
}, "Last Week"),
|
198
198
|
vue.createElementVNode("button", {
|
199
199
|
onClick: selectLastMonth,
|
200
|
-
class: "font-second t-nowrap pd-thin bg-
|
200
|
+
class: "font-second t-nowrap pd-thin bg-white radius-small"
|
201
201
|
}, "Last Month"),
|
202
202
|
vue.createElementVNode("button", {
|
203
203
|
onClick: selectLastYear,
|
204
|
-
class: "font-second t-nowrap pd-thin bg-
|
204
|
+
class: "font-second t-nowrap pd-thin bg-white radius-small"
|
205
205
|
}, "All time")
|
206
206
|
])) : vue.createCommentVNode("", true),
|
207
207
|
vue.createElementVNode("div", _hoisted_3, [
|
208
208
|
vue.createElementVNode("button", {
|
209
209
|
onClick: vue.withModifiers(prevMonth, ["stop"]),
|
210
|
-
class: "aspect-
|
211
|
-
},
|
210
|
+
class: "aspect-1x1 h-100 pd-thin bg-white radius-small"
|
211
|
+
}, _cache[0] || (_cache[0] = [
|
212
|
+
vue.createElementVNode("svg", {
|
213
|
+
class: "h-100",
|
214
|
+
xmlns: "http://www.w3.org/2000/svg",
|
215
|
+
width: "12",
|
216
|
+
height: "20",
|
217
|
+
viewBox: "0 0 12 20",
|
218
|
+
fill: "none"
|
219
|
+
}, [
|
220
|
+
vue.createElementVNode("path", {
|
221
|
+
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",
|
222
|
+
fill: "#007AFF"
|
223
|
+
})
|
224
|
+
], -1)
|
225
|
+
])),
|
212
226
|
vue.createElementVNode("span", _hoisted_4, vue.toDisplayString(monthYear.value), 1),
|
213
227
|
vue.createElementVNode("button", {
|
214
228
|
onClick: vue.withModifiers(nextMonth, ["stop"]),
|
215
|
-
class: "aspect-
|
216
|
-
},
|
229
|
+
class: "aspect-1x1 h-100 pd-thin bg-white radius-small"
|
230
|
+
}, _cache[1] || (_cache[1] = [
|
231
|
+
vue.createElementVNode("svg", {
|
232
|
+
class: "h-100",
|
233
|
+
xmlns: "http://www.w3.org/2000/svg",
|
234
|
+
width: "11",
|
235
|
+
height: "20",
|
236
|
+
viewBox: "0 0 11 20",
|
237
|
+
fill: "none"
|
238
|
+
}, [
|
239
|
+
vue.createElementVNode("path", {
|
240
|
+
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",
|
241
|
+
fill: "#007AFF"
|
242
|
+
})
|
243
|
+
], -1)
|
244
|
+
]))
|
217
245
|
]),
|
218
246
|
vue.createElementVNode("div", _hoisted_5, [
|
219
247
|
vue.createElementVNode("div", _hoisted_6, [
|
@@ -229,7 +257,7 @@ const _sfc_main = {
|
|
229
257
|
return vue.openBlock(), vue.createElementBlock("div", {
|
230
258
|
key: day.date,
|
231
259
|
class: vue.normalizeClass([
|
232
|
-
"flex flex-center cursor-pointer aspect-
|
260
|
+
"flex flex-center cursor-pointer aspect-1x1 radius-small",
|
233
261
|
{ "bg-main t-white": day.isToday },
|
234
262
|
{ "calendar__date--selected": isSelected(day.date) },
|
235
263
|
{ "calendar__date--range": isInRange(day.date) },
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Calendar.vue2.cjs","sources":["../../../../../src/components/DatePicker/Calendar.vue"],"sourcesContent":["<template>\n <div class=\"calendar\">\n <div v-if=\"allowRange\" class=\"br-b br-solid br-grey-transp-25 gap-thin flex flex-nowrap pd-thin\">\n <button @click=\"selectToday\" class=\"font-second t-nowrap pd-thin bg-main-transp-10 radius-small\" >Today</button>\n <button @click=\"selectLastWeek\" class=\"font-second t-nowrap pd-thin bg-main-transp-10 radius-small\">Last Week</button>\n <button @click=\"selectLastMonth\" class=\"font-second t-nowrap pd-thin bg-main-transp-10 radius-small\">Last Month</button>\n <button @click=\"selectLastYear\" class=\"font-second t-nowrap pd-thin bg-main-transp-10 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-ratio-1x1 w-10 pd-thin bg-main-transp-10 radius-small\"><</button>\n <span class=\"t-semi \">{{ monthYear }}</span>\n <button @click.stop=\"nextMonth\" class=\"aspect-ratio-1x1 w-10 pd-thin bg-main-transp-10 radius-small\" >></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-ratio-1x1 radius-small',\n { 'bg-main t-white': day.isToday },\n { 'calendar__date--selected': isSelected(day.date) },\n { 'calendar__date--range': isInRange(day.date) },\n { 'calendar__date--disabled': !isSameMonth(day.date) },\n ]\"\n @click.stop=\"selectDate(day.date)\"\n >\n {{ day.day }}\n </div>\n </div>\n </div>\n \n </div>\n</template>\n\n<script setup>\nimport { computed, ref } from 'vue'\n\nconst props = defineProps({\n modelValue: [Date, Object],\n allowRange: Boolean,\n})\n\nconst emit = defineEmits(['update:modelValue'])\n\nconst dateCalendar = defineModel('date')\n\nconst today = new Date()\nconst currentDate = ref(today)\nconst selectedDate = ref(null)\nconst startDate = ref(null)\nconst endDate = ref(null)\n\nconst daysOfWeek = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n\nconst toUTC = (date) => {\n return new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()))\n}\n\nconst toEndOfDayUTC = (date) => {\n const endOfDay = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59));\n return endOfDay;\n}\n\nconst monthYear = computed(() => {\n const month = currentDate.value.toLocaleString('default', { month: 'long', timeZone: 'UTC' })\n const year = currentDate.value.getUTCFullYear()\n return `${month} ${year}`\n})\n\nconst 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\nconst 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\nconst isSameMonth = (date) => {\n return (\n date.getUTCMonth() === currentDate.value.getUTCMonth() &&\n date.getUTCFullYear() === currentDate.value.getUTCFullYear()\n )\n}\n\nconst 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\nconst isInRange = (date) => {\n if (startDate.value && endDate.value) {\n return date > startDate.value && toEndOfDayUTC(date) < endDate.value\n }\n return false\n}\n\nconst selectDate = (date) => {\n const formattedDate = toUTC(date)\n\n if (!props.allowRange) {\n selectedDate.value = formattedDate\n dateCalendar.value = formattedDate\n\n } else if (!startDate.value && !endDate.value) {\n startDate.value = formattedDate\n dateCalendar.value.start = formattedDate\n } else if (!endDate.value) {\n\n endDate.value = toEndOfDayUTC(date)\n\n if (formattedDate < startDate.value) {\n const temp = toEndOfDayUTC(startDate.value)\n\n startDate.value = formattedDate\n endDate.value = temp\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\nconst prevMonth = () => {\n currentDate.value = new Date(Date.UTC(\n currentDate.value.getUTCFullYear(),\n currentDate.value.getUTCMonth() - 1,\n 1\n ))\n}\n\nconst nextMonth = () => {\n currentDate.value = new Date(Date.UTC(\n currentDate.value.getUTCFullYear(),\n currentDate.value.getUTCMonth() + 1,\n 1\n ))\n}\n\nconst selectToday = () => {\n const today = new Date(); // Предположим, что переменная today - это текущая дата\n const todayStart = new Date(Date.UTC(today.getUTCFullYear(), today.getUTCMonth(), today.getUTCDate(), 0, 0, 0, 0)); // Начало дня в UTC\n const todayEnd = new Date(Date.UTC(today.getUTCFullYear(), today.getUTCMonth(), today.getUTCDate(), 23, 59, 59, 999)); // Конец дня в UTC\n\n startDate.value = todayStart.toISOString();\n endDate.value = todayEnd.toISOString();\n dateCalendar.value = { start: startDate.value, end: endDate.value };\n}\n\nconst 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 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\nconst selectLastMonth = () => {\n const today = new Date();\n \n // Создаем дату для прошлого месяца\n const lastMonth = new Date(today);\n lastMonth.setUTCMonth(today.getUTCMonth() - 1);\n lastMonth.setUTCHours(0, 0, 0, 0);\n \n // Устанавливаем конец текущего дня до 23:59:59\n startDate.value = lastMonth;\n endDate.value = toEndOfDayUTC(today);\n\n today.setUTCHours(23, 59, 59, 999);\n \n // Форматируем даты в ISO строки\n const start = lastMonth.toISOString();\n const end = today.toISOString();\n \n dateCalendar.value = { start: start, end: end };\n}\n\n\n\nconst selectLastYear = () => {\n\n startDate.value = null;\n endDate.value = null;\n dateCalendar.value = { start: null, end: null };\n}\n</script>\n\n\n<style >\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\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\n.calendar__date--today {\n background-color: #f0f0f0;\n font-weight: bold;\n}\n\n.calendar__date--selected {\n background-color: #007bff;\n color: #fff;\n}\n\n.calendar__date--range {\n background-color: #e9ecef;\n}\n\n.calendar__date--disabled {\n color: #ccc;\n cursor: not-allowed;\n}\n</style>"],"names":["_useModel","ref","computed","today"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Calendar.vue2.cjs","sources":["../../../../../src/components/DatePicker/Calendar.vue"],"sourcesContent":["<template>\n <div class=\"calendar\">\n <div v-if=\"allowRange\" class=\"br-b br-solid br-grey-transp-25 gap-thin flex flex-nowrap pd-thin\">\n <button @click=\"selectToday\" class=\"font-second t-nowrap pd-thin bg-white radius-small\" >Today</button>\n <button @click=\"selectLastWeek\" class=\"font-second t-nowrap pd-thin bg-white radius-small\">Last Week</button>\n <button @click=\"selectLastMonth\" class=\"font-second t-nowrap pd-thin bg-white radius-small\">Last Month</button>\n <button @click=\"selectLastYear\" class=\"font-second t-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 h-100 pd-thin bg-white radius-small\">\n <svg class=\"h-100\" 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=\"#007AFF\"/>\n </svg>\n </button>\n <span class=\"t-semi \">{{ monthYear }}</span>\n <button @click.stop=\"nextMonth\" class=\"aspect-1x1 h-100 pd-thin bg-white radius-small\" >\n <svg class=\"h-100\" 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=\"#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 { 'bg-main t-white': day.isToday },\n { 'calendar__date--selected': isSelected(day.date) },\n { 'calendar__date--range': isInRange(day.date) },\n { 'calendar__date--disabled': !isSameMonth(day.date) },\n ]\"\n @click.stop=\"selectDate(day.date)\"\n >\n {{ day.day }}\n </div>\n </div>\n </div>\n \n </div>\n</template>\n\n<script setup>\nimport { computed, ref } from 'vue'\n\nconst props = defineProps({\n modelValue: [Date, Object],\n allowRange: Boolean,\n})\n\nconst emit = defineEmits(['update:modelValue'])\n\nconst dateCalendar = defineModel('date')\n\nconst today = new Date()\nconst currentDate = ref(today)\nconst selectedDate = ref(null)\nconst startDate = ref(null)\nconst endDate = ref(null)\n\nconst daysOfWeek = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n\nconst toUTC = (date) => {\n return new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()))\n}\n\nconst toEndOfDayUTC = (date) => {\n const endOfDay = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59));\n return endOfDay;\n}\n\nconst monthYear = computed(() => {\n const month = currentDate.value.toLocaleString('default', { month: 'long', timeZone: 'UTC' })\n const year = currentDate.value.getUTCFullYear()\n return `${month} ${year}`\n})\n\nconst 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\nconst 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\nconst isSameMonth = (date) => {\n return (\n date.getUTCMonth() === currentDate.value.getUTCMonth() &&\n date.getUTCFullYear() === currentDate.value.getUTCFullYear()\n )\n}\n\nconst 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\nconst isInRange = (date) => {\n if (startDate.value && endDate.value) {\n return date > startDate.value && toEndOfDayUTC(date) < endDate.value\n }\n return false\n}\n\nconst selectDate = (date) => {\n const formattedDate = toUTC(date)\n\n if (!props.allowRange) {\n selectedDate.value = formattedDate\n dateCalendar.value = formattedDate\n\n } else if (!startDate.value && !endDate.value) {\n startDate.value = formattedDate\n dateCalendar.value.start = formattedDate\n } else if (!endDate.value) {\n\n endDate.value = toEndOfDayUTC(date)\n\n if (formattedDate < startDate.value) {\n const temp = toEndOfDayUTC(startDate.value)\n\n startDate.value = formattedDate\n endDate.value = temp\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\nconst prevMonth = () => {\n currentDate.value = new Date(Date.UTC(\n currentDate.value.getUTCFullYear(),\n currentDate.value.getUTCMonth() - 1,\n 1\n ))\n}\n\nconst nextMonth = () => {\n currentDate.value = new Date(Date.UTC(\n currentDate.value.getUTCFullYear(),\n currentDate.value.getUTCMonth() + 1,\n 1\n ))\n}\n\nconst selectToday = () => {\n const today = new Date(); // Предположим, что переменная today - это текущая дата\n const todayStart = new Date(Date.UTC(today.getUTCFullYear(), today.getUTCMonth(), today.getUTCDate(), 0, 0, 0, 0)); // Начало дня в UTC\n const todayEnd = new Date(Date.UTC(today.getUTCFullYear(), today.getUTCMonth(), today.getUTCDate(), 23, 59, 59, 999)); // Конец дня в UTC\n\n startDate.value = todayStart.toISOString();\n endDate.value = todayEnd.toISOString();\n dateCalendar.value = { start: startDate.value, end: endDate.value };\n}\n\nconst 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 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\nconst selectLastMonth = () => {\n const today = new Date();\n \n // Создаем дату для прошлого месяца\n const lastMonth = new Date(today);\n lastMonth.setUTCMonth(today.getUTCMonth() - 1);\n lastMonth.setUTCHours(0, 0, 0, 0);\n \n // Устанавливаем конец текущего дня до 23:59:59\n startDate.value = lastMonth;\n endDate.value = toEndOfDayUTC(today);\n\n today.setUTCHours(23, 59, 59, 999);\n \n // Форматируем даты в ISO строки\n const start = lastMonth.toISOString();\n const end = today.toISOString();\n \n dateCalendar.value = { start: start, end: end };\n}\n\n\n\nconst selectLastYear = () => {\n\n startDate.value = null;\n endDate.value = null;\n dateCalendar.value = { start: null, end: null };\n}\n</script>\n\n\n<style >\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\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\n.calendar__date--today {\n background-color: #f0f0f0;\n font-weight: bold;\n}\n\n.calendar__date--selected {\n background-color: #007bff;\n color: #fff;\n}\n\n.calendar__date--range {\n background-color: #e9ecef;\n}\n\n.calendar__date--disabled {\n color: #ccc;\n cursor: not-allowed;\n}\n</style>"],"names":["_useModel","ref","computed","today"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAoDA,UAAM,QAAQ;AAOd,UAAM,eAAeA,IAAAA,SAAW,SAAC,MAAM;AAEvC,UAAM,QAAQ,oBAAI,KAAM;AACxB,UAAM,cAAcC,IAAG,IAAC,KAAK;AAC7B,UAAM,eAAeA,IAAG,IAAC,IAAI;AAC7B,UAAM,YAAYA,IAAG,IAAC,IAAI;AAC1B,UAAM,UAAUA,IAAG,IAAC,IAAI;AAExB,UAAM,aAAa,CAAC,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK;AAEnE,UAAM,QAAQ,CAAC,SAAS;AACtB,aAAO,IAAI,KAAK,KAAK,IAAI,KAAK,eAAe,KAAK,SAAU,GAAE,KAAK,QAAS,CAAA,CAAC;AAAA,IAC/E;AAEA,UAAM,gBAAgB,CAAC,SAAS;AAC9B,YAAM,WAAW,IAAI,KAAK,KAAK,IAAI,KAAK,eAAe,KAAK,SAAU,GAAE,KAAK,QAAS,GAAE,IAAI,IAAI,EAAE,CAAC;AACnG,aAAO;AAAA,IACT;AAEA,UAAM,YAAYC,IAAQ,SAAC,MAAM;AAC/B,YAAM,QAAQ,YAAY,MAAM,eAAe,WAAW,EAAE,OAAO,QAAQ,UAAU,OAAO;AAC5F,YAAM,OAAO,YAAY,MAAM,eAAgB;AAC/C,aAAO,GAAG,KAAK,IAAI,IAAI;AAAA,IACzB,CAAC;AAED,UAAM,cAAcA,IAAQ,SAAC,MAAM;AACjC,YAAM,OAAO,CAAE;AACf,YAAM,WAAW,IAAI,KAAK,KAAK;AAAA,QAC7B,YAAY,MAAM,eAAgB;AAAA,QAClC,YAAY,MAAM,YAAa;AAAA,QAC/B;AAAA,MACJ,CAAG;AACD,YAAM,UAAU,IAAI,KAAK,KAAK;AAAA,QAC5B,YAAY,MAAM,eAAgB;AAAA,QAClC,YAAY,MAAM,YAAW,IAAK;AAAA,QAClC;AAAA,MACJ,CAAG;AAED,YAAM,iBAAiB,SAAS,UAAW;AAE3C,UAAI,OAAO,IAAI,KAAK,QAAQ;AAE5B,WAAK,WAAW,KAAK,WAAU,IAAK,cAAc;AAElD,eAAS,IAAI,GAAG,IAAI,gBAAgB,KAAK;AACvC,aAAK,KAAK;AAAA,UACR,MAAM,IAAI,KAAK,IAAI;AAAA,UACnB,KAAK,KAAK,WAAY;AAAA,UACtB,SAAS,QAAQ,IAAI;AAAA,QAC3B,CAAK;AACD,aAAK,WAAW,KAAK,WAAU,IAAK,CAAC;AAAA,MACtC;AAED,UAAI,MAAM;AAEV,WAAK,OAAO,UAAU,QAAQ,SAAS,KAAK,WAAW,KAAK,eAAe,CAAC,GAAG;AAC7E,aAAK,KAAK;AAAA,UACR,MAAM,IAAI,KAAK,IAAI;AAAA,UACnB;AAAA,UACA,SAAS,QAAQ,IAAI;AAAA,QAC3B,CAAK;AACD;AAAA,MACD;AAED,YAAM,gBAAgB,KAAK,KAAK,SAAS,CAAC,EAAE,KAAK,UAAW;AAE5D,eAAS,IAAI,gBAAgB,GAAG,KAAK,GAAG,KAAK;AAC3C,aAAK,KAAK;AAAA,UACR,MAAM,IAAI,KAAK,IAAI;AAAA,UACnB,KAAK,KAAK,WAAY;AAAA,UACtB,SAAS,QAAQ,IAAI;AAAA,QAC3B,CAAK;AACD,aAAK,WAAW,KAAK,WAAU,IAAK,CAAC;AAAA,MACtC;AAED,aAAO;AAAA,IACT,CAAC;AAED,UAAM,UAAU,CAAC,SAAS;AACxB,YAAMC,SAAQ,oBAAI,KAAM;AACxB,aACE,KAAK,WAAU,MAAOA,OAAM,WAAY,KACxC,KAAK,YAAW,MAAOA,OAAM,YAAa,KAC1C,KAAK,eAAc,MAAOA,OAAM,eAAgB;AAAA,IAEpD;AAEA,UAAM,cAAc,CAAC,SAAS;AAC5B,aACE,KAAK,YAAa,MAAK,YAAY,MAAM,YAAa,KACtD,KAAK,eAAgB,MAAK,YAAY,MAAM,eAAgB;AAAA,IAEhE;AAEA,UAAM,aAAa,CAAC,SAAS;AAC3B,UAAI,MAAM,YAAY;AACpB,YAAI,UAAU,SAAS,QAAQ,OAAO;AACpC,iBAAO,QAAQ,IAAI,KAAK,UAAU,KAAK,KAAK,cAAc,IAAI,KAAK,IAAI,KAAK,QAAQ,KAAK;AAAA,QAC/F,WAAe,UAAU,OAAO;AAC1B,iBAAO,KAAK,QAAO,MAAO,IAAI,KAAK,UAAU,KAAK,EAAE;QACrD;AAAA,MACL,OAAS;AACL,eAAO,aAAa,SAAS,KAAK,QAAS,MAAK,IAAI,KAAK,aAAa,KAAK,EAAE;MAC9E;AAAA,IACH;AAGA,UAAM,YAAY,CAAC,SAAS;AAC1B,UAAI,UAAU,SAAS,QAAQ,OAAO;AACpC,eAAO,OAAO,UAAU,SAAS,cAAc,IAAI,IAAI,QAAQ;AAAA,MAChE;AACD,aAAO;AAAA,IACT;AAEA,UAAM,aAAa,CAAC,SAAS;AAC3B,YAAM,gBAAgB,MAAM,IAAI;AAEhC,UAAI,CAAC,MAAM,YAAY;AACrB,qBAAa,QAAQ;AACrB,qBAAa,QAAQ;AAAA,MAEtB,WAAU,CAAC,UAAU,SAAS,CAAC,QAAQ,OAAO;AAC7C,kBAAU,QAAQ;AAClB,qBAAa,MAAM,QAAQ;AAAA,MAC/B,WAAa,CAAC,QAAQ,OAAO;AAEzB,gBAAQ,QAAQ,cAAc,IAAI;AAElC,YAAI,gBAAgB,UAAU,OAAO;AACnC,gBAAM,OAAO,cAAc,UAAU,KAAK;AAE1C,oBAAU,QAAQ;AAClB,kBAAQ,QAAQ;AAAA,QACjB;AAED,qBAAa,QAAQ,EAAE,OAAO,UAAU,OAAO,KAAK,QAAQ,MAAO;AAAA,MACvE,OAAS;AACL,kBAAU,QAAQ;AAClB,gBAAQ,QAAQ;AAChB,qBAAa,QAAQ,EAAC,OAAO,eAAe,KAAK,KAAM;AAAA,MACxD;AAAA,IACH;AAEA,UAAM,YAAY,MAAM;AACtB,kBAAY,QAAQ,IAAI,KAAK,KAAK;AAAA,QAChC,YAAY,MAAM,eAAgB;AAAA,QAClC,YAAY,MAAM,YAAW,IAAK;AAAA,QAClC;AAAA,MACJ,CAAG;AAAA,IACH;AAEA,UAAM,YAAY,MAAM;AACtB,kBAAY,QAAQ,IAAI,KAAK,KAAK;AAAA,QAChC,YAAY,MAAM,eAAgB;AAAA,QAClC,YAAY,MAAM,YAAW,IAAK;AAAA,QAClC;AAAA,MACJ,CAAG;AAAA,IACH;AAEA,UAAM,cAAc,MAAM;AACxB,YAAMA,SAAQ,oBAAI;AAClB,YAAM,aAAa,IAAI,KAAK,KAAK,IAAIA,OAAM,eAAc,GAAIA,OAAM,YAAW,GAAIA,OAAM,cAAc,GAAG,GAAG,GAAG,CAAC,CAAC;AACjH,YAAM,WAAW,IAAI,KAAK,KAAK,IAAIA,OAAM,eAAc,GAAIA,OAAM,YAAW,GAAIA,OAAM,cAAc,IAAI,IAAI,IAAI,GAAG,CAAC;AAEpH,gBAAU,QAAQ,WAAW;AAC7B,cAAQ,QAAQ,SAAS;AACzB,mBAAa,QAAS,EAAE,OAAO,UAAU,OAAO,KAAK,QAAQ;IAC/D;AAEA,UAAM,iBAAiB,MAAM;AAC3B,YAAMA,SAAQ,oBAAI;AAClB,YAAM,WAAW,IAAI,KAAKA,MAAK;AAC/B,eAAS,WAAWA,OAAM,WAAY,IAAG,CAAC;AAC1C,eAAS,YAAY,GAAG,GAAG,GAAG,CAAC;AAE/B,gBAAU,QAAQ;AAClB,cAAQ,QAAQ,cAAcA,MAAK;AAEnC,MAAAA,OAAM,YAAY,IAAI,IAAI,IAAI,GAAG;AAEjC,YAAM,QAAQ,SAAS;AACvB,YAAM,MAAMA,OAAM;AAElB,mBAAa,QAAQ,EAAE,OAAc;IACvC;AAEA,UAAM,kBAAkB,MAAM;AAC5B,YAAMA,SAAQ,oBAAI;AAGlB,YAAM,YAAY,IAAI,KAAKA,MAAK;AAChC,gBAAU,YAAYA,OAAM,YAAa,IAAG,CAAC;AAC7C,gBAAU,YAAY,GAAG,GAAG,GAAG,CAAC;AAGhC,gBAAU,QAAQ;AAClB,cAAQ,QAAQ,cAAcA,MAAK;AAEnC,MAAAA,OAAM,YAAY,IAAI,IAAI,IAAI,GAAG;AAGjC,YAAM,QAAQ,UAAU;AACxB,YAAM,MAAMA,OAAM;AAElB,mBAAa,QAAQ,EAAE,OAAc;IACvC;AAIA,UAAM,iBAAiB,MAAM;AAE3B,gBAAU,QAAQ;AAClB,cAAQ,QAAQ;AAChB,mBAAa,QAAS,EAAE,OAAO,MAAM,KAAK;IAC5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
@@ -187,31 +187,59 @@ const _sfc_main = {
|
|
187
187
|
__props.allowRange ? (openBlock(), createElementBlock("div", _hoisted_2, [
|
188
188
|
createElementVNode("button", {
|
189
189
|
onClick: selectToday,
|
190
|
-
class: "font-second t-nowrap pd-thin bg-
|
190
|
+
class: "font-second t-nowrap pd-thin bg-white radius-small"
|
191
191
|
}, "Today"),
|
192
192
|
createElementVNode("button", {
|
193
193
|
onClick: selectLastWeek,
|
194
|
-
class: "font-second t-nowrap pd-thin bg-
|
194
|
+
class: "font-second t-nowrap pd-thin bg-white radius-small"
|
195
195
|
}, "Last Week"),
|
196
196
|
createElementVNode("button", {
|
197
197
|
onClick: selectLastMonth,
|
198
|
-
class: "font-second t-nowrap pd-thin bg-
|
198
|
+
class: "font-second t-nowrap pd-thin bg-white radius-small"
|
199
199
|
}, "Last Month"),
|
200
200
|
createElementVNode("button", {
|
201
201
|
onClick: selectLastYear,
|
202
|
-
class: "font-second t-nowrap pd-thin bg-
|
202
|
+
class: "font-second t-nowrap pd-thin bg-white radius-small"
|
203
203
|
}, "All time")
|
204
204
|
])) : createCommentVNode("", true),
|
205
205
|
createElementVNode("div", _hoisted_3, [
|
206
206
|
createElementVNode("button", {
|
207
207
|
onClick: withModifiers(prevMonth, ["stop"]),
|
208
|
-
class: "aspect-
|
209
|
-
},
|
208
|
+
class: "aspect-1x1 h-100 pd-thin bg-white radius-small"
|
209
|
+
}, _cache[0] || (_cache[0] = [
|
210
|
+
createElementVNode("svg", {
|
211
|
+
class: "h-100",
|
212
|
+
xmlns: "http://www.w3.org/2000/svg",
|
213
|
+
width: "12",
|
214
|
+
height: "20",
|
215
|
+
viewBox: "0 0 12 20",
|
216
|
+
fill: "none"
|
217
|
+
}, [
|
218
|
+
createElementVNode("path", {
|
219
|
+
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",
|
220
|
+
fill: "#007AFF"
|
221
|
+
})
|
222
|
+
], -1)
|
223
|
+
])),
|
210
224
|
createElementVNode("span", _hoisted_4, toDisplayString(monthYear.value), 1),
|
211
225
|
createElementVNode("button", {
|
212
226
|
onClick: withModifiers(nextMonth, ["stop"]),
|
213
|
-
class: "aspect-
|
214
|
-
},
|
227
|
+
class: "aspect-1x1 h-100 pd-thin bg-white radius-small"
|
228
|
+
}, _cache[1] || (_cache[1] = [
|
229
|
+
createElementVNode("svg", {
|
230
|
+
class: "h-100",
|
231
|
+
xmlns: "http://www.w3.org/2000/svg",
|
232
|
+
width: "11",
|
233
|
+
height: "20",
|
234
|
+
viewBox: "0 0 11 20",
|
235
|
+
fill: "none"
|
236
|
+
}, [
|
237
|
+
createElementVNode("path", {
|
238
|
+
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",
|
239
|
+
fill: "#007AFF"
|
240
|
+
})
|
241
|
+
], -1)
|
242
|
+
]))
|
215
243
|
]),
|
216
244
|
createElementVNode("div", _hoisted_5, [
|
217
245
|
createElementVNode("div", _hoisted_6, [
|
@@ -227,7 +255,7 @@ const _sfc_main = {
|
|
227
255
|
return openBlock(), createElementBlock("div", {
|
228
256
|
key: day.date,
|
229
257
|
class: normalizeClass([
|
230
|
-
"flex flex-center cursor-pointer aspect-
|
258
|
+
"flex flex-center cursor-pointer aspect-1x1 radius-small",
|
231
259
|
{ "bg-main t-white": day.isToday },
|
232
260
|
{ "calendar__date--selected": isSelected(day.date) },
|
233
261
|
{ "calendar__date--range": isInRange(day.date) },
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Calendar.vue2.js","sources":["../../../../../src/components/DatePicker/Calendar.vue"],"sourcesContent":["<template>\n <div class=\"calendar\">\n <div v-if=\"allowRange\" class=\"br-b br-solid br-grey-transp-25 gap-thin flex flex-nowrap pd-thin\">\n <button @click=\"selectToday\" class=\"font-second t-nowrap pd-thin bg-main-transp-10 radius-small\" >Today</button>\n <button @click=\"selectLastWeek\" class=\"font-second t-nowrap pd-thin bg-main-transp-10 radius-small\">Last Week</button>\n <button @click=\"selectLastMonth\" class=\"font-second t-nowrap pd-thin bg-main-transp-10 radius-small\">Last Month</button>\n <button @click=\"selectLastYear\" class=\"font-second t-nowrap pd-thin bg-main-transp-10 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-ratio-1x1 w-10 pd-thin bg-main-transp-10 radius-small\"><</button>\n <span class=\"t-semi \">{{ monthYear }}</span>\n <button @click.stop=\"nextMonth\" class=\"aspect-ratio-1x1 w-10 pd-thin bg-main-transp-10 radius-small\" >></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-ratio-1x1 radius-small',\n { 'bg-main t-white': day.isToday },\n { 'calendar__date--selected': isSelected(day.date) },\n { 'calendar__date--range': isInRange(day.date) },\n { 'calendar__date--disabled': !isSameMonth(day.date) },\n ]\"\n @click.stop=\"selectDate(day.date)\"\n >\n {{ day.day }}\n </div>\n </div>\n </div>\n \n </div>\n</template>\n\n<script setup>\nimport { computed, ref } from 'vue'\n\nconst props = defineProps({\n modelValue: [Date, Object],\n allowRange: Boolean,\n})\n\nconst emit = defineEmits(['update:modelValue'])\n\nconst dateCalendar = defineModel('date')\n\nconst today = new Date()\nconst currentDate = ref(today)\nconst selectedDate = ref(null)\nconst startDate = ref(null)\nconst endDate = ref(null)\n\nconst daysOfWeek = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n\nconst toUTC = (date) => {\n return new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()))\n}\n\nconst toEndOfDayUTC = (date) => {\n const endOfDay = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59));\n return endOfDay;\n}\n\nconst monthYear = computed(() => {\n const month = currentDate.value.toLocaleString('default', { month: 'long', timeZone: 'UTC' })\n const year = currentDate.value.getUTCFullYear()\n return `${month} ${year}`\n})\n\nconst 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\nconst 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\nconst isSameMonth = (date) => {\n return (\n date.getUTCMonth() === currentDate.value.getUTCMonth() &&\n date.getUTCFullYear() === currentDate.value.getUTCFullYear()\n )\n}\n\nconst 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\nconst isInRange = (date) => {\n if (startDate.value && endDate.value) {\n return date > startDate.value && toEndOfDayUTC(date) < endDate.value\n }\n return false\n}\n\nconst selectDate = (date) => {\n const formattedDate = toUTC(date)\n\n if (!props.allowRange) {\n selectedDate.value = formattedDate\n dateCalendar.value = formattedDate\n\n } else if (!startDate.value && !endDate.value) {\n startDate.value = formattedDate\n dateCalendar.value.start = formattedDate\n } else if (!endDate.value) {\n\n endDate.value = toEndOfDayUTC(date)\n\n if (formattedDate < startDate.value) {\n const temp = toEndOfDayUTC(startDate.value)\n\n startDate.value = formattedDate\n endDate.value = temp\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\nconst prevMonth = () => {\n currentDate.value = new Date(Date.UTC(\n currentDate.value.getUTCFullYear(),\n currentDate.value.getUTCMonth() - 1,\n 1\n ))\n}\n\nconst nextMonth = () => {\n currentDate.value = new Date(Date.UTC(\n currentDate.value.getUTCFullYear(),\n currentDate.value.getUTCMonth() + 1,\n 1\n ))\n}\n\nconst selectToday = () => {\n const today = new Date(); // Предположим, что переменная today - это текущая дата\n const todayStart = new Date(Date.UTC(today.getUTCFullYear(), today.getUTCMonth(), today.getUTCDate(), 0, 0, 0, 0)); // Начало дня в UTC\n const todayEnd = new Date(Date.UTC(today.getUTCFullYear(), today.getUTCMonth(), today.getUTCDate(), 23, 59, 59, 999)); // Конец дня в UTC\n\n startDate.value = todayStart.toISOString();\n endDate.value = todayEnd.toISOString();\n dateCalendar.value = { start: startDate.value, end: endDate.value };\n}\n\nconst 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 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\nconst selectLastMonth = () => {\n const today = new Date();\n \n // Создаем дату для прошлого месяца\n const lastMonth = new Date(today);\n lastMonth.setUTCMonth(today.getUTCMonth() - 1);\n lastMonth.setUTCHours(0, 0, 0, 0);\n \n // Устанавливаем конец текущего дня до 23:59:59\n startDate.value = lastMonth;\n endDate.value = toEndOfDayUTC(today);\n\n today.setUTCHours(23, 59, 59, 999);\n \n // Форматируем даты в ISO строки\n const start = lastMonth.toISOString();\n const end = today.toISOString();\n \n dateCalendar.value = { start: start, end: end };\n}\n\n\n\nconst selectLastYear = () => {\n\n startDate.value = null;\n endDate.value = null;\n dateCalendar.value = { start: null, end: null };\n}\n</script>\n\n\n<style >\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\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\n.calendar__date--today {\n background-color: #f0f0f0;\n font-weight: bold;\n}\n\n.calendar__date--selected {\n background-color: #007bff;\n color: #fff;\n}\n\n.calendar__date--range {\n background-color: #e9ecef;\n}\n\n.calendar__date--disabled {\n color: #ccc;\n cursor: not-allowed;\n}\n</style>"],"names":["_useModel","today"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Calendar.vue2.js","sources":["../../../../../src/components/DatePicker/Calendar.vue"],"sourcesContent":["<template>\n <div class=\"calendar\">\n <div v-if=\"allowRange\" class=\"br-b br-solid br-grey-transp-25 gap-thin flex flex-nowrap pd-thin\">\n <button @click=\"selectToday\" class=\"font-second t-nowrap pd-thin bg-white radius-small\" >Today</button>\n <button @click=\"selectLastWeek\" class=\"font-second t-nowrap pd-thin bg-white radius-small\">Last Week</button>\n <button @click=\"selectLastMonth\" class=\"font-second t-nowrap pd-thin bg-white radius-small\">Last Month</button>\n <button @click=\"selectLastYear\" class=\"font-second t-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 h-100 pd-thin bg-white radius-small\">\n <svg class=\"h-100\" 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=\"#007AFF\"/>\n </svg>\n </button>\n <span class=\"t-semi \">{{ monthYear }}</span>\n <button @click.stop=\"nextMonth\" class=\"aspect-1x1 h-100 pd-thin bg-white radius-small\" >\n <svg class=\"h-100\" 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=\"#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 { 'bg-main t-white': day.isToday },\n { 'calendar__date--selected': isSelected(day.date) },\n { 'calendar__date--range': isInRange(day.date) },\n { 'calendar__date--disabled': !isSameMonth(day.date) },\n ]\"\n @click.stop=\"selectDate(day.date)\"\n >\n {{ day.day }}\n </div>\n </div>\n </div>\n \n </div>\n</template>\n\n<script setup>\nimport { computed, ref } from 'vue'\n\nconst props = defineProps({\n modelValue: [Date, Object],\n allowRange: Boolean,\n})\n\nconst emit = defineEmits(['update:modelValue'])\n\nconst dateCalendar = defineModel('date')\n\nconst today = new Date()\nconst currentDate = ref(today)\nconst selectedDate = ref(null)\nconst startDate = ref(null)\nconst endDate = ref(null)\n\nconst daysOfWeek = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n\nconst toUTC = (date) => {\n return new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()))\n}\n\nconst toEndOfDayUTC = (date) => {\n const endOfDay = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59));\n return endOfDay;\n}\n\nconst monthYear = computed(() => {\n const month = currentDate.value.toLocaleString('default', { month: 'long', timeZone: 'UTC' })\n const year = currentDate.value.getUTCFullYear()\n return `${month} ${year}`\n})\n\nconst 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\nconst 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\nconst isSameMonth = (date) => {\n return (\n date.getUTCMonth() === currentDate.value.getUTCMonth() &&\n date.getUTCFullYear() === currentDate.value.getUTCFullYear()\n )\n}\n\nconst 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\nconst isInRange = (date) => {\n if (startDate.value && endDate.value) {\n return date > startDate.value && toEndOfDayUTC(date) < endDate.value\n }\n return false\n}\n\nconst selectDate = (date) => {\n const formattedDate = toUTC(date)\n\n if (!props.allowRange) {\n selectedDate.value = formattedDate\n dateCalendar.value = formattedDate\n\n } else if (!startDate.value && !endDate.value) {\n startDate.value = formattedDate\n dateCalendar.value.start = formattedDate\n } else if (!endDate.value) {\n\n endDate.value = toEndOfDayUTC(date)\n\n if (formattedDate < startDate.value) {\n const temp = toEndOfDayUTC(startDate.value)\n\n startDate.value = formattedDate\n endDate.value = temp\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\nconst prevMonth = () => {\n currentDate.value = new Date(Date.UTC(\n currentDate.value.getUTCFullYear(),\n currentDate.value.getUTCMonth() - 1,\n 1\n ))\n}\n\nconst nextMonth = () => {\n currentDate.value = new Date(Date.UTC(\n currentDate.value.getUTCFullYear(),\n currentDate.value.getUTCMonth() + 1,\n 1\n ))\n}\n\nconst selectToday = () => {\n const today = new Date(); // Предположим, что переменная today - это текущая дата\n const todayStart = new Date(Date.UTC(today.getUTCFullYear(), today.getUTCMonth(), today.getUTCDate(), 0, 0, 0, 0)); // Начало дня в UTC\n const todayEnd = new Date(Date.UTC(today.getUTCFullYear(), today.getUTCMonth(), today.getUTCDate(), 23, 59, 59, 999)); // Конец дня в UTC\n\n startDate.value = todayStart.toISOString();\n endDate.value = todayEnd.toISOString();\n dateCalendar.value = { start: startDate.value, end: endDate.value };\n}\n\nconst 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 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\nconst selectLastMonth = () => {\n const today = new Date();\n \n // Создаем дату для прошлого месяца\n const lastMonth = new Date(today);\n lastMonth.setUTCMonth(today.getUTCMonth() - 1);\n lastMonth.setUTCHours(0, 0, 0, 0);\n \n // Устанавливаем конец текущего дня до 23:59:59\n startDate.value = lastMonth;\n endDate.value = toEndOfDayUTC(today);\n\n today.setUTCHours(23, 59, 59, 999);\n \n // Форматируем даты в ISO строки\n const start = lastMonth.toISOString();\n const end = today.toISOString();\n \n dateCalendar.value = { start: start, end: end };\n}\n\n\n\nconst selectLastYear = () => {\n\n startDate.value = null;\n endDate.value = null;\n dateCalendar.value = { start: null, end: null };\n}\n</script>\n\n\n<style >\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\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\n.calendar__date--today {\n background-color: #f0f0f0;\n font-weight: bold;\n}\n\n.calendar__date--selected {\n background-color: #007bff;\n color: #fff;\n}\n\n.calendar__date--range {\n background-color: #e9ecef;\n}\n\n.calendar__date--disabled {\n color: #ccc;\n cursor: not-allowed;\n}\n</style>"],"names":["_useModel","today"],"mappings":"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"}
|
@@ -5,47 +5,54 @@ const _hoisted_1 = ["onClick"];
|
|
5
5
|
const _hoisted_2 = { class: "t-transp" };
|
6
6
|
const _sfc_main = {
|
7
7
|
__name: "DatePicker",
|
8
|
-
props: ["date", "locale"],
|
8
|
+
props: ["date", "options", "locale"],
|
9
9
|
setup(__props, { emit: __emit }) {
|
10
10
|
const emit = __emit;
|
11
11
|
const props = __props;
|
12
12
|
const scrollContainer = vue.ref(null);
|
13
|
-
|
13
|
+
const baseDate = /* @__PURE__ */ new Date();
|
14
|
+
baseDate.setHours(0, 0, 0, 0);
|
15
|
+
const selectedDate = vue.ref(null);
|
14
16
|
if (props.date) {
|
15
17
|
const day = parseInt(props.date.substring(0, 2));
|
16
18
|
const month = parseInt(props.date.substring(2, 4)) - 1;
|
17
19
|
const year = parseInt(props.date.substring(4));
|
18
|
-
|
19
|
-
|
20
|
-
} else {
|
21
|
-
baseDate = /* @__PURE__ */ new Date();
|
22
|
-
console.log("No data" + baseDate);
|
20
|
+
selectedDate.value = new Date(year, month, day);
|
21
|
+
selectedDate.value.setHours(0, 0, 0, 0);
|
23
22
|
}
|
24
|
-
baseDate
|
25
|
-
const selectedDate = vue.ref(new Date(baseDate));
|
26
|
-
const dates = generateDates(baseDate, 30);
|
23
|
+
const dates = generateDates(baseDate, props.options.dateEnd || 30);
|
27
24
|
vue.onMounted(() => {
|
28
25
|
if (scrollContainer.value) {
|
29
|
-
const target = scrollContainer.value.getElementsByClassName("selected")[0] || scrollContainer.value.getElementsByClassName("bg-main")[0];
|
26
|
+
const target = scrollContainer.value.getElementsByClassName("selected")[0] || scrollContainer.value.getElementsByClassName("bg-main")[0] || scrollContainer.value.getElementsByClassName("highlighted")[0];
|
30
27
|
if (target) {
|
31
28
|
scrollContainer.value.scrollLeft = target.offsetLeft - scrollContainer.value.offsetWidth / 2 + target.offsetWidth / 2;
|
32
29
|
}
|
33
30
|
}
|
34
31
|
});
|
35
32
|
function selectDate(date) {
|
36
|
-
selectedDate.value
|
37
|
-
|
38
|
-
|
33
|
+
if (selectedDate.value && selectedDate.value.toDateString() === date.toDateString()) {
|
34
|
+
selectedDate.value = null;
|
35
|
+
emit("update:date", null);
|
36
|
+
} else {
|
37
|
+
selectedDate.value = date;
|
38
|
+
const formattedDate = formatDateForRouter(date);
|
39
|
+
emit("update:date", formattedDate);
|
40
|
+
}
|
41
|
+
}
|
42
|
+
function isHighlighted(date) {
|
43
|
+
return selectedDate.value === null && date.toDateString() === baseDate.toDateString();
|
39
44
|
}
|
40
45
|
function formatDateForRouter(date) {
|
41
46
|
return `${date.getDate().toString().padStart(2, "0")}${(date.getMonth() + 1).toString().padStart(2, "0")}${date.getFullYear()}`;
|
42
47
|
}
|
43
48
|
function dayLetter(date) {
|
44
|
-
return date.toLocaleDateString(props.locale ? props.locale : "en", {
|
49
|
+
return date.toLocaleDateString(props.locale ? props.locale : "en", {
|
50
|
+
weekday: "narrow"
|
51
|
+
}).toUpperCase();
|
45
52
|
}
|
46
53
|
function generateDates(start, count) {
|
47
54
|
const dates2 = [];
|
48
|
-
for (let i =
|
55
|
+
for (let i = props.options.dateStart || 0; i < count - props.options.dateStart || 0; i++) {
|
49
56
|
const newDate = new Date(start);
|
50
57
|
newDate.setDate(start.getDate() + i);
|
51
58
|
newDate.setHours(0, 0, 0, 0);
|
@@ -65,13 +72,15 @@ const _sfc_main = {
|
|
65
72
|
key: date.toString(),
|
66
73
|
onClick: ($event) => selectDate(date),
|
67
74
|
class: vue.normalizeClass([{
|
68
|
-
"selected": selectedDate.value.toDateString() === date.toDateString()
|
75
|
+
"selected": selectedDate.value && selectedDate.value.toDateString() === date.toDateString(),
|
76
|
+
"highlighted": isHighlighted(date)
|
69
77
|
}, "cursor-pointer scroll-snap-align-start mn-r-small mn-l-small flex-column flex-center flex"])
|
70
78
|
}, [
|
71
79
|
vue.createElementVNode("span", _hoisted_2, vue.toDisplayString(dayLetter(date)), 1),
|
72
80
|
vue.createElementVNode("span", {
|
73
81
|
class: vue.normalizeClass([{
|
74
|
-
"bg-main": selectedDate.value.toDateString() === date.toDateString()
|
82
|
+
"bg-main": selectedDate.value && selectedDate.value.toDateString() === date.toDateString(),
|
83
|
+
"br-1px br-solid br-main": isHighlighted(date)
|
75
84
|
}, "transition-ease-in-out t-semi flex-center flex radius-big i-semi day-number"])
|
76
85
|
}, vue.toDisplayString(date.getDate()), 3)
|
77
86
|
], 10, _hoisted_1);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"DatePicker.vue.cjs","sources":["../../../../../src/components/DatePicker/DatePicker.vue"],"sourcesContent":["<template>\n <div>\n <div \n class=\"w-100 scroller o-scroll scroll-snap-type-x-mandatory scroll-pd-regular scroll-hide flex-nowrap flex\" \n ref=\"scrollContainer\"\n >\n <div\n v-for=\"date in dates\"\n :key=\"date.toString()\"\n @click=\"selectDate(date)\"\n :class=\"{\n 'selected': selectedDate.toDateString() === date.toDateString(),\n\n }\"\n
|
1
|
+
{"version":3,"file":"DatePicker.vue.cjs","sources":["../../../../../src/components/DatePicker/DatePicker.vue"],"sourcesContent":["<template>\n <div>\n <div \n class=\"w-100 scroller o-scroll scroll-snap-type-x-mandatory scroll-pd-regular scroll-hide flex-nowrap flex\" \n ref=\"scrollContainer\"\n >\n <div \n v-for=\"date in dates\" \n :key=\"date.toString()\" \n @click=\"selectDate(date)\"\n :class=\"{\n 'selected': selectedDate && selectedDate.toDateString() === date.toDateString(),\n 'highlighted': isHighlighted(date)\n }\"\n class=\"cursor-pointer scroll-snap-align-start mn-r-small mn-l-small flex-column flex-center flex\"\n >\n <span class=\"t-transp\">\n {{ dayLetter(date) }}\n </span>\n <span \n :class=\"{\n 'bg-main': selectedDate && selectedDate.toDateString() === date.toDateString(),\n 'br-1px br-solid br-main':isHighlighted(date),\n }\"\n class=\"transition-ease-in-out t-semi flex-center flex radius-big i-semi day-number\"\n >\n {{ date.getDate() }}\n </span>\n </div>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted, defineProps, defineEmits } from 'vue';\n\nconst emit = defineEmits();\nconst props = defineProps(['date', 'options','locale']);\n\nconst scrollContainer = ref(null);\n\n// Initialize base date for generating the date range\nconst baseDate = new Date();\nbaseDate.setHours(0, 0, 0, 0);\n\n// Initialize selectedDate as null or with provided date\nconst selectedDate = ref(null);\n\nif (props.date) {\n const day = parseInt(props.date.substring(0, 2));\n const month = parseInt(props.date.substring(2, 4)) - 1;\n const year = parseInt(props.date.substring(4));\n\n selectedDate.value = new Date(year, month, day);\n selectedDate.value.setHours(0, 0, 0, 0);\n}\n\nconst dates = generateDates(baseDate, props.options.dateEnd || 30);\n\nonMounted(() => {\n if (scrollContainer.value) {\n const target = scrollContainer.value.getElementsByClassName('selected')[0] || \n scrollContainer.value.getElementsByClassName('bg-main')[0] || \n scrollContainer.value.getElementsByClassName('highlighted')[0];\n if (target) {\n scrollContainer.value.scrollLeft = target.offsetLeft - \n scrollContainer.value.offsetWidth / 2 + target.offsetWidth / 2;\n }\n }\n});\n\nfunction selectDate(date) {\n if (selectedDate.value && selectedDate.value.toDateString() === date.toDateString()) {\n // If clicking the same date, reset selection\n selectedDate.value = null;\n emit('update:date', null);\n } else {\n // Select new date\n selectedDate.value = date;\n const formattedDate = formatDateForRouter(date);\n emit('update:date', formattedDate);\n }\n}\n\nfunction isHighlighted(date) {\n return selectedDate.value === null && date.toDateString() === baseDate.toDateString();\n}\n\nfunction formatDateForRouter(date) {\n return `${date.getDate().toString().padStart(2, '0')}${(date.getMonth() + 1)\n .toString().padStart(2, '0')}${date.getFullYear()}`;\n}\n\nfunction dayLetter(date) {\n return date.toLocaleDateString(props.locale ? props.locale : 'en', { \n weekday: 'narrow' \n }).toUpperCase();\n}\n\nfunction generateDates(start, count) {\n const dates = [];\n for (let i = props.options.dateStart || 0; i < count - props.options.dateStart || 0; i++) {\n const newDate = new Date(start);\n newDate.setDate(start.getDate() + i);\n newDate.setHours(0, 0, 0, 0);\n dates.push(newDate);\n }\n return dates;\n}\n</script>"],"names":["ref","onMounted","dates"],"mappings":";;;;;;;;;AAoCA,UAAM,OAAO;AACb,UAAM,QAAQ;AAEd,UAAM,kBAAkBA,IAAAA,IAAI,IAAI;AAGhC,UAAM,WAAW,oBAAI;AACrB,aAAS,SAAS,GAAG,GAAG,GAAG,CAAC;AAG5B,UAAM,eAAeA,IAAAA,IAAI,IAAI;AAE7B,QAAI,MAAM,MAAM;AACd,YAAM,MAAM,SAAS,MAAM,KAAK,UAAU,GAAG,CAAC,CAAC;AAC/C,YAAM,QAAQ,SAAS,MAAM,KAAK,UAAU,GAAG,CAAC,CAAC,IAAI;AACrD,YAAM,OAAO,SAAS,MAAM,KAAK,UAAU,CAAC,CAAC;AAE7C,mBAAa,QAAQ,IAAI,KAAK,MAAM,OAAO,GAAG;AAC9C,mBAAa,MAAM,SAAS,GAAG,GAAG,GAAG,CAAC;AAAA,IACxC;AAEA,UAAM,QAAQ,cAAc,UAAU,MAAM,QAAQ,WAAW,EAAE;AAEjEC,QAAAA,UAAU,MAAM;AACd,UAAI,gBAAgB,OAAO;AACzB,cAAM,SAAS,gBAAgB,MAAM,uBAAuB,UAAU,EAAE,CAAC,KAC3D,gBAAgB,MAAM,uBAAuB,SAAS,EAAE,CAAC,KACzD,gBAAgB,MAAM,uBAAuB,aAAa,EAAE,CAAC;AAC3E,YAAI,QAAQ;AACV,0BAAgB,MAAM,aAAa,OAAO,aACxC,gBAAgB,MAAM,cAAc,IAAI,OAAO,cAAc;AAAA,QAChE;AAAA,MACF;AAAA,IACH,CAAC;AAED,aAAS,WAAW,MAAM;AACxB,UAAI,aAAa,SAAS,aAAa,MAAM,mBAAmB,KAAK,gBAAgB;AAEnF,qBAAa,QAAQ;AACrB,aAAK,eAAe,IAAI;AAAA,MAC5B,OAAS;AAEL,qBAAa,QAAQ;AACrB,cAAM,gBAAgB,oBAAoB,IAAI;AAC9C,aAAK,eAAe,aAAa;AAAA,MAClC;AAAA,IACH;AAEA,aAAS,cAAc,MAAM;AAC3B,aAAO,aAAa,UAAU,QAAQ,KAAK,mBAAmB,SAAS;IACzE;AAEA,aAAS,oBAAoB,MAAM;AACjC,aAAO,GAAG,KAAK,QAAS,EAAC,SAAQ,EAAG,SAAS,GAAG,GAAG,CAAC,IAAI,KAAK,SAAU,IAAG,GACvE,SAAU,EAAC,SAAS,GAAG,GAAG,CAAC,GAAG,KAAK,YAAa,CAAA;AAAA,IACrD;AAEA,aAAS,UAAU,MAAM;AACvB,aAAO,KAAK,mBAAmB,MAAM,SAAS,MAAM,SAAS,MAAM;AAAA,QACjE,SAAS;AAAA,MACb,CAAG,EAAE,YAAW;AAAA,IAChB;AAEA,aAAS,cAAc,OAAO,OAAO;AACnC,YAAMC,SAAQ,CAAA;AACd,eAAS,IAAI,MAAM,QAAQ,aAAa,GAAG,IAAI,QAAQ,MAAM,QAAQ,aAAa,GAAG,KAAK;AACxF,cAAM,UAAU,IAAI,KAAK,KAAK;AAC9B,gBAAQ,QAAQ,MAAM,QAAS,IAAG,CAAC;AACnC,gBAAQ,SAAS,GAAG,GAAG,GAAG,CAAC;AAC3B,QAAAA,OAAM,KAAK,OAAO;AAAA,MACnB;AACD,aAAOA;AAAA,IACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|