@tabres/react 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Readme.md +49 -0
- package/dist/components/BackIcon/BackIcon.d.ts +8 -0
- package/dist/components/BackIcon/index.d.ts +1 -0
- package/dist/components/Events/Events.d.ts +10 -0
- package/dist/components/Events/EventsToolbar.d.ts +7 -0
- package/dist/components/Events/index.d.ts +1 -0
- package/dist/components/Pricing/Pricing.d.ts +11 -0
- package/dist/components/Pricing/PricingPlanAmount.d.ts +9 -0
- package/dist/components/Pricing/index.d.ts +1 -0
- package/dist/components/PublicMenu/Branches/BranchCard/BranchCard.d.ts +6 -0
- package/dist/components/PublicMenu/Branches/BranchCard/Parent.d.ts +7 -0
- package/dist/components/PublicMenu/Branches/BranchCard/index.d.ts +1 -0
- package/dist/components/PublicMenu/Branches/Branches.d.ts +2 -0
- package/dist/components/PublicMenu/Branches/index.d.ts +1 -0
- package/dist/components/PublicMenu/Categories/Categories.d.ts +10 -0
- package/dist/components/PublicMenu/Categories/index.d.ts +1 -0
- package/dist/components/PublicMenu/Customer/CustomerAddress/AddressContent/AddressContent.d.ts +2 -0
- package/dist/components/PublicMenu/Customer/CustomerAddress/AddressContent/index.d.ts +1 -0
- package/dist/components/PublicMenu/Customer/CustomerAddress/CustomerAddress.d.ts +2 -0
- package/dist/components/PublicMenu/Customer/CustomerAddress/NoAddressContent/NoAddressContent.d.ts +2 -0
- package/dist/components/PublicMenu/Customer/CustomerAddress/NoAddressContent/index.d.ts +1 -0
- package/dist/components/PublicMenu/Customer/CustomerAddress/index.d.ts +1 -0
- package/dist/components/PublicMenu/Header/BranchBusinessHours/BranchBusinessHours.d.ts +7 -0
- package/dist/components/PublicMenu/Header/BranchBusinessHours/HoursList/HoursList.d.ts +7 -0
- package/dist/components/PublicMenu/Header/BranchBusinessHours/HoursList/index.d.ts +1 -0
- package/dist/components/PublicMenu/Header/BranchBusinessHours/index.d.ts +1 -0
- package/dist/components/PublicMenu/Header/BranchHeader/BranchHeader.d.ts +2 -0
- package/dist/components/PublicMenu/Header/BranchHeader/HeaderLinks/HeaderLinks.d.ts +2 -0
- package/dist/components/PublicMenu/Header/BranchHeader/HeaderLinks/index.d.ts +1 -0
- package/dist/components/PublicMenu/Header/BranchHeader/index.d.ts +1 -0
- package/dist/components/PublicMenu/Header/BusinessHeader/BusinessHeader.d.ts +2 -0
- package/dist/components/PublicMenu/Header/BusinessHeader/index.d.ts +1 -0
- package/dist/components/PublicMenu/Header/Header.d.ts +2 -0
- package/dist/components/PublicMenu/Header/Languages/Languages.d.ts +2 -0
- package/dist/components/PublicMenu/Header/Languages/index.d.ts +1 -0
- package/dist/components/PublicMenu/Header/index.d.ts +1 -0
- package/dist/components/PublicMenu/MenuContent/MenuContent.d.ts +6 -0
- package/dist/components/PublicMenu/MenuContent/index.d.ts +1 -0
- package/dist/components/PublicMenu/Modals/AddUpdateAddress/AddUpdateAddress.d.ts +3 -0
- package/dist/components/PublicMenu/Modals/AddUpdateAddress/index.d.ts +1 -0
- package/dist/components/PublicMenu/Modals/AddUpdateNote/AddUpdateNote.d.ts +3 -0
- package/dist/components/PublicMenu/Modals/AddUpdateNote/index.d.ts +1 -0
- package/dist/components/PublicMenu/Modals/Auth/Auth.d.ts +3 -0
- package/dist/components/PublicMenu/Modals/Auth/EmailStep.d.ts +8 -0
- package/dist/components/PublicMenu/Modals/Auth/OTPStep.d.ts +7 -0
- package/dist/components/PublicMenu/Modals/Auth/PhoneStep.d.ts +7 -0
- package/dist/components/PublicMenu/Modals/Auth/index.d.ts +1 -0
- package/dist/components/PublicMenu/Modals/BranchBusinessHours/BranchBusinessHours.d.ts +3 -0
- package/dist/components/PublicMenu/Modals/BranchBusinessHours/index.d.ts +1 -0
- package/dist/components/PublicMenu/OrderDrawer/OrderDrawer.d.ts +2 -0
- package/dist/components/PublicMenu/OrderDrawer/OrderDrawerCart.d.ts +2 -0
- package/dist/components/PublicMenu/OrderDrawer/OrderDrawerCompleted.d.ts +2 -0
- package/dist/components/PublicMenu/OrderDrawer/OrderDrawerDetails.d.ts +2 -0
- package/dist/components/PublicMenu/OrderDrawer/OrderDrawerFooter.d.ts +6 -0
- package/dist/components/PublicMenu/OrderDrawer/OrderTable/OrderTable.d.ts +2 -0
- package/dist/components/PublicMenu/OrderDrawer/OrderTable/OrderTableUI.d.ts +13 -0
- package/dist/components/PublicMenu/OrderDrawer/OrderTable/index.d.ts +1 -0
- package/dist/components/PublicMenu/OrderDrawer/index.d.ts +1 -0
- package/dist/components/PublicMenu/OrderFAB/OrderFAB.d.ts +8 -0
- package/dist/components/PublicMenu/OrderFAB/OrderFABContainer.d.ts +6 -0
- package/dist/components/PublicMenu/OrderFAB/index.d.ts +2 -0
- package/dist/components/PublicMenu/OrderItemsList/OrderItemsList.d.ts +5 -0
- package/dist/components/PublicMenu/OrderItemsList/OrderNoItems.d.ts +2 -0
- package/dist/components/PublicMenu/OrderItemsList/index.d.ts +1 -0
- package/dist/components/PublicMenu/OrderListItem/OptionsInfo/OptionsInfo.d.ts +10 -0
- package/dist/components/PublicMenu/OrderListItem/OptionsInfo/index.d.ts +1 -0
- package/dist/components/PublicMenu/OrderListItem/OrderListItem.d.ts +7 -0
- package/dist/components/PublicMenu/OrderListItem/index.d.ts +1 -0
- package/dist/components/PublicMenu/OrderMethods/OrderMethods.d.ts +11 -0
- package/dist/components/PublicMenu/OrderMethods/OrderMethods.types.d.ts +9 -0
- package/dist/components/PublicMenu/OrderMethods/index.d.ts +1 -0
- package/dist/components/PublicMenu/OrderPaymentSummary/OrderPaymentSummary.d.ts +14 -0
- package/dist/components/PublicMenu/OrderPaymentSummary/index.d.ts +1 -0
- package/dist/components/PublicMenu/OrderStepper/OrderStepper.d.ts +8 -0
- package/dist/components/PublicMenu/OrderStepper/index.d.ts +1 -0
- package/dist/components/PublicMenu/ProductAddons/ProductAddons.d.ts +16 -0
- package/dist/components/PublicMenu/ProductAddons/index.d.ts +1 -0
- package/dist/components/PublicMenu/ProductDetails/ProductDetails.d.ts +3 -0
- package/dist/components/PublicMenu/ProductDetails/ProductDetailsUI.d.ts +32 -0
- package/dist/components/PublicMenu/ProductDetails/index.d.ts +1 -0
- package/dist/components/PublicMenu/ProductInOrder/ProductInOrder.d.ts +10 -0
- package/dist/components/PublicMenu/ProductInOrder/index.d.ts +1 -0
- package/dist/components/PublicMenu/ProductQuantity/ProductQuantity.d.ts +12 -0
- package/dist/components/PublicMenu/ProductQuantity/index.d.ts +1 -0
- package/dist/components/PublicMenu/ProductVariants/ProductVariants.d.ts +11 -0
- package/dist/components/PublicMenu/ProductVariants/index.d.ts +1 -0
- package/dist/components/PublicMenu/Products/Products.d.ts +13 -0
- package/dist/components/PublicMenu/Products/index.d.ts +1 -0
- package/dist/components/PublicMenu/ProductsGridItem/ProductsGridItem.d.ts +3 -0
- package/dist/components/PublicMenu/ProductsGridItem/ProductsGridItem.types.d.ts +13 -0
- package/dist/components/PublicMenu/ProductsGridItem/ProductsGridItemContainer.d.ts +4 -0
- package/dist/components/PublicMenu/ProductsGridItem/index.d.ts +2 -0
- package/dist/components/PublicMenu/ProductsListItem/ProductsListItem.d.ts +9 -0
- package/dist/components/PublicMenu/ProductsListItem/index.d.ts +1 -0
- package/dist/components/PublicMenu/PublicMenu.d.ts +6 -0
- package/dist/components/PublicMenu/Videos/Video/Actions/Actions.d.ts +6 -0
- package/dist/components/PublicMenu/Videos/Video/Actions/index.d.ts +1 -0
- package/dist/components/PublicMenu/Videos/Video/Video.d.ts +11 -0
- package/dist/components/PublicMenu/Videos/Video/Video.test.d.ts +1 -0
- package/dist/components/PublicMenu/Videos/Video/VideoData/VideoData.d.ts +6 -0
- package/dist/components/PublicMenu/Videos/Video/VideoData/index.d.ts +1 -0
- package/dist/components/PublicMenu/Videos/Video/index.d.ts +1 -0
- package/dist/components/PublicMenu/Videos/VideoFeed/VideoFeed.d.ts +2 -0
- package/dist/components/PublicMenu/Videos/VideoFeed/index.d.ts +1 -0
- package/dist/components/PublicMenu/index.d.ts +1 -0
- package/dist/components/Quantity/Quantity.d.ts +11 -0
- package/dist/components/Quantity/index.d.ts +1 -0
- package/dist/components/ScrollToTop/ScrollToTop.d.ts +7 -0
- package/dist/components/ScrollToTop/index.d.ts +1 -0
- package/dist/constants/analytics.d.ts +6 -0
- package/dist/constants/constants/analytics.d.ts +6 -0
- package/dist/constants/constants/env.d.ts +1 -0
- package/dist/constants/constants/index.d.ts +4 -0
- package/dist/constants/env.d.ts +1 -0
- package/dist/constants/index.d.ts +4 -0
- package/dist/constants/index.esm.js +2 -0
- package/dist/constants/index.esm.js.map +1 -0
- package/dist/constants/index.js +2 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/modules/feature/constants.d.ts +4 -0
- package/dist/constants/modules/feature/models.d.ts +8 -0
- package/dist/constants/modules/subscription/constants.d.ts +10 -0
- package/dist/constants/modules/subscription/models.d.ts +36 -0
- package/dist/constants/modules/view/constants.d.ts +16 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/translation.d.ts +5 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.esm.js +2 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/models/components/PublicMenu/OrderMethods/OrderMethods.types.d.ts +9 -0
- package/dist/models/components/PublicMenu/ProductsGridItem/ProductsGridItem.types.d.ts +13 -0
- package/dist/models/constants/env.d.ts +1 -0
- package/dist/models/hooks/translation.d.ts +5 -0
- package/dist/models/index.d.ts +16 -0
- package/dist/models/index.esm.js +2 -0
- package/dist/models/index.esm.js.map +1 -0
- package/dist/models/index.js +2 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/models/index.d.ts +16 -0
- package/dist/models/modules/addon/models.d.ts +27 -0
- package/dist/models/modules/addon/utils.d.ts +14 -0
- package/dist/models/modules/branch/hooks.d.ts +16 -0
- package/dist/models/modules/branch/models.d.ts +48 -0
- package/dist/models/modules/branch/utils.d.ts +7 -0
- package/dist/models/modules/business/constants.d.ts +2 -0
- package/dist/models/modules/business/hooks.d.ts +15 -0
- package/dist/models/modules/business/models.d.ts +31 -0
- package/dist/models/modules/category/models.d.ts +10 -0
- package/dist/models/modules/common/services.d.ts +1 -0
- package/dist/models/modules/customer/hooks.d.ts +5 -0
- package/dist/models/modules/customer/models.d.ts +50 -0
- package/dist/models/modules/customer/services.d.ts +9 -0
- package/dist/models/modules/feature/models.d.ts +8 -0
- package/dist/models/modules/menu/hooks.d.ts +1 -0
- package/dist/models/modules/menu/index.d.ts +3 -0
- package/dist/models/modules/menu/models.d.ts +25 -0
- package/dist/models/modules/menu/utils.d.ts +4 -0
- package/dist/models/modules/order/constants.d.ts +17 -0
- package/dist/models/modules/order/hooks.d.ts +18 -0
- package/dist/models/modules/order/index.d.ts +5 -0
- package/dist/models/modules/order/models.d.ts +108 -0
- package/dist/models/modules/order/services.d.ts +4 -0
- package/dist/models/modules/order/utils.d.ts +29 -0
- package/dist/models/modules/product/hooks.d.ts +9 -0
- package/dist/models/modules/product/index.d.ts +3 -0
- package/dist/models/modules/product/models.d.ts +50 -0
- package/dist/models/modules/product/utils.d.ts +185 -0
- package/dist/models/modules/store/hooks.d.ts +6 -0
- package/dist/models/modules/subscription/models.d.ts +36 -0
- package/dist/models/modules/table/hooks.d.ts +4 -0
- package/dist/models/modules/table/models.d.ts +66 -0
- package/dist/models/modules/user/models.d.ts +95 -0
- package/dist/models/modules/video/models.d.ts +11 -0
- package/dist/models/modules/view/constants.d.ts +16 -0
- package/dist/models/modules/view/hooks.d.ts +2 -0
- package/dist/models/modules/view/models.d.ts +7 -0
- package/dist/models/modules/view/services.d.ts +2 -0
- package/dist/models/modules/view/utils.d.ts +16 -0
- package/dist/models/services/api/index.d.ts +5 -0
- package/dist/models/services/translation/index.d.ts +3 -0
- package/dist/models/services/translation/locales/az/auth.d.ts +7 -0
- package/dist/models/services/translation/locales/az/branch.d.ts +14 -0
- package/dist/models/services/translation/locales/az/common.d.ts +6 -0
- package/dist/models/services/translation/locales/az/customer.d.ts +17 -0
- package/dist/models/services/translation/locales/az/error.d.ts +20 -0
- package/dist/models/services/translation/locales/az/events.d.ts +8 -0
- package/dist/models/services/translation/locales/az/index.d.ts +151 -0
- package/dist/models/services/translation/locales/az/order.d.ts +47 -0
- package/dist/models/services/translation/locales/az/pricing.d.ts +37 -0
- package/dist/models/services/translation/locales/en/auth.d.ts +2 -0
- package/dist/models/services/translation/locales/en/branch.d.ts +10 -0
- package/dist/models/services/translation/locales/en/common.d.ts +2 -0
- package/dist/models/services/translation/locales/en/customer.d.ts +2 -0
- package/dist/models/services/translation/locales/en/error.d.ts +16 -0
- package/dist/models/services/translation/locales/en/events.d.ts +2 -0
- package/dist/models/services/translation/locales/en/index.d.ts +33 -0
- package/dist/models/services/translation/locales/en/order.d.ts +2 -0
- package/dist/models/services/translation/locales/en/pricing.d.ts +2 -0
- package/dist/models/services/translation/locales/et/auth.d.ts +7 -0
- package/dist/models/services/translation/locales/et/branch.d.ts +13 -0
- package/dist/models/services/translation/locales/et/common.d.ts +6 -0
- package/dist/models/services/translation/locales/et/customer.d.ts +17 -0
- package/dist/models/services/translation/locales/et/error.d.ts +20 -0
- package/dist/models/services/translation/locales/et/events.d.ts +8 -0
- package/dist/models/services/translation/locales/et/index.d.ts +147 -0
- package/dist/models/services/translation/locales/et/order.d.ts +46 -0
- package/dist/models/services/translation/locales/et/pricing.d.ts +35 -0
- package/dist/models/services/translation/locales/index.d.ts +769 -0
- package/dist/models/services/translation/locales/nl/auth.d.ts +7 -0
- package/dist/models/services/translation/locales/nl/branch.d.ts +13 -0
- package/dist/models/services/translation/locales/nl/common.d.ts +6 -0
- package/dist/models/services/translation/locales/nl/customer.d.ts +17 -0
- package/dist/models/services/translation/locales/nl/error.d.ts +20 -0
- package/dist/models/services/translation/locales/nl/events.d.ts +8 -0
- package/dist/models/services/translation/locales/nl/index.d.ts +147 -0
- package/dist/models/services/translation/locales/nl/order.d.ts +46 -0
- package/dist/models/services/translation/locales/nl/pricing.d.ts +35 -0
- package/dist/models/services/translation/locales/ru/auth.d.ts +7 -0
- package/dist/models/services/translation/locales/ru/branch.d.ts +13 -0
- package/dist/models/services/translation/locales/ru/common.d.ts +6 -0
- package/dist/models/services/translation/locales/ru/customer.d.ts +17 -0
- package/dist/models/services/translation/locales/ru/error.d.ts +20 -0
- package/dist/models/services/translation/locales/ru/events.d.ts +8 -0
- package/dist/models/services/translation/locales/ru/index.d.ts +147 -0
- package/dist/models/services/translation/locales/ru/order.d.ts +46 -0
- package/dist/models/services/translation/locales/ru/pricing.d.ts +35 -0
- package/dist/models/services/translation/locales/tr/auth.d.ts +7 -0
- package/dist/models/services/translation/locales/tr/branch.d.ts +13 -0
- package/dist/models/services/translation/locales/tr/common.d.ts +6 -0
- package/dist/models/services/translation/locales/tr/customer.d.ts +17 -0
- package/dist/models/services/translation/locales/tr/error.d.ts +20 -0
- package/dist/models/services/translation/locales/tr/events.d.ts +8 -0
- package/dist/models/services/translation/locales/tr/index.d.ts +147 -0
- package/dist/models/services/translation/locales/tr/order.d.ts +46 -0
- package/dist/models/services/translation/locales/tr/pricing.d.ts +35 -0
- package/dist/models/store/index.d.ts +7 -0
- package/dist/models/store/order.d.ts +42 -0
- package/dist/modules/addon/index.d.ts +2 -0
- package/dist/modules/addon/models.d.ts +27 -0
- package/dist/modules/addon/utils.d.ts +14 -0
- package/dist/modules/addon/utils.test.d.ts +1 -0
- package/dist/modules/branch/hooks.d.ts +16 -0
- package/dist/modules/branch/hooks.test.d.ts +1 -0
- package/dist/modules/branch/index.d.ts +3 -0
- package/dist/modules/branch/models.d.ts +48 -0
- package/dist/modules/branch/utils.d.ts +7 -0
- package/dist/modules/branch/utils.test.d.ts +1 -0
- package/dist/modules/business/constants.d.ts +2 -0
- package/dist/modules/business/hooks.d.ts +15 -0
- package/dist/modules/business/hooks.test.d.ts +1 -0
- package/dist/modules/business/index.d.ts +2 -0
- package/dist/modules/business/models.d.ts +31 -0
- package/dist/modules/category/hooks.d.ts +3 -0
- package/dist/modules/category/hooks.test.d.ts +1 -0
- package/dist/modules/category/index.d.ts +3 -0
- package/dist/modules/category/models.d.ts +10 -0
- package/dist/modules/category/utils.d.ts +3 -0
- package/dist/modules/category/utils.test.d.ts +1 -0
- package/dist/modules/common/index.d.ts +1 -0
- package/dist/modules/common/services.d.ts +1 -0
- package/dist/modules/customer/hooks.d.ts +5 -0
- package/dist/modules/customer/hooks.test.d.ts +1 -0
- package/dist/modules/customer/index.d.ts +4 -0
- package/dist/modules/customer/models.d.ts +50 -0
- package/dist/modules/customer/services.d.ts +9 -0
- package/dist/modules/customer/utils.d.ts +7 -0
- package/dist/modules/customer/utils.test.d.ts +1 -0
- package/dist/modules/feature/constants.d.ts +4 -0
- package/dist/modules/feature/hooks.d.ts +2 -0
- package/dist/modules/feature/hooks.test.d.ts +1 -0
- package/dist/modules/feature/index.d.ts +3 -0
- package/dist/modules/feature/models.d.ts +8 -0
- package/dist/modules/feature/util.test.d.ts +1 -0
- package/dist/modules/feature/utils.d.ts +2 -0
- package/dist/modules/menu/hooks.d.ts +1 -0
- package/dist/modules/menu/index.d.ts +3 -0
- package/dist/modules/menu/models.d.ts +25 -0
- package/dist/modules/menu/utils.d.ts +4 -0
- package/dist/modules/menu/utils.test.d.ts +1 -0
- package/dist/modules/order/constants.d.ts +17 -0
- package/dist/modules/order/hooks.d.ts +18 -0
- package/dist/modules/order/hooks.test.d.ts +1 -0
- package/dist/modules/order/index.d.ts +5 -0
- package/dist/modules/order/models.d.ts +108 -0
- package/dist/modules/order/services.d.ts +4 -0
- package/dist/modules/order/utils.d.ts +29 -0
- package/dist/modules/order/utils.test.d.ts +1 -0
- package/dist/modules/product/hooks.d.ts +9 -0
- package/dist/modules/product/index.d.ts +3 -0
- package/dist/modules/product/models.d.ts +50 -0
- package/dist/modules/product/utils.d.ts +185 -0
- package/dist/modules/store/hooks.d.ts +6 -0
- package/dist/modules/subscription/constants.d.ts +10 -0
- package/dist/modules/subscription/index.d.ts +3 -0
- package/dist/modules/subscription/models.d.ts +36 -0
- package/dist/modules/subscription/utils.d.ts +1 -0
- package/dist/modules/table/hooks.d.ts +4 -0
- package/dist/modules/table/index.d.ts +2 -0
- package/dist/modules/table/models.d.ts +66 -0
- package/dist/modules/user/index.d.ts +2 -0
- package/dist/modules/user/models.d.ts +95 -0
- package/dist/modules/user/utils.d.ts +3 -0
- package/dist/modules/user/utils.test.d.ts +1 -0
- package/dist/modules/video/__mocks.d.ts +7 -0
- package/dist/modules/video/hooks.d.ts +13 -0
- package/dist/modules/video/hooks.test.d.ts +1 -0
- package/dist/modules/video/index.d.ts +2 -0
- package/dist/modules/video/models.d.ts +11 -0
- package/dist/modules/view/constants.d.ts +16 -0
- package/dist/modules/view/hooks.d.ts +2 -0
- package/dist/modules/view/index.d.ts +4 -0
- package/dist/modules/view/models.d.ts +7 -0
- package/dist/modules/view/services.d.ts +2 -0
- package/dist/modules/view/utils.d.ts +16 -0
- package/dist/modules/view/utils.test.d.ts +1 -0
- package/dist/services/api/index.d.ts +5 -0
- package/dist/services/translation/index.d.ts +3 -0
- package/dist/services/translation/locales/az/auth.d.ts +7 -0
- package/dist/services/translation/locales/az/branch.d.ts +14 -0
- package/dist/services/translation/locales/az/common.d.ts +6 -0
- package/dist/services/translation/locales/az/customer.d.ts +17 -0
- package/dist/services/translation/locales/az/error.d.ts +20 -0
- package/dist/services/translation/locales/az/events.d.ts +8 -0
- package/dist/services/translation/locales/az/index.d.ts +151 -0
- package/dist/services/translation/locales/az/order.d.ts +47 -0
- package/dist/services/translation/locales/az/pricing.d.ts +37 -0
- package/dist/services/translation/locales/en/auth.d.ts +2 -0
- package/dist/services/translation/locales/en/branch.d.ts +10 -0
- package/dist/services/translation/locales/en/common.d.ts +2 -0
- package/dist/services/translation/locales/en/customer.d.ts +2 -0
- package/dist/services/translation/locales/en/error.d.ts +16 -0
- package/dist/services/translation/locales/en/events.d.ts +2 -0
- package/dist/services/translation/locales/en/index.d.ts +33 -0
- package/dist/services/translation/locales/en/order.d.ts +2 -0
- package/dist/services/translation/locales/en/pricing.d.ts +2 -0
- package/dist/services/translation/locales/et/auth.d.ts +7 -0
- package/dist/services/translation/locales/et/branch.d.ts +13 -0
- package/dist/services/translation/locales/et/common.d.ts +6 -0
- package/dist/services/translation/locales/et/customer.d.ts +17 -0
- package/dist/services/translation/locales/et/error.d.ts +20 -0
- package/dist/services/translation/locales/et/events.d.ts +8 -0
- package/dist/services/translation/locales/et/index.d.ts +147 -0
- package/dist/services/translation/locales/et/order.d.ts +46 -0
- package/dist/services/translation/locales/et/pricing.d.ts +35 -0
- package/dist/services/translation/locales/index.d.ts +769 -0
- package/dist/services/translation/locales/nl/auth.d.ts +7 -0
- package/dist/services/translation/locales/nl/branch.d.ts +13 -0
- package/dist/services/translation/locales/nl/common.d.ts +6 -0
- package/dist/services/translation/locales/nl/customer.d.ts +17 -0
- package/dist/services/translation/locales/nl/error.d.ts +20 -0
- package/dist/services/translation/locales/nl/events.d.ts +8 -0
- package/dist/services/translation/locales/nl/index.d.ts +147 -0
- package/dist/services/translation/locales/nl/order.d.ts +46 -0
- package/dist/services/translation/locales/nl/pricing.d.ts +35 -0
- package/dist/services/translation/locales/ru/auth.d.ts +7 -0
- package/dist/services/translation/locales/ru/branch.d.ts +13 -0
- package/dist/services/translation/locales/ru/common.d.ts +6 -0
- package/dist/services/translation/locales/ru/customer.d.ts +17 -0
- package/dist/services/translation/locales/ru/error.d.ts +20 -0
- package/dist/services/translation/locales/ru/events.d.ts +8 -0
- package/dist/services/translation/locales/ru/index.d.ts +147 -0
- package/dist/services/translation/locales/ru/order.d.ts +46 -0
- package/dist/services/translation/locales/ru/pricing.d.ts +35 -0
- package/dist/services/translation/locales/tr/auth.d.ts +7 -0
- package/dist/services/translation/locales/tr/branch.d.ts +13 -0
- package/dist/services/translation/locales/tr/common.d.ts +6 -0
- package/dist/services/translation/locales/tr/customer.d.ts +17 -0
- package/dist/services/translation/locales/tr/error.d.ts +20 -0
- package/dist/services/translation/locales/tr/events.d.ts +8 -0
- package/dist/services/translation/locales/tr/index.d.ts +147 -0
- package/dist/services/translation/locales/tr/order.d.ts +46 -0
- package/dist/services/translation/locales/tr/pricing.d.ts +35 -0
- package/dist/store/index.d.ts +7 -0
- package/dist/store/order.d.ts +42 -0
- package/dist/store/order.test.d.ts +1 -0
- package/dist/styles/ui.css +2 -0
- package/dist/styles/ui.css.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.esm.js +2 -0
- package/dist/utils/index.esm.js.map +1 -0
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/modules/addon/models.d.ts +27 -0
- package/dist/utils/modules/addon/utils.d.ts +14 -0
- package/dist/utils/modules/branch/models.d.ts +48 -0
- package/dist/utils/modules/business/models.d.ts +31 -0
- package/dist/utils/modules/category/models.d.ts +10 -0
- package/dist/utils/modules/category/utils.d.ts +3 -0
- package/dist/utils/modules/customer/models.d.ts +50 -0
- package/dist/utils/modules/customer/utils.d.ts +7 -0
- package/dist/utils/modules/feature/constants.d.ts +4 -0
- package/dist/utils/modules/feature/models.d.ts +8 -0
- package/dist/utils/modules/feature/utils.d.ts +2 -0
- package/dist/utils/modules/menu/models.d.ts +25 -0
- package/dist/utils/modules/menu/utils.d.ts +4 -0
- package/dist/utils/modules/order/constants.d.ts +17 -0
- package/dist/utils/modules/order/models.d.ts +108 -0
- package/dist/utils/modules/order/utils.d.ts +29 -0
- package/dist/utils/modules/product/models.d.ts +50 -0
- package/dist/utils/modules/product/utils.d.ts +185 -0
- package/dist/utils/modules/subscription/models.d.ts +36 -0
- package/dist/utils/modules/table/models.d.ts +66 -0
- package/dist/utils/modules/user/models.d.ts +95 -0
- package/dist/utils/modules/user/utils.d.ts +3 -0
- package/dist/utils/modules/video/models.d.ts +11 -0
- package/dist/utils/modules/view/constants.d.ts +16 -0
- package/dist/utils/modules/view/utils.d.ts +16 -0
- package/dist/utils/utils/index.d.ts +9 -0
- package/package.json +97 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["PublicMenu.module.scss","BusinessHeader.module.scss","Languages.module.scss","BranchHeader.module.scss","BackIcon.module.scss","HeaderLinks.module.scss","Auth.module.scss","HoursList.module.scss","ScrollToTop.module.scss","Branches.module.scss","BranchCard.module.scss","Categories.module.scss","Products.module.scss","ProductsListItem.module.scss","ProductsGridItem.module.scss","OrderFAB.module.scss","VideoFeed.module.scss","Video.module.scss","Actions.module.scss","VideoData.module.scss","ProductDetails.module.scss","Quantity.module.scss","ProductInOrder.module.scss","ProductVariants.module.scss","ProductAddons.module.scss","OrderDrawer.module.scss","OrderStepper.module.scss","OrderListItem.module.scss","ProductQuantity.module.scss","CustomerAddress.module.scss","OrderMethods.module.scss","OrderPaymentSummary.module.scss","Pricing.module.scss"],"names":[],"mappings":"AA8BA,6CACE,GACE,MACF,CACA,GACE,MACF,CACF,CACA,4CACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,8CACE,GACE,UACF,CACA,IACE,SACF,CACA,GACE,UACF,CACF,CACA,oDACE,GACE,QACF,CACA,GACE,WACF,CACF,CACA,2CACE,GACE,SACF,CACA,GACE,SACF,CACF,CA4BA,mDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,gDACE,GACE,0BACF,CACA,GACE,sBACF,CACF,CACA,qDACE,GACE,0BACF,CACA,GACE,uBACF,CACF,CACA,6CACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CACA,0CACE,GAEE,SAAU,CADV,kBAEF,CACA,IAEE,UAAY,CADZ,oBAEF,CACA,GAEE,SAAU,CADV,kBAEF,CACF,CACA,oCACE,qBAAyB,CAEzB,mBAAoB,CADpB,iBAEF,CACA,qEAME,aAAc,CALd,aAAc,CAId,gBAAkB,CADlB,sBAAuB,CADvB,iBAAkB,CADlB,UAKF,CChIA,iDACE,GACE,MACF,CACA,GACE,MACF,CACF,CACA,gDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,kDACE,GACE,UACF,CACA,IACE,SACF,CACA,GACE,UACF,CACF,CACA,wDACE,GACE,QACF,CACA,GACE,WACF,CACF,CACA,+CACE,GACE,SACF,CACA,GACE,SACF,CACF,CA4BA,uDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,oDACE,GACE,0BACF,CACA,GACE,sBACF,CACF,CACA,yDACE,GACE,0BACF,CACA,GACE,uBACF,CACF,CACA,iDACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CACA,8CACE,GAEE,SAAU,CADV,kBAEF,CACA,IAEE,UAAY,CADZ,oBAEF,CACA,GAEE,SAAU,CADV,kBAEF,CACF,CACA,wCAEE,YAAa,CAEb,kBAAmB,CADnB,iBAAkB,CAFlB,UAIF,CACA,4EAEE,WAAY,CACZ,mBAAiB,CAAjB,gBAAiB,CAFjB,UAGF,CACA,8EAWE,oBAAqB,CAFrB,+DAA2E,CAL3E,QAAS,CAIT,UAAc,CAEd,YAAa,CALb,MAAO,CAJP,YAAa,CACb,iBAAkB,CAIlB,OAAQ,CAHR,KAAM,CAIN,UAKF,CACA,iHAKE,iBAAkB,CAJlB,aAAc,CAEd,WAAY,CACZ,eAAgB,CAGhB,mBAAiB,CAAjB,gBAAiB,CADjB,eAAgB,CAJhB,UAMF,CACA,iHAEE,eAAgB,CADhB,uBAEF,CACA,oJACE,kBAAoB,CACpB,cAAe,CACf,eAAgB,CAChB,sBACF,CACA,yBACE,iHAEE,WAAY,CACZ,eAAgB,CAFhB,UAGF,CACF,CCrKA,4CACE,GACE,MACF,CACA,GACE,MACF,CACF,CACA,2CACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,6CACE,GACE,UACF,CACA,IACE,SACF,CACA,GACE,UACF,CACF,CACA,mDACE,GACE,QACF,CACA,GACE,WACF,CACF,CACA,0CACE,GACE,SACF,CACA,GACE,SACF,CACF,CA4BA,kDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,+CACE,GACE,0BACF,CACA,GACE,sBACF,CACF,CACA,oDACE,GACE,0BACF,CACA,GACE,uBACF,CACF,CACA,4CACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CACA,yCACE,GAEE,SAAU,CADV,kBAEF,CACA,IAEE,UAAY,CADZ,oBAEF,CACA,GAEE,SAAU,CADV,kBAEF,CACF,CACA,mCACE,iBAAkB,CAElB,UAAW,CADX,QAAS,CAET,SACF,CACA,4EAQE,kBAAmB,CAJnB,qBAAyB,CAQzB,qBAAyB,CAPzB,iBAAkB,CAIlB,cAAe,CAHf,YAAa,CAHb,eAAgB,CAFhB,aAAc,CAMd,sBAAuB,CAIvB,mBAAiB,CAAjB,gBAAiB,CADjB,eAAgB,CARhB,YAWF,CACA,oEAGE,oBAAqB,CADrB,aAAc,CAGd,eAAgB,CAJhB,cAAe,CAGf,OAEF,CACA,oGAQE,kBAAmB,CAJnB,qBAAyB,CAQzB,qBAAyB,CAPzB,iBAAkB,CAIlB,cAAe,CAHf,YAAa,CAHb,eAAgB,CAFhB,aAAc,CAMd,sBAAuB,CAIvB,mBAAiB,CAAjB,gBAAiB,CADjB,eAAgB,CAGhB,0BAA2B,CAC3B,wBAA0B,CAZ1B,YAaF,CACA,iHACE,oBACF,CACA,iHACE,oBACF,CACA,iHACE,oBACF,CACA,iHACE,oBACF,CACA,iHACE,oBACF,CACA,iHACE,oBACF,CACA,iHACE,oBACF,CACA,iHACE,oBACF,CACA,kHACE,oBACF,CACA,mGACE,sBAAkB,CAAlB,iBACF,CACA,mIACE,uBACF,CC/LA,+CACE,GACE,MACF,CACA,GACE,MACF,CACF,CACA,8CACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,gDACE,GACE,UACF,CACA,IACE,SACF,CACA,GACE,UACF,CACF,CACA,sDACE,GACE,QACF,CACA,GACE,WACF,CACF,CACA,6CACE,GACE,SACF,CACA,GACE,SACF,CACF,CA4BA,qDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,kDACE,GACE,0BACF,CACA,GACE,sBACF,CACF,CACA,uDACE,GACE,0BACF,CACA,GACE,uBACF,CACF,CACA,+CACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CACA,4CACE,GAEE,SAAU,CADV,kBAEF,CACA,IAEE,UAAY,CADZ,oBAEF,CACA,GAEE,SAAU,CADV,kBAEF,CACF,CACA,sCAEE,YAAa,CAEb,kBAAmB,CADnB,iBAAkB,CAFlB,UAIF,CACA,wEAEE,WAAY,CACZ,mBAAiB,CAAjB,gBAAiB,CAFjB,UAGF,CACA,0EAWE,oBAAqB,CAFrB,+DAA2E,CAN3E,QAAS,CAKT,UAAc,CAEd,YAAa,CANb,MAAO,CAGP,sBAAuB,CANvB,iBAAkB,CAIlB,OAAQ,CAHR,KAAM,CAIN,UAMF,CACA,2GAKE,iBAAkB,CAJlB,aAAc,CAEd,WAAY,CACZ,eAAgB,CAGhB,mBAAiB,CAAjB,gBAAiB,CADjB,eAAgB,CAJhB,UAMF,CACA,2GAEE,eAAgB,CADhB,uBAEF,CACA,4IACE,cAAe,CACf,eAAgB,CAChB,sBACF,CACA,+IACE,UAAc,CACd,eACF,CACA,uLAEE,YAAa,CACb,oBAAqB,CACrB,2BAA4B,CAH5B,mBAAoB,CAIpB,eAAgB,CAChB,sBAAuB,CACvB,kBACF,CCxMA,kCAIE,cAAe,CAHf,YAAa,CAEb,kBAAoB,CADpB,iBAGF,CCyBA,8CACE,GACE,MACF,CACA,GACE,MACF,CACF,CACA,6CACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,+CACE,GACE,UACF,CACA,IACE,SACF,CACA,GACE,UACF,CACF,CACA,qDACE,GACE,QACF,CACA,GACE,WACF,CACF,CACA,4CACE,GACE,SACF,CACA,GACE,SACF,CACF,CA4BA,oDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,iDACE,GACE,0BACF,CACA,GACE,sBACF,CACF,CACA,sDACE,GACE,0BACF,CACA,GACE,uBACF,CACF,CACA,8CACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CACA,2CACE,GAEE,SAAU,CADV,kBAEF,CACA,IAEE,UAAY,CADZ,oBAEF,CACA,GAEE,SAAU,CADV,kBAEF,CACF,CACA,qCAEE,eAAgB,CAGhB,YAAa,CACb,sBAAuB,CAHvB,MAAO,CAFP,iBAAkB,CAGlB,OAGF,CACA,sEAEE,qBAAyB,CACzB,oBAAqB,CACrB,qCAAgD,CAHhD,qBAAwB,CAIxB,sBAAkB,CAAlB,iBACF,CACA,6NAGE,kBAAmB,CACnB,cAAe,CAFf,YAAa,CAGb,aACF,CACA,6RAEE,WACF,CC7IA,uCACE,GACE,MACF,CACA,GACE,MACF,CACF,CACA,sCACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,wCACE,GACE,UACF,CACA,IACE,SACF,CACA,GACE,UACF,CACF,CACA,8CACE,GACE,QACF,CACA,GACE,WACF,CACF,CACA,qCACE,GACE,SACF,CACA,GACE,SACF,CACF,CA4BA,6CACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,0CACE,GACE,0BACF,CACA,GACE,sBACF,CACF,CACA,+CACE,GACE,0BACF,CACA,GACE,uBACF,CACF,CACA,uCACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CACA,oCACE,GAEE,SAAU,CADV,kBAEF,CACA,IAEE,UAAY,CADZ,oBAEF,CACA,GAEE,SAAU,CADV,kBAEF,CACF,CACA,4BAEE,WAAY,CADZ,cAEF,CACA,4DACE,gBACF,CACA,sDAIE,aAAc,CAHd,iBAAmB,CACnB,gBAAiB,CACjB,iBAAkB,CAElB,UACF,CACA,wDACE,aACF,CCpIA,4CACE,GACE,MACF,CACA,GACE,MACF,CACF,CACA,2CACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,6CACE,GACE,UACF,CACA,IACE,SACF,CACA,GACE,UACF,CACF,CACA,mDACE,GACE,QACF,CACA,GACE,WACF,CACF,CACA,0CACE,GACE,SACF,CACA,GACE,SACF,CACF,CA4BA,kDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,+CACE,GACE,0BACF,CACA,GACE,sBACF,CACF,CACA,oDACE,GACE,0BACF,CACA,GACE,uBACF,CACF,CACA,4CACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CACA,yCACE,GAEE,SAAU,CADV,kBAEF,CACA,IAEE,UAAY,CADZ,oBAEF,CACA,GAEE,SAAU,CADV,kBAEF,CACF,CACA,kEAGE,kCAAmC,CACnC,sBAAwB,CAFxB,sBAAuB,CADvB,UAIF,CCzHA,8CACE,GACE,MACF,CACA,GACE,MACF,CACF,CACA,6CACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,+CACE,GACE,UACF,CACA,IACE,SACF,CACA,GACE,UACF,CACF,CACA,qDACE,GACE,QACF,CACA,GACE,WACF,CACF,CACA,4CACE,GACE,SACF,CACA,GACE,SACF,CACF,CA4BA,oDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,iDACE,GACE,0BACF,CACA,GACE,sBACF,CACF,CACA,sDACE,GACE,0BACF,CACA,GACE,uBACF,CACF,CACA,8CACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CACA,2CACE,GAEE,SAAU,CADV,kBAEF,CACA,IAEE,UAAY,CADZ,oBAEF,CACA,GAEE,SAAU,CADV,kBAEF,CACF,CACA,qCAGE,WAAY,CAFZ,YAAa,CACb,cAAe,CAEf,UACF,CACA,uEACE,aACF,CC5HA,2CACE,GACE,MACF,CACA,GACE,MACF,CACF,CACA,0CACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,4CACE,GACE,UACF,CACA,IACE,SACF,CACA,GACE,UACF,CACF,CACA,kDACE,GACE,QACF,CACA,GACE,WACF,CACF,CACA,yCACE,GACE,SACF,CACA,GACE,SACF,CACF,CA4BA,iDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,8CACE,GACE,0BACF,CACA,GACE,sBACF,CACF,CACA,mDACE,GACE,0BACF,CACA,GACE,uBACF,CACF,CACA,2CACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CACA,wCACE,GAEE,SAAU,CADV,kBAEF,CACA,IAEE,UAAY,CADZ,oBAEF,CACA,GAEE,SAAU,CADV,kBAEF,CACF,CACA,iCACE,qBACF,CACA,mEAEE,YAAa,CACb,QAAS,CACT,kBAAmB,CACnB,wDAA2D,CAJ3D,mBAKF,CACA,yBACE,mEACE,yBACF,CACF,CClIA,6CACE,GACE,MACF,CACA,GACE,MACF,CACF,CACA,4CACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,8CACE,GACE,UACF,CACA,IACE,SACF,CACA,GACE,UACF,CACF,CACA,oDACE,GACE,QACF,CACA,GACE,WACF,CACF,CACA,2CACE,GACE,SACF,CACA,GACE,SACF,CACF,CA4BA,mDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,gDACE,GACE,0BACF,CACA,GACE,sBACF,CACF,CACA,qDACE,GACE,0BACF,CACA,GACE,uBACF,CACF,CACA,6CACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CACA,0CACE,GAEE,SAAU,CADV,kBAEF,CACA,IAEE,UAAY,CADZ,oBAEF,CACA,GAEE,SAAU,CADV,kBAEF,CACF,CACA,+BAGE,qBAAuB,CADvB,sCAA+C,CAE/C,eAAgB,CAChB,qCAAwC,CAJxC,UAKF,CACA,qCACE,4EACF,CAEA,kCAEE,eAAgB,CADhB,iBAAkB,CAElB,UACF,CACA,iEAOE,4BAA6B,CAC7B,mFAAkG,CAKlG,qBAAuB,CAJvB,YAAa,CACb,qBAAsB,CAJtB,WAAY,CAHZ,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAEN,OAAQ,CAOR,wBAAyB,CACzB,eAAgB,CAEhB,YAAa,CACb,8BAAoC,CAVpC,UAWF,CACA,gGACE,cAAe,CACf,eACF,CACA,mGAEE,YAAa,CACb,oBAAqB,CACrB,2BAA4B,CAI5B,wBAA+B,CAP/B,mBAAoB,CAQpB,iBAAmB,CACnB,mBAAoB,CACpB,cAAe,CANf,eAAgB,CAChB,sBAAuB,CACvB,kBAKF,CACA,2EAIE,qBAAuB,CAFvB,eAAgB,CAChB,iBAAkB,CAFlB,UAIF,CACA,2GAKE,WAAY,CAFZ,MAAO,CAGP,mBAAiB,CAAjB,gBAAiB,CALjB,iBAAkB,CAClB,KAAM,CAEN,UAGF,CACA,iJAEE,sBACF,CAIA,8BACE,2EACE,iBAAkB,CAClB,aACF,CACF,CAIA,kCACE,2EACE,kBACF,CACF,CACA,mEACE,gBACF,CACA,kGACE,sBAAuB,CAGvB,gCAAkC,CAFlC,iBAAkB,CAClB,gBAEF,CACA,qQAEE,aACF,CACA,2GACE,wBACF,CCxNA,6CACE,GACE,MACF,CACA,GACE,MACF,CACF,CACA,4CACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,8CACE,GACE,UACF,CACA,IACE,SACF,CACA,GACE,UACF,CACF,CACA,oDACE,GACE,QACF,CACA,GACE,WACF,CACF,CACA,2CACE,GACE,SACF,CACA,GACE,SACF,CACF,CA4BA,mDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,gDACE,GACE,0BACF,CACA,GACE,sBACF,CACF,CACA,qDACE,GACE,0BACF,CACA,GACE,uBACF,CACF,CACA,6CACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CACA,0CACE,GAEE,SAAU,CADV,kBAEF,CACA,IAEE,UAAY,CADZ,oBAEF,CACA,GAEE,SAAU,CADV,kBAEF,CACF,CACA,qCAOE,qBAAyB,CAHzB,MAAO,CAHP,cAAe,CAOf,kBAAoB,CANpB,eAAgB,CAGhB,OAAQ,CACR,KAAM,CAHN,SAMF,CC3JA,kCACE,YACF,CAIA,gIACE,mBACF,CACA,mEAIE,iBAAkB,CAFlB,gBAAiB,CACjB,sBAAuB,CAEvB,sBAAuB,CAJvB,UAKF,CACA,oGACE,gBAAiB,CACjB,kBAAmB,CAEnB,iBAAkB,CAClB,sBAAuB,CAFvB,UAGF,CACA,gGACE,UACF,CCKA,mDACE,GACE,MACF,CACA,GACE,MACF,CACF,CACA,kDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,oDACE,GACE,UACF,CACA,IACE,SACF,CACA,GACE,UACF,CACF,CACA,0DACE,GACE,QACF,CACA,GACE,WACF,CACF,CACA,iDACE,GACE,SACF,CACA,GACE,SACF,CACF,CA4BA,yDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,sDACE,GACE,0BACF,CACA,GACE,sBACF,CACF,CACA,2DACE,GACE,0BACF,CACA,GACE,uBACF,CACF,CACA,mDACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CACA,gDACE,GAEE,SAAU,CADV,kBAEF,CACA,IAEE,UAAY,CADZ,oBAEF,CACA,GAEE,SAAU,CADV,kBAEF,CACF,CACA,0CAEE,+BAAgC,CAGhC,eAAgB,CAFhB,gBAAiB,CACjB,iBAAkB,CAHlB,UAKF,CACA,qFACE,cACF,CACA,+EACE,MAAO,CAEP,eAAgB,CADhB,oBAEF,CACA,oHACE,cAAe,CACf,eAAgB,CAChB,QAAS,CACT,cAAe,CACf,eACF,CACA,2HAEE,YAAa,CACb,oBAAqB,CACrB,2BAA4B,CAI5B,aAAc,CAPd,mBAAoB,CAQpB,iBAAmB,CACnB,mBAAoB,CACpB,cAAe,CANf,eAAgB,CAChB,sBAAuB,CACvB,kBAKF,CACA,qHACE,kBACF,CACA,gFAGE,qBAAuB,CADvB,eAAgB,CAEhB,mBAAiB,CAAjB,gBAAiB,CACjB,eAAgB,CAJhB,WAKF,CACA,4HAEE,sBACF,CACA,qFAEE,kBAAmB,CADnB,iBAAkB,CAGlB,YAAc,CADd,WAEF,CACA,sHACE,eACF,CACA,2JAEE,mBAAqB,CADrB,kBAEF,CCjLA,mDACE,GACE,MACF,CACA,GACE,MACF,CACF,CACA,kDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,oDACE,GACE,UACF,CACA,IACE,SACF,CACA,GACE,UACF,CACF,CACA,0DACE,GACE,QACF,CACA,GACE,WACF,CACF,CACA,iDACE,GACE,SACF,CACA,GACE,SACF,CACF,CA4BA,yDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,sDACE,GACE,0BACF,CACA,GACE,sBACF,CACF,CACA,2DACE,GACE,0BACF,CACA,GACE,uBACF,CACF,CACA,mDACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CACA,gDACE,GAEE,SAAU,CADV,kBAEF,CACA,IAEE,UAAY,CADZ,oBAEF,CACA,GAEE,SAAU,CADV,kBAEF,CACF,CACA,0CAEE,+BAAgC,CAChC,gBAAiB,CACjB,wBAAiB,CAAjB,qBAAiB,CAAjB,gBAAiB,CAHjB,UAIF,CACA,kFAEE,eAAgB,CADhB,iBAAkB,CAElB,UACF,CACA,6HACE,cACF,CACA,uHAOE,4BAA6B,CAC7B,mFAAkG,CAKlG,qBAAuB,CAJvB,YAAa,CACb,qBAAsB,CAJtB,WAAY,CAHZ,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAEN,OAAQ,CAOR,wBAAyB,CACzB,eAAgB,CAEhB,YAAa,CATb,UAUF,CACA,uHACE,eAAgB,CAChB,8BACF,CACA,4JAME,UAAc,CALd,cAAe,CACf,eAAgB,CAChB,QAAS,CACT,cAAe,CACf,eAEF,CACA,mKAEE,YAAa,CACb,oBAAqB,CACrB,2BAA4B,CAI5B,wBAA+B,CAP/B,mBAAoB,CAQpB,iBAAmB,CACnB,mBAAoB,CACpB,cAAe,CANf,eAAgB,CAChB,sBAAuB,CACvB,kBAKF,CACA,6JAEE,UAAc,CADd,kBAEF,CACA,iIAIE,qBAAuB,CAFvB,eAAgB,CAChB,iBAAkB,CAFlB,UAIF,CACA,uKAKE,WAAY,CAFZ,MAAO,CAGP,mBAAiB,CAAjB,gBAAiB,CALjB,iBAAkB,CAClB,KAAM,CAEN,UAGF,CACA,mNAEE,sBACF,CAIA,8BACE,iIACE,iBAAkB,CAClB,aACF,CACF,CAIA,kCACE,iIACE,kBACF,CACF,CACA,6HAEE,kBAAmB,CADnB,iBAAkB,CAGlB,WAAa,CADb,SAEF,CACA,yHACE,kBACF,CACA,8JACE,sBAAuB,CACvB,SACF,CACA,mMACE,gBACF,CACA,idAEE,aACF,CACA,wOACE,kBACF,CACA,ydAEE,uBACF,CACA,oPACE,uBACF,CACA,oIACE,WAAY,CACZ,eACF,CACA,yKACE,YACF,CACA,ueAEE,UACF,CC1PA,2CACE,GACE,MACF,CACA,GACE,MACF,CACF,CACA,0CACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,4CACE,GACE,UACF,CACA,IACE,SACF,CACA,GACE,UACF,CACF,CACA,kDACE,GACE,QACF,CACA,GACE,WACF,CACF,CACA,yCACE,GACE,SACF,CACA,GACE,SACF,CACF,CA4BA,iDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,8CACE,GACE,0BACF,CACA,GACE,sBACF,CACF,CACA,mDACE,GACE,0BACF,CACA,GACE,uBACF,CACF,CACA,2CACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CACA,wCACE,GAEE,SAAU,CADV,kBAEF,CACA,IAEE,UAAY,CADZ,oBAEF,CACA,GAEE,SAAU,CADV,kBAEF,CACF,CACA,kCASE,kBAAmB,CAJnB,uDAAyD,CAEzD,oBAAqB,CAHrB,WAAY,CAIZ,cAAe,CAPf,YAAa,CASb,QAAS,CAJT,kBAAoB,CAJpB,cAAe,CACf,UAQF,CACA,gEASE,kBAAmB,CANnB,qBAAyB,CACzB,iBAAkB,CAOlB,aAAc,CAHd,YAAa,CAHb,gBAAkB,CAClB,eAAgB,CAJhB,aAAc,CAQd,sBAAuB,CAHvB,gBAAiB,CANjB,YAWF,CACA,mEACE,YACF,CACA,yBACE,kCACE,WAAY,CACZ,UACF,CACF,CACA,iEACE,+CACF,CACA,wEACE,WAAY,CACZ,UACF,CC5JA,4CACE,GACE,MACF,CACA,GACE,MACF,CACF,CACA,2CACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,6CACE,GACE,UACF,CACA,IACE,SACF,CACA,GACE,UACF,CACF,CACA,mDACE,GACE,QACF,CACA,GACE,WACF,CACF,CACA,0CACE,GACE,SACF,CACA,GACE,SACF,CACF,CA4BA,kDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,+CACE,GACE,0BACF,CACA,GACE,sBACF,CACF,CACA,oDACE,GACE,0BACF,CACA,GACE,uBACF,CACF,CACA,4CACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CACA,yCACE,GAEE,SAAU,CADV,kBAEF,CACA,IAEE,UAAY,CADZ,oBAEF,CACA,GAEE,SAAU,CADV,kBAEF,CACF,CACA,mEAYE,gCAAiC,CAVjC,qBAAyB,CAEzB,YAAa,CAEb,aAAc,CAEd,aAAc,CAHd,gBAAiB,CAEjB,iBAAkB,CAElB,iBAAkB,CAIlB,iBAAkB,CAVlB,iBAAkB,CAYlB,sBAAuB,CALvB,4BAA6B,CAI7B,oBAAqB,CAbrB,UAeF,CACA,sFACE,YACF,CCvIA,wCACE,GACE,MACF,CACA,GACE,MACF,CACF,CACA,uCACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,yCACE,GACE,UACF,CACA,IACE,SACF,CACA,GACE,UACF,CACF,CACA,+CACE,GACE,QACF,CACA,GACE,WACF,CACF,CACA,sCACE,GACE,SACF,CACA,GACE,SACF,CACF,CA4BA,8CACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,2CACE,GACE,0BACF,CACA,GACE,sBACF,CACF,CACA,gDACE,GACE,0BACF,CACA,GACE,uBACF,CACF,CACA,wCACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CACA,qCACE,GAEE,SAAU,CADV,kBAEF,CACA,IAEE,UAAY,CADZ,oBAEF,CACA,GAEE,SAAU,CADV,kBAEF,CACF,CACA,+BAQE,kBAAmB,CAHnB,qBAAyB,CAUzB,oBAAqB,CATrB,YAAa,CAGb,QAAS,CAPT,YAAa,CACb,aAAc,CACd,aAAc,CAGd,sBAAuB,CAGvB,iBAAkB,CAClB,uBAAwB,CACxB,uBAAwB,CACxB,uBAAwB,CAZxB,WAAY,CAaZ,qBAEF,CACA,mEACE,yBAA0B,CAC1B,0BAA2B,CAC3B,0BAA2B,CAE3B,iBAAkB,CADlB,8BAEF,CACA,8FAME,kBAAmB,CADnB,cAAe,CAJf,aAAc,CAEd,WAAY,CACZ,mBAAiB,CAAjB,gBAAiB,CAGjB,eAAgB,CALhB,UAMF,CACA,sHACE,sBACF,CACA,4FAME,iEAAoF,CAHpF,MAAO,CAKP,SAAU,CAHV,aAAe,CAJf,iBAAkB,CAClB,KAAM,CAKN,oEAA0E,CAE1E,iBAAkB,CALlB,UAMF,CACA,4HAIE,kBAAmB,CAEnB,cAAe,CAHf,YAAa,CADb,WAAY,CAGZ,sBAAuB,CAJvB,UAMF,CACA,6FAGE,QAAS,CAET,UAAY,CACZ,mBAAoB,CALpB,iBAAkB,CAClB,OAAQ,CAER,8BAGF,CACA,+FAQE,4DAAuE,CANvE,QAAS,CACT,MAAO,CAGP,cAAgB,CAChB,sBAAuB,CANvB,iBAAkB,CAGlB,OAAQ,CACR,UAIF,CACA,4HACE,uBAAmB,CAAnB,kBAAmB,CACnB,UACF,CACA,kGACE,SAAU,CACV,kBACF,CACA,yBACE,mEAEE,YAAa,CACb,aAAc,CACd,aAAc,CAHd,WAIF,CACA,8FACE,eACF,CACF,CC/MA,0CACE,GACE,MACF,CACA,GACE,MACF,CACF,CACA,yCACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,2CACE,GACE,UACF,CACA,IACE,SACF,CACA,GACE,UACF,CACF,CACA,iDACE,GACE,QACF,CACA,GACE,WACF,CACF,CACA,wCACE,GACE,SACF,CACA,GACE,SACF,CACF,CA4BA,gDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,6CACE,GACE,0BACF,CACA,GACE,sBACF,CACF,CACA,kDACE,GACE,0BACF,CACA,GACE,uBACF,CACF,CACA,0CACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CACA,uCACE,GAEE,SAAU,CADV,kBAEF,CACA,IAEE,UAAY,CADZ,oBAEF,CACA,GAEE,SAAU,CADV,kBAEF,CACF,CACA,+DAGE,kBAAmB,CAInB,oCAA2C,CAD3C,iBAAkB,CAElB,cAAe,CAPf,YAAa,CAIb,WAAY,CAHZ,sBAAuB,CAOvB,2CAA8C,CAL9C,UAMF,CACA,qEACE,oCACF,CACA,6FACE,8CACF,CCpIA,4CACE,GACE,MACF,CACA,GACE,MACF,CACF,CACA,2CACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,6CACE,GACE,UACF,CACA,IACE,SACF,CACA,GACE,UACF,CACF,CACA,mDACE,GACE,QACF,CACA,GACE,WACF,CACF,CACA,0CACE,GACE,SACF,CACA,GACE,SACF,CACF,CA4BA,kDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,+CACE,GACE,0BACF,CACA,GACE,sBACF,CACF,CACA,oDACE,GACE,0BACF,CACA,GACE,uBACF,CACF,CACA,4CACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CACA,yCACE,GAEE,SAAU,CADV,kBAEF,CACA,IAEE,UAAY,CADZ,oBAEF,CACA,GAEE,SAAU,CADV,kBAEF,CACF,CACA,mCACE,uBACF,CACA,qEAEE,kBAAmB,CADnB,YAAa,CAEb,UAAY,CACZ,UACF,CACA,yNAIE,2BAA4B,CAC5B,eAAgB,CAChB,sBAAuB,CAHvB,sBAAkB,CAAlB,iBAIF,CACA,wEAGE,cAAe,CAFf,cAAe,CACf,+BAEF,CACA,4TAGE,cACF,CC9IA,iDACE,GACE,MACF,CACA,GACE,MACF,CACF,CACA,gDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,kDACE,GACE,UACF,CACA,IACE,SACF,CACA,GACE,UACF,CACF,CACA,wDACE,GACE,QACF,CACA,GACE,WACF,CACF,CACA,+CACE,GACE,SACF,CACA,GACE,SACF,CACF,CA4BA,uDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,oDACE,GACE,0BACF,CACA,GACE,sBACF,CACF,CACA,yDACE,GACE,0BACF,CACA,GACE,uBACF,CACF,CACA,iDACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CACA,8CACE,GAEE,SAAU,CADV,kBAEF,CACA,IAEE,UAAY,CADZ,oBAEF,CACA,GAEE,SAAU,CADV,kBAEF,CACF,CACA,wCAME,kBAAmB,CAHnB,+BAAoC,CAEpC,YAAa,CAHb,OAAQ,CAKR,sBAAuB,CANvB,cAAe,CAGf,WAIF,CACA,8EACE,iBACF,CACA,kHACE,iBAAkB,CAClB,UACF,CACA,qJAKE,kBAAmB,CAKnB,4DAAuE,CARvE,QAAS,CAOT,cAAe,CALf,YAAa,CAGb,SAAW,CAJX,MAAO,CAKP,cAAgB,CAPhB,iBAAkB,CAKlB,UAKF,CACA,kHAKE,aAAc,CAJd,gBAAiB,CACjB,cAAe,CAIf,mBAAiB,CAAjB,gBAAiB,CAFjB,eAAgB,CADhB,UAIF,CACA,oHAEE,cAAe,CAEf,eAAgB,CAHhB,wBAAyB,CAIzB,sBAAuB,CAFvB,UAGF,CACA,uJAEE,gBAAiB,CADjB,QAEF,CACA,wJACE,kBACF,CACA,yJACE,aACF,CACA,8JACE,aAAc,CACd,cAAe,CACf,mBAAoB,CACpB,eACF,CACA,oHAEE,+BAAgC,CADhC,4BAA6B,CAE7B,cAAe,CAEf,eAAgB,CAEhB,gBAAkB,CADlB,sBAAuB,CAFvB,UAIF,CACA,kHACE,iBAAkB,CAElB,UAAW,CADX,QAEF,CACA,yHAIE,qBAAyB,CADzB,QAAS,CAFT,wBAAyB,CACzB,eAGF,CACA,0HAGE,YAAa,CACb,oBAAqB,CACrB,2BAA4B,CAH5B,mBAAoB,CADpB,wBAKF,CACA,yBACE,wCACE,oBACF,CACF,CC9MA,2CACE,GACE,MACF,CACA,GACE,MACF,CACF,CACA,0CACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,4CACE,GACE,UACF,CACA,IACE,SACF,CACA,GACE,UACF,CACF,CACA,kDACE,GACE,QACF,CACA,GACE,WACF,CACF,CACA,yCACE,GACE,SACF,CACA,GACE,SACF,CACF,CA4BA,iDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,8CACE,GACE,0BACF,CACA,GACE,sBACF,CACF,CACA,mDACE,GACE,0BACF,CACA,GACE,uBACF,CACF,CACA,2CACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CACA,wCACE,GAEE,SAAU,CADV,kBAEF,CACA,IAEE,UAAY,CADZ,oBAEF,CACA,GAEE,SAAU,CADV,kBAEF,CACF,CACA,kCACE,6DAA+D,CAC/D,qBACF,CACA,iJAIE,kBAAmB,CAGnB,4CAA8C,CAJ9C,YAAa,CAEb,sBAAuB,CACvB,kBAAmB,CAJnB,iBAMF,CACA,yEACE,cACF,CACA,kFACE,6CACF,CACA,2GACE,kBACF,CACA,4DAEE,uBAAyB,CADzB,sBAEF,CACA,kGAEE,uBAAyB,CADzB,aAEF,CACA,mGAEE,uBAAyB,CADzB,YAEF,CACA,4DAEE,wBAA0B,CAD1B,qBAEF,CACA,kGAEE,wBAA0B,CAD1B,qBAEF,CACA,mGAEE,wBAA0B,CAD1B,qBAEF,CACA,4DAEE,wBAA0B,CAD1B,uBAEF,CACA,kGAEE,wBAA0B,CAD1B,qBAEF,CACA,mGAEE,wBAA0B,CAD1B,qBAEF,CACA,iEACE,4BACF,CChLA,iDACE,GACE,MACF,CACA,GACE,MACF,CACF,CACA,gDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,kDACE,GACE,UACF,CACA,IACE,SACF,CACA,GACE,UACF,CACF,CACA,wDACE,GACE,QACF,CACA,GACE,WACF,CACF,CACA,+CACE,GACE,SACF,CACA,GACE,SACF,CACF,CA4BA,uDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,oDACE,GACE,0BACF,CACA,GACE,sBACF,CACF,CACA,yDACE,GACE,0BACF,CACA,GACE,uBACF,CACF,CACA,iDACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CACA,8CACE,GAEE,SAAU,CADV,kBAEF,CACA,IAEE,UAAY,CADZ,oBAEF,CACA,GAEE,SAAU,CADV,kBAEF,CACF,CACA,wCACE,kBACF,CACA,4EACE,eACF,CCzHA,kDACE,GACE,MACF,CACA,GACE,MACF,CACF,CACA,iDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,mDACE,GACE,UACF,CACA,IACE,SACF,CACA,GACE,UACF,CACF,CACA,yDACE,GACE,QACF,CACA,GACE,WACF,CACF,CACA,gDACE,GACE,SACF,CACA,GACE,SACF,CACF,CA4BA,wDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,qDACE,GACE,0BACF,CACA,GACE,sBACF,CACF,CACA,0DACE,GACE,0BACF,CACA,GACE,uBACF,CACF,CACA,kDACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CACA,+CACE,GAEE,SAAU,CADV,kBAEF,CACA,IAEE,UAAY,CADZ,oBAEF,CACA,GAEE,SAAU,CADV,kBAEF,CACF,CACA,yCAEE,YAAa,CADb,mBAAoB,CAEpB,qCACF,CACA,sFACE,eAAgB,CAChB,mBACF,CACA,gFACE,cACF,CACA,+EACE,4BACF,CClIA,gDACE,GACE,MACF,CACA,GACE,MACF,CACF,CACA,+CACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,iDACE,GACE,UACF,CACA,IACE,SACF,CACA,GACE,UACF,CACF,CACA,uDACE,GACE,QACF,CACA,GACE,WACF,CACF,CACA,8CACE,GACE,SACF,CACA,GACE,SACF,CACF,CA4BA,sDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,mDACE,GACE,0BACF,CACA,GACE,sBACF,CACF,CACA,wDACE,GACE,0BACF,CACA,GACE,uBACF,CACF,CACA,gDACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CACA,6CACE,GAEE,SAAU,CADV,kBAEF,CACA,IAEE,UAAY,CADZ,oBAEF,CACA,GAEE,SAAU,CADV,kBAEF,CACF,CACA,uCAEE,YAAa,CADb,mBAAoB,CAEpB,qCACF,CACA,2EACE,4BACF,CACA,iFACE,eAAgB,CAChB,mBACF,CC/HA,8CACE,GACE,MACF,CACA,GACE,MACF,CACF,CACA,6CACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,+CACE,GACE,UACF,CACA,IACE,SACF,CACA,GACE,UACF,CACF,CACA,qDACE,GACE,QACF,CACA,GACE,WACF,CACF,CACA,4CACE,GACE,SACF,CACA,GACE,SACF,CACF,CA4BA,oDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,iDACE,GACE,0BACF,CACA,GACE,sBACF,CACF,CACA,sDACE,GACE,0BACF,CACA,GACE,uBACF,CACF,CACA,8CACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CACA,2CACE,GAEE,SAAU,CADV,kBAEF,CACA,IAEE,UAAY,CADZ,oBAEF,CACA,GAEE,SAAU,CADV,kBAEF,CACF,CACA,qCAME,kBAAmB,CAHnB,+BAAoC,CAEpC,YAAa,CAHb,OAAQ,CAKR,wBAAyB,CANzB,cAAe,CAGf,WAIF,CACA,wEAEE,WAAY,CADZ,cAEF,CACA,kHACE,cACF,CAEA,wEACE,gCACF,CAEA,iCACE,cACF,CC3IA,+CACE,GACE,MACF,CACA,GACE,MACF,CACF,CACA,8CACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,gDACE,GACE,UACF,CACA,IACE,SACF,CACA,GACE,UACF,CACF,CACA,sDACE,GACE,QACF,CACA,GACE,WACF,CACF,CACA,6CACE,GACE,SACF,CACA,GACE,SACF,CACF,CA4BA,qDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,kDACE,GACE,0BACF,CACA,GACE,sBACF,CACF,CACA,uDACE,GACE,0BACF,CACA,GACE,uBACF,CACF,CACA,+CACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CACA,4CACE,GAEE,SAAU,CADV,kBAEF,CACA,IAEE,UAAY,CADZ,oBAEF,CACA,GAEE,SAAU,CADV,kBAEF,CACF,CACA,sCAGE,uDAAyD,CAEzD,oBAAqB,CACrB,UAAc,CALd,mBAAoB,CAGpB,kBAAoB,CAFpB,UAKF,CACA,wEASE,kBAAmB,CANnB,qBAAyB,CACzB,iBAAkB,CAOlB,aAAc,CAHd,YAAa,CAHb,gBAAkB,CAClB,eAAgB,CAJhB,aAAc,CAQd,sBAAuB,CAHvB,gBAAiB,CANjB,YAWF,CACA,6EACE,eAAgB,CAChB,kBACF,CACA,6EAEE,eAAgB,CADhB,cAEF,CACA,6EACE,cACF,CACA,uJACE,oCAAyC,CACzC,kBACF,CACA,qOACE,eACF,CC1JA,gDACE,GACE,MACF,CACA,GACE,MACF,CACF,CACA,+CACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,iDACE,GACE,UACF,CACA,IACE,SACF,CACA,GACE,UACF,CACF,CACA,uDACE,GACE,QACF,CACA,GACE,WACF,CACF,CACA,8CACE,GACE,SACF,CACA,GACE,SACF,CACF,CA4BA,sDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,mDACE,GACE,0BACF,CACA,GACE,sBACF,CACF,CACA,wDACE,GACE,0BACF,CACA,GACE,uBACF,CACF,CACA,gDACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CACA,6CACE,GAEE,SAAU,CADV,kBAEF,CACA,IAEE,UAAY,CADZ,oBAEF,CACA,GAEE,SAAU,CADV,kBAEF,CACF,CACA,uCAEE,+BAAgC,CADhC,mBAEF,CACA,0EAGE,qBAAuB,CADvB,gBAAiB,CAEjB,mBAAiB,CAAjB,gBAAiB,CACjB,eAAgB,CAJhB,UAKF,CACA,yEACE,MAAO,CACP,cAAe,CACf,eAAgB,CAChB,sBACF,CACA,2GACE,eAAgB,CAChB,aAAc,CACd,mBACF,CACA,4GAEE,kBAAmB,CADnB,gBAEF,CC7IA,kDACE,GACE,MACF,CACA,GACE,MACF,CACF,CACA,iDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,mDACE,GACE,UACF,CACA,IACE,SACF,CACA,GACE,UACF,CACF,CACA,yDACE,GACE,QACF,CACA,GACE,WACF,CACF,CACA,gDACE,GACE,SACF,CACA,GACE,SACF,CACF,CA4BA,wDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,qDACE,GACE,0BACF,CACA,GACE,sBACF,CACF,CACA,0DACE,GACE,0BACF,CACA,GACE,uBACF,CACF,CACA,kDACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CACA,+CACE,GAEE,SAAU,CADV,kBAEF,CACA,IAEE,UAAY,CADZ,oBAEF,CACA,GAEE,SAAU,CADV,kBAEF,CACF,CACA,wCAUE,kBAAmB,CAPnB,wBAAyB,CAEzB,iBAAkB,CADlB,aAAc,CAKd,YAAa,CAHb,iBAAmB,CACnB,eAAgB,CALhB,WAAY,CASZ,sBAAuB,CAHvB,gBAAiB,CAPjB,UAWF,CC9JA,yCAGE,cAAe,CAFf,YAAa,CACb,UAEF,CCJA,sCAEE,cAAe,CAEf,iBAAkB,CADlB,eAAgB,CAFhB,UAIF,CCyBA,sDACE,GACE,MACF,CACA,GACE,MACF,CACF,CACA,qDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,uDACE,GACE,UACF,CACA,IACE,SACF,CACA,GACE,UACF,CACF,CACA,6DACE,GACE,QACF,CACA,GACE,WACF,CACF,CACA,oDACE,GACE,SACF,CACA,GACE,SACF,CACF,CA4BA,4DACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,yDACE,GACE,0BACF,CACA,GACE,sBACF,CACF,CACA,8DACE,GACE,0BACF,CACA,GACE,uBACF,CACF,CACA,sDACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CACA,mDACE,GAEE,SAAU,CADV,kBAEF,CACA,IAEE,UAAY,CADZ,oBAEF,CACA,GAEE,SAAU,CADV,kBAEF,CACF,CACA,oFACE,gCAAiC,CACjC,kBACF,CCvHA,0CACE,GACE,MACF,CACA,GACE,MACF,CACF,CACA,yCACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,2CACE,GACE,UACF,CACA,IACE,SACF,CACA,GACE,UACF,CACF,CACA,iDACE,GACE,QACF,CACA,GACE,WACF,CACF,CACA,wCACE,GACE,SACF,CACA,GACE,SACF,CACF,CA4BA,gDACE,GACE,uBACF,CACA,GACE,2BACF,CACF,CACA,6CACE,GACE,0BACF,CACA,GACE,sBACF,CACF,CACA,kDACE,GACE,0BACF,CACA,GACE,uBACF,CACF,CACA,0CACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CACA,uCACE,GAEE,SAAU,CADV,kBAEF,CACA,IAEE,UAAY,CADZ,oBAEF,CACA,GAEE,SAAU,CADV,kBAEF,CACF,CACA,iCAGE,kBAAmB,CAFnB,YAAa,CACb,qBAEF,CACA,kEAIE,qBAAyB,CAGzB,qBAAsB,CAFtB,sCAA+C,CAH/C,YAAa,CACb,QAAS,CAFT,oBAAqB,CAKrB,mBAEF,CACA,kGACE,4BAA6B,CAC7B,qBAAsB,CAEtB,cAAe,CADf,qBAAuB,CAGvB,yBAA0B,CAD1B,iEAEF,CACA,+HACE,uDAAyD,CACzD,UACF,CACA,8DAGE,YAAa,CAFb,QAAS,CAGT,wDAA2D,CAC3D,kBAAmB,CAHnB,UAIF,CACA,0FAGE,qBAAuB,CAFvB,WAAY,CAGZ,iBAAkB,CAFlB,gDAGF,CACA,8FACE,WACF,CACA,uHAIE,gCAAiC,CAHjC,iBAAkB,CAClB,eAAgB,CAChB,mBAEF,CACA,uHACE,cAAe,CAEf,cAAe,CADf,eAEF,CACA,4JAEE,gBAAiB,CACjB,eAAgB,CAFhB,4BAGF,CACA,8JACE,4CAA8C,CAC9C,eACF,CACA,wHACE,aACF,CACA,2JAEE,aAAc,CADd,iBAAmB,CAEnB,kBACF,CACA,yJAGE,kBAAmB,CADnB,YAAa,CAEb,QAAS,CAHT,eAIF,CACA,2JACE,iBACF,CACA,gGACE,8EAA8F,CAC9F,aACF,CACA,iIAaE,+GAAqH,CACrH,2BAA4B,CAL5B,4BAA6B,CAC7B,eAAgB,CAKhB,qGAA2G,CAR3G,UAAW,CANX,yBAA0B,CAE1B,eAAiB,CAajB,oKAA0K,CAE1K,qCAAsC,CACtC,wBAAyB,CAFzB,iCAAkC,CALlC,qBAAsB,CAVtB,iBAAkB,CAGlB,OAAQ,CAGR,iBAAkB,CAJlB,KAAM,CAEN,+CAAiD,CAKjD,4BASF","file":"ui.css","sourcesContent":["/* Text */\n/* Input */\n/* Button */\n/* TABLE */\n/* Modal */\n/* Bagde */\n/* Menu */\n/* Notification */\n/* BRANDS */\n/* Overlay */\n/* CARD */\n/* Border radius */\n/* Fonts */\n/* WIDTH */\n/* HEIGHT */\n/* CARD */\n/* TABLE */\n/* MODAL */\n/* BADGE */\n/* Menu */\n/* Input */\n/* EDITOR */\n/* HEADER */\n/* Z-INDEX */\n/* SIZES */\n/* SHADOW */\n/**/\n/* BUTTON */\n/* TEXT */\n/* RESPONSIVE */\n@keyframes flexWide {\n from {\n flex: 0;\n }\n to {\n flex: 1;\n }\n}\n@keyframes slidein {\n from {\n transform: translateX(0%);\n }\n to {\n transform: translateX(-100%);\n }\n}\n@keyframes fadeInOut {\n 0% {\n opacity: 0.5;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0.5;\n }\n}\n@keyframes heightAnimation {\n 0% {\n height: 0%;\n }\n 100% {\n height: 100%;\n }\n}\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Firefox < 16 */\n@-moz-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Safari, Chrome and Opera > 12.1 */\n@-webkit-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Internet Explorer */\n@-ms-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes floatAnimation {\n 0% {\n transform: translateY(0);\n }\n 100% {\n transform: translateY(-20px);\n }\n}\n@keyframes bottomSheet {\n from {\n transform: translate(0, 100%);\n }\n to {\n transform: translate(0, 0);\n }\n}\n@keyframes slideRightToLeft {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0%);\n }\n}\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.3);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.container {\n background-color: #ffffff;\n position: relative;\n padding-bottom: 4rem;\n}\n.container .footer {\n display: block;\n width: 100%;\n text-align: center;\n padding: 3rem 2rem 2rem;\n font-size: 0.75rem;\n color: #a1a5b7;\n}","/* Text */\n/* Input */\n/* Button */\n/* TABLE */\n/* Modal */\n/* Bagde */\n/* Menu */\n/* Notification */\n/* BRANDS */\n/* Overlay */\n/* CARD */\n/* Border radius */\n/* Fonts */\n/* WIDTH */\n/* HEIGHT */\n/* CARD */\n/* TABLE */\n/* MODAL */\n/* BADGE */\n/* Menu */\n/* Input */\n/* EDITOR */\n/* HEADER */\n/* Z-INDEX */\n/* SIZES */\n/* SHADOW */\n/**/\n/* BUTTON */\n/* TEXT */\n/* RESPONSIVE */\n@keyframes flexWide {\n from {\n flex: 0;\n }\n to {\n flex: 1;\n }\n}\n@keyframes slidein {\n from {\n transform: translateX(0%);\n }\n to {\n transform: translateX(-100%);\n }\n}\n@keyframes fadeInOut {\n 0% {\n opacity: 0.5;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0.5;\n }\n}\n@keyframes heightAnimation {\n 0% {\n height: 0%;\n }\n 100% {\n height: 100%;\n }\n}\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Firefox < 16 */\n@-moz-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Safari, Chrome and Opera > 12.1 */\n@-webkit-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Internet Explorer */\n@-ms-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes floatAnimation {\n 0% {\n transform: translateY(0);\n }\n 100% {\n transform: translateY(-20px);\n }\n}\n@keyframes bottomSheet {\n from {\n transform: translate(0, 100%);\n }\n to {\n transform: translate(0, 0);\n }\n}\n@keyframes slideRightToLeft {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0%);\n }\n}\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.3);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.container {\n width: 100%;\n height: 13rem;\n position: relative;\n margin-bottom: 3rem;\n}\n.container .cover {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.container .content {\n padding: 1rem;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n width: 100%;\n color: #ffffff;\n background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 20%, transparent 100%);\n display: flex;\n align-items: flex-end;\n}\n.container .content .logo {\n display: block;\n width: 6rem;\n height: 6rem;\n min-height: 6rem;\n border-radius: 50%;\n overflow: hidden;\n object-fit: cover;\n}\n.container .content .info {\n width: calc(100% - 7rem);\n overflow: hidden;\n}\n.container .content .info .name {\n margin: 0 !important;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n@media (max-width: 576px) {\n .container .content .logo {\n width: 5rem;\n height: 5rem;\n min-height: 5rem;\n }\n}","/* Text */\n/* Input */\n/* Button */\n/* TABLE */\n/* Modal */\n/* Bagde */\n/* Menu */\n/* Notification */\n/* BRANDS */\n/* Overlay */\n/* CARD */\n/* Border radius */\n/* Fonts */\n/* WIDTH */\n/* HEIGHT */\n/* CARD */\n/* TABLE */\n/* MODAL */\n/* BADGE */\n/* Menu */\n/* Input */\n/* EDITOR */\n/* HEADER */\n/* Z-INDEX */\n/* SIZES */\n/* SHADOW */\n/**/\n/* BUTTON */\n/* TEXT */\n/* RESPONSIVE */\n@keyframes flexWide {\n from {\n flex: 0;\n }\n to {\n flex: 1;\n }\n}\n@keyframes slidein {\n from {\n transform: translateX(0%);\n }\n to {\n transform: translateX(-100%);\n }\n}\n@keyframes fadeInOut {\n 0% {\n opacity: 0.5;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0.5;\n }\n}\n@keyframes heightAnimation {\n 0% {\n height: 0%;\n }\n 100% {\n height: 100%;\n }\n}\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Firefox < 16 */\n@-moz-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Safari, Chrome and Opera > 12.1 */\n@-webkit-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Internet Explorer */\n@-ms-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes floatAnimation {\n 0% {\n transform: translateY(0);\n }\n 100% {\n transform: translateY(-20px);\n }\n}\n@keyframes bottomSheet {\n from {\n transform: translate(0, 100%);\n }\n to {\n transform: translate(0, 0);\n }\n}\n@keyframes slideRightToLeft {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0%);\n }\n}\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.3);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.container {\n position: absolute;\n top: 1rem;\n right: 1rem;\n z-index: 1;\n}\n.container .currentLanguage {\n height: 1.5rem;\n width: 1.5rem;\n flex: 0 0 1.5rem;\n background-color: #ffffff;\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n overflow: hidden;\n object-fit: cover;\n border: 2px solid #ffffff;\n}\n.container .options {\n padding: 0 1rem;\n height: 1.5rem;\n border-radius: 1.5rem;\n width: 0;\n overflow: hidden;\n}\n.container .options .option {\n height: 1.5rem;\n width: 1.5rem;\n flex: 0 0 1.5rem;\n background-color: #ffffff;\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n overflow: hidden;\n object-fit: cover;\n border: 2px solid #ffffff;\n transform: translateX(500%);\n transition: transform 0.2s;\n}\n.container .options .option:nth-child(2) {\n transition-delay: 0.1s;\n}\n.container .options .option:nth-child(3) {\n transition-delay: 0.2s;\n}\n.container .options .option:nth-child(4) {\n transition-delay: 0.3s;\n}\n.container .options .option:nth-child(5) {\n transition-delay: 0.4s;\n}\n.container .options .option:nth-child(6) {\n transition-delay: 0.5s;\n}\n.container .options .option:nth-child(7) {\n transition-delay: 0.6s;\n}\n.container .options .option:nth-child(8) {\n transition-delay: 0.7s;\n}\n.container .options .option:nth-child(9) {\n transition-delay: 0.8s;\n}\n.container .options .option:nth-child(10) {\n transition-delay: 0.9s;\n}\n.container .options.isOpen {\n width: max-content;\n}\n.container .options.isOpen .option {\n transform: translateX(0%);\n}","/* Text */\n/* Input */\n/* Button */\n/* TABLE */\n/* Modal */\n/* Bagde */\n/* Menu */\n/* Notification */\n/* BRANDS */\n/* Overlay */\n/* CARD */\n/* Border radius */\n/* Fonts */\n/* WIDTH */\n/* HEIGHT */\n/* CARD */\n/* TABLE */\n/* MODAL */\n/* BADGE */\n/* Menu */\n/* Input */\n/* EDITOR */\n/* HEADER */\n/* Z-INDEX */\n/* SIZES */\n/* SHADOW */\n/**/\n/* BUTTON */\n/* TEXT */\n/* RESPONSIVE */\n@keyframes flexWide {\n from {\n flex: 0;\n }\n to {\n flex: 1;\n }\n}\n@keyframes slidein {\n from {\n transform: translateX(0%);\n }\n to {\n transform: translateX(-100%);\n }\n}\n@keyframes fadeInOut {\n 0% {\n opacity: 0.5;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0.5;\n }\n}\n@keyframes heightAnimation {\n 0% {\n height: 0%;\n }\n 100% {\n height: 100%;\n }\n}\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Firefox < 16 */\n@-moz-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Safari, Chrome and Opera > 12.1 */\n@-webkit-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Internet Explorer */\n@-ms-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes floatAnimation {\n 0% {\n transform: translateY(0);\n }\n 100% {\n transform: translateY(-20px);\n }\n}\n@keyframes bottomSheet {\n from {\n transform: translate(0, 100%);\n }\n to {\n transform: translate(0, 0);\n }\n}\n@keyframes slideRightToLeft {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0%);\n }\n}\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.3);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.container {\n width: 100%;\n height: 13rem;\n position: relative;\n margin-bottom: 3rem;\n}\n.container .cover {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.container .content {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n width: 100%;\n padding: 1rem 1rem 2rem;\n color: #ffffff;\n background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 20%, transparent 100%);\n display: flex;\n align-items: flex-end;\n}\n.container .content .logo {\n display: block;\n width: 6rem;\n height: 6rem;\n min-height: 6rem;\n border-radius: 50%;\n overflow: hidden;\n object-fit: cover;\n}\n.container .content .info {\n width: calc(100% - 7rem);\n overflow: hidden;\n}\n.container .content .info .name {\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.container .content .info .address {\n color: #ffffff;\n font-size: 0.9rem;\n}\n.container .content .info .address .addressText {\n display: -webkit-box;\n line-clamp: 2;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: normal;\n}",".container {\n display: flex;\n margin-top: -0.5rem;\n margin-left: -0.5rem;\n cursor: pointer;\n}","/* Text */\n/* Input */\n/* Button */\n/* TABLE */\n/* Modal */\n/* Bagde */\n/* Menu */\n/* Notification */\n/* BRANDS */\n/* Overlay */\n/* CARD */\n/* Border radius */\n/* Fonts */\n/* WIDTH */\n/* HEIGHT */\n/* CARD */\n/* TABLE */\n/* MODAL */\n/* BADGE */\n/* Menu */\n/* Input */\n/* EDITOR */\n/* HEADER */\n/* Z-INDEX */\n/* SIZES */\n/* SHADOW */\n/**/\n/* BUTTON */\n/* TEXT */\n/* RESPONSIVE */\n@keyframes flexWide {\n from {\n flex: 0;\n }\n to {\n flex: 1;\n }\n}\n@keyframes slidein {\n from {\n transform: translateX(0%);\n }\n to {\n transform: translateX(-100%);\n }\n}\n@keyframes fadeInOut {\n 0% {\n opacity: 0.5;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0.5;\n }\n}\n@keyframes heightAnimation {\n 0% {\n height: 0%;\n }\n 100% {\n height: 100%;\n }\n}\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Firefox < 16 */\n@-moz-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Safari, Chrome and Opera > 12.1 */\n@-webkit-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Internet Explorer */\n@-ms-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes floatAnimation {\n 0% {\n transform: translateY(0);\n }\n 100% {\n transform: translateY(-20px);\n }\n}\n@keyframes bottomSheet {\n from {\n transform: translate(0, 100%);\n }\n to {\n transform: translate(0, 0);\n }\n}\n@keyframes slideRightToLeft {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0%);\n }\n}\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.3);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.container {\n position: absolute;\n bottom: -1.25rem;\n left: 0;\n right: 0;\n display: flex;\n justify-content: center;\n}\n.container .links {\n padding: 0.25rem 0.75rem;\n background-color: #ffffff;\n border-radius: 1.5rem;\n box-shadow: 0px 0px 50px 0px rgba(0, 0, 0, 0.15);\n width: fit-content;\n}\n.container .links .wifiPassword,\n.container .links .businessHours {\n display: flex;\n align-items: center;\n cursor: pointer;\n padding: 0.5rem;\n}\n.container .links .wifiPassword .icon,\n.container .links .businessHours .icon {\n height: 100%;\n}","/* Text */\n/* Input */\n/* Button */\n/* TABLE */\n/* Modal */\n/* Bagde */\n/* Menu */\n/* Notification */\n/* BRANDS */\n/* Overlay */\n/* CARD */\n/* Border radius */\n/* Fonts */\n/* WIDTH */\n/* HEIGHT */\n/* CARD */\n/* TABLE */\n/* MODAL */\n/* BADGE */\n/* Menu */\n/* Input */\n/* EDITOR */\n/* HEADER */\n/* Z-INDEX */\n/* SIZES */\n/* SHADOW */\n/**/\n/* BUTTON */\n/* TEXT */\n/* RESPONSIVE */\n@keyframes flexWide {\n from {\n flex: 0;\n }\n to {\n flex: 1;\n }\n}\n@keyframes slidein {\n from {\n transform: translateX(0%);\n }\n to {\n transform: translateX(-100%);\n }\n}\n@keyframes fadeInOut {\n 0% {\n opacity: 0.5;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0.5;\n }\n}\n@keyframes heightAnimation {\n 0% {\n height: 0%;\n }\n 100% {\n height: 100%;\n }\n}\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Firefox < 16 */\n@-moz-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Safari, Chrome and Opera > 12.1 */\n@-webkit-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Internet Explorer */\n@-ms-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes floatAnimation {\n 0% {\n transform: translateY(0);\n }\n 100% {\n transform: translateY(-20px);\n }\n}\n@keyframes bottomSheet {\n from {\n transform: translate(0, 100%);\n }\n to {\n transform: translate(0, 0);\n }\n}\n@keyframes slideRightToLeft {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0%);\n }\n}\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.3);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.content {\n padding: 2rem 0;\n height: 100%;\n}\n.content .countryCode {\n min-width: 7.5rem;\n}\n.content .terms {\n font-size: 0.875rem;\n line-height: 20px;\n text-align: center;\n color: #a1a5b7;\n width: 100%;\n}\n.content .terms a {\n color: #1b84ff;\n}","/* Text */\n/* Input */\n/* Button */\n/* TABLE */\n/* Modal */\n/* Bagde */\n/* Menu */\n/* Notification */\n/* BRANDS */\n/* Overlay */\n/* CARD */\n/* Border radius */\n/* Fonts */\n/* WIDTH */\n/* HEIGHT */\n/* CARD */\n/* TABLE */\n/* MODAL */\n/* BADGE */\n/* Menu */\n/* Input */\n/* EDITOR */\n/* HEADER */\n/* Z-INDEX */\n/* SIZES */\n/* SHADOW */\n/**/\n/* BUTTON */\n/* TEXT */\n/* RESPONSIVE */\n@keyframes flexWide {\n from {\n flex: 0;\n }\n to {\n flex: 1;\n }\n}\n@keyframes slidein {\n from {\n transform: translateX(0%);\n }\n to {\n transform: translateX(-100%);\n }\n}\n@keyframes fadeInOut {\n 0% {\n opacity: 0.5;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0.5;\n }\n}\n@keyframes heightAnimation {\n 0% {\n height: 0%;\n }\n 100% {\n height: 100%;\n }\n}\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Firefox < 16 */\n@-moz-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Safari, Chrome and Opera > 12.1 */\n@-webkit-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Internet Explorer */\n@-ms-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes floatAnimation {\n 0% {\n transform: translateY(0);\n }\n 100% {\n transform: translateY(-20px);\n }\n}\n@keyframes bottomSheet {\n from {\n transform: translate(0, 100%);\n }\n to {\n transform: translate(0, 0);\n }\n}\n@keyframes slideRightToLeft {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0%);\n }\n}\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.3);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.container .title {\n width: 100%;\n padding-block-end: 1rem;\n border-block-end: 1px solid #eff2f5;\n margin-block-end: 0.5rem;\n}","/* Text */\n/* Input */\n/* Button */\n/* TABLE */\n/* Modal */\n/* Bagde */\n/* Menu */\n/* Notification */\n/* BRANDS */\n/* Overlay */\n/* CARD */\n/* Border radius */\n/* Fonts */\n/* WIDTH */\n/* HEIGHT */\n/* CARD */\n/* TABLE */\n/* MODAL */\n/* BADGE */\n/* Menu */\n/* Input */\n/* EDITOR */\n/* HEADER */\n/* Z-INDEX */\n/* SIZES */\n/* SHADOW */\n/**/\n/* BUTTON */\n/* TEXT */\n/* RESPONSIVE */\n@keyframes flexWide {\n from {\n flex: 0;\n }\n to {\n flex: 1;\n }\n}\n@keyframes slidein {\n from {\n transform: translateX(0%);\n }\n to {\n transform: translateX(-100%);\n }\n}\n@keyframes fadeInOut {\n 0% {\n opacity: 0.5;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0.5;\n }\n}\n@keyframes heightAnimation {\n 0% {\n height: 0%;\n }\n 100% {\n height: 100%;\n }\n}\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Firefox < 16 */\n@-moz-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Safari, Chrome and Opera > 12.1 */\n@-webkit-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Internet Explorer */\n@-ms-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes floatAnimation {\n 0% {\n transform: translateY(0);\n }\n 100% {\n transform: translateY(-20px);\n }\n}\n@keyframes bottomSheet {\n from {\n transform: translate(0, 100%);\n }\n to {\n transform: translate(0, 0);\n }\n}\n@keyframes slideRightToLeft {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0%);\n }\n}\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.3);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.container {\n display: none;\n position: fixed;\n bottom: 1rem;\n right: 1rem;\n}\n.container.visible {\n display: block;\n}","/* Text */\n/* Input */\n/* Button */\n/* TABLE */\n/* Modal */\n/* Bagde */\n/* Menu */\n/* Notification */\n/* BRANDS */\n/* Overlay */\n/* CARD */\n/* Border radius */\n/* Fonts */\n/* WIDTH */\n/* HEIGHT */\n/* CARD */\n/* TABLE */\n/* MODAL */\n/* BADGE */\n/* Menu */\n/* Input */\n/* EDITOR */\n/* HEADER */\n/* Z-INDEX */\n/* SIZES */\n/* SHADOW */\n/**/\n/* BUTTON */\n/* TEXT */\n/* RESPONSIVE */\n@keyframes flexWide {\n from {\n flex: 0;\n }\n to {\n flex: 1;\n }\n}\n@keyframes slidein {\n from {\n transform: translateX(0%);\n }\n to {\n transform: translateX(-100%);\n }\n}\n@keyframes fadeInOut {\n 0% {\n opacity: 0.5;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0.5;\n }\n}\n@keyframes heightAnimation {\n 0% {\n height: 0%;\n }\n 100% {\n height: 100%;\n }\n}\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Firefox < 16 */\n@-moz-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Safari, Chrome and Opera > 12.1 */\n@-webkit-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Internet Explorer */\n@-ms-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes floatAnimation {\n 0% {\n transform: translateY(0);\n }\n 100% {\n transform: translateY(-20px);\n }\n}\n@keyframes bottomSheet {\n from {\n transform: translate(0, 100%);\n }\n to {\n transform: translate(0, 0);\n }\n}\n@keyframes slideRightToLeft {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0%);\n }\n}\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.3);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.branches {\n background-color: #ffffff;\n}\n.branches .container {\n padding-bottom: 2rem;\n display: grid;\n gap: 2rem;\n grid-auto-rows: 1fr;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n}\n@media (max-width: 576px) {\n .branches .container {\n grid-template-columns: 1fr;\n }\n}","/* Text */\n/* Input */\n/* Button */\n/* TABLE */\n/* Modal */\n/* Bagde */\n/* Menu */\n/* Notification */\n/* BRANDS */\n/* Overlay */\n/* CARD */\n/* Border radius */\n/* Fonts */\n/* WIDTH */\n/* HEIGHT */\n/* CARD */\n/* TABLE */\n/* MODAL */\n/* BADGE */\n/* Menu */\n/* Input */\n/* EDITOR */\n/* HEADER */\n/* Z-INDEX */\n/* SIZES */\n/* SHADOW */\n/**/\n/* BUTTON */\n/* TEXT */\n/* RESPONSIVE */\n@keyframes flexWide {\n from {\n flex: 0;\n }\n to {\n flex: 1;\n }\n}\n@keyframes slidein {\n from {\n transform: translateX(0%);\n }\n to {\n transform: translateX(-100%);\n }\n}\n@keyframes fadeInOut {\n 0% {\n opacity: 0.5;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0.5;\n }\n}\n@keyframes heightAnimation {\n 0% {\n height: 0%;\n }\n 100% {\n height: 100%;\n }\n}\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Firefox < 16 */\n@-moz-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Safari, Chrome and Opera > 12.1 */\n@-webkit-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Internet Explorer */\n@-ms-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes floatAnimation {\n 0% {\n transform: translateY(0);\n }\n 100% {\n transform: translateY(-20px);\n }\n}\n@keyframes bottomSheet {\n from {\n transform: translate(0, 100%);\n }\n to {\n transform: translate(0, 0);\n }\n}\n@keyframes slideRightToLeft {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0%);\n }\n}\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.3);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.item {\n width: 100%;\n box-shadow: 0px 3px 4px 0px rgba(0, 0, 0, 0.03);\n border-radius: 0.475rem;\n overflow: hidden;\n transition: box-shadow 500ms ease-in-out;\n}\n.item:hover {\n box-shadow: 0px 50px 20px -40px rgba(0, 0, 0, 0.1), 0px 30px 50px 0px rgba(50, 50, 93, 0.25);\n}\n\n.content {\n position: relative;\n overflow: hidden;\n width: 100%;\n}\n.content .info {\n position: absolute;\n top: 0;\n left: 0;\n inset: 0;\n width: 100%;\n height: 100%;\n background-color: transparent;\n background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.25) 30%, transparent 60%);\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n overflow: hidden;\n border-radius: 0.475rem;\n padding: 1rem;\n text-shadow: 0.5px 0.5px 5px #000000;\n}\n.content .info .name {\n max-width: 100%;\n overflow: hidden;\n}\n.content .info .address {\n display: -webkit-box;\n line-clamp: 1;\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: normal;\n color: rgba(255, 255, 255, 0.9);\n font-size: 0.875rem;\n line-height: 1.25rem;\n max-width: 100%;\n}\n.content .imageContainer {\n width: 100%;\n overflow: hidden;\n position: relative;\n border-radius: 0.475rem;\n}\n.content .imageContainer .image {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.content .imageContainer .image.notAvailable {\n -webkit-filter: grayscale(100%);\n filter: grayscale(100%);\n}\n.content {\n /* Use the modern aspect-ratio property where supported */\n}\n@supports (aspect-ratio: 16/9) {\n .content .imageContainer {\n aspect-ratio: 16/9;\n padding-top: 0;\n }\n}\n.content {\n /* Fallback: Use padding hack for older browsers */\n}\n@supports not (aspect-ratio: 16/9) {\n .content .imageContainer {\n padding-top: 56.25%; /* 16:9 aspect ratio = 9 / 16 * 100 */\n }\n}\n.content.noImage {\n min-height: 10rem;\n}\n.content.noImage .info {\n background: transparent;\n padding: 2rem 1rem;\n text-shadow: none;\n justify-content: center !important;\n}\n.content.noImage .info .name,\n.content.noImage .info .address {\n color: #181c32;\n}\n.content.noImage .info svg path {\n stroke: #181c32 !important;\n}","/* Text */\n/* Input */\n/* Button */\n/* TABLE */\n/* Modal */\n/* Bagde */\n/* Menu */\n/* Notification */\n/* BRANDS */\n/* Overlay */\n/* CARD */\n/* Border radius */\n/* Fonts */\n/* WIDTH */\n/* HEIGHT */\n/* CARD */\n/* TABLE */\n/* MODAL */\n/* BADGE */\n/* Menu */\n/* Input */\n/* EDITOR */\n/* HEADER */\n/* Z-INDEX */\n/* SIZES */\n/* SHADOW */\n/**/\n/* BUTTON */\n/* TEXT */\n/* RESPONSIVE */\n@keyframes flexWide {\n from {\n flex: 0;\n }\n to {\n flex: 1;\n }\n}\n@keyframes slidein {\n from {\n transform: translateX(0%);\n }\n to {\n transform: translateX(-100%);\n }\n}\n@keyframes fadeInOut {\n 0% {\n opacity: 0.5;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0.5;\n }\n}\n@keyframes heightAnimation {\n 0% {\n height: 0%;\n }\n 100% {\n height: 100%;\n }\n}\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Firefox < 16 */\n@-moz-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Safari, Chrome and Opera > 12.1 */\n@-webkit-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Internet Explorer */\n@-ms-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes floatAnimation {\n 0% {\n transform: translateY(0);\n }\n 100% {\n transform: translateY(-20px);\n }\n}\n@keyframes bottomSheet {\n from {\n transform: translate(0, 100%);\n }\n to {\n transform: translate(0, 0);\n }\n}\n@keyframes slideRightToLeft {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0%);\n }\n}\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.3);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.categories {\n max-width: 100%;\n position: sticky;\n z-index: 1;\n left: 0;\n right: 0;\n top: 0;\n background-color: #ffffff;\n padding: 0.5rem 1rem;\n}",".container {\n padding: 1rem;\n}\n.container .view {\n margin-bottom: -1rem;\n}\n.container .header {\n margin-bottom: -1rem;\n}\n.container .products {\n width: 100%;\n padding: 3rem 0 0;\n scroll-margin-top: 2rem;\n overflow-x: hidden;\n text-overflow: ellipsis;\n}\n.container .products .category {\n font-size: 1.5rem;\n margin-bottom: 1rem;\n width: 100%;\n overflow-x: hidden;\n text-overflow: ellipsis;\n}\n.container .products .list {\n width: 100%;\n}","/* Text */\n/* Input */\n/* Button */\n/* TABLE */\n/* Modal */\n/* Bagde */\n/* Menu */\n/* Notification */\n/* BRANDS */\n/* Overlay */\n/* CARD */\n/* Border radius */\n/* Fonts */\n/* WIDTH */\n/* HEIGHT */\n/* CARD */\n/* TABLE */\n/* MODAL */\n/* BADGE */\n/* Menu */\n/* Input */\n/* EDITOR */\n/* HEADER */\n/* Z-INDEX */\n/* SIZES */\n/* SHADOW */\n/**/\n/* BUTTON */\n/* TEXT */\n/* RESPONSIVE */\n@keyframes flexWide {\n from {\n flex: 0;\n }\n to {\n flex: 1;\n }\n}\n@keyframes slidein {\n from {\n transform: translateX(0%);\n }\n to {\n transform: translateX(-100%);\n }\n}\n@keyframes fadeInOut {\n 0% {\n opacity: 0.5;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0.5;\n }\n}\n@keyframes heightAnimation {\n 0% {\n height: 0%;\n }\n 100% {\n height: 100%;\n }\n}\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Firefox < 16 */\n@-moz-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Safari, Chrome and Opera > 12.1 */\n@-webkit-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Internet Explorer */\n@-ms-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes floatAnimation {\n 0% {\n transform: translateY(0);\n }\n 100% {\n transform: translateY(-20px);\n }\n}\n@keyframes bottomSheet {\n from {\n transform: translate(0, 100%);\n }\n to {\n transform: translate(0, 0);\n }\n}\n@keyframes slideRightToLeft {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0%);\n }\n}\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.3);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.container {\n width: 100%;\n border-bottom: 1px solid #eff2f5;\n padding: 1.5rem 0;\n position: relative;\n overflow: hidden;\n}\n.container.isClickable {\n cursor: pointer;\n}\n.container .info {\n flex: 1;\n padding-right: 1.5rem;\n overflow: hidden;\n}\n.container .info .name {\n font-size: 1rem;\n font-weight: 600;\n margin: 0;\n max-width: 100%;\n overflow: hidden;\n}\n.container .info .description {\n display: -webkit-box;\n line-clamp: 2;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: normal;\n color: #a1a5b7;\n font-size: 0.875rem;\n line-height: 1.25rem;\n max-width: 100%;\n}\n.container .info .price {\n line-height: 1.5rem;\n}\n.container .image {\n width: 10rem;\n height: 5.625rem;\n border-radius: 0.475rem;\n object-fit: cover;\n overflow: hidden;\n}\n.container .image.notAvailable {\n -webkit-filter: grayscale(100%);\n filter: grayscale(100%);\n}\n.container .addToOrder {\n position: absolute;\n pointer-events: all;\n top: 1.75rem;\n right: 0.25rem;\n}\n.container.noImage .info {\n padding-right: 0;\n}\n.container.noImage .info .name {\n padding-right: 3rem;\n margin-bottom: 0.5rem;\n}","/* Text */\n/* Input */\n/* Button */\n/* TABLE */\n/* Modal */\n/* Bagde */\n/* Menu */\n/* Notification */\n/* BRANDS */\n/* Overlay */\n/* CARD */\n/* Border radius */\n/* Fonts */\n/* WIDTH */\n/* HEIGHT */\n/* CARD */\n/* TABLE */\n/* MODAL */\n/* BADGE */\n/* Menu */\n/* Input */\n/* EDITOR */\n/* HEADER */\n/* Z-INDEX */\n/* SIZES */\n/* SHADOW */\n/**/\n/* BUTTON */\n/* TEXT */\n/* RESPONSIVE */\n@keyframes flexWide {\n from {\n flex: 0;\n }\n to {\n flex: 1;\n }\n}\n@keyframes slidein {\n from {\n transform: translateX(0%);\n }\n to {\n transform: translateX(-100%);\n }\n}\n@keyframes fadeInOut {\n 0% {\n opacity: 0.5;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0.5;\n }\n}\n@keyframes heightAnimation {\n 0% {\n height: 0%;\n }\n 100% {\n height: 100%;\n }\n}\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Firefox < 16 */\n@-moz-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Safari, Chrome and Opera > 12.1 */\n@-webkit-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Internet Explorer */\n@-ms-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes floatAnimation {\n 0% {\n transform: translateY(0);\n }\n 100% {\n transform: translateY(-20px);\n }\n}\n@keyframes bottomSheet {\n from {\n transform: translate(0, 100%);\n }\n to {\n transform: translate(0, 0);\n }\n}\n@keyframes slideRightToLeft {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0%);\n }\n}\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.3);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.container {\n width: 100%;\n border-bottom: 1px solid #eff2f5;\n padding: 1.5rem 0;\n user-select: none;\n}\n.container .content {\n position: relative;\n overflow: hidden;\n width: 100%;\n}\n.container .content.isClickable {\n cursor: pointer;\n}\n.container .content .info {\n position: absolute;\n top: 0;\n left: 0;\n inset: 0;\n width: 100%;\n height: 100%;\n background-color: transparent;\n background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.25) 30%, transparent 60%);\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n overflow: hidden;\n border-radius: 0.475rem;\n padding: 1rem;\n}\n.container .content .data {\n overflow: hidden;\n text-shadow: 0.5px 0.5px 5px #000000;\n}\n.container .content .data .name {\n font-size: 1rem;\n font-weight: 600;\n margin: 0;\n max-width: 100%;\n overflow: hidden;\n color: #ffffff;\n}\n.container .content .data .description {\n display: -webkit-box;\n line-clamp: 1;\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: normal;\n color: rgba(255, 255, 255, 0.9);\n font-size: 0.875rem;\n line-height: 1.25rem;\n max-width: 100%;\n}\n.container .content .data .price {\n line-height: 1.5rem;\n color: #ffffff;\n}\n.container .content .imageContainer {\n width: 100%;\n overflow: hidden;\n position: relative;\n border-radius: 0.475rem;\n}\n.container .content .imageContainer .image {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.container .content .imageContainer .image.notAvailable {\n -webkit-filter: grayscale(100%);\n filter: grayscale(100%);\n}\n.container .content {\n /* Use the modern aspect-ratio property where supported */\n}\n@supports (aspect-ratio: 16/9) {\n .container .content .imageContainer {\n aspect-ratio: 16/9;\n padding-top: 0;\n }\n}\n.container .content {\n /* Fallback: Use padding hack for older browsers */\n}\n@supports not (aspect-ratio: 16/9) {\n .container .content .imageContainer {\n padding-top: 56.25%; /* 16:9 aspect ratio = 9 / 16 * 100 */\n }\n}\n.container .content .addToOrder {\n position: absolute;\n pointer-events: all;\n top: 0.5rem;\n right: 0.5rem;\n}\n.container .content.noImage {\n min-height: 4.75rem;\n}\n.container .content.noImage .info {\n background: transparent;\n padding: 0;\n}\n.container .content.noImage .info .data {\n text-shadow: none;\n}\n.container .content.noImage .info .data .name,\n.container .content.noImage .info .data .price {\n color: #181c32;\n}\n.container .content.noImage .info .data .name {\n padding-right: 3rem;\n}\n.container .content.noImage .info .data .description,\n.container .content.noImage .info .data .volume {\n color: #a1a5b7 !important;\n}\n.container .content.noImage .info .data .notAvailableText {\n color: #f1416c !important;\n}\n.container .content.hasBackgroundColor {\n height: 100%;\n min-height: 6rem;\n}\n.container .content.hasBackgroundColor .info {\n padding: 1rem;\n}\n.container .content.hasBackgroundColor .info .data .name,\n.container .content.hasBackgroundColor .info .data .price {\n color: #ffffff;\n}","/* Text */\n/* Input */\n/* Button */\n/* TABLE */\n/* Modal */\n/* Bagde */\n/* Menu */\n/* Notification */\n/* BRANDS */\n/* Overlay */\n/* CARD */\n/* Border radius */\n/* Fonts */\n/* WIDTH */\n/* HEIGHT */\n/* CARD */\n/* TABLE */\n/* MODAL */\n/* BADGE */\n/* Menu */\n/* Input */\n/* EDITOR */\n/* HEADER */\n/* Z-INDEX */\n/* SIZES */\n/* SHADOW */\n/**/\n/* BUTTON */\n/* TEXT */\n/* RESPONSIVE */\n@keyframes flexWide {\n from {\n flex: 0;\n }\n to {\n flex: 1;\n }\n}\n@keyframes slidein {\n from {\n transform: translateX(0%);\n }\n to {\n transform: translateX(-100%);\n }\n}\n@keyframes fadeInOut {\n 0% {\n opacity: 0.5;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0.5;\n }\n}\n@keyframes heightAnimation {\n 0% {\n height: 0%;\n }\n 100% {\n height: 100%;\n }\n}\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Firefox < 16 */\n@-moz-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Safari, Chrome and Opera > 12.1 */\n@-webkit-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Internet Explorer */\n@-ms-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes floatAnimation {\n 0% {\n transform: translateY(0);\n }\n 100% {\n transform: translateY(-20px);\n }\n}\n@keyframes bottomSheet {\n from {\n transform: translate(0, 100%);\n }\n to {\n transform: translate(0, 0);\n }\n}\n@keyframes slideRightToLeft {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0%);\n }\n}\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.3);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.container {\n display: none;\n position: fixed;\n right: 2rem;\n bottom: 2rem;\n background-color: var(--sorocraft-color-primary, #2d3436);\n padding: 0.9rem 1rem;\n border-radius: 1.5rem;\n cursor: pointer;\n align-items: center;\n gap: 1rem;\n}\n.container .count {\n width: 1.5rem;\n height: 1.5rem;\n background-color: #ffffff;\n border-radius: 50%;\n font-size: 0.75rem;\n font-weight: 500;\n line-height: 1rem;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #181c32;\n}\n.container.isVisible {\n display: flex;\n}\n@media (max-width: 576px) {\n .container {\n bottom: 1rem;\n right: 1rem;\n }\n}\n.container.animate {\n animation: pulse 0.4s ease;\n}\n.container.isInPublicMenu {\n bottom: 4rem;\n right: 1rem;\n}","/* Text */\n/* Input */\n/* Button */\n/* TABLE */\n/* Modal */\n/* Bagde */\n/* Menu */\n/* Notification */\n/* BRANDS */\n/* Overlay */\n/* CARD */\n/* Border radius */\n/* Fonts */\n/* WIDTH */\n/* HEIGHT */\n/* CARD */\n/* TABLE */\n/* MODAL */\n/* BADGE */\n/* Menu */\n/* Input */\n/* EDITOR */\n/* HEADER */\n/* Z-INDEX */\n/* SIZES */\n/* SHADOW */\n/**/\n/* BUTTON */\n/* TEXT */\n/* RESPONSIVE */\n@keyframes flexWide {\n from {\n flex: 0;\n }\n to {\n flex: 1;\n }\n}\n@keyframes slidein {\n from {\n transform: translateX(0%);\n }\n to {\n transform: translateX(-100%);\n }\n}\n@keyframes fadeInOut {\n 0% {\n opacity: 0.5;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0.5;\n }\n}\n@keyframes heightAnimation {\n 0% {\n height: 0%;\n }\n 100% {\n height: 100%;\n }\n}\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Firefox < 16 */\n@-moz-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Safari, Chrome and Opera > 12.1 */\n@-webkit-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Internet Explorer */\n@-ms-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes floatAnimation {\n 0% {\n transform: translateY(0);\n }\n 100% {\n transform: translateY(-20px);\n }\n}\n@keyframes bottomSheet {\n from {\n transform: translate(0, 100%);\n }\n to {\n transform: translate(0, 0);\n }\n}\n@keyframes slideRightToLeft {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0%);\n }\n}\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.3);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.container .videos {\n width: 100%;\n background-color: #000000;\n position: relative;\n height: 100vh;\n max-height: 100vh;\n height: 100svh;\n max-height: 100svh;\n height: 100dvh;\n max-height: 100dvh;\n scroll-snap-type: y mandatory;\n /* Safari fixes */\n -webkit-overflow-scrolling: touch;\n overflow-y: scroll;\n scrollbar-width: none;\n scroll-behavior: smooth;\n}\n.container .videos::-webkit-scrollbar {\n display: none; /* Chrome + Safari */\n}","/* Text */\n/* Input */\n/* Button */\n/* TABLE */\n/* Modal */\n/* Bagde */\n/* Menu */\n/* Notification */\n/* BRANDS */\n/* Overlay */\n/* CARD */\n/* Border radius */\n/* Fonts */\n/* WIDTH */\n/* HEIGHT */\n/* CARD */\n/* TABLE */\n/* MODAL */\n/* BADGE */\n/* Menu */\n/* Input */\n/* EDITOR */\n/* HEADER */\n/* Z-INDEX */\n/* SIZES */\n/* SHADOW */\n/**/\n/* BUTTON */\n/* TEXT */\n/* RESPONSIVE */\n@keyframes flexWide {\n from {\n flex: 0;\n }\n to {\n flex: 1;\n }\n}\n@keyframes slidein {\n from {\n transform: translateX(0%);\n }\n to {\n transform: translateX(-100%);\n }\n}\n@keyframes fadeInOut {\n 0% {\n opacity: 0.5;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0.5;\n }\n}\n@keyframes heightAnimation {\n 0% {\n height: 0%;\n }\n 100% {\n height: 100%;\n }\n}\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Firefox < 16 */\n@-moz-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Safari, Chrome and Opera > 12.1 */\n@-webkit-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Internet Explorer */\n@-ms-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes floatAnimation {\n 0% {\n transform: translateY(0);\n }\n 100% {\n transform: translateY(-20px);\n }\n}\n@keyframes bottomSheet {\n from {\n transform: translate(0, 100%);\n }\n to {\n transform: translate(0, 0);\n }\n}\n@keyframes slideRightToLeft {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0%);\n }\n}\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.3);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.container {\n width: 100vw;\n height: 100vh;\n height: 100svh;\n height: 100dvh;\n background-color: #000000;\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 1rem;\n position: relative;\n scroll-snap-align: start;\n scroll-snap-stop: always;\n transform: translateZ(0);\n will-change: transform;\n contain: layout paint;\n}\n.container .videoContainer {\n height: calc(100vh - 2rem);\n height: calc(100svh - 2rem);\n height: calc(100dvh - 2rem);\n width: calc((100vh - 2rem) * 0.5625);\n position: relative;\n}\n.container .videoContainer .video {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: cover;\n cursor: pointer;\n border-radius: 1rem;\n overflow: hidden;\n}\n.container .videoContainer .video::-webkit-media-controls {\n display: none !important;\n}\n.container .videoContainer .top {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n padding: 0.5rem;\n background: linear-gradient(to top, rgba(18, 18, 18, 0) 0%, rgba(0, 0, 0, 0.3) 100%);\n transition: background 150ms ease, opacity 0.2s ease, visibility 0.2s ease;\n opacity: 0;\n visibility: hidden;\n}\n.container .videoContainer .top .actionIcon {\n width: 3rem;\n height: 3rem;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n}\n.container .videoContainer .play {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n opacity: 0.5;\n pointer-events: none;\n}\n.container .videoContainer .bottom {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n width: 100%;\n padding: 0.75rem;\n padding-block-end: 1rem;\n background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.5));\n}\n.container .videoContainer .bottom .actions {\n height: max-content;\n width: 3rem;\n}\n.container .videoContainer:hover .top {\n opacity: 1;\n visibility: visible;\n}\n@media (max-width: 576px) {\n .container .videoContainer {\n width: 100vw;\n height: 100vh;\n height: 100svh;\n height: 100dvh;\n }\n .container .videoContainer .video {\n border-radius: 0;\n }\n}","/* Text */\n/* Input */\n/* Button */\n/* TABLE */\n/* Modal */\n/* Bagde */\n/* Menu */\n/* Notification */\n/* BRANDS */\n/* Overlay */\n/* CARD */\n/* Border radius */\n/* Fonts */\n/* WIDTH */\n/* HEIGHT */\n/* CARD */\n/* TABLE */\n/* MODAL */\n/* BADGE */\n/* Menu */\n/* Input */\n/* EDITOR */\n/* HEADER */\n/* Z-INDEX */\n/* SIZES */\n/* SHADOW */\n/**/\n/* BUTTON */\n/* TEXT */\n/* RESPONSIVE */\n@keyframes flexWide {\n from {\n flex: 0;\n }\n to {\n flex: 1;\n }\n}\n@keyframes slidein {\n from {\n transform: translateX(0%);\n }\n to {\n transform: translateX(-100%);\n }\n}\n@keyframes fadeInOut {\n 0% {\n opacity: 0.5;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0.5;\n }\n}\n@keyframes heightAnimation {\n 0% {\n height: 0%;\n }\n 100% {\n height: 100%;\n }\n}\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Firefox < 16 */\n@-moz-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Safari, Chrome and Opera > 12.1 */\n@-webkit-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Internet Explorer */\n@-ms-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes floatAnimation {\n 0% {\n transform: translateY(0);\n }\n 100% {\n transform: translateY(-20px);\n }\n}\n@keyframes bottomSheet {\n from {\n transform: translate(0, 100%);\n }\n to {\n transform: translate(0, 0);\n }\n}\n@keyframes slideRightToLeft {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0%);\n }\n}\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.3);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.container .action {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 3rem;\n height: 3rem;\n border-radius: 50%;\n background-color: rgba(255, 255, 255, 0.12);\n cursor: pointer;\n transition: background-color 200ms ease-in-out;\n}\n.container .action:hover {\n background-color: rgba(255, 255, 255, 0.08);\n}\n.container .action.animate {\n animation: pulse 0.4s ease;\n}","/* Text */\n/* Input */\n/* Button */\n/* TABLE */\n/* Modal */\n/* Bagde */\n/* Menu */\n/* Notification */\n/* BRANDS */\n/* Overlay */\n/* CARD */\n/* Border radius */\n/* Fonts */\n/* WIDTH */\n/* HEIGHT */\n/* CARD */\n/* TABLE */\n/* MODAL */\n/* BADGE */\n/* Menu */\n/* Input */\n/* EDITOR */\n/* HEADER */\n/* Z-INDEX */\n/* SIZES */\n/* SHADOW */\n/**/\n/* BUTTON */\n/* TEXT */\n/* RESPONSIVE */\n@keyframes flexWide {\n from {\n flex: 0;\n }\n to {\n flex: 1;\n }\n}\n@keyframes slidein {\n from {\n transform: translateX(0%);\n }\n to {\n transform: translateX(-100%);\n }\n}\n@keyframes fadeInOut {\n 0% {\n opacity: 0.5;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0.5;\n }\n}\n@keyframes heightAnimation {\n 0% {\n height: 0%;\n }\n 100% {\n height: 100%;\n }\n}\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Firefox < 16 */\n@-moz-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Safari, Chrome and Opera > 12.1 */\n@-webkit-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Internet Explorer */\n@-ms-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes floatAnimation {\n 0% {\n transform: translateY(0);\n }\n 100% {\n transform: translateY(-20px);\n }\n}\n@keyframes bottomSheet {\n from {\n transform: translate(0, 100%);\n }\n to {\n transform: translate(0, 0);\n }\n}\n@keyframes slideRightToLeft {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0%);\n }\n}\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.3);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.container {\n width: calc(100% - 4rem);\n}\n.container .business {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n width: 100%;\n}\n.container .productName,\n.container .businessName,\n.container .description {\n width: fit-content;\n max-width: calc(100% - 4rem);\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.container .description {\n max-width: 100%;\n transition: white-space 0.2s ease;\n cursor: pointer;\n}\n.container.noAvatar .productName,\n.container.noAvatar .businessName,\n.container.noAvatar .description {\n max-width: 100%;\n}","/* Text */\n/* Input */\n/* Button */\n/* TABLE */\n/* Modal */\n/* Bagde */\n/* Menu */\n/* Notification */\n/* BRANDS */\n/* Overlay */\n/* CARD */\n/* Border radius */\n/* Fonts */\n/* WIDTH */\n/* HEIGHT */\n/* CARD */\n/* TABLE */\n/* MODAL */\n/* BADGE */\n/* Menu */\n/* Input */\n/* EDITOR */\n/* HEADER */\n/* Z-INDEX */\n/* SIZES */\n/* SHADOW */\n/**/\n/* BUTTON */\n/* TEXT */\n/* RESPONSIVE */\n@keyframes flexWide {\n from {\n flex: 0;\n }\n to {\n flex: 1;\n }\n}\n@keyframes slidein {\n from {\n transform: translateX(0%);\n }\n to {\n transform: translateX(-100%);\n }\n}\n@keyframes fadeInOut {\n 0% {\n opacity: 0.5;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0.5;\n }\n}\n@keyframes heightAnimation {\n 0% {\n height: 0%;\n }\n 100% {\n height: 100%;\n }\n}\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Firefox < 16 */\n@-moz-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Safari, Chrome and Opera > 12.1 */\n@-webkit-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Internet Explorer */\n@-ms-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes floatAnimation {\n 0% {\n transform: translateY(0);\n }\n 100% {\n transform: translateY(-20px);\n }\n}\n@keyframes bottomSheet {\n from {\n transform: translate(0, 100%);\n }\n to {\n transform: translate(0, 0);\n }\n}\n@keyframes slideRightToLeft {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0%);\n }\n}\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.3);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.container {\n position: fixed;\n inset: 0;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 110;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.container .content {\n position: relative;\n}\n.container .content .media {\n position: relative;\n width: 100%;\n}\n.container .content .media .play {\n position: absolute;\n bottom: 0;\n left: 0;\n display: flex;\n align-items: center;\n width: 100%;\n gap: 0.5rem;\n padding: 0.75rem;\n cursor: pointer;\n background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.5));\n}\n.container .content .image {\n max-height: 25rem;\n max-width: 100%;\n width: 100%;\n overflow: hidden;\n display: block;\n object-fit: cover;\n}\n.container .content .details {\n padding: 1rem 1.5rem 2rem;\n max-width: 100%;\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.container .content .details .name {\n margin: 0;\n font-size: 1.5rem;\n}\n.container .content .details .price {\n line-height: 1.5rem;\n}\n.container .content .details .volume {\n color: #a1a5b7;\n}\n.container .content .details .description {\n color: #a1a5b7;\n font-size: 1rem;\n line-height: 1.25rem;\n margin-top: 1rem;\n}\n.container .content .choices {\n border-top: 1px solid #eff2f5;\n border-bottom: 1px solid #eff2f5;\n max-width: 100%;\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 0.25rem 0;\n}\n.container .content .close {\n position: absolute;\n top: 1rem;\n right: 1rem;\n}\n.container .content .stickyBottom {\n padding-block-start: 1rem;\n position: sticky;\n bottom: 0;\n background-color: #ffffff;\n}\n.container .addAction .actionTitle {\n white-space: break-spaces;\n display: -webkit-box;\n line-clamp: 2;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n@media (max-width: 576px) {\n .container {\n align-items: flex-end;\n }\n}","/* Text */\n/* Input */\n/* Button */\n/* TABLE */\n/* Modal */\n/* Bagde */\n/* Menu */\n/* Notification */\n/* BRANDS */\n/* Overlay */\n/* CARD */\n/* Border radius */\n/* Fonts */\n/* WIDTH */\n/* HEIGHT */\n/* CARD */\n/* TABLE */\n/* MODAL */\n/* BADGE */\n/* Menu */\n/* Input */\n/* EDITOR */\n/* HEADER */\n/* Z-INDEX */\n/* SIZES */\n/* SHADOW */\n/**/\n/* BUTTON */\n/* TEXT */\n/* RESPONSIVE */\n@keyframes flexWide {\n from {\n flex: 0;\n }\n to {\n flex: 1;\n }\n}\n@keyframes slidein {\n from {\n transform: translateX(0%);\n }\n to {\n transform: translateX(-100%);\n }\n}\n@keyframes fadeInOut {\n 0% {\n opacity: 0.5;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0.5;\n }\n}\n@keyframes heightAnimation {\n 0% {\n height: 0%;\n }\n 100% {\n height: 100%;\n }\n}\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Firefox < 16 */\n@-moz-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Safari, Chrome and Opera > 12.1 */\n@-webkit-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Internet Explorer */\n@-ms-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes floatAnimation {\n 0% {\n transform: translateY(0);\n }\n 100% {\n transform: translateY(-20px);\n }\n}\n@keyframes bottomSheet {\n from {\n transform: translate(0, 100%);\n }\n to {\n transform: translate(0, 0);\n }\n}\n@keyframes slideRightToLeft {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0%);\n }\n}\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.3);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.container {\n background-color: var(--sorocraft-color-primary-light, #f5f8fa);\n border-radius: 3.75rem;\n}\n.container .quantityAction,\n.container .quantityValue {\n text-align: center;\n display: flex;\n align-items: center;\n justify-content: center;\n line-height: 1.5rem;\n color: var(--sorocraft-color-primary, #2d3436);\n}\n.container .quantityAction {\n cursor: pointer;\n}\n.container .quantityAction svg path {\n stroke: var(--sorocraft-color-primary, #2d3436);\n}\n.container .quantityAction.isDisabled {\n cursor: not-allowed;\n}\n.container.sm {\n width: 7.5rem !important;\n height: 2.5rem !important;\n}\n.container.sm .quantityValue {\n width: 1.25rem;\n height: 2.5rem !important;\n}\n.container.sm .quantityAction {\n width: 2.5rem;\n height: 2.5rem !important;\n}\n.container.md {\n width: 10rem !important;\n height: 3.25rem !important;\n}\n.container.md .quantityValue {\n width: 1.6666666667rem;\n height: 3.25rem !important;\n}\n.container.md .quantityAction {\n width: 3.3333333333rem;\n height: 3.25rem !important;\n}\n.container.lg {\n width: 12.5rem !important;\n height: 3.75rem !important;\n}\n.container.lg .quantityValue {\n width: 2.0833333333rem;\n height: 3.75rem !important;\n}\n.container.lg .quantityAction {\n width: 4.1666666667rem;\n height: 3.75rem !important;\n}\n.container.focused {\n box-shadow: 0px 0px 5px 0px #f1416c;\n}","/* Text */\n/* Input */\n/* Button */\n/* TABLE */\n/* Modal */\n/* Bagde */\n/* Menu */\n/* Notification */\n/* BRANDS */\n/* Overlay */\n/* CARD */\n/* Border radius */\n/* Fonts */\n/* WIDTH */\n/* HEIGHT */\n/* CARD */\n/* TABLE */\n/* MODAL */\n/* BADGE */\n/* Menu */\n/* Input */\n/* EDITOR */\n/* HEADER */\n/* Z-INDEX */\n/* SIZES */\n/* SHADOW */\n/**/\n/* BUTTON */\n/* TEXT */\n/* RESPONSIVE */\n@keyframes flexWide {\n from {\n flex: 0;\n }\n to {\n flex: 1;\n }\n}\n@keyframes slidein {\n from {\n transform: translateX(0%);\n }\n to {\n transform: translateX(-100%);\n }\n}\n@keyframes fadeInOut {\n 0% {\n opacity: 0.5;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0.5;\n }\n}\n@keyframes heightAnimation {\n 0% {\n height: 0%;\n }\n 100% {\n height: 100%;\n }\n}\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Firefox < 16 */\n@-moz-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Safari, Chrome and Opera > 12.1 */\n@-webkit-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Internet Explorer */\n@-ms-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes floatAnimation {\n 0% {\n transform: translateY(0);\n }\n 100% {\n transform: translateY(-20px);\n }\n}\n@keyframes bottomSheet {\n from {\n transform: translate(0, 100%);\n }\n to {\n transform: translate(0, 0);\n }\n}\n@keyframes slideRightToLeft {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0%);\n }\n}\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.3);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.container {\n padding: 0.5rem 1rem;\n}\n.container .title {\n font-weight: 600;\n}","/* Text */\n/* Input */\n/* Button */\n/* TABLE */\n/* Modal */\n/* Bagde */\n/* Menu */\n/* Notification */\n/* BRANDS */\n/* Overlay */\n/* CARD */\n/* Border radius */\n/* Fonts */\n/* WIDTH */\n/* HEIGHT */\n/* CARD */\n/* TABLE */\n/* MODAL */\n/* BADGE */\n/* Menu */\n/* Input */\n/* EDITOR */\n/* HEADER */\n/* Z-INDEX */\n/* SIZES */\n/* SHADOW */\n/**/\n/* BUTTON */\n/* TEXT */\n/* RESPONSIVE */\n@keyframes flexWide {\n from {\n flex: 0;\n }\n to {\n flex: 1;\n }\n}\n@keyframes slidein {\n from {\n transform: translateX(0%);\n }\n to {\n transform: translateX(-100%);\n }\n}\n@keyframes fadeInOut {\n 0% {\n opacity: 0.5;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0.5;\n }\n}\n@keyframes heightAnimation {\n 0% {\n height: 0%;\n }\n 100% {\n height: 100%;\n }\n}\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Firefox < 16 */\n@-moz-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Safari, Chrome and Opera > 12.1 */\n@-webkit-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Internet Explorer */\n@-ms-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes floatAnimation {\n 0% {\n transform: translateY(0);\n }\n 100% {\n transform: translateY(-20px);\n }\n}\n@keyframes bottomSheet {\n from {\n transform: translate(0, 100%);\n }\n to {\n transform: translate(0, 0);\n }\n}\n@keyframes slideRightToLeft {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0%);\n }\n}\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.3);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.container {\n padding: 1rem 1.5rem;\n box-shadow: 0;\n transition: box-shadow 0.1s ease-in-out;\n}\n.container .variantsTitle {\n font-weight: 600;\n margin-bottom: 0.5rem;\n}\n.container .variant {\n cursor: pointer;\n}\n.container.focused {\n box-shadow: 0px 0px 5px 0px #f1416c;\n}","/* Text */\n/* Input */\n/* Button */\n/* TABLE */\n/* Modal */\n/* Bagde */\n/* Menu */\n/* Notification */\n/* BRANDS */\n/* Overlay */\n/* CARD */\n/* Border radius */\n/* Fonts */\n/* WIDTH */\n/* HEIGHT */\n/* CARD */\n/* TABLE */\n/* MODAL */\n/* BADGE */\n/* Menu */\n/* Input */\n/* EDITOR */\n/* HEADER */\n/* Z-INDEX */\n/* SIZES */\n/* SHADOW */\n/**/\n/* BUTTON */\n/* TEXT */\n/* RESPONSIVE */\n@keyframes flexWide {\n from {\n flex: 0;\n }\n to {\n flex: 1;\n }\n}\n@keyframes slidein {\n from {\n transform: translateX(0%);\n }\n to {\n transform: translateX(-100%);\n }\n}\n@keyframes fadeInOut {\n 0% {\n opacity: 0.5;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0.5;\n }\n}\n@keyframes heightAnimation {\n 0% {\n height: 0%;\n }\n 100% {\n height: 100%;\n }\n}\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Firefox < 16 */\n@-moz-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Safari, Chrome and Opera > 12.1 */\n@-webkit-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Internet Explorer */\n@-ms-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes floatAnimation {\n 0% {\n transform: translateY(0);\n }\n 100% {\n transform: translateY(-20px);\n }\n}\n@keyframes bottomSheet {\n from {\n transform: translate(0, 100%);\n }\n to {\n transform: translate(0, 0);\n }\n}\n@keyframes slideRightToLeft {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0%);\n }\n}\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.3);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.container {\n padding: 1rem 1.5rem;\n box-shadow: 0;\n transition: box-shadow 0.1s ease-in-out;\n}\n.container.focused {\n box-shadow: 0px 0px 5px 0px #f1416c;\n}\n.container .optionsTitle {\n font-weight: 600;\n margin-bottom: 0.5rem;\n}","/* Text */\n/* Input */\n/* Button */\n/* TABLE */\n/* Modal */\n/* Bagde */\n/* Menu */\n/* Notification */\n/* BRANDS */\n/* Overlay */\n/* CARD */\n/* Border radius */\n/* Fonts */\n/* WIDTH */\n/* HEIGHT */\n/* CARD */\n/* TABLE */\n/* MODAL */\n/* BADGE */\n/* Menu */\n/* Input */\n/* EDITOR */\n/* HEADER */\n/* Z-INDEX */\n/* SIZES */\n/* SHADOW */\n/**/\n/* BUTTON */\n/* TEXT */\n/* RESPONSIVE */\n@keyframes flexWide {\n from {\n flex: 0;\n }\n to {\n flex: 1;\n }\n}\n@keyframes slidein {\n from {\n transform: translateX(0%);\n }\n to {\n transform: translateX(-100%);\n }\n}\n@keyframes fadeInOut {\n 0% {\n opacity: 0.5;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0.5;\n }\n}\n@keyframes heightAnimation {\n 0% {\n height: 0%;\n }\n 100% {\n height: 100%;\n }\n}\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Firefox < 16 */\n@-moz-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Safari, Chrome and Opera > 12.1 */\n@-webkit-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Internet Explorer */\n@-ms-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes floatAnimation {\n 0% {\n transform: translateY(0);\n }\n 100% {\n transform: translateY(-20px);\n }\n}\n@keyframes bottomSheet {\n from {\n transform: translate(0, 100%);\n }\n to {\n transform: translate(0, 0);\n }\n}\n@keyframes slideRightToLeft {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0%);\n }\n}\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.3);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.container {\n position: fixed;\n inset: 0;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 100;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n}\n.container .content {\n padding: 1rem 0;\n height: 100%;\n}\n.container .content .paymentMethods {\n padding: 0 1rem;\n}\n\n.footer .noteButton {\n padding: 0.625rem 1.5rem !important;\n}\n\n.table {\n padding: 0 1rem;\n}","/* Text */\n/* Input */\n/* Button */\n/* TABLE */\n/* Modal */\n/* Bagde */\n/* Menu */\n/* Notification */\n/* BRANDS */\n/* Overlay */\n/* CARD */\n/* Border radius */\n/* Fonts */\n/* WIDTH */\n/* HEIGHT */\n/* CARD */\n/* TABLE */\n/* MODAL */\n/* BADGE */\n/* Menu */\n/* Input */\n/* EDITOR */\n/* HEADER */\n/* Z-INDEX */\n/* SIZES */\n/* SHADOW */\n/**/\n/* BUTTON */\n/* TEXT */\n/* RESPONSIVE */\n@keyframes flexWide {\n from {\n flex: 0;\n }\n to {\n flex: 1;\n }\n}\n@keyframes slidein {\n from {\n transform: translateX(0%);\n }\n to {\n transform: translateX(-100%);\n }\n}\n@keyframes fadeInOut {\n 0% {\n opacity: 0.5;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0.5;\n }\n}\n@keyframes heightAnimation {\n 0% {\n height: 0%;\n }\n 100% {\n height: 100%;\n }\n}\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Firefox < 16 */\n@-moz-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Safari, Chrome and Opera > 12.1 */\n@-webkit-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Internet Explorer */\n@-ms-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes floatAnimation {\n 0% {\n transform: translateY(0);\n }\n 100% {\n transform: translateY(-20px);\n }\n}\n@keyframes bottomSheet {\n from {\n transform: translate(0, 100%);\n }\n to {\n transform: translate(0, 0);\n }\n}\n@keyframes slideRightToLeft {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0%);\n }\n}\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.3);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.container {\n min-height: 3.375rem;\n width: 100%;\n background-color: var(--sorocraft-color-primary, #2d3436);\n padding: 0.9rem 1rem;\n border-radius: 1.5rem;\n color: #ffffff;\n}\n.container .count {\n width: 1.5rem;\n height: 1.5rem;\n background-color: #ffffff;\n border-radius: 50%;\n font-size: 0.75rem;\n font-weight: 500;\n line-height: 1rem;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #181c32;\n}\n.container .actionText {\n font-weight: 500;\n white-space: nowrap;\n}\n.container .totalPrice {\n text-align: end;\n font-weight: 500;\n}\n.container.isClickable {\n cursor: pointer;\n}\n.container.isLoading, .container.isDisabled {\n background-color: rgba(235, 59, 90, 0.75);\n cursor: not-allowed;\n}\n.container.isLoading .actionText, .container.isDisabled .actionText {\n line-height: 0.75;\n}","/* Text */\n/* Input */\n/* Button */\n/* TABLE */\n/* Modal */\n/* Bagde */\n/* Menu */\n/* Notification */\n/* BRANDS */\n/* Overlay */\n/* CARD */\n/* Border radius */\n/* Fonts */\n/* WIDTH */\n/* HEIGHT */\n/* CARD */\n/* TABLE */\n/* MODAL */\n/* BADGE */\n/* Menu */\n/* Input */\n/* EDITOR */\n/* HEADER */\n/* Z-INDEX */\n/* SIZES */\n/* SHADOW */\n/**/\n/* BUTTON */\n/* TEXT */\n/* RESPONSIVE */\n@keyframes flexWide {\n from {\n flex: 0;\n }\n to {\n flex: 1;\n }\n}\n@keyframes slidein {\n from {\n transform: translateX(0%);\n }\n to {\n transform: translateX(-100%);\n }\n}\n@keyframes fadeInOut {\n 0% {\n opacity: 0.5;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0.5;\n }\n}\n@keyframes heightAnimation {\n 0% {\n height: 0%;\n }\n 100% {\n height: 100%;\n }\n}\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Firefox < 16 */\n@-moz-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Safari, Chrome and Opera > 12.1 */\n@-webkit-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Internet Explorer */\n@-ms-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes floatAnimation {\n 0% {\n transform: translateY(0);\n }\n 100% {\n transform: translateY(-20px);\n }\n}\n@keyframes bottomSheet {\n from {\n transform: translate(0, 100%);\n }\n to {\n transform: translate(0, 0);\n }\n}\n@keyframes slideRightToLeft {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0%);\n }\n}\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.3);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.container {\n padding: 0.75rem 1rem;\n border-bottom: 1px solid #eff2f5;\n}\n.container .image {\n width: 5rem;\n height: 2.8125rem;\n border-radius: 0.475rem;\n object-fit: cover;\n overflow: hidden;\n}\n.container .data {\n flex: 1;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.container .data .name {\n font-weight: 500;\n line-height: 1;\n margin-bottom: 0.5rem;\n}\n.container .data .price {\n margin-top: 0.5rem;\n line-height: 1.5rem;\n}","/* Text */\n/* Input */\n/* Button */\n/* TABLE */\n/* Modal */\n/* Bagde */\n/* Menu */\n/* Notification */\n/* BRANDS */\n/* Overlay */\n/* CARD */\n/* Border radius */\n/* Fonts */\n/* WIDTH */\n/* HEIGHT */\n/* CARD */\n/* TABLE */\n/* MODAL */\n/* BADGE */\n/* Menu */\n/* Input */\n/* EDITOR */\n/* HEADER */\n/* Z-INDEX */\n/* SIZES */\n/* SHADOW */\n/**/\n/* BUTTON */\n/* TEXT */\n/* RESPONSIVE */\n@keyframes flexWide {\n from {\n flex: 0;\n }\n to {\n flex: 1;\n }\n}\n@keyframes slidein {\n from {\n transform: translateX(0%);\n }\n to {\n transform: translateX(-100%);\n }\n}\n@keyframes fadeInOut {\n 0% {\n opacity: 0.5;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0.5;\n }\n}\n@keyframes heightAnimation {\n 0% {\n height: 0%;\n }\n 100% {\n height: 100%;\n }\n}\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Firefox < 16 */\n@-moz-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Safari, Chrome and Opera > 12.1 */\n@-webkit-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Internet Explorer */\n@-ms-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes floatAnimation {\n 0% {\n transform: translateY(0);\n }\n 100% {\n transform: translateY(-20px);\n }\n}\n@keyframes bottomSheet {\n from {\n transform: translate(0, 100%);\n }\n to {\n transform: translate(0, 0);\n }\n}\n@keyframes slideRightToLeft {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0%);\n }\n}\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.3);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.quantity {\n width: 2rem;\n height: 2rem;\n background-color: #f5f8fa;\n color: #181c32;\n border-radius: 50%;\n font-size: 0.875rem;\n font-weight: 500;\n line-height: 1rem;\n display: flex;\n align-items: center;\n justify-content: center;\n}",".container {\n padding: 1rem;\n width: 100%;\n cursor: pointer;\n}",".container {\n width: 100%;\n max-width: 100%;\n overflow-x: auto;\n min-height: 2.5rem;\n}","/* Text */\n/* Input */\n/* Button */\n/* TABLE */\n/* Modal */\n/* Bagde */\n/* Menu */\n/* Notification */\n/* BRANDS */\n/* Overlay */\n/* CARD */\n/* Border radius */\n/* Fonts */\n/* WIDTH */\n/* HEIGHT */\n/* CARD */\n/* TABLE */\n/* MODAL */\n/* BADGE */\n/* Menu */\n/* Input */\n/* EDITOR */\n/* HEADER */\n/* Z-INDEX */\n/* SIZES */\n/* SHADOW */\n/**/\n/* BUTTON */\n/* TEXT */\n/* RESPONSIVE */\n@keyframes flexWide {\n from {\n flex: 0;\n }\n to {\n flex: 1;\n }\n}\n@keyframes slidein {\n from {\n transform: translateX(0%);\n }\n to {\n transform: translateX(-100%);\n }\n}\n@keyframes fadeInOut {\n 0% {\n opacity: 0.5;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0.5;\n }\n}\n@keyframes heightAnimation {\n 0% {\n height: 0%;\n }\n 100% {\n height: 100%;\n }\n}\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Firefox < 16 */\n@-moz-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Safari, Chrome and Opera > 12.1 */\n@-webkit-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Internet Explorer */\n@-ms-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes floatAnimation {\n 0% {\n transform: translateY(0);\n }\n 100% {\n transform: translateY(-20px);\n }\n}\n@keyframes bottomSheet {\n from {\n transform: translate(0, 100%);\n }\n to {\n transform: translate(0, 0);\n }\n}\n@keyframes slideRightToLeft {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0%);\n }\n}\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.3);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.container .row {\n border-bottom: 1px dashed #eff2f5;\n padding: 0.5rem 1rem;\n}","/* Text */\n/* Input */\n/* Button */\n/* TABLE */\n/* Modal */\n/* Bagde */\n/* Menu */\n/* Notification */\n/* BRANDS */\n/* Overlay */\n/* CARD */\n/* Border radius */\n/* Fonts */\n/* WIDTH */\n/* HEIGHT */\n/* CARD */\n/* TABLE */\n/* MODAL */\n/* BADGE */\n/* Menu */\n/* Input */\n/* EDITOR */\n/* HEADER */\n/* Z-INDEX */\n/* SIZES */\n/* SHADOW */\n/**/\n/* BUTTON */\n/* TEXT */\n/* RESPONSIVE */\n@keyframes flexWide {\n from {\n flex: 0;\n }\n to {\n flex: 1;\n }\n}\n@keyframes slidein {\n from {\n transform: translateX(0%);\n }\n to {\n transform: translateX(-100%);\n }\n}\n@keyframes fadeInOut {\n 0% {\n opacity: 0.5;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0.5;\n }\n}\n@keyframes heightAnimation {\n 0% {\n height: 0%;\n }\n 100% {\n height: 100%;\n }\n}\n@keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Firefox < 16 */\n@-moz-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Safari, Chrome and Opera > 12.1 */\n@-webkit-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n/* Internet Explorer */\n@-ms-keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes floatAnimation {\n 0% {\n transform: translateY(0);\n }\n 100% {\n transform: translateY(-20px);\n }\n}\n@keyframes bottomSheet {\n from {\n transform: translate(0, 100%);\n }\n to {\n transform: translate(0, 0);\n }\n}\n@keyframes slideRightToLeft {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0%);\n }\n}\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n@keyframes pulse {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.3);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.container {\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n.container .intervals {\n margin-bottom: 2.5rem;\n display: flex;\n gap: 1rem;\n background-color: #ffffff;\n box-shadow: 0px 3px 4px 0px rgba(0, 0, 0, 0.03);\n padding: 1rem 1.5rem;\n border-radius: 3.75rem;\n}\n.container .intervals .interval {\n background-color: transparent;\n border-radius: 3.75rem;\n padding: 0.75rem 1.5rem;\n cursor: pointer;\n transition: background-color ease-in-out 0.2s, color ease-in-out 0.2s;\n text-transform: capitalize;\n}\n.container .intervals .interval.active {\n background-color: var(--sorocraft-color-primary, #2d3436);\n color: #ffffff;\n}\n.container .plans {\n gap: 2rem;\n width: 100%;\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n margin-bottom: 6rem;\n}\n.container .plans .plan {\n height: 100%;\n transition: box-shadow 500ms cubic-bezier(0.7, 0, 0, 1);\n border-radius: 0.625rem;\n position: relative;\n}\n.container .plans .plan > div {\n height: 100%;\n}\n.container .plans .plan .title {\n font-size: 1.75rem;\n font-weight: 600;\n padding-bottom: 1rem;\n border-bottom: 1px dashed #e4e6ef;\n}\n.container .plans .plan .price {\n font-size: 2rem;\n margin-top: 1rem;\n height: 3.75rem;\n}\n.container .plans .plan .price .originalPrice {\n text-decoration: line-through;\n font-size: 1.5rem;\n font-weight: 600;\n}\n.container .plans .plan .price .discountedPrice {\n color: var(--sorocraft-color-primary, #2d3436);\n font-weight: 600;\n}\n.container .plans .plan .action {\n margin: 2rem 0;\n}\n.container .plans .plan .benefits .moneyBack {\n font-size: 0.875rem;\n color: #a1a5b7;\n margin-bottom: 1rem;\n}\n.container .plans .plan .benefits .benefit {\n padding: 0.5rem 0;\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n.container .plans .plan .benefits .benefit i {\n margin-right: 1rem;\n}\n.container .plans .plan:hover {\n box-shadow: 0px 100px 50px -40px rgba(0, 0, 0, 0.1), 0px 60px 100px 0px rgba(50, 50, 93, 0.25);\n color: #181c32;\n}\n.container .plans .plan.hasRibbon::before {\n content: attr(data-ribbon);\n position: absolute;\n font-size: 0.9rem;\n top: 0;\n right: 0;\n transform: translate(29.29%, -100%) rotate(45deg);\n color: #fff;\n text-align: center;\n border: 1px solid transparent;\n border-bottom: 0;\n transform-origin: bottom left;\n padding: 5px 35px 11px;\n background: linear-gradient(rgba(0, 0, 0, 0.5) 0 0) bottom/100% 6px no-repeat var(--sorocraft-color-primary, #2d3436);\n background-clip: padding-box;\n clip-path: polygon(0 0, 100% 0, 100% 100%, calc(100% - 6px) calc(100% - 6px), 6px calc(100% - 6px), 0 100%);\n -webkit-mask: linear-gradient(135deg, transparent calc(50% - 4.242px), #fff 0) bottom left, linear-gradient(-135deg, transparent calc(50% - 4.242px), #fff 0) bottom right;\n -webkit-mask-size: 300vmax 300vmax;\n -webkit-mask-composite: destination-in;\n mask-composite: intersect;\n}"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from "../modules/addon/utils";
|
|
2
|
+
export * from "../modules/product/utils";
|
|
3
|
+
export * from "../modules/order/utils";
|
|
4
|
+
export * from "../modules/customer/utils";
|
|
5
|
+
export * from "../modules/feature/utils";
|
|
6
|
+
export * from "../modules/view/utils";
|
|
7
|
+
export * from "../modules/category/utils";
|
|
8
|
+
export * from "../modules/menu/utils";
|
|
9
|
+
export * from "../modules/user/utils";
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{priceFormatter as E,isEmpty as A,sortNumbers as _,checkIsValidEmail as t,getQueryParam as T}from"@sorocraft/js-utils";import{HourglassHalf as R,FileCheck as r,Chef as e,Delivery as I,BagCheck as n,Check as D}from"@sorocraft/ui/icons";const o=(E,A)=>{var _,t;return(null===(t=null===(_=null==E?void 0:E.translations)||void 0===_?void 0:_.find)||void 0===t?void 0:t.call(_,E=>E.language===A))||{}},i=(E,A)=>{var _,t;return(null===(t=null===(_=null==E?void 0:E.translations)||void 0===_?void 0:_.find)||void 0===t?void 0:t.call(_,E=>E.language===A))||{}},a=({option:A,currency:_,language:t})=>{const{price:T}=A||{};return{totalPrice:T,formattedTotalPrice:E(T,_||"USD",t||"en")}},N=(E,A)=>{var _;return(null===(_=((null==E?void 0:E.options)||[]).find(({id:E})=>E===A))||void 0===_?void 0:_.price)||0},O=(E,A,_)=>{var t;if(Array.isArray(A))return(E||[]).filter(({id:E})=>A.includes(E)).map(({translations:E})=>{var A;return(null===(A=E.find(E=>E.language===_))||void 0===A?void 0:A.title)||""}).filter(Boolean).join(", ");{const T=(E||[]).find(({id:E})=>E===A);return(null===(t=null==T?void 0:T.translations.find(E=>E.language===_))||void 0===t?void 0:t.title)||""}},l=(E,A)=>{var _,t,T;return(null===(T=null===(t=null===(_=null==E?void 0:E.translations)||void 0===_?void 0:_.find)||void 0===t?void 0:t.call(_,E=>E.language===A))||void 0===T?void 0:T.title)||""};var S,s,u;!function(E){E.LIST="list",E.GRID="grid"}(S||(S={})),function(E){E.PIECE="PIECE",E.WEIGHT="WEIGHT",E.VOLUME="VOLUME"}(s||(s={})),function(E){E.SINGLE="SINGLE",E.MULTIPLE="MULTIPLE"}(u||(u={}));const C=(E=0,A=1,_=0)=>E*A*(1+_/100),c=(E,A)=>{var _,t;return(null===(t=null===(_=null==E?void 0:E.translations)||void 0===_?void 0:_.find)||void 0===t?void 0:t.call(_,E=>E.language===A))||{}},U=(E,A=1)=>{const{price:_=0,vat:t=0}=E||{};return C(_,A,t)},P=(A,_,t,T=1)=>{const R=U(A,T);return{totalPrice:R,formattedTotalPrice:E(R,_,t)}},d=(E,A)=>{var _,t;return(null===(t=null===(_=null==E?void 0:E.variants)||void 0===_?void 0:_.find)||void 0===t?void 0:t.call(_,E=>E.id===A))||{}},L=(E,A={},_)=>((null==E?void 0:E.addons)||[]).filter(E=>Object.prototype.hasOwnProperty.call(A,E.id)).reduce((E,_)=>{const{id:t,selectType:T}=_;if(T===u.SINGLE){const T=A[t];return E+N(_,T)}return E+(A[t]||[]).reduce((E,A)=>E+N(_,A),0)},0)*_,V=(E,A,_)=>{const t=d(A,E),{vat:T}=A||{},{price:R}=t||{};return C(R,_,T)},W=({variantId:A,currency:_="USD",language:t="en",product:T,quantity:R=1})=>{const r=V(A,T,R);return{totalPrice:r,formattedTotalPrice:E(r,_,t)}},M=(E,A)=>{var _,t;return(null===(t=null===(_=null==E?void 0:E.translations)||void 0===_?void 0:_.find)||void 0===t?void 0:t.call(_,E=>E.language===A))||{}},v=({product:E,variantId:_,quantity:t=1,selectedAddons:T,noVat:R=!1})=>{if(A(E))return{price:0,optionsPrice:0,total:0};const r=Object.assign(Object.assign({},E),{vat:R?0:E.vat}),e=L(r,T,t),I=_?V(_,r,t):U(r,t);return{price:I,optionsPrice:e,total:I+e}},B=({product:A,variantId:_,quantity:t=1,currency:T,language:R,selectedAddons:r,noVat:e=!1})=>{const{total:I}=v({product:A,variantId:_,quantity:t,selectedAddons:r,noVat:e});return{totalPrice:I,formattedTotalPrice:E(I,T,R)}},H=(E,A)=>((null==E?void 0:E.addons)||[]).find(({id:E})=>E===A)||{},Y=E=>{switch(E){case s.WEIGHT:return" / kg";case s.VOLUME:return" / l";default:return""}},G=E=>{switch(E){case s.WEIGHT:return{"50gr":.05,"100gr":.1,"150gr":.15,"200gr":.2,"250gr":.25,"300gr":.3,"350gr":.35,"400gr":.4,"450gr":.45,"500gr":.5,"600gr":.6,"700gr":.7,"750gr":.75,"800gr":.8,"850gr":.85,"900gr":.9,"950gr":.95,"1kg":1,"2kg":2,"5kg":5,"10kg":10,"20kg":20};case s.VOLUME:return{"50ml":.05,"100ml":.1,"150ml":.15,"200ml":.2,"250ml":.25,"300ml":.3,"350ml":.35,"400ml":.4,"450ml":.45,"500ml":.5,"600ml":.6,"700ml":.7,"750ml":.75,"800ml":.8,"850ml":.85,"900ml":.9,"950ml":.95,"1l":1,"2l":2,"5l":5,"10l":10,"20l":20};default:return{}}};var m,f,p,g,h,b;!function(E){E.DINE_IN="DINE_IN",E.PICK_UP="PICK_UP",E.DELIVERY="DELIVERY"}(m||(m={})),function(E){E.DRAFT="DRAFT",E.PENDING="PENDING",E.CONFIRMED="CONFIRMED",E.PREPARING="PREPARING",E.READY="READY",E.OUT_FOR_DELIVERY="OUT_FOR_DELIVERY",E.DELIVERED="DELIVERED",E.COMPLETED="COMPLETED",E.CANCELLED="CANCELLED",E.FAILED="FAILED"}(f||(f={})),function(E){E.PENDING="PENDING",E.PREPARING="PREPARING",E.READY="READY",E.SERVED="SERVED"}(p||(p={})),function(E){E.CASH="CASH",E.CARD="CARD",E.WALLET="WALLET",E.TERMINAL="TERMINAL"}(g||(g={})),function(E){E.CART="CART",E.DETAILS="DETAILS",E.COMPLETED="COMPLETED"}(h||(h={})),g.CASH,h.CART,h.DETAILS,h.COMPLETED,function(E){E.FIELD_REQUIRED_ERROR="This field is required",E.TABLE_NOT_SELECTED="Please select a table",E.ADDRESS_IS_EMPTY="Please enter an address",E.EMPTY_ITEMS="Please choose product",E.BRANCH_NOT_SELECTED="Please select a branch"}(b||(b={}));const F=E=>E.options.reduce((E,A)=>E+A.price,0);function y(E=[],A=1){return A*E.reduce((E,A)=>E+F(A),0)}const Q=(A,_,t)=>{const T=(E,A,_)=>A*E+y(_,A);let R=0,r=0;for(const E of A.items){const _=T(E.price,E.quantity,E.addons);R+=_,void 0===A.vat&&E.vat&&(r+=_*E.vat/100)}void 0!==A.vat&&(r=R*A.vat/100);const e=R+r;return{totalWithoutTax:R,totalWithoutTaxFormatted:E(R,_,t),totalTax:r,totalTaxFormatted:E(r,_,t),totalWithTax:e,totalWithTaxFormatted:E(e,_,t)}},$=(E,A,t)=>{if(!E)throw new Error("Product ID is required");let T=`${E}`;A&&(T+=`-${A}`);const R=Object.entries(t||{}).map(([E,A])=>{if(!E||!A)return null;const t=Array.isArray(A)?_(A).filter(Boolean).join("-"):`${A}`;return t?`${E}-${t}`:null}).filter(Boolean).join("-");return R&&(T+=`-${R}`),T},j=E=>{var A;const{price:_,variant:t,addons:T,quantity:R,vat:r}=E||{},e=null!==(A=null==t?void 0:t.price)&&void 0!==A?A:_,I=e+y(T,1),n=e*(r/100),D=I+n;return{totalGross:D*R,totalNet:I*R,totalTax:n*R,itemGrossPrice:D,itemNetPrice:I,itemTax:n}},w=E=>{const A={};for(const{addonId:_,options:t=[]}of E.addons||[]){const E=t.map(({optionId:E})=>E);A[_]=1===E.length?E[0]:E}return A},K=E=>{switch(E){case f.COMPLETED:return D;case f.DELIVERED:return n;case f.OUT_FOR_DELIVERY:return I;case f.PREPARING:return e;case f.CONFIRMED:return r;case f.PENDING:default:return R}},x=(E=[],_={})=>Object.entries(_).map(([_,t])=>{const T=Number(_),R=Array.isArray(t)?t:[t],r=E.find(E=>E.id===T);if(A(r))return{addonId:T,options:[]};const e=(r.options||[]).filter(E=>R.includes(E.id)).map(E=>({optionId:E.id,price:E.price}));return{addonId:T,options:e}}),k=(E,A,_)=>{if(!E)return null;const{deliveryOrderEnabled:t,dineInOrderEnabled:T,pickupOrderEnabled:R}=E;return t&&_?m.DELIVERY:T&&A?m.DINE_IN:R&&A?m.PICK_UP:null},q=E=>{switch(E){case"customer":return b.ADDRESS_IS_EMPTY;case"tableId":return b.TABLE_NOT_SELECTED;case"items":return b.EMPTY_ITEMS;case"branchId":return b.BRANCH_NOT_SELECTED;default:return b.FIELD_REQUIRED_ERROR}},z="tabres.com",J="https://images.tabres.com",X={994:E=>{const A=["50","51","10","55","99","70","77","60"];return new RegExp(`^(${A.join("|")})\\d{7}$`).test(E)?{isValid:!0}:{isValid:!1,error:`Azerbaijani numbers must be 9 digits and start with ${A.join(", ")}`}},31:E=>/^\d{9}$/.test(E)?{isValid:!0}:{isValid:!1,error:"Dutch numbers must be exactly 9 digits"}};function Z(E){if(!E)return{isValid:!1,error:"FIELD_REQUIRED"};const A=E.replace(/\D/g,""),_=A.startsWith("994")?"994":A.startsWith("31")?"31":null;if(!_)return{isValid:!1,error:"Unsupported country code"};const t=A.slice(_.length);return(0,X[_])(t)}const EE=(E,A)=>{const _=A||"en";return"localhost:3000"===E?{url:`http://localhost:3000/${_}`,domain:z}:{url:`https://${z}/${_}`,domain:z}},AE=(E,A)=>`https://app.tabres.com/auth/register?lang=${E}&utm_source=${A}`,_E=E=>E?E.includes("base64")||E.startsWith("https://")?E:`${J}/${E}`:"",tE=E=>E?E.includes("base64")||E.startsWith("https://")?E:`${J}/${E}`:"https://images.tabres.com/no-photo-128.webp",TE=E=>E?E.includes("base64")||E.startsWith("https://")?E:`${J}/${E}`:"https://images.tabres.com/tabres-doodle.webp",RE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",rE=(E,A,_)=>RE.charAt(E>>2)+RE.charAt((3&E)<<4|A>>4)+RE.charAt((15&A)<<2|_>>6)+RE.charAt(63&_),eE=(E,A,_)=>`data:image/gif;base64,R0lGODlhAQABAPAA${rE(0,E,A)+rE(_,255,255)}/yH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==`,IE=E=>E?E.includes("base64")||E.startsWith("https://")?E:`${J}/${E}`:"";var nE,DE;!function(E){E.PHONE="PHONE",E.OTP="OTP",E.EMAIL="EMAIL"}(nE||(nE={})),function(E){E.HOME="HOME",E.WORK="WORK",E.TRAVEL="TRAVEL"}(DE||(DE={}));const oE=E=>`${E.countryCode}${E.phoneNumber}`.replaceAll("+",""),iE=(E,A)=>{const _={},{phoneNumber:T,email:R,otp:r}=E||{};switch(A){case nE.PHONE:{const{isValid:E,error:A}=Z(T);E||(_.phoneNumber=A);break}case nE.OTP:{const{isValid:E,error:A}=Z(T);E||(_.phoneNumber=A),r&&6===r.length||(_.otp="Invalid OTP");break}case nE.EMAIL:R&&t(R)||(_.email="Invalid Email Address")}return _},aE=E=>{const A={},{countryCode:_,cityName:t,street:T,houseNumber:R}=E||{};return _||(A.countryCode="COUNTRY_REQUIRED"),t||(A.cityName="CITY_REQUIRED"),T||(A.street="STREET_REQUIRED"),R||(A.houseNumber="STREET_NUMBER_REQUIRED"),A},NE=E=>(E||[]).filter(Boolean).join(", "),OE=(E,A,_)=>[E,[A,_].filter(Boolean).join("/")].filter(Boolean).join(" ");var lE,SE;!function(E){E.UPLOAD_VIDEO="UPLOAD_VIDEO"}(lE||(lE={})),function(E){E.ALPHA="ALPHA",E.BETA="BETA",E.ALL="ALL"}(SE||(SE={}));const sE={[SE.ALPHA]:[lE.UPLOAD_VIDEO],[SE.BETA]:[],[SE.ALL]:[]},uE=(E,A)=>{if("1"===T(E))return!0;return(A===SE.ALPHA?[SE.ALPHA,SE.BETA,SE.ALL]:A===SE.BETA?[SE.BETA,SE.ALL]:[SE.ALL]).some(A=>{var _;return null===(_=sE[A])||void 0===_?void 0:_.includes(E)})},CE=(E,A)=>{var _,t;return(null===(t=null===(_=null==E?void 0:E.translations)||void 0===_?void 0:_.find)||void 0===t?void 0:t.call(_,E=>E.language===A))||{}},cE=(E,_,t)=>{var T;const R=null===(T=null==_?void 0:_.find)||void 0===T?void 0:T.call(_,({id:A})=>A===E);if(A(R))return"";const{name:r}=CE(R,t);return r||""},UE=(E,A)=>{const _=A.reduce((E,A)=>{if(!A.visible)return E;const _=Number(A.categoryId);return E[_]||(E[_]=[]),E[_].push(A),E},{});return E.map(E=>Object.assign(Object.assign({},E),{products:_[Number(E.id)]||[]})).filter(E=>{var A;return(null===(A=null==E?void 0:E.products)||void 0===A?void 0:A.length)>0})};var PE,dE;!function(E){E.VIEW_BUSINESS="VIEW_BUSINESS",E.UPDATE_BUSINESS="UPDATE_BUSINESS",E.VIEW_ORDERS="VIEW_ORDERS",E.UPDATE_ORDER="UPDATE_ORDER",E.CREATE_ORDER="CREATE_ORDER",E.VIEW_QR_MENU="VIEW_QR_MENU",E.VIEW_MENU="VIEW_MENU",E.VIEW_MENU_ITEMS="VIEW_MENU_ITEMS",E.CREATE_MENU_ITEM="CREATE_MENU_ITEM",E.UPDATE_MENU_ITEM="UPDATE_MENU_ITEM",E.DELETE_MENU_ITEM="DELETE_MENU_ITEM",E.VIEW_CATEGORIES="VIEW_CATEGORIES",E.UPDATE_CATEGORY="UPDATE_CATEGORY",E.CREATE_CATEGORY="CREATE_CATEGORY",E.DELETE_CATEGORY="DELETE_CATEGORY",E.VIEW_ADDONS="VIEW_ADDONS",E.UPDATE_ADDON="UPDATE_ADDON",E.CREATE_ADDON="CREATE_ADDON",E.DELETE_ADDON="DELETE_ADDON",E.VIEW_TABLES="VIEW_TABLES",E.UPDATE_TABLE="UPDATE_TABLE",E.UPDATE_TABLE_STATUS="UPDATE_TABLE_STATUS",E.CREATE_TABLE="CREATE_TABLE",E.DELETE_TABLE="DELETE_TABLE",E.VIEW_BRANCHES="VIEW_BRANCHES",E.UPDATE_BRANCH="UPDATE_BRANCH",E.CREATE_BRANCH="CREATE_BRANCH",E.DELETE_BRANCH="DELETE_BRANCH",E.VIEW_EMPLOYEES="VIEW_EMPLOYEES",E.UPDATE_EMPLOYEE="UPDATE_EMPLOYEE",E.CREATE_EMPLOYEE="CREATE_EMPLOYEE",E.DELETE_EMPLOYEE="DELETE_EMPLOYEE",E.VIEW_ANALYTICS="VIEW_ANALYTICS",E.VIEW_SALES_REPORTS="VIEW_SALES_REPORTS",E.VIEW_SUBSCRIPTION="VIEW_SUBSCRIPTION",E.UPDATE_SUBSCRIPTION="UPDATE_SUBSCRIPTION",E.VIEW_QR_CODES="VIEW_QR_CODES",E.CREATE_QR_CODE="CREATE_QR_CODE",E.DELETE_QR_CODE="DELETE_QR_CODE",E.ALL="ALL",E.VIEW_INVENTORY="VIEW_INVENTORY",E.VIEW_PURCHASES="VIEW_PURCHASES",E.VIEW_PURCHASE_DETAIL="VIEW_PURCHASE_DETAIL",E.CREATE_PURCHASE="CREATE_PURCHASE",E.UPDATE_PURCHASE="UPDATE_PURCHASE",E.DELETE_PURCHASE="DELETE_PURCHASE",E.VIEW_INVENTORY_PRODUCTS="VIEW_INVENTORY_PRODUCTS",E.CREATE_INVENTORY_PRODUCT="CREATE_INVENTORY_PRODUCT",E.UPDATE_INVENTORY_PRODUCT="UPDATE_INVENTORY_PRODUCT",E.DELETE_INVENTORY_PRODUCT="DELETE_INVENTORY_PRODUCT",E.VIEW_BUSINESS_BALANCE="VIEW_BUSINESS_BALANCE",E.VIEW_BRANCH_BALANCE="VIEW_BRANCH_BALANCE",E.UPDATE_PRODUCT_INGREDIENTS="UPDATE_PRODUCT_INGREDIENTS",E.DELETE_PRODUCT_INGREDIENTS="DELETE_PRODUCT_INGREDIENTS",E.AI_ASSISTANT="AI_ASSISTANT"}(PE||(PE={})),function(E){E.OWNER="OWNER",E.BRANCH_MANAGER="BRANCH_MANAGER",E.GENERAL_MANAGER="GENERAL_MANAGER",E.CHEF="CHEF",E.SOUS_CHEF="SOUS_CHEF",E.PASTRY_CHEF="PASTRY_CHEF",E.LINE_COOK="LINE_COOK",E.PREP_COOK="PREP_COOK",E.KITCHEN_ASSISTANT="KITCHEN_ASSISTANT",E.DISHWASHER="DISHWASHER",E.HEAD_WAITER="HEAD_WAITER",E.WAITER="WAITER",E.RUNNER="RUNNER",E.BARISTA="BARISTA",E.BARTENDER="BARTENDER",E.SOMMELIER="SOMMELIER",E.ACCOUNTANT="ACCOUNTANT",E.ROOM_SERVICE_STAFF="ROOM_SERVICE_STAFF",E.DELIVERY_DRIVER="DELIVERY_DRIVER",E.INVENTORY_MANAGER="INVENTORY_MANAGER",E.PURCHASING_MANAGER="PURCHASING_MANAGER",E.WAREHOUSE_STAFF="WAREHOUSE_STAFF"}(dE||(dE={}));const LE=E=>{switch(E){case dE.OWNER:return[PE.ALL];case dE.GENERAL_MANAGER:return[PE.VIEW_BUSINESS,PE.UPDATE_BUSINESS,PE.VIEW_ORDERS,PE.UPDATE_ORDER,PE.CREATE_ORDER,PE.VIEW_QR_MENU,PE.VIEW_QR_CODES,PE.VIEW_MENU,PE.VIEW_MENU_ITEMS,PE.UPDATE_MENU_ITEM,PE.CREATE_MENU_ITEM,PE.DELETE_MENU_ITEM,PE.VIEW_CATEGORIES,PE.UPDATE_CATEGORY,PE.CREATE_CATEGORY,PE.DELETE_CATEGORY,PE.VIEW_ADDONS,PE.UPDATE_ADDON,PE.CREATE_ADDON,PE.DELETE_ADDON,PE.VIEW_TABLES,PE.UPDATE_TABLE,PE.CREATE_TABLE,PE.DELETE_TABLE,PE.VIEW_BRANCHES,PE.UPDATE_BRANCH,PE.CREATE_BRANCH,PE.DELETE_BRANCH,PE.VIEW_EMPLOYEES,PE.UPDATE_EMPLOYEE,PE.CREATE_EMPLOYEE,PE.DELETE_EMPLOYEE,PE.VIEW_ANALYTICS,PE.VIEW_SALES_REPORTS,PE.VIEW_SUBSCRIPTION,PE.CREATE_QR_CODE,PE.DELETE_QR_CODE,PE.AI_ASSISTANT];case dE.BRANCH_MANAGER:return[PE.VIEW_BUSINESS,PE.VIEW_ORDERS,PE.UPDATE_ORDER,PE.CREATE_ORDER,PE.VIEW_QR_MENU,PE.VIEW_QR_CODES,PE.VIEW_MENU,PE.VIEW_MENU_ITEMS,PE.UPDATE_MENU_ITEM,PE.CREATE_MENU_ITEM,PE.DELETE_MENU_ITEM,PE.VIEW_CATEGORIES,PE.UPDATE_CATEGORY,PE.CREATE_CATEGORY,PE.DELETE_CATEGORY,PE.VIEW_ADDONS,PE.UPDATE_ADDON,PE.CREATE_ADDON,PE.DELETE_ADDON,PE.VIEW_TABLES,PE.UPDATE_TABLE,PE.CREATE_TABLE,PE.DELETE_TABLE,PE.VIEW_EMPLOYEES,PE.UPDATE_EMPLOYEE,PE.VIEW_ANALYTICS,PE.VIEW_SALES_REPORTS,PE.CREATE_QR_CODE,PE.DELETE_QR_CODE,PE.AI_ASSISTANT];case dE.CHEF:return[PE.VIEW_MENU,PE.VIEW_MENU_ITEMS,PE.UPDATE_MENU_ITEM,PE.VIEW_CATEGORIES,PE.UPDATE_CATEGORY,PE.VIEW_ADDONS,PE.UPDATE_ADDON,PE.VIEW_ORDERS,PE.UPDATE_ORDER];case dE.SOUS_CHEF:return[PE.VIEW_MENU,PE.VIEW_MENU_ITEMS,PE.VIEW_CATEGORIES,PE.VIEW_ADDONS,PE.VIEW_ORDERS,PE.UPDATE_ORDER];case dE.PASTRY_CHEF:return[PE.VIEW_MENU,PE.VIEW_MENU_ITEMS,PE.UPDATE_MENU_ITEM,PE.VIEW_ORDERS,PE.UPDATE_ORDER];case dE.LINE_COOK:case dE.PREP_COOK:case dE.KITCHEN_ASSISTANT:return[PE.VIEW_MENU,PE.VIEW_MENU_ITEMS,PE.VIEW_ORDERS,PE.UPDATE_ORDER];case dE.HEAD_WAITER:return[PE.VIEW_ORDERS,PE.CREATE_ORDER,PE.UPDATE_ORDER,PE.VIEW_TABLES,PE.UPDATE_TABLE_STATUS,PE.VIEW_MENU,PE.VIEW_MENU_ITEMS,PE.VIEW_CATEGORIES,PE.VIEW_ADDONS,PE.VIEW_QR_MENU,PE.VIEW_QR_CODES];case dE.WAITER:return[PE.VIEW_ORDERS,PE.CREATE_ORDER,PE.UPDATE_ORDER,PE.VIEW_TABLES,PE.UPDATE_TABLE_STATUS,PE.VIEW_MENU,PE.VIEW_MENU_ITEMS,PE.VIEW_CATEGORIES,PE.VIEW_ADDONS];case dE.RUNNER:return[PE.VIEW_ORDERS,PE.UPDATE_ORDER];case dE.BARISTA:case dE.BARTENDER:case dE.SOMMELIER:case dE.ROOM_SERVICE_STAFF:return[PE.VIEW_MENU,PE.VIEW_MENU_ITEMS,PE.VIEW_ORDERS,PE.CREATE_ORDER,PE.UPDATE_ORDER];case dE.ACCOUNTANT:return[PE.VIEW_ANALYTICS,PE.VIEW_SALES_REPORTS,PE.VIEW_SUBSCRIPTION];case dE.DELIVERY_DRIVER:return[PE.VIEW_ORDERS,PE.UPDATE_ORDER];case dE.INVENTORY_MANAGER:return[PE.VIEW_CATEGORIES,PE.UPDATE_CATEGORY,PE.CREATE_CATEGORY,PE.DELETE_CATEGORY,PE.VIEW_ADDONS,PE.UPDATE_ADDON,PE.CREATE_ADDON,PE.DELETE_ADDON,PE.VIEW_MENU,PE.VIEW_MENU_ITEMS,PE.UPDATE_MENU_ITEM,PE.CREATE_MENU_ITEM,PE.DELETE_MENU_ITEM,PE.VIEW_PURCHASES,PE.CREATE_PURCHASE,PE.UPDATE_PURCHASE,PE.DELETE_PURCHASE,PE.VIEW_INVENTORY,PE.VIEW_INVENTORY_PRODUCTS,PE.CREATE_INVENTORY_PRODUCT,PE.UPDATE_INVENTORY_PRODUCT,PE.DELETE_INVENTORY_PRODUCT,PE.VIEW_PURCHASE_DETAIL,PE.VIEW_BRANCH_BALANCE,PE.UPDATE_PRODUCT_INGREDIENTS,PE.DELETE_PRODUCT_INGREDIENTS];case dE.PURCHASING_MANAGER:return[PE.VIEW_MENU,PE.VIEW_MENU_ITEMS,PE.VIEW_CATEGORIES,PE.CREATE_CATEGORY,PE.UPDATE_CATEGORY,PE.VIEW_ADDONS,PE.CREATE_ADDON,PE.UPDATE_ADDON];case dE.WAREHOUSE_STAFF:return[PE.VIEW_CATEGORIES,PE.VIEW_ADDONS,PE.VIEW_MENU,PE.VIEW_MENU_ITEMS];default:return[]}},VE=(E,_)=>!!A(E)||!A(_)&&(!!_.includes(PE.ALL)||E.some(E=>_.includes(E)));export{x as buildSelectedAddonsPayload,F as calculatSingleAddonTotalPrice,y as calculateTotalAddonPrice,C as calculateTotalPrice,OE as formatAddressLine,NE as formatCityLine,$ as generateOrderItemsId,N as getAddonOptionRawPrice,i as getAddonOptionTranslation,l as getAddonTitle,o as getAddonTranslation,EE as getBaseUrl,cE as getCategoryNameById,CE as getCategoryTranslation,TE as getCoverPhotoSource,k as getDefaultOrderType,VE as getHasUserPermission,_E as getImageSource,uE as getIsFeatureActive,tE as getLogoImageSource,a as getOptionPrice,O as getOptionTitles,q as getOrderErrorMessages,j as getOrderItemPrice,Q as getOrderPrice,LE as getPermissionsByRole,Y as getPriceSuffix,H as getProductAddon,B as getProductOrderPrice,v as getProductOrderRawPrice,P as getProductPrice,U as getProductRawPrice,G as getProductSellUnitShortCuts,c as getProductTranslation,d as getProductVariant,W as getProductVariantPrice,V as getProductVariantRawPrice,M as getProductVariantTranslation,AE as getRegisterUrl,w as getSelectedAddonsFromOrderItems,L as getSelectedOptionsTotalPrice,K as getStatusIcon,IE as getVideoSource,UE as prepareCategoryAndProductMap,oE as preparePhoneNumber,eE as rgbDataURL,aE as validateAddressForm,iE as validateForm,Z as validatePhoneNumber};
|
|
2
|
+
//# sourceMappingURL=index.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../../src/modules/addon/utils.ts","../../../src/modules/product/models.ts","../../../src/modules/addon/models.ts","../../../src/modules/product/utils.ts","../../../src/modules/order/models.ts","../../../src/modules/order/constants.ts","../../../src/modules/order/utils.ts","../../../src/modules/view/constants.ts","../../../src/modules/view/utils.ts","../../../src/modules/customer/models.ts","../../../src/modules/customer/utils.ts","../../../src/modules/feature/models.ts","../../../src/modules/feature/constants.ts","../../../src/modules/feature/utils.ts","../../../src/modules/category/utils.ts","../../../src/modules/menu/utils.ts","../../../src/modules/user/models.ts","../../../src/modules/user/utils.ts"],"sourcesContent":["import { priceFormatter } from \"@sorocraft/js-utils\";\n\nimport {\n\tMenuAddon,\n\tMenuAddonOption,\n\tMenuAddonOptionTranslation,\n\tMenuAddonTranslation,\n} from \"./models\";\n\nexport const getAddonTranslation = (addon: MenuAddon, language: string): MenuAddonTranslation => {\n\treturn (addon?.translations?.find?.((item) => item.language === language) ||\n\t\t{}) as MenuAddonTranslation;\n};\n\nexport const getAddonOptionTranslation = (\n\toption: MenuAddonOption,\n\tlanguage: string\n): MenuAddonOptionTranslation => {\n\treturn (option?.translations?.find?.((item) => item.language === language) ||\n\t\t{}) as MenuAddonOptionTranslation;\n};\n\nexport const getOptionPrice = ({\n\toption,\n\tcurrency,\n\tlanguage,\n}: {\n\toption: MenuAddonOption;\n\tcurrency?: string;\n\tlanguage?: string;\n}) => {\n\tconst { price } = option || {};\n\n\treturn {\n\t\ttotalPrice: price,\n\t\tformattedTotalPrice: priceFormatter(price, currency || \"USD\", language || \"en\"),\n\t};\n};\n\nexport const getAddonOptionRawPrice = (addon: MenuAddon, optionId: number): number => {\n\treturn (addon?.options || []).find(({ id }) => id === optionId)?.price || 0;\n};\n\nexport const getOptionTitles = (\n\toptions: MenuAddonOption[],\n\toptionIds: number | number[],\n\tlanguage: string\n): string => {\n\tif (Array.isArray(optionIds)) {\n\t\treturn (options || [])\n\t\t\t.filter(({ id }) => optionIds.includes(id))\n\t\t\t.map(({ translations }) => translations.find((t) => t.language === language)?.title || \"\")\n\t\t\t.filter(Boolean)\n\t\t\t.join(\", \");\n\t} else {\n\t\tconst option = (options || []).find(({ id }) => id === optionIds);\n\t\treturn option?.translations.find((t) => t.language === language)?.title || \"\";\n\t}\n};\n\nexport const getAddonTitle = (addon: MenuAddon, language: string): string => {\n\treturn addon?.translations?.find?.((t) => t.language === language)?.title || \"\";\n};\n","import { MenuAddon } from \"../addon/models\";\n\nexport interface ProductTranslation {\n\tid: number;\n\tname: string;\n\tdescription?: string;\n\tlanguage: string;\n\tproductId?: number;\n}\n\nexport interface ProductVariantTranslation {\n\tid?: number;\n\ttitle: string;\n\tlanguage: string;\n}\n\nexport interface ProductVariant {\n\tid?: number;\n\tprice: number;\n\ttranslations: ProductVariantTranslation[];\n\tproductId?: number;\n\tremove?: boolean;\n}\n\nexport interface Product {\n\tid: number;\n\tcategoryId: number;\n\tvat?: number;\n\tprice: number;\n\tvolume?: string; // 100qr/250ml/1kq\n\timage160?: string;\n\timage580?: string;\n\timage1024?: string;\n\ttranslations: ProductTranslation[];\n\tvariants: ProductVariant[];\n\taddons: MenuAddon[];\n\tavailable?: boolean;\n\tvisible?: boolean;\n\tposition?: number;\n\tvideoUrl?: string;\n\tsellUnitType?: SellUnitType;\n}\n\nexport enum ProductView {\n\tLIST = \"list\",\n\tGRID = \"grid\",\n}\n\nexport interface DashboardProduct extends Omit<Product, \"addons\"> {\n\taddons: number[];\n}\n\nexport enum SellUnitType {\n\tPIECE = \"PIECE\",\n\tWEIGHT = \"WEIGHT\",\n\tVOLUME = \"VOLUME\",\n}\n","export enum MenuAddonSelectType {\n\tSINGLE = \"SINGLE\",\n\tMULTIPLE = \"MULTIPLE\",\n}\n\nexport interface MenuAddonTranslation {\n\tid?: number;\n\ttitle: string;\n\tlanguage: string;\n}\n\nexport interface MenuAddonOptionTranslation {\n\tid?: number;\n\ttitle: string;\n\tlanguage: string;\n}\n\nexport interface MenuAddonOption {\n\tid?: number;\n\tprice: number;\n\ttranslations: MenuAddonOptionTranslation[];\n\tremove?: boolean;\n}\n\nexport interface MenuAddon {\n\tid?: number;\n\tselectType: MenuAddonSelectType;\n\ttranslations: MenuAddonTranslation[];\n\toptions: MenuAddonOption[];\n\tbusinessId?: number;\n}\n","import { isEmpty, priceFormatter } from \"@sorocraft/js-utils\";\n\nimport {\n\tProduct,\n\tProductTranslation,\n\tProductVariant,\n\tProductVariantTranslation,\n\tSellUnitType,\n} from \"./models\";\n\nimport { MenuAddon, MenuAddonSelectType } from \"src/modules/addon/models\";\nimport { getAddonOptionRawPrice } from \"src/modules/addon/utils\";\nimport * as orderModels from \"src/modules/order/models\";\n\nexport const calculateTotalPrice = (price: number = 0, quantity: number = 1, vat: number = 0) => {\n\treturn price * quantity * (1 + vat / 100);\n};\n\nexport const getProductTranslation = (\n\tproduct: Pick<Product, \"translations\">,\n\tlanguage: string,\n): ProductTranslation => {\n\treturn (product?.translations?.find?.((item) => item.language === language) ||\n\t\t{}) as ProductTranslation;\n};\n\nexport const getProductRawPrice = (\n\tproduct: Pick<Product, \"price\" | \"vat\">,\n\tquantity: number = 1,\n) => {\n\tconst { price = 0, vat = 0 } = product || {};\n\treturn calculateTotalPrice(price, quantity, vat);\n};\n\nexport const getProductPrice = (\n\tproduct: Pick<Product, \"price\" | \"vat\">,\n\tcurrency: string,\n\tlanguage: string,\n\tquantity: number = 1,\n) => {\n\tconst totalPrice = getProductRawPrice(product, quantity);\n\n\treturn {\n\t\ttotalPrice: totalPrice,\n\t\tformattedTotalPrice: priceFormatter(totalPrice, currency, language),\n\t};\n};\n\nexport const getProductVariant = (\n\tproduct: Pick<Product, \"variants\">,\n\tvariantId: number,\n): ProductVariant => {\n\treturn product?.variants?.find?.((item) => item.id === variantId) || ({} as ProductVariant);\n};\n\nexport const getSelectedOptionsTotalPrice = (\n\tproduct: Product,\n\tselectedAddons: orderModels.SelectedAddons = {},\n\tquantity: number,\n): number => {\n\t// Filter addons that are selected by the user\n\tconst selectedAddonsList = (product?.addons || []).filter((addon) =>\n\t\tObject.prototype.hasOwnProperty.call(selectedAddons, addon.id),\n\t);\n\n\t// Calculate the total price\n\tconst optionsTotalPrice = selectedAddonsList.reduce((total: number, addon: MenuAddon) => {\n\t\tconst { id: addonId, selectType } = addon;\n\n\t\t// Handle SINGLE selection\n\t\tif (selectType === MenuAddonSelectType.SINGLE) {\n\t\t\tconst selectedOptionId = selectedAddons[addonId] as number;\n\t\t\treturn total + getAddonOptionRawPrice(addon, selectedOptionId);\n\t\t}\n\n\t\t// Handle MULTIPLE selection\n\t\tconst selectedOptionIds = (selectedAddons[addonId] || []) as number[];\n\t\tconst multipleOptionsPrice = selectedOptionIds.reduce(\n\t\t\t(multipleTotal, optionId) => multipleTotal + getAddonOptionRawPrice(addon, optionId),\n\t\t\t0,\n\t\t);\n\n\t\treturn total + multipleOptionsPrice;\n\t}, 0);\n\n\treturn optionsTotalPrice * quantity;\n};\n\nexport const getProductVariantRawPrice = (\n\tvariantId: number,\n\tproduct: Pick<Product, \"variants\" | \"vat\">,\n\tquantity?: number,\n) => {\n\tconst variant = getProductVariant(product, variantId);\n\tconst { vat } = product || {};\n\tconst { price } = variant || {};\n\treturn calculateTotalPrice(price, quantity, vat);\n};\n\nexport const getProductVariantPrice = ({\n\tvariantId,\n\tcurrency = \"USD\",\n\tlanguage = \"en\",\n\tproduct,\n\tquantity = 1,\n}: {\n\tvariantId: number;\n\tcurrency?: string;\n\tlanguage?: string;\n\tproduct: Pick<Product, \"variants\" | \"vat\">;\n\tquantity?: number;\n}) => {\n\tconst totalPrice = getProductVariantRawPrice(variantId, product, quantity);\n\n\treturn {\n\t\ttotalPrice: totalPrice,\n\t\tformattedTotalPrice: priceFormatter(totalPrice, currency, language),\n\t};\n};\n\nexport const getProductVariantTranslation = (\n\tvariant: ProductVariant,\n\tlanguage: string,\n): ProductVariantTranslation => {\n\treturn (variant?.translations?.find?.((item) => item.language === language) ||\n\t\t{}) as ProductVariantTranslation;\n};\n\nexport const getProductOrderRawPrice = ({\n\tproduct,\n\tvariantId,\n\tquantity = 1,\n\tselectedAddons,\n\tnoVat = false,\n}: {\n\tproduct: Product;\n\tvariantId: number | null;\n\tquantity: number;\n\tselectedAddons: orderModels.SelectedAddons;\n\tnoVat?: boolean;\n}): { price: number; optionsPrice: number; total: number } => {\n\tif (isEmpty(product)) return { price: 0, optionsPrice: 0, total: 0 };\n\n\tconst productData: Product = { ...product, vat: noVat ? 0 : product.vat };\n\tconst selectedOptionsTotalPrice = getSelectedOptionsTotalPrice(\n\t\tproductData,\n\t\tselectedAddons,\n\t\tquantity,\n\t);\n\tconst price = variantId\n\t\t? getProductVariantRawPrice(variantId, productData, quantity)\n\t\t: getProductRawPrice(productData, quantity);\n\n\treturn {\n\t\tprice,\n\t\toptionsPrice: selectedOptionsTotalPrice,\n\t\ttotal: price + selectedOptionsTotalPrice,\n\t};\n};\n\nexport const getProductOrderPrice = ({\n\tproduct,\n\tvariantId,\n\tquantity = 1,\n\tcurrency,\n\tlanguage,\n\tselectedAddons,\n\tnoVat = false,\n}: {\n\tproduct: Product;\n\tvariantId: number | null;\n\tquantity: number;\n\tcurrency: string;\n\tlanguage: string;\n\tselectedAddons: orderModels.SelectedAddons;\n\tnoVat?: boolean;\n}) => {\n\tconst { total } = getProductOrderRawPrice({\n\t\tproduct,\n\t\tvariantId,\n\t\tquantity,\n\t\tselectedAddons,\n\t\tnoVat,\n\t});\n\n\treturn {\n\t\ttotalPrice: total,\n\t\tformattedTotalPrice: priceFormatter(total, currency, language),\n\t};\n};\n\nexport const getProductAddon = (product: Product, addonId: number): MenuAddon => {\n\treturn (product?.addons || []).find(({ id }) => id === addonId) || ({} as MenuAddon);\n};\n\nexport const getPriceSuffix = (sellUnitType: SellUnitType) => {\n\tswitch (sellUnitType) {\n\t\tcase SellUnitType.WEIGHT:\n\t\t\treturn \" / kg\";\n\t\tcase SellUnitType.VOLUME:\n\t\t\treturn \" / l\";\n\n\t\tdefault:\n\t\t\treturn \"\";\n\t}\n};\n\nexport const getProductSellUnitShortCuts = (sellUnitType: SellUnitType) => {\n\tswitch (sellUnitType) {\n\t\tcase SellUnitType.WEIGHT:\n\t\t\treturn {\n\t\t\t\t\"50gr\": 0.05,\n\t\t\t\t\"100gr\": 0.1,\n\t\t\t\t\"150gr\": 0.15,\n\t\t\t\t\"200gr\": 0.2,\n\t\t\t\t\"250gr\": 0.25,\n\t\t\t\t\"300gr\": 0.3,\n\t\t\t\t\"350gr\": 0.35,\n\t\t\t\t\"400gr\": 0.4,\n\t\t\t\t\"450gr\": 0.45,\n\t\t\t\t\"500gr\": 0.5,\n\t\t\t\t\"600gr\": 0.6,\n\t\t\t\t\"700gr\": 0.7,\n\t\t\t\t\"750gr\": 0.75,\n\t\t\t\t\"800gr\": 0.8,\n\t\t\t\t\"850gr\": 0.85,\n\t\t\t\t\"900gr\": 0.9,\n\t\t\t\t\"950gr\": 0.95,\n\t\t\t\t\"1kg\": 1,\n\t\t\t\t\"2kg\": 2,\n\t\t\t\t\"5kg\": 5,\n\t\t\t\t\"10kg\": 10,\n\t\t\t\t\"20kg\": 20,\n\t\t\t};\n\t\tcase SellUnitType.VOLUME:\n\t\t\treturn {\n\t\t\t\t\"50ml\": 0.05,\n\t\t\t\t\"100ml\": 0.1,\n\t\t\t\t\"150ml\": 0.15,\n\t\t\t\t\"200ml\": 0.2,\n\t\t\t\t\"250ml\": 0.25,\n\t\t\t\t\"300ml\": 0.3,\n\t\t\t\t\"350ml\": 0.35,\n\t\t\t\t\"400ml\": 0.4,\n\t\t\t\t\"450ml\": 0.45,\n\t\t\t\t\"500ml\": 0.5,\n\t\t\t\t\"600ml\": 0.6,\n\t\t\t\t\"700ml\": 0.7,\n\t\t\t\t\"750ml\": 0.75,\n\t\t\t\t\"800ml\": 0.8,\n\t\t\t\t\"850ml\": 0.85,\n\t\t\t\t\"900ml\": 0.9,\n\t\t\t\t\"950ml\": 0.95,\n\t\t\t\t\"1l\": 1,\n\t\t\t\t\"2l\": 2,\n\t\t\t\t\"5l\": 5,\n\t\t\t\t\"10l\": 10,\n\t\t\t\t\"20l\": 20,\n\t\t\t};\n\t\tdefault:\n\t\t\treturn {};\n\t}\n};\n","import * as customerModels from \"../customer/models\";\nimport * as productModels from \"../product/models\";\n\nexport enum OrderType {\n\tDINE_IN = \"DINE_IN\",\n\tPICK_UP = \"PICK_UP\",\n\tDELIVERY = \"DELIVERY\",\n}\n\nexport enum OrderStatus {\n\tDRAFT = \"DRAFT\",\n\tPENDING = \"PENDING\",\n\tCONFIRMED = \"CONFIRMED\",\n\tPREPARING = \"PREPARING\",\n\tREADY = \"READY\",\n\tOUT_FOR_DELIVERY = \"OUT_FOR_DELIVERY\",\n\tDELIVERED = \"DELIVERED\",\n\tCOMPLETED = \"COMPLETED\",\n\tCANCELLED = \"CANCELLED\",\n\tFAILED = \"FAILED\",\n}\n\nexport enum OrderItemStatus {\n\tPENDING = \"PENDING\",\n\tPREPARING = \"PREPARING\",\n\tREADY = \"READY\",\n\tSERVED = \"SERVED\",\n}\n\nexport enum PaymentMethod {\n\tCASH = \"CASH\",\n\tCARD = \"CARD\",\n\tWALLET = \"WALLET\",\n\tTERMINAL = \"TERMINAL\",\n}\n\nexport interface OrderAddonOption {\n\toptionId: number;\n\tprice: number;\n}\n\nexport interface OrderAddon {\n\tid?: number;\n\taddonId: number;\n\toptions: OrderAddonOption[];\n}\n\nexport interface SelectedAddons {\n\t[key: number]: number | number[];\n}\n\nexport interface OrderItemVariant {\n\tid?: number;\n\tvariantId: number;\n\tprice: number;\n}\n\nexport interface OrderItem {\n\tid?: number;\n\tproductId: number;\n\torderId?: number;\n\tquantity: number;\n\tprice: number;\n\tvariant?: OrderItemVariant;\n\taddons: OrderAddon[];\n\tnote?: string;\n\tstatus?: OrderItemStatus;\n\tvat?: number;\n\tisPaid?: boolean;\n\tsellUnitType: productModels.SellUnitType;\n}\n\nexport interface Order {\n\tid?: number;\n\tbusinessId?: number;\n\tbranchId?: number;\n\tworkingDayId?: number;\n\ttableId?: number;\n\temployeeId?: number;\n\torderType: OrderType;\n\ttotalPriceWithTax: number;\n\ttotalPriceWithTaxAndFees?: number;\n\ttotalPriceWithoutTax: number;\n\ttotalTax: number;\n\titems: OrderItem[];\n\tstatus?: OrderStatus;\n\tvat?: number;\n\tpaymentMethod?: PaymentMethod;\n\tnote?: string;\n\tcreatedAt?: number;\n\tupdatedAt?: number;\n\tcustomer?: customerModels.Customer;\n\tdeliveryFee?: number;\n}\n\nexport interface OrderItems {\n\t[key: string]: OrderItem;\n}\n\nexport enum OrderStep {\n\tCART = \"CART\",\n\tDETAILS = \"DETAILS\",\n\tCOMPLETED = \"COMPLETED\",\n}\n\nexport interface OrderPayload extends Order {\n\tcustomerAddressId: number;\n\tcustomerId: number;\n}\n\nexport type OrderPriceDetails = {\n\ttotalPriceWithTax: number;\n\ttotalPriceWithTaxAndFees: number;\n\ttotalPriceWithoutTax: number;\n\ttotalTax: number;\n};\n\nexport type OrderFormattedPriceDetails = {\n\ttotalPriceWithTax: string;\n\ttotalPriceWithTaxAndFees: string;\n\ttotalPriceWithoutTax: string;\n\ttotalTax: string;\n};\n","import { OrderStep, PaymentMethod } from \"./models\";\n\nexport const initialOrder = {\n\torderType: null,\n\ttotalPriceWithTax: 0,\n\ttotalPriceWithoutTax: 0,\n\ttotalTax: 0,\n\tvat: 0,\n\tpaymentMethod: PaymentMethod.CASH,\n};\n\nexport const ORDER_STEPS = [OrderStep.CART, OrderStep.DETAILS, OrderStep.COMPLETED];\n\nexport enum OrderErrors {\n\tFIELD_REQUIRED_ERROR = \"This field is required\",\n\tTABLE_NOT_SELECTED = \"Please select a table\",\n\tADDRESS_IS_EMPTY = \"Please enter an address\",\n\tEMPTY_ITEMS = \"Please choose product\",\n\tBRANCH_NOT_SELECTED = \"Please select a branch\",\n}\n","import { isEmpty, priceFormatter, sortNumbers } from \"@sorocraft/js-utils\";\nimport { IconType } from \"@sorocraft/ui\";\nimport { Check, BagCheck, Delivery, Chef, FileCheck, HourglassHalf } from \"@sorocraft/ui/icons\";\n\nimport {\n\tOrder,\n\tOrderAddon,\n\tOrderAddonOption,\n\tOrderItem,\n\tOrderStatus,\n\tOrderType,\n\tSelectedAddons,\n} from \"./models\";\n\nimport * as addonModels from \"../addon/models\";\nimport * as branchModels from \"../branch/models\";\nimport { OrderErrors } from \"./constants\";\n\nexport const calculatSingleAddonTotalPrice = (addon: OrderAddon) => {\n\treturn addon.options.reduce((sum, option) => sum + option.price, 0);\n};\n\nexport function calculateTotalAddonPrice(addons: OrderAddon[] = [], quantity: number = 1): number {\n\tconst totalAddonsPriceForSingleItem = addons.reduce((total, addon) => {\n\t\tconst addonTotal = calculatSingleAddonTotalPrice(addon);\n\t\treturn total + addonTotal;\n\t}, 0);\n\n\treturn quantity * totalAddonsPriceForSingleItem;\n}\n\nexport const getOrderPrice = (order: Order, currency: string, language: string) => {\n\tconst calculateItemTotal = (price: number, quantity: number, addons: OrderAddon[]) => {\n\t\treturn quantity * price + calculateTotalAddonPrice(addons, quantity);\n\t};\n\n\tlet totalWithoutTax = 0;\n\tlet totalTax = 0;\n\n\tfor (const item of order.items) {\n\t\tconst itemTotal = calculateItemTotal(item.price, item.quantity, item.addons);\n\t\ttotalWithoutTax += itemTotal;\n\n\t\tif (order.vat === undefined && item.vat) {\n\t\t\ttotalTax += (itemTotal * item.vat) / 100;\n\t\t}\n\t}\n\n\tif (order.vat !== undefined) {\n\t\ttotalTax = (totalWithoutTax * order.vat) / 100;\n\t}\n\n\tconst totalWithTax = totalWithoutTax + totalTax;\n\n\treturn {\n\t\ttotalWithoutTax,\n\t\ttotalWithoutTaxFormatted: priceFormatter(totalWithoutTax, currency, language),\n\t\ttotalTax,\n\t\ttotalTaxFormatted: priceFormatter(totalTax, currency, language),\n\t\ttotalWithTax,\n\t\ttotalWithTaxFormatted: priceFormatter(totalWithTax, currency, language),\n\t};\n};\n\nexport const generateOrderItemsId = (\n\tproductId: number,\n\tvariantId: number | null,\n\tselectedAddons?: SelectedAddons\n): string => {\n\tif (!productId) throw new Error(\"Product ID is required\");\n\n\t// Build the order items ID base with productId and variantId\n\tlet orderItemsId = `${productId}`;\n\tif (variantId) {\n\t\torderItemsId += `-${variantId}`;\n\t}\n\n\t// Build the addon part of the ID\n\tconst addonIdsPart = Object.entries(selectedAddons || {})\n\t\t.map(([addonId, option]) => {\n\t\t\tif (!addonId || !option) return null; // Skip invalid entries\n\t\t\tconst optionIds = Array.isArray(option)\n\t\t\t\t? sortNumbers(option).filter(Boolean).join(\"-\")\n\t\t\t\t: `${option}`;\n\t\t\tif (!optionIds) return null;\n\t\t\treturn `${addonId}-${optionIds}`;\n\t\t})\n\t\t.filter(Boolean) // Remove null/undefined values\n\t\t.join(\"-\");\n\n\t// Append addonIdsPart if it's not empty\n\tif (addonIdsPart) {\n\t\torderItemsId += `-${addonIdsPart}`;\n\t}\n\n\treturn orderItemsId;\n};\n\nexport const getOrderItemPrice = (orderItem: OrderItem) => {\n\tconst { price, variant, addons, quantity, vat } = orderItem || {};\n\tconst basePrice = variant?.price ?? price;\n\tconst addonsPrice = calculateTotalAddonPrice(addons, 1); // single item's addon price\n\n\tconst itemNetPrice = basePrice + addonsPrice;\n\t// Currently VAT is applied only on basePrice, not on addons\n\t// TODO: Re-evaluate for European market where tax may apply to addons too\n\tconst itemTax = basePrice * (vat / 100);\n\tconst itemGrossPrice = itemNetPrice + itemTax;\n\n\tconst totalNet = itemNetPrice * quantity;\n\tconst totalTax = itemTax * quantity;\n\tconst totalGross = itemGrossPrice * quantity;\n\n\treturn {\n\t\ttotalGross,\n\t\ttotalNet,\n\t\ttotalTax,\n\t\titemGrossPrice,\n\t\titemNetPrice,\n\t\titemTax,\n\t};\n};\n\nexport const getSelectedAddonsFromOrderItems = (item: OrderItem): SelectedAddons => {\n\tconst selectedAddons: SelectedAddons = {};\n\n\tfor (const { addonId, options = [] } of item.addons || []) {\n\t\tconst optionIds = options.map(({ optionId }) => optionId);\n\t\tselectedAddons[addonId] = optionIds.length === 1 ? optionIds[0] : optionIds;\n\t}\n\n\treturn selectedAddons;\n};\n\nexport const getStatusIcon = (status: OrderStatus): IconType => {\n\tswitch (status) {\n\t\tcase OrderStatus.COMPLETED:\n\t\t\treturn Check;\n\t\tcase OrderStatus.DELIVERED:\n\t\t\treturn BagCheck;\n\t\tcase OrderStatus.OUT_FOR_DELIVERY:\n\t\t\treturn Delivery;\n\t\tcase OrderStatus.PREPARING:\n\t\t\treturn Chef;\n\t\tcase OrderStatus.CONFIRMED:\n\t\t\treturn FileCheck;\n\t\tcase OrderStatus.PENDING:\n\t\t\treturn HourglassHalf;\n\n\t\tdefault:\n\t\t\treturn HourglassHalf;\n\t}\n};\n\nexport const buildSelectedAddonsPayload = (\n\tproductAddons: addonModels.MenuAddon[] = [],\n\tselectedAddons: SelectedAddons = {}\n): OrderAddon[] => {\n\treturn Object.entries(selectedAddons).map(([addonIdStr, selected]) => {\n\t\tconst addonId = Number(addonIdStr);\n\t\tconst selectedOptionIds = Array.isArray(selected) ? selected : [selected];\n\n\t\tconst addon = productAddons.find((addon) => addon.id === addonId);\n\t\tif (isEmpty(addon)) {\n\t\t\treturn {\n\t\t\t\taddonId,\n\t\t\t\toptions: [],\n\t\t\t};\n\t\t}\n\n\t\tconst options: OrderAddonOption[] = (addon.options || [])\n\t\t\t.filter((option) => selectedOptionIds.includes(option.id))\n\t\t\t.map((option) => ({\n\t\t\t\toptionId: option.id,\n\t\t\t\tprice: option.price,\n\t\t\t}));\n\n\t\treturn {\n\t\t\taddonId,\n\t\t\toptions,\n\t\t};\n\t});\n};\n\nexport const getDefaultOrderType = (\n\tsettings: branchModels.BranchSettings,\n\tisOpen: boolean,\n\tisDelivering: boolean\n): OrderType | null => {\n\tif (!settings) return null;\n\n\tconst { deliveryOrderEnabled, dineInOrderEnabled, pickupOrderEnabled } = settings;\n\n\tif (deliveryOrderEnabled && isDelivering) {\n\t\treturn OrderType.DELIVERY;\n\t}\n\n\tif (dineInOrderEnabled && isOpen) {\n\t\treturn OrderType.DINE_IN;\n\t}\n\n\tif (pickupOrderEnabled && isOpen) {\n\t\treturn OrderType.PICK_UP;\n\t}\n\n\treturn null;\n};\n\nexport const getOrderErrorMessages = (field: keyof Order) => {\n\tswitch (field) {\n\t\tcase \"customer\":\n\t\t\treturn OrderErrors.ADDRESS_IS_EMPTY;\n\n\t\tcase \"tableId\":\n\t\t\treturn OrderErrors.TABLE_NOT_SELECTED;\n\n\t\tcase \"items\":\n\t\t\treturn OrderErrors.EMPTY_ITEMS;\n\n\t\tcase \"branchId\":\n\t\t\treturn OrderErrors.BRANCH_NOT_SELECTED;\n\n\t\tdefault:\n\t\t\treturn OrderErrors.FIELD_REQUIRED_ERROR;\n\t}\n};\n","export const MODALS = {\n\tADD_UPDATE_NOTES: \"ADD_UPDATE_NOTES\",\n\tAUTH: \"AUTH\",\n\tADD_UPDATE_ADDRESS: \"ADD_UPDATE_ADDRESS\",\n\tBRANCH_BUSINESS_HOURS: \"BRANCH_BUSINESS_HOURS\",\n\tPRODUCT_DETAILS: \"PRODUCT_DETAILS\",\n};\n\nexport const SUPPORTED_LOCALES = [\"en\", \"az\", \"nl\", \"et\", \"tr\", \"ru\"];\nexport const SUPPORTED_COUNTRIES = [\n\t{\n\t\tname: \"Azerbaijan\",\n\t\tcode: \"AZ\",\n\t\tphoneCode: \"+994\",\n\t},\n];\n\nexport const DOMAIN = \"tabres.com\";\n\nexport const DEFAULT_HOSTNAME = DOMAIN;\n\nexport const IMAGE_BASE_URL = \"https://images.tabres.com\";\n","import { DOMAIN, IMAGE_BASE_URL } from \"./constants\";\n\ninterface ValidationResult {\n\tisValid: boolean;\n\terror?: string;\n}\n\ntype Validator = (cleanedNumber: string) => ValidationResult;\n\nconst validators: Record<string, Validator> = {\n\t\"994\": (number) => {\n\t\tconst AZERBAIJANI_PREFIXES = [\"50\", \"51\", \"10\", \"55\", \"99\", \"70\", \"77\", \"60\"];\n\t\tconst pattern = new RegExp(`^(${AZERBAIJANI_PREFIXES.join(\"|\")})\\\\d{7}$`);\n\n\t\tif (!pattern.test(number)) {\n\t\t\treturn {\n\t\t\t\tisValid: false,\n\t\t\t\terror: `Azerbaijani numbers must be 9 digits and start with ${AZERBAIJANI_PREFIXES.join(\n\t\t\t\t\t\", \"\n\t\t\t\t)}`,\n\t\t\t};\n\t\t}\n\n\t\treturn { isValid: true };\n\t},\n\n\t\"31\": (number) => {\n\t\tconst pattern = /^\\d{9}$/;\n\n\t\tif (!pattern.test(number)) {\n\t\t\treturn {\n\t\t\t\tisValid: false,\n\t\t\t\terror: \"Dutch numbers must be exactly 9 digits\",\n\t\t\t};\n\t\t}\n\n\t\treturn { isValid: true };\n\t},\n};\n\nexport function validatePhoneNumber(phoneNumber: string): ValidationResult {\n\tif (!phoneNumber) {\n\t\treturn { isValid: false, error: \"FIELD_REQUIRED\" };\n\t}\n\n\tconst cleaned = phoneNumber.replace(/\\D/g, \"\");\n\n\tconst countryCode = cleaned.startsWith(\"994\") ? \"994\" : cleaned.startsWith(\"31\") ? \"31\" : null;\n\n\tif (!countryCode) {\n\t\treturn { isValid: false, error: \"Unsupported country code\" };\n\t}\n\n\tconst nationalNumber = cleaned.slice(countryCode.length);\n\tconst validator = validators[countryCode];\n\n\treturn validator(nationalNumber);\n}\n\nexport const getBaseUrl = (hostname: string, language: string) => {\n\tconst locale = language || \"en\";\n\t// Local env\n\tif (hostname === \"localhost:3000\") {\n\t\treturn { url: `http://localhost:3000/${locale}`, domain: DOMAIN };\n\t}\n\t// Prod env\n\treturn { url: `https://${DOMAIN}/${locale}`, domain: DOMAIN };\n};\n\nexport const getRegisterUrl = (language: string, source: string) => {\n\treturn `https://app.tabres.com/auth/register?lang=${language}&utm_source=${source}`;\n};\n\nexport const getImageSource = (image?: string) => {\n\tif (!image) return \"\";\n\n\tif (image.includes(\"base64\") || image.startsWith(\"https://\")) return image;\n\n\treturn `${IMAGE_BASE_URL}/${image}`;\n};\n\nexport const getLogoImageSource = (logoImage?: string) => {\n\tif (!logoImage) return \"https://images.tabres.com/no-photo-128.webp\";\n\n\tif (logoImage.includes(\"base64\") || logoImage.startsWith(\"https://\")) return logoImage;\n\n\treturn `${IMAGE_BASE_URL}/${logoImage}`;\n};\n\nexport const getCoverPhotoSource = (coverPhoto?: string) => {\n\tif (!coverPhoto) return \"https://images.tabres.com/tabres-doodle.webp\";\n\n\tif (coverPhoto.includes(\"base64\") || coverPhoto.startsWith(\"https://\")) return coverPhoto;\n\n\treturn `${IMAGE_BASE_URL}/${coverPhoto}`;\n};\n\nconst keyStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\nconst triplet = (e1: number, e2: number, e3: number) =>\n\tkeyStr.charAt(e1 >> 2) +\n\tkeyStr.charAt(((e1 & 3) << 4) | (e2 >> 4)) +\n\tkeyStr.charAt(((e2 & 15) << 2) | (e3 >> 6)) +\n\tkeyStr.charAt(e3 & 63);\n\nexport const rgbDataURL = (r: number, g: number, b: number) =>\n\t`data:image/gif;base64,R0lGODlhAQABAPAA${\n\t\ttriplet(0, r, g) + triplet(b, 255, 255)\n\t}/yH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==`;\n\nexport const getVideoSource = (video?: string) => {\n\tif (!video) return \"\";\n\n\tif (video.includes(\"base64\") || video.startsWith(\"https://\")) return video;\n\n\treturn `${IMAGE_BASE_URL}/${video}`;\n};\n","export enum CustomerAuthStep {\n\tPHONE = \"PHONE\",\n\tOTP = \"OTP\",\n\tEMAIL = \"EMAIL\",\n}\n\nexport enum CustomerAddressType {\n\tHOME = \"HOME\",\n\tWORK = \"WORK\",\n\tTRAVEL = \"TRAVEL\",\n}\n\nexport interface CustomerAddress {\n\tid?: number;\n\taddressId?: number; // Update address temporary\n\tcountryCode: string;\n\tcityName: string;\n\tstreet: string;\n\thouseNumber: string;\n\tadditionalNumber?: string;\n\tpostCode?: string;\n\tinstructions?: string;\n\tfloor?: number;\n\tlongitude?: number;\n\tlatitude?: number;\n\ttitle?: string;\n\ttype?: CustomerAddressType;\n}\n\nexport interface CustomerAuthForm {\n\tphoneNumber: string;\n\totp: string;\n\temail: string;\n}\n\nexport interface CustomerAuthPhoneForm {\n\tcountryCode: string;\n\tphoneNumber: string;\n}\n\nexport interface AuthResponse {\n\taccessToken: string;\n\trefreshToken: string;\n}\n\nexport interface Customer {\n\tid?: number;\n\temail: string;\n\tphoneNumber: string;\n\tfullName: string;\n\tsmsVerified?: boolean;\n\temailVerified?: boolean;\n\taddress?: CustomerAddress;\n\taddresses?: CustomerAddress[];\n}\n\nexport type CustomerUpdatePayload = Partial<Customer>;\n","import { FormErrors } from \"@sorocraft/ui\";\nimport { checkIsValidEmail } from \"@sorocraft/js-utils\";\n\nimport * as viewUtils from \"src/modules/view/utils\";\n\nimport {\n\tCustomerAddress,\n\tCustomerAuthForm,\n\tCustomerAuthPhoneForm,\n\tCustomerAuthStep,\n} from \"./models\";\n\nexport const preparePhoneNumber = (form: CustomerAuthPhoneForm) => {\n\tconst phoneNumber = `${form.countryCode}${form.phoneNumber}`.replaceAll(\"+\", \"\");\n\n\treturn phoneNumber;\n};\n\nexport const validateForm = (form: CustomerAuthForm, step: CustomerAuthStep): FormErrors => {\n\tconst errors: FormErrors = {};\n\tconst { phoneNumber, email, otp } = form || {};\n\n\tswitch (step) {\n\t\tcase CustomerAuthStep.PHONE: {\n\t\t\tconst { isValid, error } = viewUtils.validatePhoneNumber(phoneNumber);\n\t\t\tif (!isValid) errors.phoneNumber = error;\n\t\t\tbreak;\n\t\t}\n\n\t\tcase CustomerAuthStep.OTP: {\n\t\t\tconst { isValid, error } = viewUtils.validatePhoneNumber(phoneNumber);\n\t\t\tif (!isValid) errors.phoneNumber = error;\n\n\t\t\tif (!otp || otp.length !== 6) {\n\t\t\t\terrors.otp = \"Invalid OTP\";\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\tcase CustomerAuthStep.EMAIL: {\n\t\t\tif (!email || !checkIsValidEmail(email)) {\n\t\t\t\terrors.email = \"Invalid Email Address\";\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\tdefault:\n\t\t\tbreak;\n\t}\n\n\treturn errors;\n};\n\nexport const validateAddressForm = (form: CustomerAddress): FormErrors => {\n\tconst errors: FormErrors = {};\n\tconst { countryCode, cityName, street, houseNumber } = form || {};\n\n\tif (!countryCode) errors.countryCode = \"COUNTRY_REQUIRED\";\n\tif (!cityName) errors.cityName = \"CITY_REQUIRED\";\n\tif (!street) errors.street = \"STREET_REQUIRED\";\n\tif (!houseNumber) errors.houseNumber = \"STREET_NUMBER_REQUIRED\";\n\n\treturn errors;\n};\n\nexport const formatCityLine = (fields: (string | undefined)[]) => {\n\treturn (fields || []).filter(Boolean).join(\", \");\n};\n\nexport const formatAddressLine = (\n\tstreet: string,\n\thouseNumber: string,\n\tadditionalNumber: string\n) => {\n\tconst house = [houseNumber, additionalNumber].filter(Boolean).join(\"/\");\n\tconst fullAddress = [street, house].filter(Boolean).join(\" \");\n\n\treturn fullAddress;\n};\n","export enum Feature {\n\tUPLOAD_VIDEO = \"UPLOAD_VIDEO\",\n}\nexport enum FeatureSegment {\n\tALPHA = \"ALPHA\",\n\tBETA = \"BETA\",\n\tALL = \"ALL\",\n}\n","import { Feature, FeatureSegment } from \"./models\";\n\nexport const FEATURES_LIST: { [key in FeatureSegment]: Feature[] } = {\n\t[FeatureSegment.ALPHA]: [Feature.UPLOAD_VIDEO],\n\t[FeatureSegment.BETA]: [],\n\t[FeatureSegment.ALL]: [],\n};\n","import { getQueryParam } from \"@sorocraft/js-utils\";\n\nimport { FeatureSegment, type Feature } from \"./models\";\n\nimport { FEATURES_LIST } from \"./constants\";\n\nexport const getIsFeatureActive = (feature: Feature, businessSegment: FeatureSegment): boolean => {\n\t// Feature is force-enabled via query param\n\tif (getQueryParam(feature) === \"1\") return true;\n\n\t// Build the list of enabled segments for the current businessSegment\n\tconst enabledSegments: FeatureSegment[] =\n\t\tbusinessSegment === FeatureSegment.ALPHA\n\t\t\t? [FeatureSegment.ALPHA, FeatureSegment.BETA, FeatureSegment.ALL]\n\t\t\t: businessSegment === FeatureSegment.BETA\n\t\t\t? [FeatureSegment.BETA, FeatureSegment.ALL]\n\t\t\t: [FeatureSegment.ALL];\n\n\t// Check if feature exists in any of the enabled segments\n\treturn enabledSegments.some((segment) => FEATURES_LIST[segment]?.includes(feature));\n};\n","import { isEmpty } from \"@sorocraft/js-utils\";\nimport { Category, CategoryTranslation } from \"./models\";\n\nexport const getCategoryTranslation = (\n\tcategory: Category,\n\tlanguage: string\n): CategoryTranslation => {\n\treturn (category?.translations?.find?.((item) => item.language === language) ||\n\t\t{}) as CategoryTranslation;\n};\n\nexport const getCategoryNameById = (\n\tcategoryId: number,\n\tcategories: Category[],\n\tlanguage: string\n): string => {\n\tconst category = categories?.find?.(({ id }) => id === categoryId);\n\n\tif (isEmpty(category)) return \"\";\n\n\tconst { name } = getCategoryTranslation(category, language);\n\n\treturn name || \"\";\n};\n","import * as categoryModels from \"src/modules/category/models\";\nimport * as productModels from \"src/modules/product/models\";\n\nimport { CategoryProductMap } from \"./models\";\n\nexport const prepareCategoryAndProductMap = (\n\tcategories: categoryModels.Category[],\n\tproducts: productModels.Product[]\n): CategoryProductMap[] => {\n\tconst productMap = products.reduce<Record<number, productModels.Product[]>>((map, product) => {\n\t\tif (!product.visible) return map;\n\n\t\tconst categoryId = Number(product.categoryId);\n\t\tif (!map[categoryId]) {\n\t\t\tmap[categoryId] = [];\n\t\t}\n\t\tmap[categoryId].push(product);\n\t\treturn map;\n\t}, {});\n\n\treturn categories\n\t\t.map((category) => ({\n\t\t\t...category,\n\t\t\tproducts: (productMap[Number(category.id)] || []) as productModels.Product[],\n\t\t}))\n\t\t.filter((category) => category?.products?.length > 0);\n};\n","export enum EmployeePermission {\n\tVIEW_BUSINESS = \"VIEW_BUSINESS\",\n\tUPDATE_BUSINESS = \"UPDATE_BUSINESS\",\n\tVIEW_ORDERS = \"VIEW_ORDERS\",\n\tUPDATE_ORDER = \"UPDATE_ORDER\",\n\tCREATE_ORDER = \"CREATE_ORDER\",\n\tVIEW_QR_MENU = \"VIEW_QR_MENU\",\n\tVIEW_MENU = \"VIEW_MENU\",\n\tVIEW_MENU_ITEMS = \"VIEW_MENU_ITEMS\",\n\tCREATE_MENU_ITEM = \"CREATE_MENU_ITEM\",\n\tUPDATE_MENU_ITEM = \"UPDATE_MENU_ITEM\",\n\tDELETE_MENU_ITEM = \"DELETE_MENU_ITEM\",\n\tVIEW_CATEGORIES = \"VIEW_CATEGORIES\",\n\tUPDATE_CATEGORY = \"UPDATE_CATEGORY\",\n\tCREATE_CATEGORY = \"CREATE_CATEGORY\",\n\tDELETE_CATEGORY = \"DELETE_CATEGORY\",\n\tVIEW_ADDONS = \"VIEW_ADDONS\",\n\tUPDATE_ADDON = \"UPDATE_ADDON\",\n\tCREATE_ADDON = \"CREATE_ADDON\",\n\tDELETE_ADDON = \"DELETE_ADDON\",\n\tVIEW_TABLES = \"VIEW_TABLES\",\n\tUPDATE_TABLE = \"UPDATE_TABLE\",\n\tUPDATE_TABLE_STATUS = \"UPDATE_TABLE_STATUS\",\n\tCREATE_TABLE = \"CREATE_TABLE\",\n\tDELETE_TABLE = \"DELETE_TABLE\",\n\tVIEW_BRANCHES = \"VIEW_BRANCHES\",\n\tUPDATE_BRANCH = \"UPDATE_BRANCH\",\n\tCREATE_BRANCH = \"CREATE_BRANCH\",\n\tDELETE_BRANCH = \"DELETE_BRANCH\",\n\tVIEW_EMPLOYEES = \"VIEW_EMPLOYEES\",\n\tUPDATE_EMPLOYEE = \"UPDATE_EMPLOYEE\",\n\tCREATE_EMPLOYEE = \"CREATE_EMPLOYEE\",\n\tDELETE_EMPLOYEE = \"DELETE_EMPLOYEE\",\n\tVIEW_ANALYTICS = \"VIEW_ANALYTICS\",\n\tVIEW_SALES_REPORTS = \"VIEW_SALES_REPORTS\",\n\tVIEW_SUBSCRIPTION = \"VIEW_SUBSCRIPTION\",\n\tUPDATE_SUBSCRIPTION = \"UPDATE_SUBSCRIPTION\",\n\tVIEW_QR_CODES = \"VIEW_QR_CODES\",\n\tCREATE_QR_CODE = \"CREATE_QR_CODE\",\n\tDELETE_QR_CODE = \"DELETE_QR_CODE\",\n\tALL = \"ALL\",\n\t// Inventory\n\tVIEW_INVENTORY = \"VIEW_INVENTORY\",\n\tVIEW_PURCHASES = \"VIEW_PURCHASES\",\n\tVIEW_PURCHASE_DETAIL = \"VIEW_PURCHASE_DETAIL\",\n\tCREATE_PURCHASE = \"CREATE_PURCHASE\",\n\tUPDATE_PURCHASE = \"UPDATE_PURCHASE\",\n\tDELETE_PURCHASE = \"DELETE_PURCHASE\",\n\tVIEW_INVENTORY_PRODUCTS = \"VIEW_INVENTORY_PRODUCTS\",\n\tCREATE_INVENTORY_PRODUCT = \"CREATE_INVENTORY_PRODUCT\",\n\tUPDATE_INVENTORY_PRODUCT = \"UPDATE_INVENTORY_PRODUCT\",\n\tDELETE_INVENTORY_PRODUCT = \"DELETE_INVENTORY_PRODUCT\",\n\tVIEW_BUSINESS_BALANCE = \"VIEW_BUSINESS_BALANCE\",\n\tVIEW_BRANCH_BALANCE = \"VIEW_BRANCH_BALANCE\",\n\tUPDATE_PRODUCT_INGREDIENTS = \"UPDATE_PRODUCT_INGREDIENTS\",\n\tDELETE_PRODUCT_INGREDIENTS = \"DELETE_PRODUCT_INGREDIENTS\",\n\tAI_ASSISTANT = \"AI_ASSISTANT\",\n}\n\nexport enum UserRole {\n\tOWNER = \"OWNER\",\n\tBRANCH_MANAGER = \"BRANCH_MANAGER\",\n\tGENERAL_MANAGER = \"GENERAL_MANAGER\",\n\tCHEF = \"CHEF\",\n\tSOUS_CHEF = \"SOUS_CHEF\",\n\tPASTRY_CHEF = \"PASTRY_CHEF\",\n\tLINE_COOK = \"LINE_COOK\",\n\tPREP_COOK = \"PREP_COOK\",\n\tKITCHEN_ASSISTANT = \"KITCHEN_ASSISTANT\",\n\tDISHWASHER = \"DISHWASHER\",\n\tHEAD_WAITER = \"HEAD_WAITER\",\n\tWAITER = \"WAITER\",\n\tRUNNER = \"RUNNER\",\n\tBARISTA = \"BARISTA\",\n\tBARTENDER = \"BARTENDER\",\n\tSOMMELIER = \"SOMMELIER\",\n\tACCOUNTANT = \"ACCOUNTANT\",\n\tROOM_SERVICE_STAFF = \"ROOM_SERVICE_STAFF\",\n\tDELIVERY_DRIVER = \"DELIVERY_DRIVER\",\n\tINVENTORY_MANAGER = \"INVENTORY_MANAGER\",\n\tPURCHASING_MANAGER = \"PURCHASING_MANAGER\",\n\tWAREHOUSE_STAFF = \"WAREHOUSE_STAFF\",\n}\n\nexport interface User {\n\tid?: number;\n\temail: string;\n\tfullName: string;\n\trole?: UserRole;\n\tavatar64?: string | null;\n\tavatar128?: string | null;\n\tavatar256?: string | null;\n\tbusinessId?: number;\n\tbranchId?: number | null;\n\tcreatedAt: string;\n\temailVerified?: boolean;\n\tpermissions?: EmployeePermission[];\n}\n","import { isEmpty } from \"@sorocraft/js-utils\";\n\nimport { EmployeePermission, UserRole } from \"./models\";\n\nexport const getPermissionsByRole = (role?: UserRole) => {\n\tswitch (role) {\n\t\t/** Owner - Has every permission */\n\t\tcase UserRole.OWNER:\n\t\t\treturn [EmployeePermission.ALL];\n\n\t\t/** General Manager - All except subscription updates */\n\t\tcase UserRole.GENERAL_MANAGER:\n\t\t\treturn [\n\t\t\t\tEmployeePermission.VIEW_BUSINESS,\n\t\t\t\tEmployeePermission.UPDATE_BUSINESS,\n\t\t\t\tEmployeePermission.VIEW_ORDERS,\n\t\t\t\tEmployeePermission.UPDATE_ORDER,\n\t\t\t\tEmployeePermission.CREATE_ORDER,\n\t\t\t\tEmployeePermission.VIEW_QR_MENU,\n\t\t\t\tEmployeePermission.VIEW_QR_CODES,\n\t\t\t\tEmployeePermission.VIEW_MENU,\n\t\t\t\tEmployeePermission.VIEW_MENU_ITEMS,\n\t\t\t\tEmployeePermission.UPDATE_MENU_ITEM,\n\t\t\t\tEmployeePermission.CREATE_MENU_ITEM,\n\t\t\t\tEmployeePermission.DELETE_MENU_ITEM,\n\t\t\t\tEmployeePermission.VIEW_CATEGORIES,\n\t\t\t\tEmployeePermission.UPDATE_CATEGORY,\n\t\t\t\tEmployeePermission.CREATE_CATEGORY,\n\t\t\t\tEmployeePermission.DELETE_CATEGORY,\n\t\t\t\tEmployeePermission.VIEW_ADDONS,\n\t\t\t\tEmployeePermission.UPDATE_ADDON,\n\t\t\t\tEmployeePermission.CREATE_ADDON,\n\t\t\t\tEmployeePermission.DELETE_ADDON,\n\t\t\t\tEmployeePermission.VIEW_TABLES,\n\t\t\t\tEmployeePermission.UPDATE_TABLE,\n\t\t\t\tEmployeePermission.CREATE_TABLE,\n\t\t\t\tEmployeePermission.DELETE_TABLE,\n\t\t\t\tEmployeePermission.VIEW_BRANCHES,\n\t\t\t\tEmployeePermission.UPDATE_BRANCH,\n\t\t\t\tEmployeePermission.CREATE_BRANCH,\n\t\t\t\tEmployeePermission.DELETE_BRANCH,\n\t\t\t\tEmployeePermission.VIEW_EMPLOYEES,\n\t\t\t\tEmployeePermission.UPDATE_EMPLOYEE,\n\t\t\t\tEmployeePermission.CREATE_EMPLOYEE,\n\t\t\t\tEmployeePermission.DELETE_EMPLOYEE,\n\t\t\t\tEmployeePermission.VIEW_ANALYTICS,\n\t\t\t\tEmployeePermission.VIEW_SALES_REPORTS,\n\t\t\t\tEmployeePermission.VIEW_SUBSCRIPTION,\n\t\t\t\tEmployeePermission.CREATE_QR_CODE,\n\t\t\t\tEmployeePermission.DELETE_QR_CODE,\n\t\t\t\tEmployeePermission.AI_ASSISTANT,\n\t\t\t];\n\n\t\t/** Branch Manager - Controls operations within one branch */\n\t\tcase UserRole.BRANCH_MANAGER:\n\t\t\treturn [\n\t\t\t\tEmployeePermission.VIEW_BUSINESS,\n\t\t\t\tEmployeePermission.VIEW_ORDERS,\n\t\t\t\tEmployeePermission.UPDATE_ORDER,\n\t\t\t\tEmployeePermission.CREATE_ORDER,\n\t\t\t\tEmployeePermission.VIEW_QR_MENU,\n\t\t\t\tEmployeePermission.VIEW_QR_CODES,\n\t\t\t\tEmployeePermission.VIEW_MENU,\n\t\t\t\tEmployeePermission.VIEW_MENU_ITEMS,\n\t\t\t\tEmployeePermission.UPDATE_MENU_ITEM,\n\t\t\t\tEmployeePermission.CREATE_MENU_ITEM,\n\t\t\t\tEmployeePermission.DELETE_MENU_ITEM,\n\t\t\t\tEmployeePermission.VIEW_CATEGORIES,\n\t\t\t\tEmployeePermission.UPDATE_CATEGORY,\n\t\t\t\tEmployeePermission.CREATE_CATEGORY,\n\t\t\t\tEmployeePermission.DELETE_CATEGORY,\n\t\t\t\tEmployeePermission.VIEW_ADDONS,\n\t\t\t\tEmployeePermission.UPDATE_ADDON,\n\t\t\t\tEmployeePermission.CREATE_ADDON,\n\t\t\t\tEmployeePermission.DELETE_ADDON,\n\t\t\t\tEmployeePermission.VIEW_TABLES,\n\t\t\t\tEmployeePermission.UPDATE_TABLE,\n\t\t\t\tEmployeePermission.CREATE_TABLE,\n\t\t\t\tEmployeePermission.DELETE_TABLE,\n\t\t\t\tEmployeePermission.VIEW_EMPLOYEES,\n\t\t\t\tEmployeePermission.UPDATE_EMPLOYEE,\n\t\t\t\tEmployeePermission.VIEW_ANALYTICS,\n\t\t\t\tEmployeePermission.VIEW_SALES_REPORTS,\n\t\t\t\tEmployeePermission.CREATE_QR_CODE,\n\t\t\t\tEmployeePermission.DELETE_QR_CODE,\n\t\t\t\tEmployeePermission.AI_ASSISTANT,\n\t\t\t];\n\n\t\t/** Chef - Manages menu and kitchen orders */\n\t\tcase UserRole.CHEF:\n\t\t\treturn [\n\t\t\t\tEmployeePermission.VIEW_MENU,\n\t\t\t\tEmployeePermission.VIEW_MENU_ITEMS,\n\t\t\t\tEmployeePermission.UPDATE_MENU_ITEM,\n\t\t\t\tEmployeePermission.VIEW_CATEGORIES,\n\t\t\t\tEmployeePermission.UPDATE_CATEGORY,\n\t\t\t\tEmployeePermission.VIEW_ADDONS,\n\t\t\t\tEmployeePermission.UPDATE_ADDON,\n\t\t\t\tEmployeePermission.VIEW_ORDERS,\n\t\t\t\tEmployeePermission.UPDATE_ORDER,\n\t\t\t];\n\n\t\t/** Sous Chef - Assists chef with orders and menu */\n\t\tcase UserRole.SOUS_CHEF:\n\t\t\treturn [\n\t\t\t\tEmployeePermission.VIEW_MENU,\n\t\t\t\tEmployeePermission.VIEW_MENU_ITEMS,\n\t\t\t\tEmployeePermission.VIEW_CATEGORIES,\n\t\t\t\tEmployeePermission.VIEW_ADDONS,\n\t\t\t\tEmployeePermission.VIEW_ORDERS,\n\t\t\t\tEmployeePermission.UPDATE_ORDER,\n\t\t\t];\n\n\t\t/** Pastry Chef - Limited to dessert menu items */\n\t\tcase UserRole.PASTRY_CHEF:\n\t\t\treturn [\n\t\t\t\tEmployeePermission.VIEW_MENU,\n\t\t\t\tEmployeePermission.VIEW_MENU_ITEMS,\n\t\t\t\tEmployeePermission.UPDATE_MENU_ITEM,\n\t\t\t\tEmployeePermission.VIEW_ORDERS,\n\t\t\t\tEmployeePermission.UPDATE_ORDER,\n\t\t\t];\n\n\t\t/** Line Cook / Prep Cook / Kitchen Assistant - Read-only menu & order updates */\n\t\tcase UserRole.LINE_COOK:\n\t\tcase UserRole.PREP_COOK:\n\t\tcase UserRole.KITCHEN_ASSISTANT:\n\t\t\treturn [\n\t\t\t\tEmployeePermission.VIEW_MENU,\n\t\t\t\tEmployeePermission.VIEW_MENU_ITEMS,\n\t\t\t\tEmployeePermission.VIEW_ORDERS,\n\t\t\t\tEmployeePermission.UPDATE_ORDER,\n\t\t\t];\n\n\t\t/** Head Waiter - Full service control */\n\t\tcase UserRole.HEAD_WAITER:\n\t\t\treturn [\n\t\t\t\tEmployeePermission.VIEW_ORDERS,\n\t\t\t\tEmployeePermission.CREATE_ORDER,\n\t\t\t\tEmployeePermission.UPDATE_ORDER,\n\t\t\t\tEmployeePermission.VIEW_TABLES,\n\t\t\t\tEmployeePermission.UPDATE_TABLE_STATUS,\n\t\t\t\tEmployeePermission.VIEW_MENU,\n\t\t\t\tEmployeePermission.VIEW_MENU_ITEMS,\n\t\t\t\tEmployeePermission.VIEW_CATEGORIES,\n\t\t\t\tEmployeePermission.VIEW_ADDONS,\n\t\t\t\tEmployeePermission.VIEW_QR_MENU,\n\t\t\t\tEmployeePermission.VIEW_QR_CODES,\n\t\t\t];\n\n\t\t/** Waiter - Handles orders and table service */\n\t\tcase UserRole.WAITER:\n\t\t\treturn [\n\t\t\t\tEmployeePermission.VIEW_ORDERS,\n\t\t\t\tEmployeePermission.CREATE_ORDER,\n\t\t\t\tEmployeePermission.UPDATE_ORDER,\n\t\t\t\tEmployeePermission.VIEW_TABLES,\n\t\t\t\tEmployeePermission.UPDATE_TABLE_STATUS,\n\t\t\t\tEmployeePermission.VIEW_MENU,\n\t\t\t\tEmployeePermission.VIEW_MENU_ITEMS,\n\t\t\t\tEmployeePermission.VIEW_CATEGORIES,\n\t\t\t\tEmployeePermission.VIEW_ADDONS,\n\t\t\t];\n\n\t\t/** Runner - Sees and updates order delivery progress */\n\t\tcase UserRole.RUNNER:\n\t\t\treturn [EmployeePermission.VIEW_ORDERS, EmployeePermission.UPDATE_ORDER];\n\n\t\t/** ☕ Barista / Bartender / Sommelier / Room Service */\n\t\tcase UserRole.BARISTA:\n\t\tcase UserRole.BARTENDER:\n\t\tcase UserRole.SOMMELIER:\n\t\tcase UserRole.ROOM_SERVICE_STAFF:\n\t\t\treturn [\n\t\t\t\tEmployeePermission.VIEW_MENU,\n\t\t\t\tEmployeePermission.VIEW_MENU_ITEMS,\n\t\t\t\tEmployeePermission.VIEW_ORDERS,\n\t\t\t\tEmployeePermission.CREATE_ORDER,\n\t\t\t\tEmployeePermission.UPDATE_ORDER,\n\t\t\t];\n\n\t\t/** Accountant - Analytics, reports, subscriptions */\n\t\tcase UserRole.ACCOUNTANT:\n\t\t\treturn [\n\t\t\t\tEmployeePermission.VIEW_ANALYTICS,\n\t\t\t\tEmployeePermission.VIEW_SALES_REPORTS,\n\t\t\t\tEmployeePermission.VIEW_SUBSCRIPTION,\n\t\t\t];\n\n\t\t/** Delivery Driver - Delivery orders only */\n\t\tcase UserRole.DELIVERY_DRIVER:\n\t\t\treturn [EmployeePermission.VIEW_ORDERS, EmployeePermission.UPDATE_ORDER];\n\n\t\t/** Inventory Manager - Controls menu stock-related items */\n\t\tcase UserRole.INVENTORY_MANAGER:\n\t\t\treturn [\n\t\t\t\tEmployeePermission.VIEW_CATEGORIES,\n\t\t\t\tEmployeePermission.UPDATE_CATEGORY,\n\t\t\t\tEmployeePermission.CREATE_CATEGORY,\n\t\t\t\tEmployeePermission.DELETE_CATEGORY,\n\t\t\t\tEmployeePermission.VIEW_ADDONS,\n\t\t\t\tEmployeePermission.UPDATE_ADDON,\n\t\t\t\tEmployeePermission.CREATE_ADDON,\n\t\t\t\tEmployeePermission.DELETE_ADDON,\n\t\t\t\tEmployeePermission.VIEW_MENU,\n\t\t\t\tEmployeePermission.VIEW_MENU_ITEMS,\n\t\t\t\tEmployeePermission.UPDATE_MENU_ITEM,\n\t\t\t\tEmployeePermission.CREATE_MENU_ITEM,\n\t\t\t\tEmployeePermission.DELETE_MENU_ITEM,\n\t\t\t\tEmployeePermission.VIEW_PURCHASES,\n\t\t\t\tEmployeePermission.CREATE_PURCHASE,\n\t\t\t\tEmployeePermission.UPDATE_PURCHASE,\n\t\t\t\tEmployeePermission.DELETE_PURCHASE,\n\t\t\t\tEmployeePermission.VIEW_INVENTORY,\n\t\t\t\tEmployeePermission.VIEW_INVENTORY_PRODUCTS,\n\t\t\t\tEmployeePermission.CREATE_INVENTORY_PRODUCT,\n\t\t\t\tEmployeePermission.UPDATE_INVENTORY_PRODUCT,\n\t\t\t\tEmployeePermission.DELETE_INVENTORY_PRODUCT,\n\t\t\t\tEmployeePermission.VIEW_PURCHASE_DETAIL,\n\t\t\t\tEmployeePermission.VIEW_BRANCH_BALANCE,\n\t\t\t\tEmployeePermission.UPDATE_PRODUCT_INGREDIENTS,\n\t\t\t\tEmployeePermission.DELETE_PRODUCT_INGREDIENTS,\n\t\t\t];\n\n\t\t/** Purchasing Manager - Similar to inventory but more on creation/deletion */\n\t\tcase UserRole.PURCHASING_MANAGER:\n\t\t\treturn [\n\t\t\t\tEmployeePermission.VIEW_MENU,\n\t\t\t\tEmployeePermission.VIEW_MENU_ITEMS,\n\t\t\t\tEmployeePermission.VIEW_CATEGORIES,\n\t\t\t\tEmployeePermission.CREATE_CATEGORY,\n\t\t\t\tEmployeePermission.UPDATE_CATEGORY,\n\t\t\t\tEmployeePermission.VIEW_ADDONS,\n\t\t\t\tEmployeePermission.CREATE_ADDON,\n\t\t\t\tEmployeePermission.UPDATE_ADDON,\n\t\t\t];\n\n\t\t/** Warehouse Staff - View only */\n\t\tcase UserRole.WAREHOUSE_STAFF:\n\t\t\treturn [\n\t\t\t\tEmployeePermission.VIEW_CATEGORIES,\n\t\t\t\tEmployeePermission.VIEW_ADDONS,\n\t\t\t\tEmployeePermission.VIEW_MENU,\n\t\t\t\tEmployeePermission.VIEW_MENU_ITEMS,\n\t\t\t];\n\n\t\tdefault:\n\t\t\treturn [];\n\t}\n};\n\nexport const getHasUserPermission = (\n\trequiredPermissions: EmployeePermission[],\n\tuserPermissions: EmployeePermission[],\n) => {\n\tif (isEmpty(requiredPermissions)) return true;\n\tif (isEmpty(userPermissions)) return false;\n\tif (userPermissions.includes(EmployeePermission.ALL)) return true;\n\n\treturn requiredPermissions.some((permission) => userPermissions.includes(permission));\n};\n"],"names":["getAddonTranslation","addon","language","_b","_a","translations","find","call","item","getAddonOptionTranslation","option","getOptionPrice","currency","price","totalPrice","formattedTotalPrice","priceFormatter","getAddonOptionRawPrice","optionId","options","id","getOptionTitles","optionIds","Array","isArray","filter","includes","map","t","title","Boolean","join","getAddonTitle","_c","ProductView","SellUnitType","MenuAddonSelectType","calculateTotalPrice","quantity","vat","getProductTranslation","product","getProductRawPrice","getProductPrice","getProductVariant","variantId","variants","getSelectedOptionsTotalPrice","selectedAddons","addons","Object","prototype","hasOwnProperty","reduce","total","addonId","selectType","SINGLE","selectedOptionId","multipleTotal","getProductVariantRawPrice","variant","getProductVariantPrice","getProductVariantTranslation","getProductOrderRawPrice","noVat","isEmpty","optionsPrice","productData","assign","selectedOptionsTotalPrice","getProductOrderPrice","getProductAddon","getPriceSuffix","sellUnitType","WEIGHT","VOLUME","getProductSellUnitShortCuts","OrderType","OrderStatus","OrderItemStatus","PaymentMethod","OrderStep","OrderErrors","CASH","CART","DETAILS","COMPLETED","calculatSingleAddonTotalPrice","sum","calculateTotalAddonPrice","getOrderPrice","order","calculateItemTotal","totalWithoutTax","totalTax","items","itemTotal","undefined","totalWithTax","totalWithoutTaxFormatted","totalTaxFormatted","totalWithTaxFormatted","generateOrderItemsId","productId","Error","orderItemsId","addonIdsPart","entries","sortNumbers","getOrderItemPrice","orderItem","basePrice","itemNetPrice","itemTax","itemGrossPrice","totalGross","totalNet","getSelectedAddonsFromOrderItems","length","getStatusIcon","status","Check","DELIVERED","BagCheck","OUT_FOR_DELIVERY","Delivery","PREPARING","Chef","CONFIRMED","FileCheck","PENDING","HourglassHalf","buildSelectedAddonsPayload","productAddons","addonIdStr","selected","Number","selectedOptionIds","getDefaultOrderType","settings","isOpen","isDelivering","deliveryOrderEnabled","dineInOrderEnabled","pickupOrderEnabled","DELIVERY","DINE_IN","PICK_UP","getOrderErrorMessages","field","ADDRESS_IS_EMPTY","TABLE_NOT_SELECTED","EMPTY_ITEMS","BRANCH_NOT_SELECTED","FIELD_REQUIRED_ERROR","DOMAIN","IMAGE_BASE_URL","validators","number","AZERBAIJANI_PREFIXES","RegExp","test","isValid","error","validatePhoneNumber","phoneNumber","cleaned","replace","countryCode","startsWith","nationalNumber","slice","validator","getBaseUrl","hostname","locale","url","domain","getRegisterUrl","source","getImageSource","image","getLogoImageSource","logoImage","getCoverPhotoSource","coverPhoto","keyStr","triplet","e1","e2","e3","charAt","rgbDataURL","r","g","b","getVideoSource","video","CustomerAuthStep","CustomerAddressType","preparePhoneNumber","form","replaceAll","validateForm","step","errors","email","otp","PHONE","viewUtils.validatePhoneNumber","OTP","EMAIL","checkIsValidEmail","validateAddressForm","cityName","street","houseNumber","formatCityLine","fields","formatAddressLine","additionalNumber","Feature","FeatureSegment","FEATURES_LIST","ALPHA","UPLOAD_VIDEO","BETA","ALL","getIsFeatureActive","feature","businessSegment","getQueryParam","some","segment","getCategoryTranslation","category","getCategoryNameById","categoryId","categories","name","prepareCategoryAndProductMap","products","productMap","visible","push","EmployeePermission","UserRole","getPermissionsByRole","role","OWNER","GENERAL_MANAGER","VIEW_BUSINESS","UPDATE_BUSINESS","VIEW_ORDERS","UPDATE_ORDER","CREATE_ORDER","VIEW_QR_MENU","VIEW_QR_CODES","VIEW_MENU","VIEW_MENU_ITEMS","UPDATE_MENU_ITEM","CREATE_MENU_ITEM","DELETE_MENU_ITEM","VIEW_CATEGORIES","UPDATE_CATEGORY","CREATE_CATEGORY","DELETE_CATEGORY","VIEW_ADDONS","UPDATE_ADDON","CREATE_ADDON","DELETE_ADDON","VIEW_TABLES","UPDATE_TABLE","CREATE_TABLE","DELETE_TABLE","VIEW_BRANCHES","UPDATE_BRANCH","CREATE_BRANCH","DELETE_BRANCH","VIEW_EMPLOYEES","UPDATE_EMPLOYEE","CREATE_EMPLOYEE","DELETE_EMPLOYEE","VIEW_ANALYTICS","VIEW_SALES_REPORTS","VIEW_SUBSCRIPTION","CREATE_QR_CODE","DELETE_QR_CODE","AI_ASSISTANT","BRANCH_MANAGER","CHEF","SOUS_CHEF","PASTRY_CHEF","LINE_COOK","PREP_COOK","KITCHEN_ASSISTANT","HEAD_WAITER","UPDATE_TABLE_STATUS","WAITER","RUNNER","BARISTA","BARTENDER","SOMMELIER","ROOM_SERVICE_STAFF","ACCOUNTANT","DELIVERY_DRIVER","INVENTORY_MANAGER","VIEW_PURCHASES","CREATE_PURCHASE","UPDATE_PURCHASE","DELETE_PURCHASE","VIEW_INVENTORY","VIEW_INVENTORY_PRODUCTS","CREATE_INVENTORY_PRODUCT","UPDATE_INVENTORY_PRODUCT","DELETE_INVENTORY_PRODUCT","VIEW_PURCHASE_DETAIL","VIEW_BRANCH_BALANCE","UPDATE_PRODUCT_INGREDIENTS","DELETE_PRODUCT_INGREDIENTS","PURCHASING_MANAGER","WAREHOUSE_STAFF","getHasUserPermission","requiredPermissions","userPermissions","permission"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var E=require("@sorocraft/js-utils"),t=require("@sorocraft/ui/icons");const e=(E,t)=>{var e;return(null===(e=((null==E?void 0:E.options)||[]).find(({id:E})=>E===t))||void 0===e?void 0:e.price)||0};var r,A,_;!function(E){E.LIST="list",E.GRID="grid"}(r||(r={})),function(E){E.PIECE="PIECE",E.WEIGHT="WEIGHT",E.VOLUME="VOLUME"}(A||(A={})),function(E){E.SINGLE="SINGLE",E.MULTIPLE="MULTIPLE"}(_||(_={}));const T=(E=0,t=1,e=0)=>E*t*(1+e/100),R=(E,t=1)=>{const{price:e=0,vat:r=0}=E||{};return T(e,t,r)},o=(E,t)=>{var e,r;return(null===(r=null===(e=null==E?void 0:E.variants)||void 0===e?void 0:e.find)||void 0===r?void 0:r.call(e,E=>E.id===t))||{}},n=(E,t={},r)=>((null==E?void 0:E.addons)||[]).filter(E=>Object.prototype.hasOwnProperty.call(t,E.id)).reduce((E,r)=>{const{id:A,selectType:T}=r;if(T===_.SINGLE){const _=t[A];return E+e(r,_)}return E+(t[A]||[]).reduce((E,t)=>E+e(r,t),0)},0)*r,I=(E,t,e)=>{const r=o(t,E),{vat:A}=t||{},{price:_}=r||{};return T(_,e,A)},a=({product:t,variantId:e,quantity:r=1,selectedAddons:A,noVat:_=!1})=>{if(E.isEmpty(t))return{price:0,optionsPrice:0,total:0};const T=Object.assign(Object.assign({},t),{vat:_?0:t.vat}),o=n(T,A,r),a=e?I(e,T,r):R(T,r);return{price:a,optionsPrice:o,total:a+o}};var i,s,D,l,N,O;!function(E){E.DINE_IN="DINE_IN",E.PICK_UP="PICK_UP",E.DELIVERY="DELIVERY"}(i||(i={})),function(E){E.DRAFT="DRAFT",E.PENDING="PENDING",E.CONFIRMED="CONFIRMED",E.PREPARING="PREPARING",E.READY="READY",E.OUT_FOR_DELIVERY="OUT_FOR_DELIVERY",E.DELIVERED="DELIVERED",E.COMPLETED="COMPLETED",E.CANCELLED="CANCELLED",E.FAILED="FAILED"}(s||(s={})),function(E){E.PENDING="PENDING",E.PREPARING="PREPARING",E.READY="READY",E.SERVED="SERVED"}(D||(D={})),function(E){E.CASH="CASH",E.CARD="CARD",E.WALLET="WALLET",E.TERMINAL="TERMINAL"}(l||(l={})),function(E){E.CART="CART",E.DETAILS="DETAILS",E.COMPLETED="COMPLETED"}(N||(N={})),l.CASH,N.CART,N.DETAILS,N.COMPLETED,function(E){E.FIELD_REQUIRED_ERROR="This field is required",E.TABLE_NOT_SELECTED="Please select a table",E.ADDRESS_IS_EMPTY="Please enter an address",E.EMPTY_ITEMS="Please choose product",E.BRANCH_NOT_SELECTED="Please select a branch"}(O||(O={}));const c=E=>E.options.reduce((E,t)=>E+t.price,0);function S(E=[],t=1){return t*E.reduce((E,t)=>E+c(t),0)}const u="tabres.com",d="https://images.tabres.com",P={994:E=>{const t=["50","51","10","55","99","70","77","60"];return new RegExp(`^(${t.join("|")})\\d{7}$`).test(E)?{isValid:!0}:{isValid:!1,error:`Azerbaijani numbers must be 9 digits and start with ${t.join(", ")}`}},31:E=>/^\d{9}$/.test(E)?{isValid:!0}:{isValid:!1,error:"Dutch numbers must be exactly 9 digits"}};function C(E){if(!E)return{isValid:!1,error:"FIELD_REQUIRED"};const t=E.replace(/\D/g,""),e=t.startsWith("994")?"994":t.startsWith("31")?"31":null;if(!e)return{isValid:!1,error:"Unsupported country code"};const r=t.slice(e.length);return(0,P[e])(r)}const U="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",L=(E,t,e)=>U.charAt(E>>2)+U.charAt((3&E)<<4|t>>4)+U.charAt((15&t)<<2|e>>6)+U.charAt(63&e);var V,W;!function(E){E.PHONE="PHONE",E.OTP="OTP",E.EMAIL="EMAIL"}(V||(V={})),function(E){E.HOME="HOME",E.WORK="WORK",E.TRAVEL="TRAVEL"}(W||(W={}));var M,p;!function(E){E.UPLOAD_VIDEO="UPLOAD_VIDEO"}(M||(M={})),function(E){E.ALPHA="ALPHA",E.BETA="BETA",E.ALL="ALL"}(p||(p={}));const g={[p.ALPHA]:[M.UPLOAD_VIDEO],[p.BETA]:[],[p.ALL]:[]},v=(E,t)=>{var e,r;return(null===(r=null===(e=null==E?void 0:E.translations)||void 0===e?void 0:e.find)||void 0===r?void 0:r.call(e,E=>E.language===t))||{}};var m,B;!function(E){E.VIEW_BUSINESS="VIEW_BUSINESS",E.UPDATE_BUSINESS="UPDATE_BUSINESS",E.VIEW_ORDERS="VIEW_ORDERS",E.UPDATE_ORDER="UPDATE_ORDER",E.CREATE_ORDER="CREATE_ORDER",E.VIEW_QR_MENU="VIEW_QR_MENU",E.VIEW_MENU="VIEW_MENU",E.VIEW_MENU_ITEMS="VIEW_MENU_ITEMS",E.CREATE_MENU_ITEM="CREATE_MENU_ITEM",E.UPDATE_MENU_ITEM="UPDATE_MENU_ITEM",E.DELETE_MENU_ITEM="DELETE_MENU_ITEM",E.VIEW_CATEGORIES="VIEW_CATEGORIES",E.UPDATE_CATEGORY="UPDATE_CATEGORY",E.CREATE_CATEGORY="CREATE_CATEGORY",E.DELETE_CATEGORY="DELETE_CATEGORY",E.VIEW_ADDONS="VIEW_ADDONS",E.UPDATE_ADDON="UPDATE_ADDON",E.CREATE_ADDON="CREATE_ADDON",E.DELETE_ADDON="DELETE_ADDON",E.VIEW_TABLES="VIEW_TABLES",E.UPDATE_TABLE="UPDATE_TABLE",E.UPDATE_TABLE_STATUS="UPDATE_TABLE_STATUS",E.CREATE_TABLE="CREATE_TABLE",E.DELETE_TABLE="DELETE_TABLE",E.VIEW_BRANCHES="VIEW_BRANCHES",E.UPDATE_BRANCH="UPDATE_BRANCH",E.CREATE_BRANCH="CREATE_BRANCH",E.DELETE_BRANCH="DELETE_BRANCH",E.VIEW_EMPLOYEES="VIEW_EMPLOYEES",E.UPDATE_EMPLOYEE="UPDATE_EMPLOYEE",E.CREATE_EMPLOYEE="CREATE_EMPLOYEE",E.DELETE_EMPLOYEE="DELETE_EMPLOYEE",E.VIEW_ANALYTICS="VIEW_ANALYTICS",E.VIEW_SALES_REPORTS="VIEW_SALES_REPORTS",E.VIEW_SUBSCRIPTION="VIEW_SUBSCRIPTION",E.UPDATE_SUBSCRIPTION="UPDATE_SUBSCRIPTION",E.VIEW_QR_CODES="VIEW_QR_CODES",E.CREATE_QR_CODE="CREATE_QR_CODE",E.DELETE_QR_CODE="DELETE_QR_CODE",E.ALL="ALL",E.VIEW_INVENTORY="VIEW_INVENTORY",E.VIEW_PURCHASES="VIEW_PURCHASES",E.VIEW_PURCHASE_DETAIL="VIEW_PURCHASE_DETAIL",E.CREATE_PURCHASE="CREATE_PURCHASE",E.UPDATE_PURCHASE="UPDATE_PURCHASE",E.DELETE_PURCHASE="DELETE_PURCHASE",E.VIEW_INVENTORY_PRODUCTS="VIEW_INVENTORY_PRODUCTS",E.CREATE_INVENTORY_PRODUCT="CREATE_INVENTORY_PRODUCT",E.UPDATE_INVENTORY_PRODUCT="UPDATE_INVENTORY_PRODUCT",E.DELETE_INVENTORY_PRODUCT="DELETE_INVENTORY_PRODUCT",E.VIEW_BUSINESS_BALANCE="VIEW_BUSINESS_BALANCE",E.VIEW_BRANCH_BALANCE="VIEW_BRANCH_BALANCE",E.UPDATE_PRODUCT_INGREDIENTS="UPDATE_PRODUCT_INGREDIENTS",E.DELETE_PRODUCT_INGREDIENTS="DELETE_PRODUCT_INGREDIENTS",E.AI_ASSISTANT="AI_ASSISTANT"}(m||(m={})),function(E){E.OWNER="OWNER",E.BRANCH_MANAGER="BRANCH_MANAGER",E.GENERAL_MANAGER="GENERAL_MANAGER",E.CHEF="CHEF",E.SOUS_CHEF="SOUS_CHEF",E.PASTRY_CHEF="PASTRY_CHEF",E.LINE_COOK="LINE_COOK",E.PREP_COOK="PREP_COOK",E.KITCHEN_ASSISTANT="KITCHEN_ASSISTANT",E.DISHWASHER="DISHWASHER",E.HEAD_WAITER="HEAD_WAITER",E.WAITER="WAITER",E.RUNNER="RUNNER",E.BARISTA="BARISTA",E.BARTENDER="BARTENDER",E.SOMMELIER="SOMMELIER",E.ACCOUNTANT="ACCOUNTANT",E.ROOM_SERVICE_STAFF="ROOM_SERVICE_STAFF",E.DELIVERY_DRIVER="DELIVERY_DRIVER",E.INVENTORY_MANAGER="INVENTORY_MANAGER",E.PURCHASING_MANAGER="PURCHASING_MANAGER",E.WAREHOUSE_STAFF="WAREHOUSE_STAFF"}(B||(B={}));exports.buildSelectedAddonsPayload=(t=[],e={})=>Object.entries(e).map(([e,r])=>{const A=Number(e),_=Array.isArray(r)?r:[r],T=t.find(E=>E.id===A);if(E.isEmpty(T))return{addonId:A,options:[]};const R=(T.options||[]).filter(E=>_.includes(E.id)).map(E=>({optionId:E.id,price:E.price}));return{addonId:A,options:R}}),exports.calculatSingleAddonTotalPrice=c,exports.calculateTotalAddonPrice=S,exports.calculateTotalPrice=T,exports.formatAddressLine=(E,t,e)=>[E,[t,e].filter(Boolean).join("/")].filter(Boolean).join(" "),exports.formatCityLine=E=>(E||[]).filter(Boolean).join(", "),exports.generateOrderItemsId=(t,e,r)=>{if(!t)throw new Error("Product ID is required");let A=`${t}`;e&&(A+=`-${e}`);const _=Object.entries(r||{}).map(([t,e])=>{if(!t||!e)return null;const r=Array.isArray(e)?E.sortNumbers(e).filter(Boolean).join("-"):`${e}`;return r?`${t}-${r}`:null}).filter(Boolean).join("-");return _&&(A+=`-${_}`),A},exports.getAddonOptionRawPrice=e,exports.getAddonOptionTranslation=(E,t)=>{var e,r;return(null===(r=null===(e=null==E?void 0:E.translations)||void 0===e?void 0:e.find)||void 0===r?void 0:r.call(e,E=>E.language===t))||{}},exports.getAddonTitle=(E,t)=>{var e,r,A;return(null===(A=null===(r=null===(e=null==E?void 0:E.translations)||void 0===e?void 0:e.find)||void 0===r?void 0:r.call(e,E=>E.language===t))||void 0===A?void 0:A.title)||""},exports.getAddonTranslation=(E,t)=>{var e,r;return(null===(r=null===(e=null==E?void 0:E.translations)||void 0===e?void 0:e.find)||void 0===r?void 0:r.call(e,E=>E.language===t))||{}},exports.getBaseUrl=(E,t)=>{const e=t||"en";return"localhost:3000"===E?{url:`http://localhost:3000/${e}`,domain:u}:{url:`https://${u}/${e}`,domain:u}},exports.getCategoryNameById=(t,e,r)=>{var A;const _=null===(A=null==e?void 0:e.find)||void 0===A?void 0:A.call(e,({id:E})=>E===t);if(E.isEmpty(_))return"";const{name:T}=v(_,r);return T||""},exports.getCategoryTranslation=v,exports.getCoverPhotoSource=E=>E?E.includes("base64")||E.startsWith("https://")?E:`${d}/${E}`:"https://images.tabres.com/tabres-doodle.webp",exports.getDefaultOrderType=(E,t,e)=>{if(!E)return null;const{deliveryOrderEnabled:r,dineInOrderEnabled:A,pickupOrderEnabled:_}=E;return r&&e?i.DELIVERY:A&&t?i.DINE_IN:_&&t?i.PICK_UP:null},exports.getHasUserPermission=(t,e)=>!!E.isEmpty(t)||!E.isEmpty(e)&&(!!e.includes(m.ALL)||t.some(E=>e.includes(E))),exports.getImageSource=E=>E?E.includes("base64")||E.startsWith("https://")?E:`${d}/${E}`:"",exports.getIsFeatureActive=(t,e)=>{if("1"===E.getQueryParam(t))return!0;return(e===p.ALPHA?[p.ALPHA,p.BETA,p.ALL]:e===p.BETA?[p.BETA,p.ALL]:[p.ALL]).some(E=>{var e;return null===(e=g[E])||void 0===e?void 0:e.includes(t)})},exports.getLogoImageSource=E=>E?E.includes("base64")||E.startsWith("https://")?E:`${d}/${E}`:"https://images.tabres.com/no-photo-128.webp",exports.getOptionPrice=({option:t,currency:e,language:r})=>{const{price:A}=t||{};return{totalPrice:A,formattedTotalPrice:E.priceFormatter(A,e||"USD",r||"en")}},exports.getOptionTitles=(E,t,e)=>{var r;if(Array.isArray(t))return(E||[]).filter(({id:E})=>t.includes(E)).map(({translations:E})=>{var t;return(null===(t=E.find(E=>E.language===e))||void 0===t?void 0:t.title)||""}).filter(Boolean).join(", ");{const A=(E||[]).find(({id:E})=>E===t);return(null===(r=null==A?void 0:A.translations.find(E=>E.language===e))||void 0===r?void 0:r.title)||""}},exports.getOrderErrorMessages=E=>{switch(E){case"customer":return O.ADDRESS_IS_EMPTY;case"tableId":return O.TABLE_NOT_SELECTED;case"items":return O.EMPTY_ITEMS;case"branchId":return O.BRANCH_NOT_SELECTED;default:return O.FIELD_REQUIRED_ERROR}},exports.getOrderItemPrice=E=>{var t;const{price:e,variant:r,addons:A,quantity:_,vat:T}=E||{},R=null!==(t=null==r?void 0:r.price)&&void 0!==t?t:e,o=R+S(A,1),n=R*(T/100),I=o+n;return{totalGross:I*_,totalNet:o*_,totalTax:n*_,itemGrossPrice:I,itemNetPrice:o,itemTax:n}},exports.getOrderPrice=(t,e,r)=>{const A=(E,t,e)=>t*E+S(e,t);let _=0,T=0;for(const E of t.items){const e=A(E.price,E.quantity,E.addons);_+=e,void 0===t.vat&&E.vat&&(T+=e*E.vat/100)}void 0!==t.vat&&(T=_*t.vat/100);const R=_+T;return{totalWithoutTax:_,totalWithoutTaxFormatted:E.priceFormatter(_,e,r),totalTax:T,totalTaxFormatted:E.priceFormatter(T,e,r),totalWithTax:R,totalWithTaxFormatted:E.priceFormatter(R,e,r)}},exports.getPermissionsByRole=E=>{switch(E){case B.OWNER:return[m.ALL];case B.GENERAL_MANAGER:return[m.VIEW_BUSINESS,m.UPDATE_BUSINESS,m.VIEW_ORDERS,m.UPDATE_ORDER,m.CREATE_ORDER,m.VIEW_QR_MENU,m.VIEW_QR_CODES,m.VIEW_MENU,m.VIEW_MENU_ITEMS,m.UPDATE_MENU_ITEM,m.CREATE_MENU_ITEM,m.DELETE_MENU_ITEM,m.VIEW_CATEGORIES,m.UPDATE_CATEGORY,m.CREATE_CATEGORY,m.DELETE_CATEGORY,m.VIEW_ADDONS,m.UPDATE_ADDON,m.CREATE_ADDON,m.DELETE_ADDON,m.VIEW_TABLES,m.UPDATE_TABLE,m.CREATE_TABLE,m.DELETE_TABLE,m.VIEW_BRANCHES,m.UPDATE_BRANCH,m.CREATE_BRANCH,m.DELETE_BRANCH,m.VIEW_EMPLOYEES,m.UPDATE_EMPLOYEE,m.CREATE_EMPLOYEE,m.DELETE_EMPLOYEE,m.VIEW_ANALYTICS,m.VIEW_SALES_REPORTS,m.VIEW_SUBSCRIPTION,m.CREATE_QR_CODE,m.DELETE_QR_CODE,m.AI_ASSISTANT];case B.BRANCH_MANAGER:return[m.VIEW_BUSINESS,m.VIEW_ORDERS,m.UPDATE_ORDER,m.CREATE_ORDER,m.VIEW_QR_MENU,m.VIEW_QR_CODES,m.VIEW_MENU,m.VIEW_MENU_ITEMS,m.UPDATE_MENU_ITEM,m.CREATE_MENU_ITEM,m.DELETE_MENU_ITEM,m.VIEW_CATEGORIES,m.UPDATE_CATEGORY,m.CREATE_CATEGORY,m.DELETE_CATEGORY,m.VIEW_ADDONS,m.UPDATE_ADDON,m.CREATE_ADDON,m.DELETE_ADDON,m.VIEW_TABLES,m.UPDATE_TABLE,m.CREATE_TABLE,m.DELETE_TABLE,m.VIEW_EMPLOYEES,m.UPDATE_EMPLOYEE,m.VIEW_ANALYTICS,m.VIEW_SALES_REPORTS,m.CREATE_QR_CODE,m.DELETE_QR_CODE,m.AI_ASSISTANT];case B.CHEF:return[m.VIEW_MENU,m.VIEW_MENU_ITEMS,m.UPDATE_MENU_ITEM,m.VIEW_CATEGORIES,m.UPDATE_CATEGORY,m.VIEW_ADDONS,m.UPDATE_ADDON,m.VIEW_ORDERS,m.UPDATE_ORDER];case B.SOUS_CHEF:return[m.VIEW_MENU,m.VIEW_MENU_ITEMS,m.VIEW_CATEGORIES,m.VIEW_ADDONS,m.VIEW_ORDERS,m.UPDATE_ORDER];case B.PASTRY_CHEF:return[m.VIEW_MENU,m.VIEW_MENU_ITEMS,m.UPDATE_MENU_ITEM,m.VIEW_ORDERS,m.UPDATE_ORDER];case B.LINE_COOK:case B.PREP_COOK:case B.KITCHEN_ASSISTANT:return[m.VIEW_MENU,m.VIEW_MENU_ITEMS,m.VIEW_ORDERS,m.UPDATE_ORDER];case B.HEAD_WAITER:return[m.VIEW_ORDERS,m.CREATE_ORDER,m.UPDATE_ORDER,m.VIEW_TABLES,m.UPDATE_TABLE_STATUS,m.VIEW_MENU,m.VIEW_MENU_ITEMS,m.VIEW_CATEGORIES,m.VIEW_ADDONS,m.VIEW_QR_MENU,m.VIEW_QR_CODES];case B.WAITER:return[m.VIEW_ORDERS,m.CREATE_ORDER,m.UPDATE_ORDER,m.VIEW_TABLES,m.UPDATE_TABLE_STATUS,m.VIEW_MENU,m.VIEW_MENU_ITEMS,m.VIEW_CATEGORIES,m.VIEW_ADDONS];case B.RUNNER:return[m.VIEW_ORDERS,m.UPDATE_ORDER];case B.BARISTA:case B.BARTENDER:case B.SOMMELIER:case B.ROOM_SERVICE_STAFF:return[m.VIEW_MENU,m.VIEW_MENU_ITEMS,m.VIEW_ORDERS,m.CREATE_ORDER,m.UPDATE_ORDER];case B.ACCOUNTANT:return[m.VIEW_ANALYTICS,m.VIEW_SALES_REPORTS,m.VIEW_SUBSCRIPTION];case B.DELIVERY_DRIVER:return[m.VIEW_ORDERS,m.UPDATE_ORDER];case B.INVENTORY_MANAGER:return[m.VIEW_CATEGORIES,m.UPDATE_CATEGORY,m.CREATE_CATEGORY,m.DELETE_CATEGORY,m.VIEW_ADDONS,m.UPDATE_ADDON,m.CREATE_ADDON,m.DELETE_ADDON,m.VIEW_MENU,m.VIEW_MENU_ITEMS,m.UPDATE_MENU_ITEM,m.CREATE_MENU_ITEM,m.DELETE_MENU_ITEM,m.VIEW_PURCHASES,m.CREATE_PURCHASE,m.UPDATE_PURCHASE,m.DELETE_PURCHASE,m.VIEW_INVENTORY,m.VIEW_INVENTORY_PRODUCTS,m.CREATE_INVENTORY_PRODUCT,m.UPDATE_INVENTORY_PRODUCT,m.DELETE_INVENTORY_PRODUCT,m.VIEW_PURCHASE_DETAIL,m.VIEW_BRANCH_BALANCE,m.UPDATE_PRODUCT_INGREDIENTS,m.DELETE_PRODUCT_INGREDIENTS];case B.PURCHASING_MANAGER:return[m.VIEW_MENU,m.VIEW_MENU_ITEMS,m.VIEW_CATEGORIES,m.CREATE_CATEGORY,m.UPDATE_CATEGORY,m.VIEW_ADDONS,m.CREATE_ADDON,m.UPDATE_ADDON];case B.WAREHOUSE_STAFF:return[m.VIEW_CATEGORIES,m.VIEW_ADDONS,m.VIEW_MENU,m.VIEW_MENU_ITEMS];default:return[]}},exports.getPriceSuffix=E=>{switch(E){case A.WEIGHT:return" / kg";case A.VOLUME:return" / l";default:return""}},exports.getProductAddon=(E,t)=>((null==E?void 0:E.addons)||[]).find(({id:E})=>E===t)||{},exports.getProductOrderPrice=({product:t,variantId:e,quantity:r=1,currency:A,language:_,selectedAddons:T,noVat:R=!1})=>{const{total:o}=a({product:t,variantId:e,quantity:r,selectedAddons:T,noVat:R});return{totalPrice:o,formattedTotalPrice:E.priceFormatter(o,A,_)}},exports.getProductOrderRawPrice=a,exports.getProductPrice=(t,e,r,A=1)=>{const _=R(t,A);return{totalPrice:_,formattedTotalPrice:E.priceFormatter(_,e,r)}},exports.getProductRawPrice=R,exports.getProductSellUnitShortCuts=E=>{switch(E){case A.WEIGHT:return{"50gr":.05,"100gr":.1,"150gr":.15,"200gr":.2,"250gr":.25,"300gr":.3,"350gr":.35,"400gr":.4,"450gr":.45,"500gr":.5,"600gr":.6,"700gr":.7,"750gr":.75,"800gr":.8,"850gr":.85,"900gr":.9,"950gr":.95,"1kg":1,"2kg":2,"5kg":5,"10kg":10,"20kg":20};case A.VOLUME:return{"50ml":.05,"100ml":.1,"150ml":.15,"200ml":.2,"250ml":.25,"300ml":.3,"350ml":.35,"400ml":.4,"450ml":.45,"500ml":.5,"600ml":.6,"700ml":.7,"750ml":.75,"800ml":.8,"850ml":.85,"900ml":.9,"950ml":.95,"1l":1,"2l":2,"5l":5,"10l":10,"20l":20};default:return{}}},exports.getProductTranslation=(E,t)=>{var e,r;return(null===(r=null===(e=null==E?void 0:E.translations)||void 0===e?void 0:e.find)||void 0===r?void 0:r.call(e,E=>E.language===t))||{}},exports.getProductVariant=o,exports.getProductVariantPrice=({variantId:t,currency:e="USD",language:r="en",product:A,quantity:_=1})=>{const T=I(t,A,_);return{totalPrice:T,formattedTotalPrice:E.priceFormatter(T,e,r)}},exports.getProductVariantRawPrice=I,exports.getProductVariantTranslation=(E,t)=>{var e,r;return(null===(r=null===(e=null==E?void 0:E.translations)||void 0===e?void 0:e.find)||void 0===r?void 0:r.call(e,E=>E.language===t))||{}},exports.getRegisterUrl=(E,t)=>`https://app.tabres.com/auth/register?lang=${E}&utm_source=${t}`,exports.getSelectedAddonsFromOrderItems=E=>{const t={};for(const{addonId:e,options:r=[]}of E.addons||[]){const E=r.map(({optionId:E})=>E);t[e]=1===E.length?E[0]:E}return t},exports.getSelectedOptionsTotalPrice=n,exports.getStatusIcon=E=>{switch(E){case s.COMPLETED:return t.Check;case s.DELIVERED:return t.BagCheck;case s.OUT_FOR_DELIVERY:return t.Delivery;case s.PREPARING:return t.Chef;case s.CONFIRMED:return t.FileCheck;case s.PENDING:default:return t.HourglassHalf}},exports.getVideoSource=E=>E?E.includes("base64")||E.startsWith("https://")?E:`${d}/${E}`:"",exports.prepareCategoryAndProductMap=(E,t)=>{const e=t.reduce((E,t)=>{if(!t.visible)return E;const e=Number(t.categoryId);return E[e]||(E[e]=[]),E[e].push(t),E},{});return E.map(E=>Object.assign(Object.assign({},E),{products:e[Number(E.id)]||[]})).filter(E=>{var t;return(null===(t=null==E?void 0:E.products)||void 0===t?void 0:t.length)>0})},exports.preparePhoneNumber=E=>`${E.countryCode}${E.phoneNumber}`.replaceAll("+",""),exports.rgbDataURL=(E,t,e)=>`data:image/gif;base64,R0lGODlhAQABAPAA${L(0,E,t)+L(e,255,255)}/yH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==`,exports.validateAddressForm=E=>{const t={},{countryCode:e,cityName:r,street:A,houseNumber:_}=E||{};return e||(t.countryCode="COUNTRY_REQUIRED"),r||(t.cityName="CITY_REQUIRED"),A||(t.street="STREET_REQUIRED"),_||(t.houseNumber="STREET_NUMBER_REQUIRED"),t},exports.validateForm=(t,e)=>{const r={},{phoneNumber:A,email:_,otp:T}=t||{};switch(e){case V.PHONE:{const{isValid:E,error:t}=C(A);E||(r.phoneNumber=t);break}case V.OTP:{const{isValid:E,error:t}=C(A);E||(r.phoneNumber=t),T&&6===T.length||(r.otp="Invalid OTP");break}case V.EMAIL:_&&E.checkIsValidEmail(_)||(r.email="Invalid Email Address")}return r},exports.validatePhoneNumber=C;
|
|
2
|
+
//# sourceMappingURL=index.js.map
|