@ozdao/martyrs 0.2.483 → 0.2.485
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{Media-DjnpKS62.cjs → Media-ByPHBvAU.cjs} +1 -1
- package/dist/{Media-C57G7rnE.js → Media-DlUBwVWs.js} +1 -1
- package/dist/main-137vO86w.cjs +11 -0
- package/dist/{main-CXQqAVVb.js → main-CK6rC5Sz.js} +2944 -2599
- package/dist/martyrs/src/components/Button/{Button.vue.cjs → Button.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Button/Button.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Button/{Button.vue.js → Button.vue2.js} +2 -2
- package/dist/martyrs/src/components/Button/{Button.vue.cjs.map → Button.vue2.js.map} +1 -1
- package/dist/martyrs/src/components/Chips/{Chips.vue.cjs → Chips.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Chips/Chips.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Chips/{Chips.vue.js → Chips.vue2.js} +2 -2
- package/dist/martyrs/src/components/Chips/Chips.vue2.js.map +1 -0
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs +31 -11
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.js +48 -28
- package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
- package/dist/martyrs/src/components/Field/Field.vue.cjs +13 -7
- package/dist/martyrs/src/components/Field/Field.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Field/Field.vue.js +14 -8
- package/dist/martyrs/src/components/Field/Field.vue.js.map +1 -1
- package/dist/martyrs/src/components/Popup/{Popup.vue.cjs → Popup.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Popup/Popup.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Popup/{Popup.vue.js → Popup.vue2.js} +2 -2
- package/dist/martyrs/src/components/Popup/{Popup.vue.cjs.map → Popup.vue2.js.map} +1 -1
- package/dist/martyrs/src/components/Slider/Slider.vue.cjs +21 -24
- package/dist/martyrs/src/components/Slider/Slider.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Slider/Slider.vue.js +21 -24
- package/dist/martyrs/src/components/Slider/Slider.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/auth.client.cjs +3 -0
- package/dist/martyrs/src/modules/auth/auth.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/auth.client.js +3 -0
- package/dist/martyrs/src/modules/auth/auth.client.js.map +1 -1
- package/dist/martyrs/src/modules/auth/locales/en.cjs +79 -0
- package/dist/martyrs/src/modules/auth/locales/en.cjs.map +1 -0
- package/dist/martyrs/src/modules/auth/locales/en.js +79 -0
- package/dist/martyrs/src/modules/auth/locales/en.js.map +1 -0
- package/dist/martyrs/src/modules/auth/locales/index.cjs +10 -0
- package/dist/martyrs/src/modules/auth/locales/index.cjs.map +1 -0
- package/dist/martyrs/src/modules/auth/locales/index.js +10 -0
- package/dist/martyrs/src/modules/auth/locales/index.js.map +1 -0
- package/dist/martyrs/src/modules/auth/locales/ru.cjs +79 -0
- package/dist/martyrs/src/modules/auth/locales/ru.cjs.map +1 -0
- package/dist/martyrs/src/modules/auth/locales/ru.js +79 -0
- package/dist/martyrs/src/modules/auth/locales/ru.js.map +1 -0
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs +1 -10
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js +3 -12
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs +4 -6
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js +4 -6
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +7 -9
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +7 -9
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +11 -13
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +11 -13
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +12 -14
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +12 -14
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +11 -13
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +11 -13
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs +21 -58
- package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js +21 -58
- package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +3 -3
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +3 -3
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +2 -2
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +2 -2
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +2 -2
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +2 -2
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +2 -2
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +2 -2
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.cjs +1 -1
- package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +3 -3
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +3 -3
- package/dist/martyrs/src/modules/globals/globals.client.cjs +1 -0
- package/dist/martyrs/src/modules/globals/globals.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/globals.client.js +1 -0
- package/dist/martyrs/src/modules/globals/globals.client.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/AlertDialog.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/AlertDialog.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.cjs +2 -2
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupAuth.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +2 -2
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +2 -2
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/NavigationBar.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs +183 -0
- package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs.map +1 -0
- package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js +183 -0
- package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js.map +1 -0
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterOptions.vue.cjs +67 -0
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterOptions.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterOptions.vue.js +67 -0
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterOptions.vue.js.map +1 -0
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterPrice.vue.cjs +91 -0
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterPrice.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterPrice.vue.js +91 -0
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterPrice.vue.js.map +1 -0
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterRange.vue2.cjs +64 -0
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterRange.vue2.cjs.map +1 -0
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterRange.vue2.js +64 -0
- package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterRange.vue2.js.map +1 -0
- package/dist/martyrs/src/modules/icons/actions/IconShow.vue.cjs +49 -0
- package/dist/martyrs/src/modules/icons/actions/IconShow.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/actions/IconShow.vue.js +49 -0
- package/dist/martyrs/src/modules/icons/actions/IconShow.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.cjs +34 -0
- package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.js +34 -0
- package/dist/martyrs/src/modules/icons/navigation/IconHeart.vue.js.map +1 -0
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs +115 -122
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js +163 -170
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js.map +1 -1
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs +1 -1
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +3 -0
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +3 -0
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +1 -1
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +2 -2
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ProductImages.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +4 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +4 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditIngredients.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditRecommended.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +2 -2
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +2 -2
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Map.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +3 -3
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +3 -3
- package/dist/martyrs.cjs.js +1 -1
- package/dist/martyrs.css +1 -1
- package/dist/martyrs.es.js +1 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.cjs +1 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.js +1 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.cjs +1 -1
- package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.js +1 -1
- package/dist/style.css +138 -75
- package/package.json +1 -1
- package/src/components/Feed/Feed.vue +23 -0
- package/src/components/Field/Field.vue +42 -27
- package/src/components/Slider/Slider.vue +15 -17
- package/src/modules/auth/auth.client.js +7 -0
- package/src/modules/auth/locales/en.js +76 -0
- package/src/modules/auth/locales/index.js +7 -0
- package/src/modules/auth/locales/ru.js +76 -0
- package/src/modules/auth/views/components/layouts/Auth.vue +3 -45
- package/src/modules/auth/views/components/pages/EnterCode.vue +5 -7
- package/src/modules/auth/views/components/pages/EnterPassword.vue +7 -10
- package/src/modules/auth/views/components/pages/ResetPassword.vue +9 -12
- package/src/modules/auth/views/components/pages/SignIn.vue +12 -15
- package/src/modules/auth/views/components/pages/SignUp.vue +9 -12
- package/src/modules/auth/views/components/sections/SliderFeatures.vue +28 -53
- package/src/modules/globals/globals.client.js +1 -0
- package/src/modules/globals/views/components/sections/Filters.vue +198 -0
- package/src/modules/globals/views/components/sections/filters/FilterOptions.vue +65 -0
- package/src/modules/globals/views/components/sections/filters/FilterPrice.vue +81 -0
- package/src/modules/globals/views/components/sections/filters/FilterRange.vue +74 -0
- package/src/modules/icons/actions/IconShow.vue +23 -0
- package/src/modules/icons/pages/IconsPage.vue +114 -120
- package/dist/main-De5X_RUk.cjs +0 -11
- package/dist/martyrs/src/components/Button/Button.vue.js.map +0 -1
- package/dist/martyrs/src/components/Chips/Chips.vue.cjs.map +0 -1
- package/dist/martyrs/src/components/Chips/Chips.vue.js.map +0 -1
- package/dist/martyrs/src/components/Popup/Popup.vue.js.map +0 -1
- package/dist/martyrs/src/modules/auth/views/localization/EnterCode.json.cjs +0 -9
- package/dist/martyrs/src/modules/auth/views/localization/EnterCode.json.cjs.map +0 -1
- package/dist/martyrs/src/modules/auth/views/localization/EnterCode.json.js +0 -9
- package/dist/martyrs/src/modules/auth/views/localization/EnterCode.json.js.map +0 -1
- package/dist/martyrs/src/modules/auth/views/localization/EnterPassword.json.cjs +0 -9
- package/dist/martyrs/src/modules/auth/views/localization/EnterPassword.json.cjs.map +0 -1
- package/dist/martyrs/src/modules/auth/views/localization/EnterPassword.json.js +0 -9
- package/dist/martyrs/src/modules/auth/views/localization/EnterPassword.json.js.map +0 -1
- package/dist/martyrs/src/modules/auth/views/localization/ResetPassword.json.cjs +0 -9
- package/dist/martyrs/src/modules/auth/views/localization/ResetPassword.json.cjs.map +0 -1
- package/dist/martyrs/src/modules/auth/views/localization/ResetPassword.json.js +0 -9
- package/dist/martyrs/src/modules/auth/views/localization/ResetPassword.json.js.map +0 -1
- package/dist/martyrs/src/modules/auth/views/localization/SignIn.json.cjs +0 -9
- package/dist/martyrs/src/modules/auth/views/localization/SignIn.json.cjs.map +0 -1
- package/dist/martyrs/src/modules/auth/views/localization/SignIn.json.js +0 -9
- package/dist/martyrs/src/modules/auth/views/localization/SignIn.json.js.map +0 -1
- package/dist/martyrs/src/modules/auth/views/localization/SignUp.json.cjs +0 -9
- package/dist/martyrs/src/modules/auth/views/localization/SignUp.json.cjs.map +0 -1
- package/dist/martyrs/src/modules/auth/views/localization/SignUp.json.js +0 -9
- package/dist/martyrs/src/modules/auth/views/localization/SignUp.json.js.map +0 -1
- package/src/modules/auth/views/localization/EnterCode.json +0 -16
- package/src/modules/auth/views/localization/EnterPassword.json +0 -22
- package/src/modules/auth/views/localization/ResetPassword.json +0 -26
- package/src/modules/auth/views/localization/SignIn.json +0 -34
- package/src/modules/auth/views/localization/SignUp.json +0 -28
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"globals.client.js","sources":["../../../../../src/modules/globals/globals.client.js"],"sourcesContent":["// Components\n// import Client from \"./components/layouts/Client.vue\"\n\nimport getBrowserLocale from './views/localization/get-browser-locale.js';\nimport scrollBehavior from './views/router/scrollBehavior.js';\n\nimport layoutApp from './views/components/layouts/App.vue';\nimport layoutClient from './views/components/layouts/Client.vue';\n\nimport BlockSearch from '@martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue';\n\nimport BottomNavigationBar from '@martyrs/src/modules/globals/views/components/partials/BottomNavigationBar.vue';\nimport Header from '@martyrs/src/modules/globals/views/components/partials/Header.vue';\nimport Navigation from '@martyrs/src/modules/globals/views/components/partials/Navigation.vue';\nimport NavigationBar from '@martyrs/src/modules/globals/views/components/partials/NavigationBar.vue';\nimport Sidebar from '@martyrs/src/modules/globals/views/components/partials/Sidebar.vue';\n\nimport * as mixins from './views/mixins/mixins.js';\nimport * as storeGlobals from './views/store/globals.js';\nimport * as appRenderer from './views/utils/vue-app-renderer.js';\n\nimport alertPlugin from './views/plugins/alert.plugin.js';\nimport popupAuthPlugin from './views/plugins/popup.auth.plugin.js';\nimport datePickerPlugin from './views/plugins/date-picker.plugin.js';\nimport storeDebuggerPlugin from './views/plugins/store-debugger/store-debugger.plugin.js';\n\nimport store from './views/classes/store.js';\nimport websockets from './views/classes/globals.websocket.js';\nimport { i18nManager } from '@martyrs/src/modules/globals/views/classes/globals.i18n.js';\n\nimport en from './locales/en.js';\nimport ru from './locales/ru.js';\n\n\n// Пример функции инициализации для модуля заказов\nfunction initializeGlobals(app, store, router, config, options = {}) {\n const route = options.route || 'Home';\n\n const locales = {\n en: en,\n ru: ru,\n es: {} // или es: undefined\n };\n\n i18nManager.register('globals', locales);\n\n console.log('mesages is', i18nManager.getAllMessages())\n\n const envVariables = ['NODE_ENV', 'PORT', 'APP_NAME', 'DOMAIN_URL', 'API_URL', 'WSS_URL', 'FILE_SERVER_URL', 'WDT_TOKEN', 'WDM_URL_PROD', 'GOOGLE_MAPS_API_KEY', 'MOBILE_APP'];\n\n app.config.globalProperties.DOMAIN_URL = process.env.DOMAIN_URL;\n app.config.globalProperties.API_URL = process.env.API_URL;\n app.config.globalProperties.MOBILE_APP = process.env.MOBILE_APP;\n app.config.globalProperties.FILE_SERVER_URL = process.env.FILE_SERVER_URL;\n app.config.globalProperties.GOOGLE_MAPS_API_KEY = process.env.GOOGLE_MAPS_API_KEY;\n\n app.mixin(mixins.globalMixins);\n\n app.use(alertPlugin);\n app.use(popupAuthPlugin);\n app.use(datePickerPlugin);\n app.use(storeDebuggerPlugin, store);\n\n // Change Locale to Route Locale if available\n router.beforeEach((to, from, next) => {\n const locale = to.params.locale;\n\n if (locale) {\n if (!app.config.globalProperties.$i18n.availableLocales.includes(locale)) {\n return next({ path: '/404' });\n } else {\n app.config.globalProperties.$i18n.locale = locale;\n return next();\n }\n }\n\n return next();\n });\n\n if (config && config.modules) storeGlobals.state.options = config.modules;\n\n store.addStore('globals', storeGlobals);\n\n router.addRoute(route, {\n path: '404',\n name: 'notfound',\n component: () => import('@martyrs/src/modules/globals/views/components/pages/404.vue'),\n });\n router.addRoute(route, {\n path: '401',\n name: 'unauthorized',\n component: () => import('@martyrs/src/modules/globals/views/components/pages/401.vue'),\n });\n router.addRoute(route, {\n path: ':pathMatch(.*)*',\n name: 'NotFound',\n redirect: { name: 'notfound' },\n });\n}\n\nconst ModuleGlobals = {\n initialize: initializeGlobals,\n views: {\n store: {\n storeGlobals,\n },\n router: {\n // routerOrders\n },\n components: {\n // Pages\n BlockSearch,\n layoutClient,\n layoutApp,\n Header,\n Navigation,\n Sidebar,\n BottomNavigationBar,\n NavigationBar,\n },\n },\n};\n\nexport {\n BlockSearch,\n Header,\n Navigation,\n NavigationBar,\n Sidebar,\n appRenderer,\n getBrowserLocale,\n layoutApp,\n // Components\n layoutClient,\n // Client,\n mixins,\n scrollBehavior,\n store,\n // Store\n storeGlobals,\n websockets,\n};\n\nexport default ModuleGlobals;\n"],"names":["mixins.globalMixins","storeGlobals.state","storeGlobals","BlockSearch","layoutClient","layoutApp","Header","BottomNavigationBar","NavigationBar"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAmCA,SAAS,kBAAkB,KAAK,OAAO,QAAQ,QAAQ,UAAU,IAAI;AACnE,QAAM,QAAQ,QAAQ,SAAS;AAE/B,QAAM,UAAU;AAAA,IACd;AAAA,IACA;AAAA,IACA,IAAI,CAAE;AAAA;AAAA,EACP;AAED,cAAY,SAAS,WAAW,OAAO;AAEvC,UAAQ,IAAI,cAAe,YAAY,eAAgB,CAAA;AAIvD,MAAI,OAAO,iBAAiB,aAAa,QAAQ,IAAI;AACrD,MAAI,OAAO,iBAAiB,UAAU,QAAQ,IAAI;AAClD,MAAI,OAAO,iBAAiB,aAAa,QAAQ,IAAI;AACrD,MAAI,OAAO,iBAAiB,kBAAkB,QAAQ,IAAI;AAC1D,MAAI,OAAO,iBAAiB,sBAAsB,QAAQ,IAAI;AAE9D,MAAI,MAAMA,YAAmB;AAE7B,MAAI,IAAI,WAAW;AACnB,MAAI,IAAI,eAAe;AACvB,MAAI,IAAI,gBAAgB;AACxB,MAAI,IAAI,qBAAqB,KAAK;AAGlC,SAAO,WAAW,CAAC,IAAI,MAAM,SAAS;AACpC,UAAM,SAAS,GAAG,OAAO;AAEzB,QAAI,QAAQ;AACV,UAAI,CAAC,IAAI,OAAO,iBAAiB,MAAM,iBAAiB,SAAS,MAAM,GAAG;AACxE,eAAO,KAAK,EAAE,MAAM,QAAQ;AAAA,MACpC,OAAa;AACL,YAAI,OAAO,iBAAiB,MAAM,SAAS;AAC3C,eAAO,KAAM;AAAA,MACrB;AAAA,IACA;AAEI,WAAO,KAAM;AAAA,EACjB,CAAG;AAED,MAAI,UAAU,OAAO,QAASC,OAAmB,UAAU,OAAO;AAElE,QAAM,SAAS,WAAWC,OAAY;AAEtC,SAAO,SAAS,OAAO;AAAA,IACrB,MAAM;AAAA,IACN,MAAM;AAAA,IACN,WAAW,MAAM,OAAO,qCAA6D;AAAA,EACzF,CAAG;AACD,SAAO,SAAS,OAAO;AAAA,IACrB,MAAM;AAAA,IACN,MAAM;AAAA,IACN,WAAW,MAAM,OAAO,qCAA6D;AAAA,EACzF,CAAG;AACD,SAAO,SAAS,OAAO;AAAA,IACrB,MAAM;AAAA,IACN,MAAM;AAAA,IACN,UAAU,EAAE,MAAM,WAAY;AAAA,EAClC,CAAG;AACH;AAEK,MAAC,gBAAgB;AAAA,EACpB,YAAY;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,MACX,cAAMA;AAAAA,IACD;AAAA,IACD,QAAQ;AAAA;AAAA,IAEP;AAAA,IACD,YAAY;AAAA;AAAA,MAEhB,aAAMC;AAAAA,MACN,cAAMC;AAAAA,MACN,WAAMC;AAAAA,MACN,QAAMC;AAAAA,MACA;AAAA,MACA;AAAA,MACN,qBAAMC;AAAAA,MACN,eAAMC;AAAAA,IACD;AAAA,EACF;AACH;"}
|
|
1
|
+
{"version":3,"file":"globals.client.js","sources":["../../../../../src/modules/globals/globals.client.js"],"sourcesContent":["// Components\n// import Client from \"./components/layouts/Client.vue\"\n\nimport getBrowserLocale from './views/localization/get-browser-locale.js';\nimport scrollBehavior from './views/router/scrollBehavior.js';\n\nimport layoutApp from './views/components/layouts/App.vue';\nimport layoutClient from './views/components/layouts/Client.vue';\n\nimport BlockSearch from '@martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue';\n\nimport BottomNavigationBar from '@martyrs/src/modules/globals/views/components/partials/BottomNavigationBar.vue';\nimport Header from '@martyrs/src/modules/globals/views/components/partials/Header.vue';\nimport Navigation from '@martyrs/src/modules/globals/views/components/partials/Navigation.vue';\nimport NavigationBar from '@martyrs/src/modules/globals/views/components/partials/NavigationBar.vue';\nimport Sidebar from '@martyrs/src/modules/globals/views/components/partials/Sidebar.vue';\n\nimport * as mixins from './views/mixins/mixins.js';\nimport * as storeGlobals from './views/store/globals.js';\nimport * as appRenderer from './views/utils/vue-app-renderer.js';\n\nimport alertPlugin from './views/plugins/alert.plugin.js';\nimport popupAuthPlugin from './views/plugins/popup.auth.plugin.js';\nimport datePickerPlugin from './views/plugins/date-picker.plugin.js';\nimport storeDebuggerPlugin from './views/plugins/store-debugger/store-debugger.plugin.js';\n\nimport store from './views/classes/store.js';\nimport websockets from './views/classes/globals.websocket.js';\nimport { i18nManager } from '@martyrs/src/modules/globals/views/classes/globals.i18n.js';\n\nimport en from './locales/en.js';\nimport ru from './locales/ru.js';\n\n\n// Пример функции инициализации для модуля заказов\nfunction initializeGlobals(app, store, router, config, options = {}) {\n const route = options.route || 'Home';\n\n const locales = {\n en: en,\n ru: ru,\n es: {} // или es: undefined\n };\n\n i18nManager.register('globals', locales);\n\n console.log('mesages is', i18nManager.getAllMessages())\n\n const envVariables = ['NODE_ENV', 'PORT', 'APP_NAME', 'DOMAIN_URL', 'API_URL', 'WSS_URL', 'FILE_SERVER_URL', 'WDT_TOKEN', 'WDM_URL_PROD', 'GOOGLE_MAPS_API_KEY', 'MOBILE_APP'];\n\n app.config.globalProperties.DOMAIN_URL = process.env.DOMAIN_URL;\n app.config.globalProperties.API_URL = process.env.API_URL;\n app.config.globalProperties.MOBILE_APP = process.env.MOBILE_APP;\n app.config.globalProperties.FILE_SERVER_URL = process.env.FILE_SERVER_URL;\n app.config.globalProperties.GOOGLE_MAPS_API_KEY = process.env.GOOGLE_MAPS_API_KEY;\n\n app.mixin(mixins.globalMixins);\n\n app.use(alertPlugin);\n app.use(popupAuthPlugin);\n app.use(datePickerPlugin);\n app.use(storeDebuggerPlugin, store);\n\n // Change Locale to Route Locale if available\n router.beforeEach((to, from, next) => {\n const locale = to.params.locale;\n\n if (locale) {\n if (!app.config.globalProperties.$i18n.availableLocales.includes(locale)) {\n return next({ path: '/404' });\n } else {\n app.config.globalProperties.$i18n.locale = locale;\n return next();\n }\n }\n\n return next();\n });\n\n if (config && config.modules) storeGlobals.state.options = config.modules;\n\n store.addStore('globals', storeGlobals);\n\n router.addRoute(route, {\n path: '404',\n name: 'notfound',\n component: () => import('@martyrs/src/modules/globals/views/components/pages/404.vue'),\n });\n router.addRoute(route, {\n path: '401',\n name: 'unauthorized',\n component: () => import('@martyrs/src/modules/globals/views/components/pages/401.vue'),\n });\n router.addRoute(route, {\n path: ':pathMatch(.*)*',\n name: 'NotFound',\n redirect: { name: 'notfound' },\n });\n}\n\nconst ModuleGlobals = {\n initialize: initializeGlobals,\n views: {\n store: {\n storeGlobals,\n },\n router: {\n // routerOrders\n },\n components: {\n // Pages\n BlockSearch,\n layoutClient,\n layoutApp,\n Header,\n Navigation,\n Sidebar,\n BottomNavigationBar,\n NavigationBar,\n },\n },\n};\n\nexport {\n BlockSearch,\n Header,\n Navigation,\n NavigationBar,\n Sidebar,\n appRenderer,\n getBrowserLocale,\n layoutApp,\n // Components\n layoutClient,\n // Client,\n mixins,\n scrollBehavior,\n store,\n i18nManager,\n // Store\n storeGlobals,\n websockets,\n};\n\nexport default ModuleGlobals;\n"],"names":["mixins.globalMixins","storeGlobals.state","storeGlobals","BlockSearch","layoutClient","layoutApp","Header","BottomNavigationBar","NavigationBar"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAmCA,SAAS,kBAAkB,KAAK,OAAO,QAAQ,QAAQ,UAAU,IAAI;AACnE,QAAM,QAAQ,QAAQ,SAAS;AAE/B,QAAM,UAAU;AAAA,IACd;AAAA,IACA;AAAA,IACA,IAAI,CAAE;AAAA;AAAA,EACP;AAED,cAAY,SAAS,WAAW,OAAO;AAEvC,UAAQ,IAAI,cAAe,YAAY,eAAgB,CAAA;AAIvD,MAAI,OAAO,iBAAiB,aAAa,QAAQ,IAAI;AACrD,MAAI,OAAO,iBAAiB,UAAU,QAAQ,IAAI;AAClD,MAAI,OAAO,iBAAiB,aAAa,QAAQ,IAAI;AACrD,MAAI,OAAO,iBAAiB,kBAAkB,QAAQ,IAAI;AAC1D,MAAI,OAAO,iBAAiB,sBAAsB,QAAQ,IAAI;AAE9D,MAAI,MAAMA,YAAmB;AAE7B,MAAI,IAAI,WAAW;AACnB,MAAI,IAAI,eAAe;AACvB,MAAI,IAAI,gBAAgB;AACxB,MAAI,IAAI,qBAAqB,KAAK;AAGlC,SAAO,WAAW,CAAC,IAAI,MAAM,SAAS;AACpC,UAAM,SAAS,GAAG,OAAO;AAEzB,QAAI,QAAQ;AACV,UAAI,CAAC,IAAI,OAAO,iBAAiB,MAAM,iBAAiB,SAAS,MAAM,GAAG;AACxE,eAAO,KAAK,EAAE,MAAM,QAAQ;AAAA,MACpC,OAAa;AACL,YAAI,OAAO,iBAAiB,MAAM,SAAS;AAC3C,eAAO,KAAM;AAAA,MACrB;AAAA,IACA;AAEI,WAAO,KAAM;AAAA,EACjB,CAAG;AAED,MAAI,UAAU,OAAO,QAASC,OAAmB,UAAU,OAAO;AAElE,QAAM,SAAS,WAAWC,OAAY;AAEtC,SAAO,SAAS,OAAO;AAAA,IACrB,MAAM;AAAA,IACN,MAAM;AAAA,IACN,WAAW,MAAM,OAAO,qCAA6D;AAAA,EACzF,CAAG;AACD,SAAO,SAAS,OAAO;AAAA,IACrB,MAAM;AAAA,IACN,MAAM;AAAA,IACN,WAAW,MAAM,OAAO,qCAA6D;AAAA,EACzF,CAAG;AACD,SAAO,SAAS,OAAO;AAAA,IACrB,MAAM;AAAA,IACN,MAAM;AAAA,IACN,UAAU,EAAE,MAAM,WAAY;AAAA,EAClC,CAAG;AACH;AAEK,MAAC,gBAAgB;AAAA,EACpB,YAAY;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,MACX,cAAMA;AAAAA,IACD;AAAA,IACD,QAAQ;AAAA;AAAA,IAEP;AAAA,IACD,YAAY;AAAA;AAAA,MAEhB,aAAMC;AAAAA,MACN,cAAMC;AAAAA,MACN,WAAMC;AAAAA,MACN,QAAMC;AAAAA,MACA;AAAA,MACA;AAAA,MACN,qBAAMC;AAAAA,MACN,eAAMC;AAAAA,IACD;AAAA,EACF;AACH;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const vue = require("vue");
|
|
4
|
-
const Popup = require("../../../../../components/Popup/Popup.
|
|
4
|
+
const Popup = require("../../../../../components/Popup/Popup.vue2.cjs");
|
|
5
5
|
const _hoisted_1 = { class: "mn-b-medium" };
|
|
6
6
|
const _hoisted_2 = { class: "flex-nowrap flex-justify-end flex gap-thin" };
|
|
7
7
|
const _hoisted_3 = ["onClick"];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { toRefs, createBlock, openBlock, unref, withCtx, createElementVNode, toDisplayString, createElementBlock, Fragment, renderList } from "vue";
|
|
2
|
-
import _sfc_main$1 from "../../../../../components/Popup/Popup.
|
|
2
|
+
import _sfc_main$1 from "../../../../../components/Popup/Popup.vue2.js";
|
|
3
3
|
const _hoisted_1 = { class: "mn-b-medium" };
|
|
4
4
|
const _hoisted_2 = { class: "flex-nowrap flex-justify-end flex gap-thin" };
|
|
5
5
|
const _hoisted_3 = ["onClick"];
|
|
@@ -9,7 +9,7 @@ const PlaceholderOrganizationPic = require("../../../../icons/placeholders/Place
|
|
|
9
9
|
const IconEllipsis = require("../../../../icons/navigation/IconEllipsis.vue.cjs");
|
|
10
10
|
const FormReport = require("../../../../reports/components/sections/FormReport.vue.cjs");
|
|
11
11
|
;/* empty css */
|
|
12
|
-
;/* empty css
|
|
12
|
+
;/* empty css */
|
|
13
13
|
require("../../../../auth/views/store/auth.cjs");
|
|
14
14
|
require("../../../../organizations/store/memberships.cjs");
|
|
15
15
|
const PhotoStack = require("../elements/PhotoStack.vue.cjs");
|
|
@@ -7,7 +7,7 @@ import PlaceholderOrganizationPic from "../../../../icons/placeholders/Placehold
|
|
|
7
7
|
import _sfc_main$4 from "../../../../icons/navigation/IconEllipsis.vue.js";
|
|
8
8
|
import _sfc_main$5 from "../../../../reports/components/sections/FormReport.vue.js";
|
|
9
9
|
/* empty css */
|
|
10
|
-
/* empty css
|
|
10
|
+
/* empty css */
|
|
11
11
|
import "../../../../auth/views/store/auth.js";
|
|
12
12
|
import "../../../../organizations/store/memberships.js";
|
|
13
13
|
import _sfc_main$2 from "../elements/PhotoStack.vue.js";
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const vue = require("vue");
|
|
4
4
|
const vueRouter = require("vue-router");
|
|
5
|
-
const Popup = require("../../../../../components/Popup/Popup.
|
|
6
|
-
const Button = require("../../../../../components/Button/Button.
|
|
5
|
+
const Popup = require("../../../../../components/Popup/Popup.vue2.cjs");
|
|
6
|
+
const Button = require("../../../../../components/Button/Button.vue2.cjs");
|
|
7
7
|
const _hoisted_1 = { class: "t-center" };
|
|
8
8
|
const _hoisted_2 = { class: "mn-b-medium" };
|
|
9
9
|
const _hoisted_3 = { class: "mn-b-semi t-transp" };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createBlock, openBlock, withCtx, createElementVNode, toDisplayString, createVNode, createTextVNode } from "vue";
|
|
2
2
|
import { useRouter, useRoute } from "vue-router";
|
|
3
|
-
import _sfc_main$1 from "../../../../../components/Popup/Popup.
|
|
4
|
-
import _sfc_main$2 from "../../../../../components/Button/Button.
|
|
3
|
+
import _sfc_main$1 from "../../../../../components/Popup/Popup.vue2.js";
|
|
4
|
+
import _sfc_main$2 from "../../../../../components/Button/Button.vue2.js";
|
|
5
5
|
const _hoisted_1 = { class: "t-center" };
|
|
6
6
|
const _hoisted_2 = { class: "mn-b-medium" };
|
|
7
7
|
const _hoisted_3 = { class: "mn-b-semi t-transp" };
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const vue = require("vue");
|
|
4
4
|
const vueI18n = require("vue-i18n");
|
|
5
|
-
const Popup = require("../../../../../components/Popup/Popup.
|
|
5
|
+
const Popup = require("../../../../../components/Popup/Popup.vue2.cjs");
|
|
6
6
|
const Loader = require("../../../../../components/Loader/Loader.vue2.cjs");
|
|
7
7
|
const Calendar = require("../../../../../components/DatePicker/Calendar.vue.cjs");
|
|
8
|
-
const Button = require("../../../../../components/Button/Button.
|
|
8
|
+
const Button = require("../../../../../components/Button/Button.vue2.cjs");
|
|
9
9
|
const IconShopcartAdd = require("../../../../icons/actions/IconShopcartAdd.vue.cjs");
|
|
10
10
|
const PriceTotal = require("../../../../orders/components/elements/PriceTotal.vue.cjs");
|
|
11
11
|
const rents_store = require("../../../../rents/views/store/rents.store.cjs");
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ref, computed, watch, onMounted, createBlock, openBlock, withCtx, createElementVNode, createVNode, createElementBlock, createCommentVNode, toDisplayString, unref } from "vue";
|
|
2
2
|
import { useI18n } from "vue-i18n";
|
|
3
|
-
import _sfc_main$1 from "../../../../../components/Popup/Popup.
|
|
3
|
+
import _sfc_main$1 from "../../../../../components/Popup/Popup.vue2.js";
|
|
4
4
|
import Loader from "../../../../../components/Loader/Loader.vue2.js";
|
|
5
5
|
import Calendar from "../../../../../components/DatePicker/Calendar.vue.js";
|
|
6
|
-
import _sfc_main$3 from "../../../../../components/Button/Button.
|
|
6
|
+
import _sfc_main$3 from "../../../../../components/Button/Button.vue2.js";
|
|
7
7
|
import _sfc_main$4 from "../../../../icons/actions/IconShopcartAdd.vue.js";
|
|
8
8
|
import _sfc_main$2 from "../../../../orders/components/elements/PriceTotal.vue.js";
|
|
9
9
|
import { loadAvailability } from "../../../../rents/views/store/rents.store.js";
|
|
@@ -4,10 +4,10 @@ const vue = require("vue");
|
|
|
4
4
|
const vueRouter = require("vue-router");
|
|
5
5
|
const globals = require("../../store/globals.cjs");
|
|
6
6
|
const Status = require("../../../../../components/Status/Status.vue.cjs");
|
|
7
|
-
const Popup = require("../../../../../components/Popup/Popup.
|
|
7
|
+
const Popup = require("../../../../../components/Popup/Popup.vue2.cjs");
|
|
8
8
|
const Loader = require("../../../../../components/Loader/Loader.vue2.cjs");
|
|
9
9
|
require("vue-i18n");
|
|
10
|
-
;/* empty css
|
|
10
|
+
;/* empty css */
|
|
11
11
|
require("../../../../orders/store/shopcart.cjs");
|
|
12
12
|
require("../../../../auth/views/store/auth.cjs");
|
|
13
13
|
;/* empty css */
|
|
@@ -2,10 +2,10 @@ import { ref, computed, onMounted, resolveComponent, createElementBlock, openBlo
|
|
|
2
2
|
import { useRoute } from "vue-router";
|
|
3
3
|
import { state } from "../../store/globals.js";
|
|
4
4
|
import _sfc_main$4 from "../../../../../components/Status/Status.vue.js";
|
|
5
|
-
import _sfc_main$1 from "../../../../../components/Popup/Popup.
|
|
5
|
+
import _sfc_main$1 from "../../../../../components/Popup/Popup.vue2.js";
|
|
6
6
|
import Loader from "../../../../../components/Loader/Loader.vue2.js";
|
|
7
7
|
import "vue-i18n";
|
|
8
|
-
/* empty css
|
|
8
|
+
/* empty css */
|
|
9
9
|
import "../../../../orders/store/shopcart.js";
|
|
10
10
|
import "../../../../auth/views/store/auth.js";
|
|
11
11
|
/* empty css */
|
|
@@ -7,7 +7,7 @@ const globals = require("../../store/globals.cjs");
|
|
|
7
7
|
const shopcart = require("../../../../orders/store/shopcart.cjs");
|
|
8
8
|
const auth = require("../../../../auth/views/store/auth.cjs");
|
|
9
9
|
const NotificationBadge = require("../../../../notifications/components/elements/NotificationBadge.vue.cjs");
|
|
10
|
-
const Button = require("../../../../../components/Button/Button.
|
|
10
|
+
const Button = require("../../../../../components/Button/Button.vue2.cjs");
|
|
11
11
|
const Select = require("../../../../../components/Select/Select.vue.cjs");
|
|
12
12
|
const IconShopcart = require("../../../../icons/entities/IconShopcart.vue.cjs");
|
|
13
13
|
const IconProfile = require("../../../../icons/entities/IconProfile.vue.cjs");
|
|
@@ -5,7 +5,7 @@ import { state } from "../../store/globals.js";
|
|
|
5
5
|
import { actions, getters } from "../../../../orders/store/shopcart.js";
|
|
6
6
|
import { state as state$1 } from "../../../../auth/views/store/auth.js";
|
|
7
7
|
import NotificationBadge from "../../../../notifications/components/elements/NotificationBadge.vue.js";
|
|
8
|
-
import _sfc_main$1 from "../../../../../components/Button/Button.
|
|
8
|
+
import _sfc_main$1 from "../../../../../components/Button/Button.vue2.js";
|
|
9
9
|
import Select from "../../../../../components/Select/Select.vue.js";
|
|
10
10
|
import _sfc_main$3 from "../../../../icons/entities/IconShopcart.vue.js";
|
|
11
11
|
import _sfc_main$4 from "../../../../icons/entities/IconProfile.vue.js";
|
|
@@ -5,7 +5,7 @@ const vueRouter = require("vue-router");
|
|
|
5
5
|
const vueI18n = require("vue-i18n");
|
|
6
6
|
const IconShopcart = require("../../../../icons/entities/IconShopcart.vue.cjs");
|
|
7
7
|
const IconProfile = require("../../../../icons/entities/IconProfile.vue.cjs");
|
|
8
|
-
const Button = require("../../../../../components/Button/Button.
|
|
8
|
+
const Button = require("../../../../../components/Button/Button.vue2.cjs");
|
|
9
9
|
const globals = require("../../store/globals.cjs");
|
|
10
10
|
const shopcart = require("../../../../orders/store/shopcart.cjs");
|
|
11
11
|
const auth = require("../../../../auth/views/store/auth.cjs");
|
|
@@ -3,7 +3,7 @@ import { useRouter, useRoute } from "vue-router";
|
|
|
3
3
|
import { useI18n } from "vue-i18n";
|
|
4
4
|
import _sfc_main$2 from "../../../../icons/entities/IconShopcart.vue.js";
|
|
5
5
|
import _sfc_main$3 from "../../../../icons/entities/IconProfile.vue.js";
|
|
6
|
-
import _sfc_main$1 from "../../../../../components/Button/Button.
|
|
6
|
+
import _sfc_main$1 from "../../../../../components/Button/Button.vue2.js";
|
|
7
7
|
import { state } from "../../store/globals.js";
|
|
8
8
|
import { getters, actions } from "../../../../orders/store/shopcart.js";
|
|
9
9
|
import { state as state$1 } from "../../../../auth/views/store/auth.js";
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
const vue = require("vue");
|
|
4
|
+
const Popup = require("../../../../../components/Popup/Popup.vue2.cjs");
|
|
5
|
+
const IconFilter = require("../../../../icons/navigation/IconFilter.vue.cjs");
|
|
6
|
+
const IconCross = require("../../../../icons/navigation/IconCross.vue.cjs");
|
|
7
|
+
const FilterOptions = require("./filters/FilterOptions.vue.cjs");
|
|
8
|
+
const FilterRange = require("./filters/FilterRange.vue2.cjs");
|
|
9
|
+
const FilterPrice = require("./filters/FilterPrice.vue.cjs");
|
|
10
|
+
;/* empty css */
|
|
11
|
+
const _hoisted_1 = { class: "flex gap-thin" };
|
|
12
|
+
const _hoisted_2 = {
|
|
13
|
+
key: 0,
|
|
14
|
+
class: "ml-thin"
|
|
15
|
+
};
|
|
16
|
+
const _hoisted_3 = ["onClick"];
|
|
17
|
+
const _hoisted_4 = { class: "pd-medium bg-white radius-top-medium" };
|
|
18
|
+
const _hoisted_5 = { class: "flex justify-between align-center mb-medium" };
|
|
19
|
+
const _hoisted_6 = { class: "filters-container" };
|
|
20
|
+
const _hoisted_7 = { class: "t-h4 mb-thin" };
|
|
21
|
+
const _hoisted_8 = { class: "pd-medium bg-white radius-medium" };
|
|
22
|
+
const _hoisted_9 = { class: "t-h4 mb-thin" };
|
|
23
|
+
const _sfc_main = {
|
|
24
|
+
__name: "Filters",
|
|
25
|
+
props: /* @__PURE__ */ vue.mergeModels({
|
|
26
|
+
filters: {
|
|
27
|
+
type: Array,
|
|
28
|
+
required: true
|
|
29
|
+
}
|
|
30
|
+
}, {
|
|
31
|
+
"modelValue": {
|
|
32
|
+
type: Object,
|
|
33
|
+
default: () => ({})
|
|
34
|
+
},
|
|
35
|
+
"modelModifiers": {}
|
|
36
|
+
}),
|
|
37
|
+
emits: ["update:modelValue"],
|
|
38
|
+
setup(__props) {
|
|
39
|
+
const props = __props;
|
|
40
|
+
const model = vue.useModel(__props, "modelValue");
|
|
41
|
+
const showAllFilters = vue.ref(false);
|
|
42
|
+
const individualPopups = vue.reactive({});
|
|
43
|
+
const appliedFilters = vue.reactive({});
|
|
44
|
+
props.filters.forEach((filter) => {
|
|
45
|
+
individualPopups[props.filters.indexOf(filter)] = false;
|
|
46
|
+
if (!appliedFilters[filter.key]) {
|
|
47
|
+
appliedFilters[filter.key] = filter.defaultValue || null;
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
const hasActiveFilters = vue.computed(() => {
|
|
51
|
+
return Object.values(appliedFilters).some((v) => v !== null && v !== void 0);
|
|
52
|
+
});
|
|
53
|
+
const activeFiltersCount = vue.computed(() => {
|
|
54
|
+
return Object.values(appliedFilters).filter((v) => v !== null && v !== void 0).length;
|
|
55
|
+
});
|
|
56
|
+
const getFilterComponent = (type) => {
|
|
57
|
+
if (typeof type === "object") return type;
|
|
58
|
+
const components = {
|
|
59
|
+
options: FilterOptions.default,
|
|
60
|
+
range: FilterRange.default,
|
|
61
|
+
price: FilterPrice.default
|
|
62
|
+
};
|
|
63
|
+
return components[type] || FilterOptions.default;
|
|
64
|
+
};
|
|
65
|
+
const getFilterLabel = (filter) => {
|
|
66
|
+
const value = appliedFilters[filter.key];
|
|
67
|
+
if (!value) return filter.title;
|
|
68
|
+
if (Array.isArray(value) && value.length) {
|
|
69
|
+
return `${filter.title} (${value.length})`;
|
|
70
|
+
}
|
|
71
|
+
if (typeof value === "object" && (value.min || value.max)) {
|
|
72
|
+
return `${filter.title}: ${value.min || 0}-${value.max || "∞"}`;
|
|
73
|
+
}
|
|
74
|
+
return `${filter.title}: ${value}`;
|
|
75
|
+
};
|
|
76
|
+
const getFilterActiveState = (filter) => {
|
|
77
|
+
const value = appliedFilters[filter.key];
|
|
78
|
+
return value !== null && value !== void 0;
|
|
79
|
+
};
|
|
80
|
+
const openFilter = (idx) => {
|
|
81
|
+
individualPopups[idx] = true;
|
|
82
|
+
};
|
|
83
|
+
const updateFilter = (key) => {
|
|
84
|
+
model.value = { ...appliedFilters };
|
|
85
|
+
};
|
|
86
|
+
const applyFilters = () => {
|
|
87
|
+
model.value = { ...appliedFilters };
|
|
88
|
+
showAllFilters.value = false;
|
|
89
|
+
};
|
|
90
|
+
const resetFilters = () => {
|
|
91
|
+
Object.keys(appliedFilters).forEach((key) => {
|
|
92
|
+
appliedFilters[key] = null;
|
|
93
|
+
});
|
|
94
|
+
model.value = {};
|
|
95
|
+
};
|
|
96
|
+
return (_ctx, _cache) => {
|
|
97
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
|
|
98
|
+
vue.createElementVNode("button", {
|
|
99
|
+
onClick: _cache[0] || (_cache[0] = ($event) => showAllFilters.value = true),
|
|
100
|
+
class: vue.normalizeClass(["btn-filter radius-medium pd-thin bg-light", { "bg-primary t-white": hasActiveFilters.value }])
|
|
101
|
+
}, [
|
|
102
|
+
vue.createVNode(IconFilter.default, { class: "w-1r h-auto" }),
|
|
103
|
+
activeFiltersCount.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2, vue.toDisplayString(activeFiltersCount.value), 1)) : vue.createCommentVNode("", true)
|
|
104
|
+
], 2),
|
|
105
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.filters, (filter, idx) => {
|
|
106
|
+
return vue.openBlock(), vue.createElementBlock("button", {
|
|
107
|
+
key: idx,
|
|
108
|
+
onClick: () => openFilter(idx),
|
|
109
|
+
class: vue.normalizeClass(["btn-filter radius-medium pd-thin bg-light", { "bg-primary t-white": getFilterActiveState(filter) }])
|
|
110
|
+
}, vue.toDisplayString(getFilterLabel(filter)), 11, _hoisted_3);
|
|
111
|
+
}), 128)),
|
|
112
|
+
vue.createVNode(Popup.default, {
|
|
113
|
+
show: showAllFilters.value,
|
|
114
|
+
"onUpdate:show": _cache[2] || (_cache[2] = ($event) => showAllFilters.value = $event),
|
|
115
|
+
align: "bottom center",
|
|
116
|
+
class: "w-100 max-h-80vh"
|
|
117
|
+
}, {
|
|
118
|
+
default: vue.withCtx(() => [
|
|
119
|
+
vue.createElementVNode("div", _hoisted_4, [
|
|
120
|
+
vue.createElementVNode("div", _hoisted_5, [
|
|
121
|
+
_cache[3] || (_cache[3] = vue.createElementVNode("h3", { class: "t-h3" }, "Filters", -1)),
|
|
122
|
+
vue.createVNode(IconCross.default, {
|
|
123
|
+
onClick: _cache[1] || (_cache[1] = ($event) => showAllFilters.value = false),
|
|
124
|
+
class: "w-1r h-auto cursor-pointer"
|
|
125
|
+
})
|
|
126
|
+
]),
|
|
127
|
+
vue.createElementVNode("div", _hoisted_6, [
|
|
128
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.filters, (filter, idx) => {
|
|
129
|
+
return vue.openBlock(), vue.createElementBlock("div", {
|
|
130
|
+
key: idx,
|
|
131
|
+
class: "mb-medium"
|
|
132
|
+
}, [
|
|
133
|
+
vue.createElementVNode("h4", _hoisted_7, vue.toDisplayString(filter.title), 1),
|
|
134
|
+
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(getFilterComponent(filter.type)), {
|
|
135
|
+
modelValue: appliedFilters[filter.key],
|
|
136
|
+
"onUpdate:modelValue": ($event) => appliedFilters[filter.key] = $event,
|
|
137
|
+
options: filter.options,
|
|
138
|
+
config: filter.config
|
|
139
|
+
}, null, 8, ["modelValue", "onUpdate:modelValue", "options", "config"]))
|
|
140
|
+
]);
|
|
141
|
+
}), 128))
|
|
142
|
+
]),
|
|
143
|
+
vue.createElementVNode("div", { class: "flex gap-thin mt-medium" }, [
|
|
144
|
+
vue.createElementVNode("button", {
|
|
145
|
+
onClick: applyFilters,
|
|
146
|
+
class: "btn btn-primary flex-1"
|
|
147
|
+
}, "Apply"),
|
|
148
|
+
vue.createElementVNode("button", {
|
|
149
|
+
onClick: resetFilters,
|
|
150
|
+
class: "btn btn-secondary"
|
|
151
|
+
}, "Reset")
|
|
152
|
+
])
|
|
153
|
+
])
|
|
154
|
+
]),
|
|
155
|
+
_: 1
|
|
156
|
+
}, 8, ["show"]),
|
|
157
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.filters, (filter, idx) => {
|
|
158
|
+
return vue.openBlock(), vue.createBlock(Popup.default, {
|
|
159
|
+
isPopupOpen: individualPopups[idx],
|
|
160
|
+
key: `popup-${idx}`,
|
|
161
|
+
align: "bottom center",
|
|
162
|
+
class: "min-w-200"
|
|
163
|
+
}, {
|
|
164
|
+
default: vue.withCtx(() => [
|
|
165
|
+
vue.createElementVNode("div", _hoisted_8, [
|
|
166
|
+
vue.createElementVNode("h4", _hoisted_9, vue.toDisplayString(filter.title), 1),
|
|
167
|
+
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(getFilterComponent(filter.type)), {
|
|
168
|
+
modelValue: appliedFilters[filter.key],
|
|
169
|
+
"onUpdate:modelValue": [($event) => appliedFilters[filter.key] = $event, () => updateFilter(filter.key)],
|
|
170
|
+
options: filter.options,
|
|
171
|
+
config: filter.config
|
|
172
|
+
}, null, 8, ["modelValue", "onUpdate:modelValue", "options", "config"]))
|
|
173
|
+
])
|
|
174
|
+
]),
|
|
175
|
+
_: 2
|
|
176
|
+
}, 1032, ["isPopupOpen"]);
|
|
177
|
+
}), 128))
|
|
178
|
+
]);
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
exports.default = _sfc_main;
|
|
183
|
+
//# sourceMappingURL=Filters.vue2.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Filters.vue2.cjs","sources":["../../../../../../../../src/modules/globals/views/components/sections/Filters.vue"],"sourcesContent":["<!-- FiltersBar.vue -->\n<template>\n <div class=\"flex gap-thin\">\n <!-- All Filters Button -->\n <button\n @click=\"showAllFilters = true\"\n class=\"btn-filter radius-medium pd-thin bg-light\"\n :class=\"{ 'bg-primary t-white': hasActiveFilters }\"\n >\n <IconFilter class=\"w-1r h-auto\" />\n <span v-if=\"activeFiltersCount\" class=\"ml-thin\">{{ activeFiltersCount }}</span>\n </button>\n\n <!-- Individual Filter Buttons -->\n <button\n v-for=\"(filter, idx) in filters\"\n :key=\"idx\"\n @click=\"() => openFilter(idx)\"\n class=\"btn-filter radius-medium pd-thin bg-light\"\n :class=\"{ 'bg-primary t-white': getFilterActiveState(filter) }\"\n >\n {{ getFilterLabel(filter) }}\n </button>\n\n <!-- All Filters Popup -->\n <Popup\n v-model:show=\"showAllFilters\"\n align=\"bottom center\"\n class=\"w-100 max-h-80vh\"\n >\n <div class=\"pd-medium bg-white radius-top-medium\">\n <div class=\"flex justify-between align-center mb-medium\">\n <h3 class=\"t-h3\">Filters</h3>\n <IconCross @click=\"showAllFilters = false\" class=\"w-1r h-auto cursor-pointer\" />\n </div>\n \n <div class=\"filters-container\">\n <div v-for=\"(filter, idx) in filters\" :key=\"idx\" class=\"mb-medium\">\n <h4 class=\"t-h4 mb-thin\">{{ filter.title }}</h4>\n <component\n :is=\"getFilterComponent(filter.type)\"\n v-model=\"appliedFilters[filter.key]\"\n :options=\"filter.options\"\n :config=\"filter.config\"\n />\n </div>\n </div>\n\n <div class=\"flex gap-thin mt-medium\">\n <button @click=\"applyFilters\" class=\"btn btn-primary flex-1\">Apply</button>\n <button @click=\"resetFilters\" class=\"btn btn-secondary\">Reset</button>\n </div>\n </div>\n </Popup>\n\n <!-- Individual Filter Popups -->\n <Popup\n :isPopupOpen=\"individualPopups[idx]\" \n v-for=\"(filter, idx) in filters\"\n :key=\"`popup-${idx}`\"\n align=\"bottom center\"\n class=\"min-w-200\"\n >\n <div class=\"pd-medium bg-white radius-medium\">\n <h4 class=\"t-h4 mb-thin\">{{ filter.title }}</h4>\n <component\n :is=\"getFilterComponent(filter.type)\"\n v-model=\"appliedFilters[filter.key]\"\n :options=\"filter.options\"\n :config=\"filter.config\"\n @update:modelValue=\"() => updateFilter(filter.key)\"\n />\n </div>\n </Popup>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, reactive } from 'vue'\nimport Field from '@martyrs/src/components/Field/Field.vue';\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport Select from '@martyrs/src/components/Select/Select.vue';\nimport IconFilter from '@martyrs/src/modules/icons/navigation/IconFilter.vue'\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue'\n\n// Import filter components\nimport FilterOptions from './filters/FilterOptions.vue'\nimport FilterRange from './filters/FilterRange.vue'\nimport FilterPrice from './filters/FilterPrice.vue'\n\nconst props = defineProps({\n filters: {\n type: Array,\n required: true\n }\n})\n\nconst model = defineModel({\n type: Object,\n default: () => ({})\n})\n\n// State\nconst showAllFilters = ref(false)\nconst individualPopups = reactive({})\nconst appliedFilters = reactive({})\n\n// Initialize filters\nprops.filters.forEach(filter => {\n individualPopups[props.filters.indexOf(filter)] = false\n if (!appliedFilters[filter.key]) {\n appliedFilters[filter.key] = filter.defaultValue || null\n }\n})\n\n// Computed\nconst hasActiveFilters = computed(() => {\n return Object.values(appliedFilters).some(v => v !== null && v !== undefined)\n})\n\nconst activeFiltersCount = computed(() => {\n return Object.values(appliedFilters).filter(v => v !== null && v !== undefined).length\n})\n\n// Methods\nconst getFilterComponent = (type) => {\n if (typeof type === 'object') return type\n \n const components = {\n options: FilterOptions,\n range: FilterRange,\n price: FilterPrice\n }\n \n return components[type] || FilterOptions\n}\n\nconst getFilterLabel = (filter) => {\n const value = appliedFilters[filter.key]\n if (!value) return filter.title\n \n if (Array.isArray(value) && value.length) {\n return `${filter.title} (${value.length})`\n }\n \n if (typeof value === 'object' && (value.min || value.max)) {\n return `${filter.title}: ${value.min || 0}-${value.max || '∞'}`\n }\n \n return `${filter.title}: ${value}`\n}\n\nconst getFilterActiveState = (filter) => {\n const value = appliedFilters[filter.key]\n return value !== null && value !== undefined\n}\n\nconst openFilter = (idx) => {\n individualPopups[idx] = true\n}\n\nconst updateFilter = (key) => {\n model.value = { ...appliedFilters }\n}\n\nconst applyFilters = () => {\n model.value = { ...appliedFilters }\n showAllFilters.value = false\n}\n\nconst resetFilters = () => {\n Object.keys(appliedFilters).forEach(key => {\n appliedFilters[key] = null\n })\n model.value = {}\n}\n</script>\n\n<style>\n.btn-filter {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n border: none;\n cursor: pointer;\n transition: all 0.2s;\n white-space: nowrap;\n}\n\n.btn-filter:hover {\n opacity: 0.8;\n}\n\n.filters-container {\n max-height: 60vh;\n overflow-y: auto;\n}\n</style>"],"names":["_useModel","ref","reactive","computed","FilterOptions","FilterRange","FilterPrice"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0FA,UAAM,QAAQ;AAOd,UAAM,QAAQA,IAAAA,SAGb,SAAA,YAAA;AAGD,UAAM,iBAAiBC,IAAG,IAAC,KAAK;AAChC,UAAM,mBAAmBC,IAAQ,SAAC,CAAE,CAAA;AACpC,UAAM,iBAAiBA,IAAQ,SAAC,CAAE,CAAA;AAGlC,UAAM,QAAQ,QAAQ,YAAU;AAC9B,uBAAiB,MAAM,QAAQ,QAAQ,MAAM,CAAC,IAAI;AAClD,UAAI,CAAC,eAAe,OAAO,GAAG,GAAG;AAC/B,uBAAe,OAAO,GAAG,IAAI,OAAO,gBAAgB;AAAA,MACxD;AAAA,IACA,CAAC;AAGD,UAAM,mBAAmBC,IAAQ,SAAC,MAAM;AACtC,aAAO,OAAO,OAAO,cAAc,EAAE,KAAK,OAAK,MAAM,QAAQ,MAAM,MAAS;AAAA,IAC9E,CAAC;AAED,UAAM,qBAAqBA,IAAQ,SAAC,MAAM;AACxC,aAAO,OAAO,OAAO,cAAc,EAAE,OAAO,OAAK,MAAM,QAAQ,MAAM,MAAS,EAAE;AAAA,IAClF,CAAC;AAGD,UAAM,qBAAqB,CAAC,SAAS;AACnC,UAAI,OAAO,SAAS,SAAU,QAAO;AAErC,YAAM,aAAa;AAAA,QACjB,SAASC,cAAa;AAAA,QACtB,OAAOC,YAAW;AAAA,QAClB,OAAOC,YAAAA;AAAAA,MACX;AAEE,aAAO,WAAW,IAAI,KAAKF,cAAAA;AAAAA,IAC7B;AAEA,UAAM,iBAAiB,CAAC,WAAW;AACjC,YAAM,QAAQ,eAAe,OAAO,GAAG;AACvC,UAAI,CAAC,MAAO,QAAO,OAAO;AAE1B,UAAI,MAAM,QAAQ,KAAK,KAAK,MAAM,QAAQ;AACxC,eAAO,GAAG,OAAO,KAAK,KAAK,MAAM,MAAM;AAAA,MAC3C;AAEE,UAAI,OAAO,UAAU,aAAa,MAAM,OAAO,MAAM,MAAM;AACzD,eAAO,GAAG,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC,IAAI,MAAM,OAAO,GAAG;AAAA,MACjE;AAEE,aAAO,GAAG,OAAO,KAAK,KAAK,KAAK;AAAA,IAClC;AAEA,UAAM,uBAAuB,CAAC,WAAW;AACvC,YAAM,QAAQ,eAAe,OAAO,GAAG;AACvC,aAAO,UAAU,QAAQ,UAAU;AAAA,IACrC;AAEA,UAAM,aAAa,CAAC,QAAQ;AAC1B,uBAAiB,GAAG,IAAI;AAAA,IAC1B;AAEA,UAAM,eAAe,CAAC,QAAQ;AAC5B,YAAM,QAAQ,EAAE,GAAG,eAAc;AAAA,IACnC;AAEA,UAAM,eAAe,MAAM;AACzB,YAAM,QAAQ,EAAE,GAAG,eAAc;AACjC,qBAAe,QAAQ;AAAA,IACzB;AAEA,UAAM,eAAe,MAAM;AACzB,aAAO,KAAK,cAAc,EAAE,QAAQ,SAAO;AACzC,uBAAe,GAAG,IAAI;AAAA,MACvB,CAAA;AACD,YAAM,QAAQ,CAAA;AAAA,IAChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { mergeModels, useModel, ref, reactive, computed, createElementBlock, openBlock, createElementVNode, createVNode, normalizeClass, createCommentVNode, toDisplayString, Fragment, renderList, withCtx, createBlock, resolveDynamicComponent } from "vue";
|
|
2
|
+
import _sfc_main$2 from "../../../../../components/Popup/Popup.vue2.js";
|
|
3
|
+
import _sfc_main$1 from "../../../../icons/navigation/IconFilter.vue.js";
|
|
4
|
+
import _sfc_main$3 from "../../../../icons/navigation/IconCross.vue.js";
|
|
5
|
+
import _sfc_main$6 from "./filters/FilterOptions.vue.js";
|
|
6
|
+
import _sfc_main$5 from "./filters/FilterRange.vue2.js";
|
|
7
|
+
import _sfc_main$4 from "./filters/FilterPrice.vue.js";
|
|
8
|
+
/* empty css */
|
|
9
|
+
const _hoisted_1 = { class: "flex gap-thin" };
|
|
10
|
+
const _hoisted_2 = {
|
|
11
|
+
key: 0,
|
|
12
|
+
class: "ml-thin"
|
|
13
|
+
};
|
|
14
|
+
const _hoisted_3 = ["onClick"];
|
|
15
|
+
const _hoisted_4 = { class: "pd-medium bg-white radius-top-medium" };
|
|
16
|
+
const _hoisted_5 = { class: "flex justify-between align-center mb-medium" };
|
|
17
|
+
const _hoisted_6 = { class: "filters-container" };
|
|
18
|
+
const _hoisted_7 = { class: "t-h4 mb-thin" };
|
|
19
|
+
const _hoisted_8 = { class: "pd-medium bg-white radius-medium" };
|
|
20
|
+
const _hoisted_9 = { class: "t-h4 mb-thin" };
|
|
21
|
+
const _sfc_main = {
|
|
22
|
+
__name: "Filters",
|
|
23
|
+
props: /* @__PURE__ */ mergeModels({
|
|
24
|
+
filters: {
|
|
25
|
+
type: Array,
|
|
26
|
+
required: true
|
|
27
|
+
}
|
|
28
|
+
}, {
|
|
29
|
+
"modelValue": {
|
|
30
|
+
type: Object,
|
|
31
|
+
default: () => ({})
|
|
32
|
+
},
|
|
33
|
+
"modelModifiers": {}
|
|
34
|
+
}),
|
|
35
|
+
emits: ["update:modelValue"],
|
|
36
|
+
setup(__props) {
|
|
37
|
+
const props = __props;
|
|
38
|
+
const model = useModel(__props, "modelValue");
|
|
39
|
+
const showAllFilters = ref(false);
|
|
40
|
+
const individualPopups = reactive({});
|
|
41
|
+
const appliedFilters = reactive({});
|
|
42
|
+
props.filters.forEach((filter) => {
|
|
43
|
+
individualPopups[props.filters.indexOf(filter)] = false;
|
|
44
|
+
if (!appliedFilters[filter.key]) {
|
|
45
|
+
appliedFilters[filter.key] = filter.defaultValue || null;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
const hasActiveFilters = computed(() => {
|
|
49
|
+
return Object.values(appliedFilters).some((v) => v !== null && v !== void 0);
|
|
50
|
+
});
|
|
51
|
+
const activeFiltersCount = computed(() => {
|
|
52
|
+
return Object.values(appliedFilters).filter((v) => v !== null && v !== void 0).length;
|
|
53
|
+
});
|
|
54
|
+
const getFilterComponent = (type) => {
|
|
55
|
+
if (typeof type === "object") return type;
|
|
56
|
+
const components = {
|
|
57
|
+
options: _sfc_main$6,
|
|
58
|
+
range: _sfc_main$5,
|
|
59
|
+
price: _sfc_main$4
|
|
60
|
+
};
|
|
61
|
+
return components[type] || _sfc_main$6;
|
|
62
|
+
};
|
|
63
|
+
const getFilterLabel = (filter) => {
|
|
64
|
+
const value = appliedFilters[filter.key];
|
|
65
|
+
if (!value) return filter.title;
|
|
66
|
+
if (Array.isArray(value) && value.length) {
|
|
67
|
+
return `${filter.title} (${value.length})`;
|
|
68
|
+
}
|
|
69
|
+
if (typeof value === "object" && (value.min || value.max)) {
|
|
70
|
+
return `${filter.title}: ${value.min || 0}-${value.max || "∞"}`;
|
|
71
|
+
}
|
|
72
|
+
return `${filter.title}: ${value}`;
|
|
73
|
+
};
|
|
74
|
+
const getFilterActiveState = (filter) => {
|
|
75
|
+
const value = appliedFilters[filter.key];
|
|
76
|
+
return value !== null && value !== void 0;
|
|
77
|
+
};
|
|
78
|
+
const openFilter = (idx) => {
|
|
79
|
+
individualPopups[idx] = true;
|
|
80
|
+
};
|
|
81
|
+
const updateFilter = (key) => {
|
|
82
|
+
model.value = { ...appliedFilters };
|
|
83
|
+
};
|
|
84
|
+
const applyFilters = () => {
|
|
85
|
+
model.value = { ...appliedFilters };
|
|
86
|
+
showAllFilters.value = false;
|
|
87
|
+
};
|
|
88
|
+
const resetFilters = () => {
|
|
89
|
+
Object.keys(appliedFilters).forEach((key) => {
|
|
90
|
+
appliedFilters[key] = null;
|
|
91
|
+
});
|
|
92
|
+
model.value = {};
|
|
93
|
+
};
|
|
94
|
+
return (_ctx, _cache) => {
|
|
95
|
+
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
96
|
+
createElementVNode("button", {
|
|
97
|
+
onClick: _cache[0] || (_cache[0] = ($event) => showAllFilters.value = true),
|
|
98
|
+
class: normalizeClass(["btn-filter radius-medium pd-thin bg-light", { "bg-primary t-white": hasActiveFilters.value }])
|
|
99
|
+
}, [
|
|
100
|
+
createVNode(_sfc_main$1, { class: "w-1r h-auto" }),
|
|
101
|
+
activeFiltersCount.value ? (openBlock(), createElementBlock("span", _hoisted_2, toDisplayString(activeFiltersCount.value), 1)) : createCommentVNode("", true)
|
|
102
|
+
], 2),
|
|
103
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.filters, (filter, idx) => {
|
|
104
|
+
return openBlock(), createElementBlock("button", {
|
|
105
|
+
key: idx,
|
|
106
|
+
onClick: () => openFilter(idx),
|
|
107
|
+
class: normalizeClass(["btn-filter radius-medium pd-thin bg-light", { "bg-primary t-white": getFilterActiveState(filter) }])
|
|
108
|
+
}, toDisplayString(getFilterLabel(filter)), 11, _hoisted_3);
|
|
109
|
+
}), 128)),
|
|
110
|
+
createVNode(_sfc_main$2, {
|
|
111
|
+
show: showAllFilters.value,
|
|
112
|
+
"onUpdate:show": _cache[2] || (_cache[2] = ($event) => showAllFilters.value = $event),
|
|
113
|
+
align: "bottom center",
|
|
114
|
+
class: "w-100 max-h-80vh"
|
|
115
|
+
}, {
|
|
116
|
+
default: withCtx(() => [
|
|
117
|
+
createElementVNode("div", _hoisted_4, [
|
|
118
|
+
createElementVNode("div", _hoisted_5, [
|
|
119
|
+
_cache[3] || (_cache[3] = createElementVNode("h3", { class: "t-h3" }, "Filters", -1)),
|
|
120
|
+
createVNode(_sfc_main$3, {
|
|
121
|
+
onClick: _cache[1] || (_cache[1] = ($event) => showAllFilters.value = false),
|
|
122
|
+
class: "w-1r h-auto cursor-pointer"
|
|
123
|
+
})
|
|
124
|
+
]),
|
|
125
|
+
createElementVNode("div", _hoisted_6, [
|
|
126
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.filters, (filter, idx) => {
|
|
127
|
+
return openBlock(), createElementBlock("div", {
|
|
128
|
+
key: idx,
|
|
129
|
+
class: "mb-medium"
|
|
130
|
+
}, [
|
|
131
|
+
createElementVNode("h4", _hoisted_7, toDisplayString(filter.title), 1),
|
|
132
|
+
(openBlock(), createBlock(resolveDynamicComponent(getFilterComponent(filter.type)), {
|
|
133
|
+
modelValue: appliedFilters[filter.key],
|
|
134
|
+
"onUpdate:modelValue": ($event) => appliedFilters[filter.key] = $event,
|
|
135
|
+
options: filter.options,
|
|
136
|
+
config: filter.config
|
|
137
|
+
}, null, 8, ["modelValue", "onUpdate:modelValue", "options", "config"]))
|
|
138
|
+
]);
|
|
139
|
+
}), 128))
|
|
140
|
+
]),
|
|
141
|
+
createElementVNode("div", { class: "flex gap-thin mt-medium" }, [
|
|
142
|
+
createElementVNode("button", {
|
|
143
|
+
onClick: applyFilters,
|
|
144
|
+
class: "btn btn-primary flex-1"
|
|
145
|
+
}, "Apply"),
|
|
146
|
+
createElementVNode("button", {
|
|
147
|
+
onClick: resetFilters,
|
|
148
|
+
class: "btn btn-secondary"
|
|
149
|
+
}, "Reset")
|
|
150
|
+
])
|
|
151
|
+
])
|
|
152
|
+
]),
|
|
153
|
+
_: 1
|
|
154
|
+
}, 8, ["show"]),
|
|
155
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.filters, (filter, idx) => {
|
|
156
|
+
return openBlock(), createBlock(_sfc_main$2, {
|
|
157
|
+
isPopupOpen: individualPopups[idx],
|
|
158
|
+
key: `popup-${idx}`,
|
|
159
|
+
align: "bottom center",
|
|
160
|
+
class: "min-w-200"
|
|
161
|
+
}, {
|
|
162
|
+
default: withCtx(() => [
|
|
163
|
+
createElementVNode("div", _hoisted_8, [
|
|
164
|
+
createElementVNode("h4", _hoisted_9, toDisplayString(filter.title), 1),
|
|
165
|
+
(openBlock(), createBlock(resolveDynamicComponent(getFilterComponent(filter.type)), {
|
|
166
|
+
modelValue: appliedFilters[filter.key],
|
|
167
|
+
"onUpdate:modelValue": [($event) => appliedFilters[filter.key] = $event, () => updateFilter(filter.key)],
|
|
168
|
+
options: filter.options,
|
|
169
|
+
config: filter.config
|
|
170
|
+
}, null, 8, ["modelValue", "onUpdate:modelValue", "options", "config"]))
|
|
171
|
+
])
|
|
172
|
+
]),
|
|
173
|
+
_: 2
|
|
174
|
+
}, 1032, ["isPopupOpen"]);
|
|
175
|
+
}), 128))
|
|
176
|
+
]);
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
export {
|
|
181
|
+
_sfc_main as default
|
|
182
|
+
};
|
|
183
|
+
//# sourceMappingURL=Filters.vue2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Filters.vue2.js","sources":["../../../../../../../../src/modules/globals/views/components/sections/Filters.vue"],"sourcesContent":["<!-- FiltersBar.vue -->\n<template>\n <div class=\"flex gap-thin\">\n <!-- All Filters Button -->\n <button\n @click=\"showAllFilters = true\"\n class=\"btn-filter radius-medium pd-thin bg-light\"\n :class=\"{ 'bg-primary t-white': hasActiveFilters }\"\n >\n <IconFilter class=\"w-1r h-auto\" />\n <span v-if=\"activeFiltersCount\" class=\"ml-thin\">{{ activeFiltersCount }}</span>\n </button>\n\n <!-- Individual Filter Buttons -->\n <button\n v-for=\"(filter, idx) in filters\"\n :key=\"idx\"\n @click=\"() => openFilter(idx)\"\n class=\"btn-filter radius-medium pd-thin bg-light\"\n :class=\"{ 'bg-primary t-white': getFilterActiveState(filter) }\"\n >\n {{ getFilterLabel(filter) }}\n </button>\n\n <!-- All Filters Popup -->\n <Popup\n v-model:show=\"showAllFilters\"\n align=\"bottom center\"\n class=\"w-100 max-h-80vh\"\n >\n <div class=\"pd-medium bg-white radius-top-medium\">\n <div class=\"flex justify-between align-center mb-medium\">\n <h3 class=\"t-h3\">Filters</h3>\n <IconCross @click=\"showAllFilters = false\" class=\"w-1r h-auto cursor-pointer\" />\n </div>\n \n <div class=\"filters-container\">\n <div v-for=\"(filter, idx) in filters\" :key=\"idx\" class=\"mb-medium\">\n <h4 class=\"t-h4 mb-thin\">{{ filter.title }}</h4>\n <component\n :is=\"getFilterComponent(filter.type)\"\n v-model=\"appliedFilters[filter.key]\"\n :options=\"filter.options\"\n :config=\"filter.config\"\n />\n </div>\n </div>\n\n <div class=\"flex gap-thin mt-medium\">\n <button @click=\"applyFilters\" class=\"btn btn-primary flex-1\">Apply</button>\n <button @click=\"resetFilters\" class=\"btn btn-secondary\">Reset</button>\n </div>\n </div>\n </Popup>\n\n <!-- Individual Filter Popups -->\n <Popup\n :isPopupOpen=\"individualPopups[idx]\" \n v-for=\"(filter, idx) in filters\"\n :key=\"`popup-${idx}`\"\n align=\"bottom center\"\n class=\"min-w-200\"\n >\n <div class=\"pd-medium bg-white radius-medium\">\n <h4 class=\"t-h4 mb-thin\">{{ filter.title }}</h4>\n <component\n :is=\"getFilterComponent(filter.type)\"\n v-model=\"appliedFilters[filter.key]\"\n :options=\"filter.options\"\n :config=\"filter.config\"\n @update:modelValue=\"() => updateFilter(filter.key)\"\n />\n </div>\n </Popup>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, reactive } from 'vue'\nimport Field from '@martyrs/src/components/Field/Field.vue';\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport Select from '@martyrs/src/components/Select/Select.vue';\nimport IconFilter from '@martyrs/src/modules/icons/navigation/IconFilter.vue'\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue'\n\n// Import filter components\nimport FilterOptions from './filters/FilterOptions.vue'\nimport FilterRange from './filters/FilterRange.vue'\nimport FilterPrice from './filters/FilterPrice.vue'\n\nconst props = defineProps({\n filters: {\n type: Array,\n required: true\n }\n})\n\nconst model = defineModel({\n type: Object,\n default: () => ({})\n})\n\n// State\nconst showAllFilters = ref(false)\nconst individualPopups = reactive({})\nconst appliedFilters = reactive({})\n\n// Initialize filters\nprops.filters.forEach(filter => {\n individualPopups[props.filters.indexOf(filter)] = false\n if (!appliedFilters[filter.key]) {\n appliedFilters[filter.key] = filter.defaultValue || null\n }\n})\n\n// Computed\nconst hasActiveFilters = computed(() => {\n return Object.values(appliedFilters).some(v => v !== null && v !== undefined)\n})\n\nconst activeFiltersCount = computed(() => {\n return Object.values(appliedFilters).filter(v => v !== null && v !== undefined).length\n})\n\n// Methods\nconst getFilterComponent = (type) => {\n if (typeof type === 'object') return type\n \n const components = {\n options: FilterOptions,\n range: FilterRange,\n price: FilterPrice\n }\n \n return components[type] || FilterOptions\n}\n\nconst getFilterLabel = (filter) => {\n const value = appliedFilters[filter.key]\n if (!value) return filter.title\n \n if (Array.isArray(value) && value.length) {\n return `${filter.title} (${value.length})`\n }\n \n if (typeof value === 'object' && (value.min || value.max)) {\n return `${filter.title}: ${value.min || 0}-${value.max || '∞'}`\n }\n \n return `${filter.title}: ${value}`\n}\n\nconst getFilterActiveState = (filter) => {\n const value = appliedFilters[filter.key]\n return value !== null && value !== undefined\n}\n\nconst openFilter = (idx) => {\n individualPopups[idx] = true\n}\n\nconst updateFilter = (key) => {\n model.value = { ...appliedFilters }\n}\n\nconst applyFilters = () => {\n model.value = { ...appliedFilters }\n showAllFilters.value = false\n}\n\nconst resetFilters = () => {\n Object.keys(appliedFilters).forEach(key => {\n appliedFilters[key] = null\n })\n model.value = {}\n}\n</script>\n\n<style>\n.btn-filter {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n border: none;\n cursor: pointer;\n transition: all 0.2s;\n white-space: nowrap;\n}\n\n.btn-filter:hover {\n opacity: 0.8;\n}\n\n.filters-container {\n max-height: 60vh;\n overflow-y: auto;\n}\n</style>"],"names":["_useModel","FilterOptions","FilterRange","FilterPrice"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0FA,UAAM,QAAQ;AAOd,UAAM,QAAQA,SAGb,SAAA,YAAA;AAGD,UAAM,iBAAiB,IAAI,KAAK;AAChC,UAAM,mBAAmB,SAAS,CAAE,CAAA;AACpC,UAAM,iBAAiB,SAAS,CAAE,CAAA;AAGlC,UAAM,QAAQ,QAAQ,YAAU;AAC9B,uBAAiB,MAAM,QAAQ,QAAQ,MAAM,CAAC,IAAI;AAClD,UAAI,CAAC,eAAe,OAAO,GAAG,GAAG;AAC/B,uBAAe,OAAO,GAAG,IAAI,OAAO,gBAAgB;AAAA,MACxD;AAAA,IACA,CAAC;AAGD,UAAM,mBAAmB,SAAS,MAAM;AACtC,aAAO,OAAO,OAAO,cAAc,EAAE,KAAK,OAAK,MAAM,QAAQ,MAAM,MAAS;AAAA,IAC9E,CAAC;AAED,UAAM,qBAAqB,SAAS,MAAM;AACxC,aAAO,OAAO,OAAO,cAAc,EAAE,OAAO,OAAK,MAAM,QAAQ,MAAM,MAAS,EAAE;AAAA,IAClF,CAAC;AAGD,UAAM,qBAAqB,CAAC,SAAS;AACnC,UAAI,OAAO,SAAS,SAAU,QAAO;AAErC,YAAM,aAAa;AAAA,QACjB,SAASC;AAAAA,QACT,OAAOC;AAAAA,QACP,OAAOC;AAAAA,MACX;AAEE,aAAO,WAAW,IAAI,KAAKF;AAAAA,IAC7B;AAEA,UAAM,iBAAiB,CAAC,WAAW;AACjC,YAAM,QAAQ,eAAe,OAAO,GAAG;AACvC,UAAI,CAAC,MAAO,QAAO,OAAO;AAE1B,UAAI,MAAM,QAAQ,KAAK,KAAK,MAAM,QAAQ;AACxC,eAAO,GAAG,OAAO,KAAK,KAAK,MAAM,MAAM;AAAA,MAC3C;AAEE,UAAI,OAAO,UAAU,aAAa,MAAM,OAAO,MAAM,MAAM;AACzD,eAAO,GAAG,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC,IAAI,MAAM,OAAO,GAAG;AAAA,MACjE;AAEE,aAAO,GAAG,OAAO,KAAK,KAAK,KAAK;AAAA,IAClC;AAEA,UAAM,uBAAuB,CAAC,WAAW;AACvC,YAAM,QAAQ,eAAe,OAAO,GAAG;AACvC,aAAO,UAAU,QAAQ,UAAU;AAAA,IACrC;AAEA,UAAM,aAAa,CAAC,QAAQ;AAC1B,uBAAiB,GAAG,IAAI;AAAA,IAC1B;AAEA,UAAM,eAAe,CAAC,QAAQ;AAC5B,YAAM,QAAQ,EAAE,GAAG,eAAc;AAAA,IACnC;AAEA,UAAM,eAAe,MAAM;AACzB,YAAM,QAAQ,EAAE,GAAG,eAAc;AACjC,qBAAe,QAAQ;AAAA,IACzB;AAEA,UAAM,eAAe,MAAM;AACzB,aAAO,KAAK,cAAc,EAAE,QAAQ,SAAO;AACzC,uBAAe,GAAG,IAAI;AAAA,MACvB,CAAA;AACD,YAAM,QAAQ,CAAA;AAAA,IAChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|