tabexseriescomponents 0.0.705 → 0.0.707

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.
Files changed (352) hide show
  1. package/dist/index.cjs.js +1070 -1797
  2. package/dist/index.esm.js +1070 -1797
  3. package/dist/index.umd.js +1070 -1798
  4. package/package.json +1 -1
  5. package/srcoriginal/Contexts/LanguageContext.jsx +408 -0
  6. package/srcoriginal/Contexts/ProductsCardsSectionContext.jsx +36 -0
  7. package/srcoriginal/Imagekitconfig.jsx +46 -0
  8. package/srcoriginal/StylesJS/Customstyles.js +345 -0
  9. package/srcoriginal/TabexComponents/Cards/CTAProductCard/CTAProductCard.jsx +376 -0
  10. package/srcoriginal/TabexComponents/Cards/Card20/Card20.jsx +298 -0
  11. package/srcoriginal/TabexComponents/Cards/Card21/Card21.jsx +388 -0
  12. package/srcoriginal/TabexComponents/Cards/Card22/Card22.jsx +288 -0
  13. package/srcoriginal/TabexComponents/Cards/Card23/Card23 copy.jsx +1630 -0
  14. package/srcoriginal/TabexComponents/Cards/Card23/Card23.jsx +733 -0
  15. package/srcoriginal/TabexComponents/Cards/CardAll/CardAll.jsx +453 -0
  16. package/srcoriginal/TabexComponents/Cards/CardBadgeSlideFromTop/CardBadgeSlideFromTop.jsx +394 -0
  17. package/srcoriginal/TabexComponents/Cards/CardWithTextOnly/CardWithTextOnly.jsx +70 -0
  18. package/srcoriginal/TabexComponents/Cards/CategoryCardTextOnImage/CategoryCardTextOnImage.jsx +211 -0
  19. package/srcoriginal/TabexComponents/Cards/CategoryCardwithhoveraction/CategoryCardwithhoveraction.jsx +255 -0
  20. package/srcoriginal/TabexComponents/Cards/Categorycard_fullimage/Categorycard_fullimage.jsx +235 -0
  21. package/srcoriginal/TabexComponents/Cards/Categorycard_slidebgscaled/Categorycard_slidebgscaled.jsx +199 -0
  22. package/srcoriginal/TabexComponents/Cards/Categorycard_with_trianglebg/Categorycard_with_trianglebg.jsx +182 -0
  23. package/srcoriginal/TabexComponents/Cards/Categorycard_with_twolinestransition/Categorycard_with_twolinestransition.jsx +181 -0
  24. package/srcoriginal/TabexComponents/Cards/Categorycard_withshapes/Categorycard_withshapes.jsx +161 -0
  25. package/srcoriginal/TabexComponents/Cards/Categorycard_withtext/Categorycard_withtext.jsx +184 -0
  26. package/srcoriginal/TabexComponents/Cards/CircleCardWithVariants/CircleCardWithVariants.jsx +560 -0
  27. package/srcoriginal/TabexComponents/Cards/Classiccategorycard/Classiccategorycard copy.jsx +145 -0
  28. package/srcoriginal/TabexComponents/Cards/Classiccategorycard/Classiccategorycard.jsx +147 -0
  29. package/srcoriginal/TabexComponents/Cards/Classiccategorycard/ClassiccategorycardOriginal.jsx +142 -0
  30. package/srcoriginal/TabexComponents/Cards/HorizontalCategoryCard/HorizontalCategoryCard.jsx +193 -0
  31. package/srcoriginal/TabexComponents/Cards/Horizontalcard/Horizontalcard.jsx +409 -0
  32. package/srcoriginal/TabexComponents/Cards/MenuCard/MenuCard.jsx +744 -0
  33. package/srcoriginal/TabexComponents/Cards/ModernCardWithQuantityButton/ModernCardWithQuantityButton.jsx +468 -0
  34. package/srcoriginal/TabexComponents/Cards/ModernProductCard/ModernProductCard.jsx +593 -0
  35. package/srcoriginal/TabexComponents/Cards/Moderncategorycard/Moderncategorycard.jsx +208 -0
  36. package/srcoriginal/TabexComponents/Cards/NewProductcard/NewProductcard copy.jsx +497 -0
  37. package/srcoriginal/TabexComponents/Cards/NewProductcard/NewProductcard.jsx +512 -0
  38. package/srcoriginal/TabexComponents/Cards/ProductCardWithTextOnImage/ProductCardWithTextOnImage.jsx +304 -0
  39. package/srcoriginal/TabexComponents/Cards/Productcard6/Productcard6.jsx +257 -0
  40. package/srcoriginal/TabexComponents/Cards/Productcard7/Productcard7.jsx +277 -0
  41. package/srcoriginal/TabexComponents/Cards/Productcard_animatedbuttons/Productcard_animatedbuttons.jsx +352 -0
  42. package/srcoriginal/TabexComponents/Cards/Productcard_with_circularbg/Productcard_with_circularbg.jsx +291 -0
  43. package/srcoriginal/TabexComponents/Cards/Productcard_with_circularhover/Productcard_with_circularhover.jsx +315 -0
  44. package/srcoriginal/TabexComponents/Cards/Productcard_with_slideanimation/Productcard_with_slideanimation.jsx +327 -0
  45. package/srcoriginal/TabexComponents/Cards/Productcard_with_variants/Productcard_with_variants copy.jsx +408 -0
  46. package/srcoriginal/TabexComponents/Cards/Productcard_with_variants/Productcard_with_variants.jsx +528 -0
  47. package/srcoriginal/TabexComponents/Cards/Productcard_with_zoominonhover/Productcard_with_zoominonhover.jsx +600 -0
  48. package/srcoriginal/TabexComponents/Cards/Productcarddefault/Productcarddefault.jsx +275 -0
  49. package/srcoriginal/TabexComponents/Cards/Productccard_with_imageontopleft/Productccard_with_imageontopleft.jsx +286 -0
  50. package/srcoriginal/TabexComponents/Cards/Prouductcard_with_zoomhover/Prouductcard_with_zoomhover.jsx +137 -0
  51. package/srcoriginal/TabexComponents/Cards/QuantityButtonBasedProductCard/QuantityButtonBasedProductCard.jsx +611 -0
  52. package/srcoriginal/TabexComponents/Cards/ServiceCard/ServiceCard.jsx +413 -0
  53. package/srcoriginal/TabexComponents/Cards/Simplecategorycardwithtextbelow/Simplecategorycardwithtextbelow.jsx +225 -0
  54. package/srcoriginal/TabexComponents/Cards/Simpleproductcard/Simpleproductcard copy 2.jsx +525 -0
  55. package/srcoriginal/TabexComponents/Cards/Simpleproductcard/Simpleproductcard copy.jsx +455 -0
  56. package/srcoriginal/TabexComponents/Cards/Simpleproductcard/Simpleproductcard.jsx +905 -0
  57. package/srcoriginal/TabexComponents/Cards/StylishProductCard/StylishProductCard.jsx +337 -0
  58. package/srcoriginal/TabexComponents/Cards/TwoWayServiceSectionWithImage/TwoWayServiceSectionWithImage.jsx +347 -0
  59. package/srcoriginal/TabexComponents/Cards/UpSlideEffectCard/UpSlideEffectCard.jsx +605 -0
  60. package/srcoriginal/TabexComponents/Cards/UserCardWithSocialMediaOnHover/UserCardWithSocialMediaOnHover.jsx +185 -0
  61. package/srcoriginal/TabexComponents/Footer/Allinonefooter/Allinonefooter.jsx +528 -0
  62. package/srcoriginal/TabexComponents/Footer/Footer1/Footer1.jsx +551 -0
  63. package/srcoriginal/TabexComponents/Footer/Footer2/Footer2.jsx +527 -0
  64. package/srcoriginal/TabexComponents/Footer/Footer3/Footer3.jsx +411 -0
  65. package/srcoriginal/TabexComponents/Footer/Footer4/Footer4.jsx +466 -0
  66. package/srcoriginal/TabexComponents/Footer/Footer5/Footer5.jsx +751 -0
  67. package/srcoriginal/TabexComponents/Footer/Footer6/Footer6.jsx +290 -0
  68. package/srcoriginal/TabexComponents/Footer/Footer7/Footer7.jsx +428 -0
  69. package/srcoriginal/TabexComponents/Footer/Footer8/Footer8.jsx +533 -0
  70. package/srcoriginal/TabexComponents/Footer/FooterWithThreeColumns/FooterWithThreeColumns.jsx +330 -0
  71. package/srcoriginal/TabexComponents/Footer/ModernFooter/ModernFooter.jsx +581 -0
  72. package/srcoriginal/TabexComponents/Footer/Newsletterfooter/Newsletterfooter.jsx +884 -0
  73. package/srcoriginal/TabexComponents/Footer/Newsletterincenter/Newsletterincenter.jsx +647 -0
  74. package/srcoriginal/TabexComponents/Footer/PrivacyPolicy/PrivacyPolicy.jsx +110 -0
  75. package/srcoriginal/TabexComponents/Footer/Simplefooter/Simplefooter.jsx +316 -0
  76. package/srcoriginal/TabexComponents/Generalfiles/images/egyptflag.png +0 -0
  77. package/srcoriginal/TabexComponents/Generalfiles/images/noimage.png +0 -0
  78. package/srcoriginal/TabexComponents/Generalfiles/images/payment/cod.png +0 -0
  79. package/srcoriginal/TabexComponents/Generalfiles/images/payment/fawry.png +0 -0
  80. package/srcoriginal/TabexComponents/Generalfiles/images/payment/payment.png +0 -0
  81. package/srcoriginal/TabexComponents/Generalfiles/images/payment/paymob.png +0 -0
  82. package/srcoriginal/TabexComponents/Generalfiles/images/payment/paypal.png +0 -0
  83. package/srcoriginal/TabexComponents/Generalfiles/images/payment/visa.png +0 -0
  84. package/srcoriginal/TabexComponents/Generalfiles/images/shoppingcart.png +0 -0
  85. package/srcoriginal/TabexComponents/Generalfiles/images/tabexlogo.png +0 -0
  86. package/srcoriginal/TabexComponents/Generalfiles/images/unknownmaleuser.png +0 -0
  87. package/srcoriginal/TabexComponents/Generalfiles/images/usflag.png +0 -0
  88. package/srcoriginal/TabexComponents/Generalfiles/images/whatsapp.png +0 -0
  89. package/srcoriginal/TabexComponents/Headers/CTAHeader/CTAHeader.jsx +1259 -0
  90. package/srcoriginal/TabexComponents/Headers/CategoryFeaturingHeader/CategoryFeaturingHeader.jsx +1049 -0
  91. package/srcoriginal/TabexComponents/Headers/CenteredLogoHeaderWithSlider/CenteredLogoHeaderWithSlider.jsx +1040 -0
  92. package/srcoriginal/TabexComponents/Headers/ClassicHeader/ClassicHeader.jsx +1268 -0
  93. package/srcoriginal/TabexComponents/Headers/DownloadApp/DownloadApp.jsx +76 -0
  94. package/srcoriginal/TabexComponents/Headers/ElegantHeader/ElegantHeader.jsx +894 -0
  95. package/srcoriginal/TabexComponents/Headers/Gotoheader/Gotoheader.jsx +831 -0
  96. package/srcoriginal/TabexComponents/Headers/Header4/Header4.jsx +622 -0
  97. package/srcoriginal/TabexComponents/Headers/Header8/Header8 copy.jsx +1026 -0
  98. package/srcoriginal/TabexComponents/Headers/Header8/Header8.jsx +2016 -0
  99. package/srcoriginal/TabexComponents/Headers/HeaderRestaurant/HeaderRestaurant.jsx +776 -0
  100. package/srcoriginal/TabexComponents/Headers/HeaderWithAdSlider/HeaderWithAdSlider.jsx +927 -0
  101. package/srcoriginal/TabexComponents/Headers/HeaderWithSearchOnCenter/HeaderWithSearchOnCenter.jsx +704 -0
  102. package/srcoriginal/TabexComponents/Headers/HeaderWithUtilityBar/HeaderWithUtilityBar.jsx +902 -0
  103. package/srcoriginal/TabexComponents/Headers/Header_threesectionslogocentered/Header_threesectionslogocentered.jsx +1228 -0
  104. package/srcoriginal/TabexComponents/Headers/Headerresponsive/Headerresponsive.jsx +1562 -0
  105. package/srcoriginal/TabexComponents/Headers/Headerresponsive/Headerresponsive11-1.jsx +1201 -0
  106. package/srcoriginal/TabexComponents/Headers/Headerresponsive/HeaderresponsiveOriginal.jsx +990 -0
  107. package/srcoriginal/TabexComponents/Headers/Headerresponsive/HeaderresponsiveStyle2 copy.jsx +1639 -0
  108. package/srcoriginal/TabexComponents/Headers/Headerresponsive/HeaderresponsiveStyle2.jsx +1846 -0
  109. package/srcoriginal/TabexComponents/Headers/Headerresponsive/Headerresponsivenew.jsx +1327 -0
  110. package/srcoriginal/TabexComponents/Headers/HeaderwithContactinfo/HeaderwithContactinfo.jsx +934 -0
  111. package/srcoriginal/TabexComponents/Headers/MarqueeHeader/MarqueeHeader.jsx +78 -0
  112. package/srcoriginal/TabexComponents/Headers/Modernheader/Modernheader.jsx +977 -0
  113. package/srcoriginal/TabexComponents/Headers/SearchCenteredHeader/SearchCenteredHeader.jsx +778 -0
  114. package/srcoriginal/TabexComponents/Headers/SearchFocusedHeader/SearchFocusedHeader.jsx +1159 -0
  115. package/srcoriginal/TabexComponents/Headers/Simpleheader/Simpleheader.jsx +1110 -0
  116. package/srcoriginal/TabexComponents/Headers/SocialMediaSection/SocialMediaSection.jsx +151 -0
  117. package/srcoriginal/TabexComponents/Headers/StylishHeader/StylishHeader.jsx +854 -0
  118. package/srcoriginal/TabexComponents/Headers/Subheader/Subheader.jsx +863 -0
  119. package/srcoriginal/TabexComponents/Headers/Subheader/Subheader13-3.jsx +685 -0
  120. package/srcoriginal/TabexComponents/Headers/Subheader/SubheaderOriginal.jsx +517 -0
  121. package/srcoriginal/TabexComponents/Headers/Subheader/Subheadernew.jsx +555 -0
  122. package/srcoriginal/TabexComponents/Headers/ThreeTieredHeader/ThreeTieredHeader.jsx +1042 -0
  123. package/srcoriginal/TabexComponents/Headers/TwoTieredHeader/TwoTieredHeader.jsx +1093 -0
  124. package/srcoriginal/TabexComponents/Headers/TwoTieredWithCenteredLogoHeader/TwoTieredWithCenteredLogoHeader.jsx +938 -0
  125. package/srcoriginal/TabexComponents/Sections/BackgroundImages/BacgroundThreeImageWithCategories/BacgroundThreeImageWithCategories.jsx +533 -0
  126. package/srcoriginal/TabexComponents/Sections/BackgroundImages/BackgroundFiveImageStructure/BackgroundFiveImageStructure.jsx +338 -0
  127. package/srcoriginal/TabexComponents/Sections/BackgroundImages/BackgroundImageWithTopContent/BackgroundImageWithTopContent.jsx +870 -0
  128. package/srcoriginal/TabexComponents/Sections/BackgroundImages/BackgroundSectionWithServicesCards/BackgroundSectionWithServicesCards.jsx +302 -0
  129. package/srcoriginal/TabexComponents/Sections/BackgroundImages/Backgroundimage1/Backgroundimage1.jsx +314 -0
  130. package/srcoriginal/TabexComponents/Sections/BackgroundImages/Backgroundimage_with_toppill/Backgroundimage_with_toppill.jsx +318 -0
  131. package/srcoriginal/TabexComponents/Sections/BackgroundImages/BackgroundimageandTextsection/BackgroundimageandTextsection.jsx +179 -0
  132. package/srcoriginal/TabexComponents/Sections/BackgroundImages/Bgimagewithsearchbar/Bgimagewithsearchbar.jsx +201 -0
  133. package/srcoriginal/TabexComponents/Sections/BackgroundImages/CollapsableSection/CollapsableSection.jsx +393 -0
  134. package/srcoriginal/TabexComponents/Sections/BackgroundImages/DynamicForm/DynamicForm copy 2.jsx +583 -0
  135. package/srcoriginal/TabexComponents/Sections/BackgroundImages/DynamicForm/DynamicForm copy.jsx +291 -0
  136. package/srcoriginal/TabexComponents/Sections/BackgroundImages/DynamicForm/DynamicForm.jsx +677 -0
  137. package/srcoriginal/TabexComponents/Sections/BackgroundImages/DynamicForm/habal +348 -0
  138. package/srcoriginal/TabexComponents/Sections/BackgroundImages/Filterwithcategoriespcoll/Filterwithcategoriespcoll.jsx +387 -0
  139. package/srcoriginal/TabexComponents/Sections/BackgroundImages/FullVideoSection/FullVideoSection.jsx +268 -0
  140. package/srcoriginal/TabexComponents/Sections/BackgroundImages/MapsSection/MapsSection.jsx +288 -0
  141. package/srcoriginal/TabexComponents/Sections/BackgroundImages/Popupcomponent/Popupcomponent.jsx +117 -0
  142. package/srcoriginal/TabexComponents/Sections/BackgroundImages/Searchcomponent/Searchcomponent.jsx +99 -0
  143. package/srcoriginal/TabexComponents/Sections/BackgroundImages/Section_with_rightbgcont/Section_with_rightbgcont.jsx +146 -0
  144. package/srcoriginal/TabexComponents/Sections/BackgroundImages/TextSectionConnectToWA/TextSectionConnectToWA.jsx +462 -0
  145. package/srcoriginal/TabexComponents/Sections/BackgroundImages/Threebgimages/Threebgimages.jsx +296 -0
  146. package/srcoriginal/TabexComponents/Sections/BackgroundImages/Twobgimages/Twobgimages copy.jsx +396 -0
  147. package/srcoriginal/TabexComponents/Sections/BackgroundImages/Twobgimages/Twobgimages.jsx +616 -0
  148. package/srcoriginal/TabexComponents/Sections/BackgroundImages/VideosSection/VideosSection.jsx +408 -0
  149. package/srcoriginal/TabexComponents/Sections/Cards/CardsSection/CardsSection copy 2.jsx +1399 -0
  150. package/srcoriginal/TabexComponents/Sections/Cards/CardsSection/CardsSection copy 3.jsx +1656 -0
  151. package/srcoriginal/TabexComponents/Sections/Cards/CardsSection/CardsSection copy.jsx +1540 -0
  152. package/srcoriginal/TabexComponents/Sections/Cards/CardsSection/CardsSection.jsx +1938 -0
  153. package/srcoriginal/TabexComponents/Sections/Cards/CardsSection/CardsSection13-3.jsx +1596 -0
  154. package/srcoriginal/TabexComponents/Sections/Cards/CardsSection/CardsSection21-10.jsx +1872 -0
  155. package/srcoriginal/TabexComponents/Sections/Cards/CardsSection/CardsSection21-11beforeform.jsx +1891 -0
  156. package/srcoriginal/TabexComponents/Sections/Cards/CardsSection/CardsSection_cosmoandmore.jsx +1880 -0
  157. package/srcoriginal/TabexComponents/Sections/Cards/CardsSection2/CardsSection2.jsx +726 -0
  158. package/srcoriginal/TabexComponents/Sections/Cards/CardsSectionwithfilter/CardsSectionwithfilter.jsx +719 -0
  159. package/srcoriginal/TabexComponents/Sections/Cards/ElegantCategoriesCardSection/ElegantCategoriesCardSection.jsx +406 -0
  160. package/srcoriginal/TabexComponents/Sections/Cards/ModernCardsSection/ModernCardsSection.jsx +929 -0
  161. package/srcoriginal/TabexComponents/Sections/Cards/RandomlyStructuredCollectionCards/RandomlyStructuredCollectionCards copy.jsx +646 -0
  162. package/srcoriginal/TabexComponents/Sections/Cards/RandomlyStructuredCollectionCards/RandomlyStructuredCollectionCards.jsx +1238 -0
  163. package/srcoriginal/TabexComponents/Sections/Cards/Sixverticalcardssection/Sixverticalcardssection.jsx +582 -0
  164. package/srcoriginal/TabexComponents/Sections/Cards/UsersCardsSection/UsersCardsSection.jsx +383 -0
  165. package/srcoriginal/TabexComponents/Sections/Slideshow/AboutSection/AboutSection.jsx +342 -0
  166. package/srcoriginal/TabexComponents/Sections/Slideshow/Backgroundimage_with_topcircle/Backgroundimage_with_topcircle.jsx +161 -0
  167. package/srcoriginal/TabexComponents/Sections/Slideshow/ContactUsSection/ContactUsSection.jsx +257 -0
  168. package/srcoriginal/TabexComponents/Sections/Slideshow/Freetextsection/Freetextsection copy.jsx +382 -0
  169. package/srcoriginal/TabexComponents/Sections/Slideshow/Freetextsection/Freetextsection.jsx +760 -0
  170. package/srcoriginal/TabexComponents/Sections/Slideshow/Freetextsection/Freetextsection19-11.jsx +757 -0
  171. package/srcoriginal/TabexComponents/Sections/Slideshow/HorizontalContactUsSection/HorizontalContactUsSection.jsx +346 -0
  172. package/srcoriginal/TabexComponents/Sections/Slideshow/Image_with_leftwords/Image_with_leftwords.jsx +1679 -0
  173. package/srcoriginal/TabexComponents/Sections/Slideshow/Image_with_rightwords/Image_with_rightwords.jsx +141 -0
  174. package/srcoriginal/TabexComponents/Sections/Slideshow/ServiceSectionWithImage/ServiceSectionWithImage.jsx +376 -0
  175. package/srcoriginal/TabexComponents/Sections/Slideshow/Servicesection/Servicesection.jsx +385 -0
  176. package/srcoriginal/TabexComponents/Sections/Slideshow/ServicesectionCenteredcards/ServicesectionCenteredcards.jsx +512 -0
  177. package/srcoriginal/TabexComponents/Sections/Slideshow/Slideshow_with_rotatedsquare/Slideshow_with_rotatedsquare.jsx +226 -0
  178. package/srcoriginal/TabexComponents/Sections/Slideshow/Slideshow_with_squarebg/Slideshow_with_squarebg.jsx +149 -0
  179. package/srcoriginal/TabexComponents/Sections/Slideshow/Slideshowdifferentanimations/Slideshowdifferentanimations.jsx +143 -0
  180. package/srcoriginal/TabexComponents/Sections/Slideshow/Slideshowfade/Slideshowfade copy.jsx +634 -0
  181. package/srcoriginal/TabexComponents/Sections/Slideshow/Slideshowfade/Slideshowfade.jsx +520 -0
  182. package/srcoriginal/TabexComponents/Sections/Slideshow/Slideshowslide/Slideshowslide copy.jsx +527 -0
  183. package/srcoriginal/TabexComponents/Sections/Slideshow/Slideshowslide/Slideshowslide.jsx +643 -0
  184. package/srcoriginal/TabexComponents/Sections/Slideshow/Slideshowslide/SlideshowslideOriginal.jsx +477 -0
  185. package/srcoriginal/TabexComponents/Sections/Slideshow/Slideshowslide/SlideshowslideRecent.jsx +1217 -0
  186. package/srcoriginal/TabexComponents/Sections/Slideshow/Slideshowslide/Slideshowslideoriginal8-5.jsx +614 -0
  187. package/srcoriginal/TabexComponents/Sections/Slideshow/Slideshowzoom/Arrow.jsx +91 -0
  188. package/srcoriginal/TabexComponents/Sections/Slideshow/Slideshowzoom/Slideshowzoom copy.jsx +380 -0
  189. package/srcoriginal/TabexComponents/Sections/Slideshow/Slideshowzoom/Slideshowzoom.jsx +619 -0
  190. package/srcoriginal/TabexComponents/Sections/Slideshow/ThreeSectionsWithSlideshow/ThreeSectionsWithSlideshow copy.jsx +284 -0
  191. package/srcoriginal/TabexComponents/Sections/Slideshow/ThreeSectionsWithSlideshow/ThreeSectionsWithSlideshow.jsx +614 -0
  192. package/srcoriginal/TabexComponents/Sections/Slideshow/TwoWayServiceSectionWithImage/TwoWayServiceSectionWithImage.jsx +402 -0
  193. package/srcoriginal/TabexComponents/StaticPages/AccountInformation/AccountInformation.jsx +199 -0
  194. package/srcoriginal/TabexComponents/StaticPages/AddReview/AddReview.jsx +304 -0
  195. package/srcoriginal/TabexComponents/StaticPages/Afiiliatesignup/Afiiliatesignup.jsx +321 -0
  196. package/srcoriginal/TabexComponents/StaticPages/CartSlider/CartSlider.jsx +797 -0
  197. package/srcoriginal/TabexComponents/StaticPages/Categoriesdropdown/Categoriesdropdown.jsx +460 -0
  198. package/srcoriginal/TabexComponents/StaticPages/Checkout/Checkout copy.jsx +1306 -0
  199. package/srcoriginal/TabexComponents/StaticPages/Checkout/Checkout.jsx +1911 -0
  200. package/srcoriginal/TabexComponents/StaticPages/Checkout/Checkout10-1.jsx +1633 -0
  201. package/srcoriginal/TabexComponents/StaticPages/Checkout/Checkout26-9.jsx +1593 -0
  202. package/srcoriginal/TabexComponents/StaticPages/Checkout/Checkout9-9.jsx +1574 -0
  203. package/srcoriginal/TabexComponents/StaticPages/Filter/CollectionsFilterHorizontal.jsx +245 -0
  204. package/srcoriginal/TabexComponents/StaticPages/Filter/Filter copy 2.jsx +2888 -0
  205. package/srcoriginal/TabexComponents/StaticPages/Filter/Filter copy.jsx +1450 -0
  206. package/srcoriginal/TabexComponents/StaticPages/Filter/Filter.jsx +2979 -0
  207. package/srcoriginal/TabexComponents/StaticPages/Filter/Filter1-5.jsx +2624 -0
  208. package/srcoriginal/TabexComponents/StaticPages/Filter/Filter13-11.jsx +2758 -0
  209. package/srcoriginal/TabexComponents/StaticPages/Filter/Filter14-8.jsx +2753 -0
  210. package/srcoriginal/TabexComponents/StaticPages/Filter/Filter17-9.jsx +1495 -0
  211. package/srcoriginal/TabexComponents/StaticPages/Filter/VariantFilter.jsx +1271 -0
  212. package/srcoriginal/TabexComponents/StaticPages/InnerGroups/InnerGroups.jsx +62 -0
  213. package/srcoriginal/TabexComponents/StaticPages/Login/FacebookLoginButton.jsx +50 -0
  214. package/srcoriginal/TabexComponents/StaticPages/Login/GoogleLoginButton.jsx +35 -0
  215. package/srcoriginal/TabexComponents/StaticPages/Login/Login copy.jsx +1060 -0
  216. package/srcoriginal/TabexComponents/StaticPages/Login/Login.jsx +610 -0
  217. package/srcoriginal/TabexComponents/StaticPages/OrderSuccess/OrderSuccess.jsx +172 -0
  218. package/srcoriginal/TabexComponents/StaticPages/Ordershistory/Ordershistory.jsx +1584 -0
  219. package/srcoriginal/TabexComponents/StaticPages/Policies/Policies.jsx +291 -0
  220. package/srcoriginal/TabexComponents/StaticPages/PrivacyPolicy/PrivacyPolicy.jsx +194 -0
  221. package/srcoriginal/TabexComponents/StaticPages/Productinfo/Addreviewform.jsx +183 -0
  222. package/srcoriginal/TabexComponents/StaticPages/Productinfo/AddreviewformOriginal.jsx +128 -0
  223. package/srcoriginal/TabexComponents/StaticPages/Productinfo/Article_itemtype.jsx +255 -0
  224. package/srcoriginal/TabexComponents/StaticPages/Productinfo/DescriptionContent.jsx +176 -0
  225. package/srcoriginal/TabexComponents/StaticPages/Productinfo/ProductExtraFields.jsx +225 -0
  226. package/srcoriginal/TabexComponents/StaticPages/Productinfo/ProductExtras.jsx +92 -0
  227. package/srcoriginal/TabexComponents/StaticPages/Productinfo/ProductHeaderPricing.jsx +312 -0
  228. package/srcoriginal/TabexComponents/StaticPages/Productinfo/ProductReviews.jsx +235 -0
  229. package/srcoriginal/TabexComponents/StaticPages/Productinfo/Product_itemtype.jsx +2118 -0
  230. package/srcoriginal/TabexComponents/StaticPages/Productinfo/Product_itemtype10-1.jsx +1554 -0
  231. package/srcoriginal/TabexComponents/StaticPages/Productinfo/Product_itemtype3-11.jsx +1827 -0
  232. package/srcoriginal/TabexComponents/StaticPages/Productinfo/Product_itemtype31-3.jsx +1351 -0
  233. package/srcoriginal/TabexComponents/StaticPages/Productinfo/Product_itemtypeUpdated.jsx +1566 -0
  234. package/srcoriginal/TabexComponents/StaticPages/Productinfo/Productinfo.jsx +1947 -0
  235. package/srcoriginal/TabexComponents/StaticPages/Productinfo/Service_itemtype.jsx +1037 -0
  236. package/srcoriginal/TabexComponents/StaticPages/Productinfo/Serviceinfotabs.jsx +966 -0
  237. package/srcoriginal/TabexComponents/StaticPages/Productinfo/Variantoptions.jsx +632 -0
  238. package/srcoriginal/TabexComponents/StaticPages/Productinfo/Variantoptions21-9.jsx +324 -0
  239. package/srcoriginal/TabexComponents/StaticPages/Productinfo/staticroutersidenav.module.css +145 -0
  240. package/srcoriginal/TabexComponents/StaticPages/Productinfo4-4/Addreviewform.jsx +183 -0
  241. package/srcoriginal/TabexComponents/StaticPages/Productinfo4-4/AddreviewformOriginal.jsx +128 -0
  242. package/srcoriginal/TabexComponents/StaticPages/Productinfo4-4/DescriptionContent.jsx +140 -0
  243. package/srcoriginal/TabexComponents/StaticPages/Productinfo4-4/ProductExtraFields.jsx +225 -0
  244. package/srcoriginal/TabexComponents/StaticPages/Productinfo4-4/ProductHeaderPricing.jsx +310 -0
  245. package/srcoriginal/TabexComponents/StaticPages/Productinfo4-4/ProductReviews.jsx +235 -0
  246. package/srcoriginal/TabexComponents/StaticPages/Productinfo4-4/Product_itemtype.jsx +1672 -0
  247. package/srcoriginal/TabexComponents/StaticPages/Productinfo4-4/Product_itemtype10-1.jsx +1554 -0
  248. package/srcoriginal/TabexComponents/StaticPages/Productinfo4-4/Product_itemtype31-3.jsx +1351 -0
  249. package/srcoriginal/TabexComponents/StaticPages/Productinfo4-4/Product_itemtypeUpdated.jsx +1566 -0
  250. package/srcoriginal/TabexComponents/StaticPages/Productinfo4-4/Productinfo.jsx +1804 -0
  251. package/srcoriginal/TabexComponents/StaticPages/Productinfo4-4/Service_itemtype.jsx +560 -0
  252. package/srcoriginal/TabexComponents/StaticPages/Productinfo4-4/Serviceinfotabs.jsx +919 -0
  253. package/srcoriginal/TabexComponents/StaticPages/Productinfo4-4/Variantoptions.jsx +597 -0
  254. package/srcoriginal/TabexComponents/StaticPages/Productinfo4-4/Variantoptions21-9.jsx +324 -0
  255. package/srcoriginal/TabexComponents/StaticPages/Productinfo4-4/staticroutersidenav.module.css +145 -0
  256. package/srcoriginal/TabexComponents/StaticPages/RefundPolicy/RefundPolicy.jsx +194 -0
  257. package/srcoriginal/TabexComponents/StaticPages/Resetpassword/Resetpassword.jsx +338 -0
  258. package/srcoriginal/TabexComponents/StaticPages/Searchlist/Searchlist.jsx +359 -0
  259. package/srcoriginal/TabexComponents/StaticPages/ShippingPolicy/ShippingPolicy.jsx +113 -0
  260. package/srcoriginal/TabexComponents/StaticPages/Signup/CustomerAddressForm.jsx +277 -0
  261. package/srcoriginal/TabexComponents/StaticPages/Signup/CustomerInformationForm copy.jsx +1135 -0
  262. package/srcoriginal/TabexComponents/StaticPages/Signup/CustomerInformationForm.jsx +1364 -0
  263. package/srcoriginal/TabexComponents/StaticPages/Signup/Signup.jsx +199 -0
  264. package/srcoriginal/TabexComponents/StaticPages/Staticpagesrouter/Staticpagesrouter.jsx +292 -0
  265. package/srcoriginal/TabexComponents/StaticPages/TermsConditions/TermsConditions.jsx +113 -0
  266. package/srcoriginal/TabexComponents/StaticPages/VendorPage/VendorPage.jsx +162 -0
  267. package/srcoriginal/TabexComponents/StaticPages/Viewcart/Viewcart 10-10.jsx +765 -0
  268. package/srcoriginal/TabexComponents/StaticPages/Viewcart/Viewcart.jsx +786 -0
  269. package/srcoriginal/TabexComponents/StaticPages/Viewcart/Viewcart26-9.jsx +786 -0
  270. package/srcoriginal/TabexComponents/StaticPages/Viewcart/ViewcartOriginal.jsx +786 -0
  271. package/srcoriginal/TabexComponents/StaticPages/Viewcart/ViewcartUpdated.jsx +1425 -0
  272. package/srcoriginal/TabexComponents/StaticPages/Wishlist/Wishlist.jsx +844 -0
  273. package/srcoriginal/TabexComponents/StaticPages/Wishlist/Wishlist25-4.jsx +555 -0
  274. package/srcoriginal/TabexComponents/StaticPages/Wishlist/Wishlist26-9.jsx +555 -0
  275. package/srcoriginal/TabexComponents/StaticPages/Wishlist/WishlistOriginal.jsx +555 -0
  276. package/srcoriginal/TabexComponents/StaticPages/Wishlist/WishlistUpdated.jsx +815 -0
  277. package/srcoriginal/button.jsx +40 -0
  278. package/srcoriginal/index.jsx +334 -0
  279. package/srcoriginal/styles/Home.module.css +129 -0
  280. package/srcoriginal/styles/cards/Categorcycard_fullimage.module.css +14 -0
  281. package/srcoriginal/styles/cards/Categorycard_slidebgscaled.module.css +73 -0
  282. package/srcoriginal/styles/cards/Categorycard_withshapes.module.css +189 -0
  283. package/srcoriginal/styles/cards/ModernCardWithQuantityButton.module.css +30 -0
  284. package/srcoriginal/styles/cards/Productcard6.module.css +9 -0
  285. package/srcoriginal/styles/cards/Productccard_with_zoominonhover.module.css +51 -0
  286. package/srcoriginal/styles/cards/Prouductcard_with_zoomhover.module.css +61 -0
  287. package/srcoriginal/styles/cards/UserCardWithSocialMediaOnHover.module.css +65 -0
  288. package/srcoriginal/styles/cards/card23.module.css +60 -0
  289. package/srcoriginal/styles/cards/categorycard.module.css +84 -0
  290. package/srcoriginal/styles/cards/categorycard3.module.css +50 -0
  291. package/srcoriginal/styles/cards/categorycardwithtext.module.css +40 -0
  292. package/srcoriginal/styles/cards/generalCardsStyles.module.css +79 -0
  293. package/srcoriginal/styles/cards/productcard_animatedbuttons.module.css +139 -0
  294. package/srcoriginal/styles/cards/productcard_with_textonhover.module.css +18 -0
  295. package/srcoriginal/styles/cards/productcard_withtextonimage.module.css +0 -0
  296. package/srcoriginal/styles/cards/productccard_with_imageontopleft.module.css +85 -0
  297. package/srcoriginal/styles/general/bootstrap.css +4763 -0
  298. package/srcoriginal/styles/general/dropdown.css +206 -0
  299. package/srcoriginal/styles/general/editorbardropdown.module.css +94 -0
  300. package/srcoriginal/styles/general/filter.module.css +108 -0
  301. package/srcoriginal/styles/general/form.module.css +255 -0
  302. package/srcoriginal/styles/general/general.module.css +872 -0
  303. package/srcoriginal/styles/general/image-gallery.css +531 -0
  304. package/srcoriginal/styles/general/react-accessible-accordion.module.css +52 -0
  305. package/srcoriginal/styles/general/react-phone-input-2.module.css +927 -0
  306. package/srcoriginal/styles/general/scrollbtn.module.css +22 -0
  307. package/srcoriginal/styles/general/slick.module.css +166 -0
  308. package/srcoriginal/styles/general/tabs.module.css +119 -0
  309. package/srcoriginal/styles/general/workplaceeditor.module.css +328 -0
  310. package/srcoriginal/styles/globals.css +26 -0
  311. package/srcoriginal/styles/headers/CTAHeader.module.css +40 -0
  312. package/srcoriginal/styles/headers/CategoryFeaturingHeader.module.css +61 -0
  313. package/srcoriginal/styles/headers/Gotoheader.module.css +87 -0
  314. package/srcoriginal/styles/headers/Header7.module.css +50 -0
  315. package/srcoriginal/styles/headers/HeaderWithAdSlider.module.css +86 -0
  316. package/srcoriginal/styles/headers/HeaderWithSearchOnCenter.module.css +101 -0
  317. package/srcoriginal/styles/headers/HeaderWithUtilityBar.module.css +46 -0
  318. package/srcoriginal/styles/headers/Header_threesectionslogocentered.module.css +84 -0
  319. package/srcoriginal/styles/headers/NewHeader.module.css +101 -0
  320. package/srcoriginal/styles/headers/SearchFocusedHeader.module.css +62 -0
  321. package/srcoriginal/styles/headers/Sideheader.module.css +108 -0
  322. package/srcoriginal/styles/headers/Simpleheader.module.css +102 -0
  323. package/srcoriginal/styles/headers/classicheader.module.css +16 -0
  324. package/srcoriginal/styles/headers/classicheaderstyles.module.css +9 -0
  325. package/srcoriginal/styles/headers/dropdown.css +0 -0
  326. package/srcoriginal/styles/headers/header4.module.css +175 -0
  327. package/srcoriginal/styles/headers/header5.module.css +30 -0
  328. package/srcoriginal/styles/headers/header_contactinfo.module.css +53 -0
  329. package/srcoriginal/styles/headers/headerresturant.module.css +89 -0
  330. package/srcoriginal/styles/headers/modernheader.module.css +45 -0
  331. package/srcoriginal/styles/headers/stylishheader.module.css +24 -0
  332. package/srcoriginal/styles/headers/subheader.module.css +114 -0
  333. package/srcoriginal/styles/headers/threetieredheader.module.css +91 -0
  334. package/srcoriginal/styles/sections/BackgroundImageWithTopContent.css +4 -0
  335. package/srcoriginal/styles/sections/Backgroundimage1.module.css +17 -0
  336. package/srcoriginal/styles/sections/Backgroundimage_with_topcircle.module.css +28 -0
  337. package/srcoriginal/styles/sections/Freetext.module.css +18 -0
  338. package/srcoriginal/styles/sections/Section_with_rightbgcont.module.css +49 -0
  339. package/srcoriginal/styles/sections/Slideshow_with_rotatedsquare.module.css +35 -0
  340. package/srcoriginal/styles/sections/Slideshow_with_squarebg.module.css +39 -0
  341. package/srcoriginal/styles/staticpages/accordion.module.css +9 -0
  342. package/srcoriginal/styles/staticpages/cart.module.css +108 -0
  343. package/srcoriginal/styles/staticpages/dropdown.css +196 -0
  344. package/srcoriginal/styles/staticpages/filter.module.css +139 -0
  345. package/srcoriginal/styles/staticpages/image-gallery.css +481 -0
  346. package/srcoriginal/styles/staticpages/login.module.css +155 -0
  347. package/srcoriginal/styles/staticpages/productinfo.module.css +54 -0
  348. package/srcoriginal/styles/staticpages/shop.module.css +191 -0
  349. package/srcoriginal/styles/staticpages/signup.module.css +250 -0
  350. package/srcoriginal/styles/staticpages/staticroutersidenav.module.css +129 -0
  351. package/srcoriginal/styles/staticpages/viewcart.module.css +129 -0
  352. package/srcoriginal/styles/staticpages/wishlist.module.css +29 -0
@@ -0,0 +1,1947 @@
1
+ //productidprops
2
+ import React, { useEffect, useState } from 'react';
3
+ import { Messaging } from 'react-cssfx-loading';
4
+ import { css } from 'glamor';
5
+ import Product_itemtype from './Product_itemtype.jsx';
6
+ import Service_itemtype from './Service_itemtype.jsx';
7
+ import Article_itemtype from './Article_itemtype.jsx';
8
+ import '../../../styles/staticpages/image-gallery.css';
9
+ import { ScrollMenu, VisibilityContext } from 'react-horizontal-scrolling-menu';
10
+ import { Box, Tab, Tabs } from '@mui/material';
11
+ import { Imagekitimagecomp } from '../../../Imagekitconfig.jsx';
12
+ import { HiOutlinePhone } from '@react-icons/all-files/hi/HiOutlinePhone';
13
+ import { AiOutlineMail } from '@react-icons/all-files/ai/AiOutlineMail';
14
+ import { FaShippingFast } from '@react-icons/all-files/fa/FaShippingFast';
15
+ import { RiSecurePaymentLine } from '@react-icons/all-files/ri/RiSecurePaymentLine';
16
+ import ProductReviews from './ProductReviews.jsx';
17
+ import DescriptionContent from './DescriptionContent.jsx';
18
+ import ReactPlayer from 'react-player';
19
+
20
+ const Productinfo = (props) => {
21
+ const [ProductInfoObj, setProductInfoObj] = useState({});
22
+ const srcfromprops = props.actions.srcfromprops;
23
+ const StatePagePropertiesContext = props.actions.StatePagePropertiesContext;
24
+ const lang = props.actions.lang;
25
+ const langdetect = props.actions.langdetect;
26
+ const templatepropcontext = props.actions.templatepropcontext;
27
+ const routingcountext = props.actions.routingcountext;
28
+ const StaticPagesLinksContext = props.actions.StaticPagesLinksContext;
29
+ const TabexSectionsComponentsContext = props.actions.TabexSectionsComponentsContext;
30
+ const FetchQueriesEngineContext = props.actions.FetchQueriesEngineContext;
31
+ const setFetchQueriesEngineContext = props.actions.setFetchQueriesEngineContext;
32
+ const serverbaselink = props.actions.serverbaselink;
33
+ const AddtoCartMutationContext = props.actions.AddtoCartMutationContext;
34
+ const ProductIdProdutInfoModalContext = props.actions.ProductIdProdutInfoModalContext;
35
+ const AddtoCartContext = props.actions.AddtoCartContext;
36
+ const addtofavoritescontext = props.actions.addtofavoritescontext;
37
+ const fetchProductInfoQueryContextProps = props.actions.fetchProductInfoQueryContext;
38
+ const [fetchProductInfoQueryContext, setfetchProductInfoQueryContext] = useState({});
39
+
40
+ useEffect(() => {
41
+ if (fetchProductInfoQueryContextProps.isSuccess) {
42
+ setProductInfoObj({ ...fetchProductInfoQueryContextProps.data });
43
+ setfetchProductInfoQueryContext(fetchProductInfoQueryContextProps);
44
+ }
45
+ }, [props.actions, props, fetchProductInfoQueryContextProps.data, fetchProductInfoQueryContextProps.isSuccess]);
46
+ const fetchproductinfoObjContext = props.actions.fetchproductinfoObjContext;
47
+ const setfetchproductinfoObjContext = props.actions.setfetchproductinfoObjContext;
48
+ const pageindexcontext = props.actions.pageindexcontext;
49
+ const setpageindexcontext = props.actions.setpageindexcontext;
50
+ const authdetailsContext = props.actions.authdetailsContext;
51
+ const ikimagecredcontext = props.actions.ikimagecredcontext;
52
+ const Pixel_EventsContext = props.actions.Pixel_EventsContext;
53
+
54
+ const actions = props.actions;
55
+ const GeneralAPIMutationContext = props.actions.GeneralAPIMutationContext;
56
+ const setCurrentPageIdContext = props.actions.setCurrentPageIdContext;
57
+ const NotificationManager = props.actions.NotificationManager;
58
+ const productidparam = props.productidparam;
59
+
60
+ const [variantsku, setvariantsku] = useState('');
61
+ const [isoutofstock, setisoutofstock] = useState(false);
62
+ const [sectionproperties, setsectionproperties] = useState('');
63
+ const [CurrentPageId, setCurrentPageId] = useState('');
64
+ const [RelatedProductsTagid, setRelatedProductsTagid] = useState('');
65
+
66
+ const [filterproductreviews, setfilterproductreviews] = useState('all');
67
+ const [productreviews, setproductreviews] = useState([]);
68
+ const [Relatedproducts, setRelatedproducts] = useState([]);
69
+ const [productimagesarray, setproductimagesarray] = useState([]);
70
+ const [quantityconditionfoundobj, setquantityconditionfoundobj] = useState(null);
71
+ const [addtocardpayloadobj, setaddtocardpayloadobj] = useState({
72
+ functype: 'add',
73
+ item_type: 'product',
74
+ productid: '',
75
+ variantid: '',
76
+ quantity: 1,
77
+ date: '',
78
+ time: '',
79
+ from: '',
80
+ to: '',
81
+ extrafields: [],
82
+ });
83
+ const [variantindexcompleted, setvariantindexcompleted] = useState('');
84
+ const [variantindex, setvariantindex] = useState('');
85
+ const [isloaded, setisloaded] = useState(false);
86
+ const [showMore, setShowMore] = useState(false);
87
+ const [currentshowingimageindex, setcurrentshowingimageindex] = useState(0);
88
+ const [tabIndex, setTabIndex] = useState('');
89
+ const [tabname, settabname] = useState('');
90
+ const [productVideos, setproductVideos] = useState([]);
91
+ const [variantvalueidentifier, setvariantvalueidentifier] = useState([]);
92
+
93
+ const handleTabChange = (event, newTabIndex) => {
94
+ setTabIndex(newTabIndex);
95
+ };
96
+ useEffect(() => {
97
+ if (Object.keys(StatePagePropertiesContext).length != 0) {
98
+ var secpropobj = {};
99
+ StatePagePropertiesContext.pageobj != undefined &&
100
+ StatePagePropertiesContext.pageobj.pageproperties != undefined &&
101
+ StatePagePropertiesContext.pageobj.pageproperties.forEach(function (arrayItem, arrayindex) {
102
+ secpropobj[arrayItem.property_css_name] = arrayItem.property_value;
103
+ });
104
+
105
+ setsectionproperties({ ...secpropobj });
106
+ setTabIndex(0);
107
+ settabname('descriptiontab');
108
+ if (sectionproperties.prodCatShow == 'Hide' || (sectionproperties.descriptionposition != 'Bottom' && fetchProductInfoQueryContext?.data?.data?.productinfo?.product_videos?.length == 0)) {
109
+ settabname('shippingpolicytab');
110
+ } else if (
111
+ fetchProductInfoQueryContext?.data?.data?.productinfo?.product_videos?.length != 0 &&
112
+ sectionproperties.showfirstpolicy == 'Hide' &&
113
+ sectionproperties.showsecondpolicy == 'Hide'
114
+ ) {
115
+ // settabname('videostab');
116
+ settabname('reviewstab');
117
+ }
118
+ }
119
+ }, [StatePagePropertiesContext]);
120
+ useEffect(() => {
121
+ if (fetchProductInfoQueryContext?.data?.data?.productinfo?.product_videos?.length != 0) {
122
+ if (Array.isArray(fetchProductInfoQueryContext?.data?.data?.productinfo?.product_videos)) {
123
+ var temparr = [...fetchProductInfoQueryContext?.data?.data?.productinfo?.product_videos];
124
+ temparr.forEach(function (item) {
125
+ item.linkclicked = false;
126
+ });
127
+ setproductVideos([...temparr]);
128
+ }
129
+ }
130
+ }, [fetchProductInfoQueryContext.isSuccess, fetchProductInfoQueryContext.data]);
131
+ useEffect(() => {
132
+ var cartindex = templatepropcontext.pagesnprop.findIndex((x) => x.staticpageid == '6218bccb810ae');
133
+
134
+ if (cartindex >= 0) {
135
+ setpageindexcontext(cartindex);
136
+ setCurrentPageId(templatepropcontext.pagesnprop[cartindex].pageid);
137
+ if (props.srcfromprops != 'templatedraftrouter') {
138
+ setCurrentPageIdContext(templatepropcontext.pagesnprop[cartindex].pageid);
139
+ }
140
+ }
141
+ }, []);
142
+ useEffect(() => {
143
+ var secpropobj = {};
144
+ templatepropcontext?.pagesnprop[pageindexcontext]?.pageproperties?.forEach(function (arrayItem, arrayindex) {
145
+ secpropobj[arrayItem.property_css_name] = arrayItem.property_value;
146
+ });
147
+ setsectionproperties({ ...secpropobj });
148
+ }, [pageindexcontext]);
149
+ useEffect(() => {
150
+ if (productidparam == undefined) {
151
+ productidassigner(ProductIdProdutInfoModalContext);
152
+ } else {
153
+ productidassigner(productidparam);
154
+ }
155
+ }, []);
156
+ // useEffect(() => {
157
+ // if (fetchProductInfoQueryContext.isSuccess) {
158
+ // setProductInfoObj({ ...fetchProductInfoQueryContext.data });
159
+ // }
160
+ // }, [fetchProductInfoQueryContext.isSuccess, fetchProductInfoQueryContext.data, props, props.actions]);
161
+ useEffect(() => {
162
+ if (Object.keys(ProductInfoObj).length != 0 && !isloaded) {
163
+ variantchecker();
164
+ }
165
+ }, [ProductInfoObj, isloaded]);
166
+ const productidassigner = (productid) => {
167
+ var tempFetchQueriesEngineContext = { ...FetchQueriesEngineContext };
168
+ tempFetchQueriesEngineContext.fetchproductinfo = true;
169
+ setFetchQueriesEngineContext({ ...tempFetchQueriesEngineContext });
170
+ var tempfetchproductinfoObjContext = { ...fetchproductinfoObjContext };
171
+
172
+ tempfetchproductinfoObjContext.productid = productid;
173
+ setfetchproductinfoObjContext({ ...tempfetchproductinfoObjContext });
174
+ };
175
+ useEffect(() => {
176
+ if (!fetchProductInfoQueryContext.isFetching && fetchProductInfoQueryContext.isSuccess && ikimagecredcontext != undefined) {
177
+ if (fetchProductInfoQueryContext.data.data.productinfo != null) {
178
+ var tempproductimagesarray = [];
179
+ if (Array.isArray(fetchProductInfoQueryContext.data.data.productinfo.productimages)) {
180
+ fetchProductInfoQueryContext.data.data.productinfo.productimages.forEach(function (arrayItem, arrayindex) {
181
+ var imagepath = arrayItem.path;
182
+ if (imagepath.includes('https')) {
183
+ let position = imagepath.search('https');
184
+ let result = imagepath.slice(position);
185
+ var productimagesarrayobj = {
186
+ thumbnail: arrayItem.path,
187
+ original: arrayItem.path,
188
+ galleryid: arrayItem.galleryid,
189
+ };
190
+ } else {
191
+ var productimagesarrayobj = {
192
+ thumbnail: ikimagecredcontext?.ikimageendpoint + '/tr:w-' + sectionproperties.imagetr_w + ',h-' + sectionproperties.imagetr_h + '/' + arrayItem.path,
193
+ original: ikimagecredcontext?.ikimageendpoint + '/tr:w-' + sectionproperties.imagetr_w + ',h-' + sectionproperties.imagetr_h + '/' + arrayItem.path,
194
+ galleryid: arrayItem.galleryid,
195
+ // description:
196
+ // // { dangerouslySetInnerHTML={{
197
+ // // __html:
198
+ // // fetchProductInfoQueryContext?.data?.data?.productinfo?.description_en,
199
+ // // }}}
200
+ // langdetect == 'en' ? fetchProductInfoQueryContext?.data?.data?.productinfo?.description_en : fetchProductInfoQueryContext?.data?.data?.productinfo?.description_ar,
201
+ };
202
+ }
203
+
204
+ tempproductimagesarray.push(productimagesarrayobj);
205
+ });
206
+ }
207
+ setproductimagesarray([...tempproductimagesarray]);
208
+ variantchecker();
209
+ var quantitystepincrearse = 1;
210
+
211
+ var tempaddtocardpayloadobj = { ...addtocardpayloadobj };
212
+ tempaddtocardpayloadobj.productid = fetchProductInfoQueryContext.data.data.productinfo.productid;
213
+ // setaddtocardpayloadobj({ ...tempaddtocardpayloadobj });
214
+ setRelatedProductsTagid(fetchProductInfoQueryContext.data.data.productinfo.maintagid);
215
+ if (fetchProductInfoQueryContext?.data?.data?.productinfo?.maintagid != null && fetchProductInfoQueryContext?.data?.data?.productinfo?.maintagid?.length != 0) {
216
+ GeneralAPIMutationContext.mutate({
217
+ endpointurl: '/FetchRelatedProducts',
218
+ tagid: fetchProductInfoQueryContext.data.data.productinfo.maintagid,
219
+ mutateSuccesscallback: (data, variables) => {
220
+ if (data.data.status) {
221
+ setRelatedproducts(data.data.productsrelated);
222
+ } else {
223
+ // NotificationManager.warning('', data.data.reason);
224
+ }
225
+ },
226
+ });
227
+ }
228
+ if (fetchProductInfoQueryContext?.data?.data?.productinfo?.item_type == 'package list') {
229
+ tempaddtocardpayloadobj.item_type = 'package list';
230
+ } else {
231
+ tempaddtocardpayloadobj.item_type = 'product';
232
+ }
233
+
234
+ if (
235
+ fetchProductInfoQueryContext?.data?.data?.productinfo?.quantitystepincrearse != undefined &&
236
+ fetchProductInfoQueryContext?.data?.data?.productinfo?.quantitystepincrearse != null &&
237
+ fetchProductInfoQueryContext?.data?.data?.productinfo?.quantitystepincrearse != 1 &&
238
+ fetchProductInfoQueryContext?.data?.data?.productinfo?.quantitystepincrearse != ''
239
+ ) {
240
+ quantitystepincrearse = parseInt(fetchProductInfoQueryContext?.data?.data?.productinfo?.quantitystepincrearse);
241
+ }
242
+ tempaddtocardpayloadobj.quantity = quantitystepincrearse;
243
+ setaddtocardpayloadobj({ ...tempaddtocardpayloadobj });
244
+ }
245
+ }
246
+ }, [fetchProductInfoQueryContext.isSuccess, fetchProductInfoQueryContext.data, ikimagecredcontext]);
247
+ const clearchoosenvaluesbutkeepcurrentvalue = (optionindex, optionvaluesitem, optionvaluesindex) => {
248
+ var productarr = ProductInfoObj;
249
+ productarr?.data?.productinfo?.productoptions?.forEach(function (item, index) {
250
+ item.isselected = 0;
251
+ item?.optionvalues?.forEach(function (valueitem, valueindex) {
252
+ valueitem.isselected = 0;
253
+ });
254
+ });
255
+
256
+ selectproductoptionvalue(optionindex, optionvaluesitem, optionvaluesindex, productarr);
257
+ };
258
+ const selectproductoptionvalue = (optionindex, optionvaluesitem, optionvaluesindex, productarrtobepassed) => {
259
+ if (productarrtobepassed == undefined || productarrtobepassed == null) {
260
+ var productarr = ProductInfoObj;
261
+ } else {
262
+ var productarr = productarrtobepassed;
263
+ }
264
+ var isselected = productarr.data.productinfo.productoptions[optionindex].optionvalues[optionvaluesindex].isselected;
265
+ if (isselected == 1) {
266
+ productarr.data.productinfo.productoptions[optionindex].optionvalues[optionvaluesindex].isselected = 0;
267
+ } else {
268
+ productarr.data.productinfo.productoptions[optionindex].optionvalues[optionvaluesindex].isselected = 1;
269
+ }
270
+ if (productarr.data.productinfo.productoptions[optionindex].optionname == 'Color' || productarr.data.productinfo.productoptions[optionindex].optionname == 'Colour') {
271
+ setvariantvalueidentifier(productarr.data.productinfo.productoptions[optionindex].optionvalues[optionvaluesindex]?.value_identifier);
272
+ }
273
+ productarr.data.productinfo.productoptions[optionindex].optionvalues.forEach(function (arrayItem, arrayindex) {
274
+ if (optionvaluesindex != arrayindex) {
275
+ arrayItem.isselected = 0;
276
+ }
277
+ });
278
+ variantchecker();
279
+ variantcompleting();
280
+ setProductInfoObj({ ...productarr });
281
+ };
282
+ const variantchecker = () => {
283
+ var productarr = ProductInfoObj;
284
+ if (Object.keys(productarr).length != 0) {
285
+ if (productarr?.data?.productinfo?.hasvariants == 1) {
286
+ var selectedoptionsvalues = [];
287
+ var variantsaccessible = [];
288
+ productarr.data.productinfo.productoptions.forEach(function (productoptionsitem, productoptionsindex) {
289
+ productoptionsitem.optionvalues.forEach(function (ProductOptionValuesitem, ProductOptionValuesIndex) {
290
+ if (ProductOptionValuesitem.isselected == 1) {
291
+ selectedoptionsvalues.push(ProductOptionValuesitem);
292
+ }
293
+ });
294
+ });
295
+ if (selectedoptionsvalues.length == 0) {
296
+ productarr.data.productinfo.variants.forEach(function (ProductVariantItem, ProductVariantIndex) {
297
+ ProductVariantItem.variantoptions.forEach(function (varinatoptionitem, variantoptionindex) {
298
+ productarr.data.productinfo.productoptions.forEach(function (productoptionsitem, productoptionsindex) {
299
+ productoptionsitem.optionvalues.forEach(function (ProductOptionValuesitem, ProductOptionValuesIndex) {
300
+ if (ProductOptionValuesitem.valueid == varinatoptionitem.valueid) {
301
+ ProductOptionValuesitem.isenabled = 1;
302
+ }
303
+ });
304
+ });
305
+ });
306
+ });
307
+ } else {
308
+ productarr.data.productinfo.productoptions.forEach(function (productoptionsitem, productoptionsindex) {
309
+ productoptionsitem.optionvalues.forEach(function (ProductOptionValuesitem, ProductOptionValuesIndex) {
310
+ ProductOptionValuesitem.isenabled = 0;
311
+ });
312
+ });
313
+
314
+ productarr.data.productinfo.variants.forEach(function (ProductVariantItem, ProductVariantIndex) {
315
+ var variantcommonvalues = [];
316
+ ProductVariantItem.variantoptions.forEach(function (varinatoptionitem, variantoptionindex) {
317
+ selectedoptionsvalues.forEach(function (ProductOptionValuesitem, ProductOptionValuesIndex) {
318
+ if (ProductOptionValuesitem.optionid == varinatoptionitem.optionid) {
319
+ variantcommonvalues.push(varinatoptionitem);
320
+ }
321
+ });
322
+ });
323
+
324
+ var addvariantcount = [];
325
+ var addvariant = false;
326
+ selectedoptionsvalues.forEach(function (ProductOptionValuesitem, ProductOptionValuesIndex) {
327
+ addvariant = false;
328
+ variantcommonvalues.forEach(function (varinatoptionitem, variantoptionindex) {
329
+ if (ProductOptionValuesitem.optionid == varinatoptionitem.optionid) {
330
+ if (ProductOptionValuesitem.valueid == varinatoptionitem.valueid) {
331
+ addvariant = true;
332
+ } else {
333
+ addvariantcount.push(varinatoptionitem);
334
+ }
335
+ }
336
+ });
337
+ });
338
+ if (addvariant && addvariantcount.length == 0) {
339
+ variantsaccessible.push(ProductVariantItem);
340
+ }
341
+ });
342
+
343
+ variantsaccessible.forEach(function (ProductVariantItem, ProductVariantIndex) {
344
+ ProductVariantItem.variantoptions.forEach(function (varinatoptionitem, variantoptionindex) {
345
+ productarr.data.productinfo.productoptions.forEach(function (productoptionsitem, productoptionsindex) {
346
+ productoptionsitem.optionvalues.forEach(function (ProductOptionValuesitem, ProductOptionValuesIndex) {
347
+ if (ProductOptionValuesitem.valueid == varinatoptionitem.valueid) {
348
+ ProductOptionValuesitem.isenabled = 1;
349
+ }
350
+ });
351
+ });
352
+ });
353
+ });
354
+ }
355
+ // queryClient.setQueryData('fetchProductInfo_API' + JSON.stringify(fetchproductinfoObjContext), productarr);
356
+ setProductInfoObj({ ...productarr });
357
+ setisloaded(true);
358
+ }
359
+ }
360
+ };
361
+ const variantcompleting = () => {
362
+ setvariantindexcompleted('');
363
+ var tempaddtocardpayloadobj = { ...addtocardpayloadobj };
364
+ tempaddtocardpayloadobj.variantid = '';
365
+ setaddtocardpayloadobj({ ...tempaddtocardpayloadobj });
366
+ var productarr = ProductInfoObj;
367
+ var selectedoptionsvalues = [];
368
+
369
+ productarr.data.productinfo.productoptions.forEach(function (productoptionsitem, productoptionsindex) {
370
+ productoptionsitem.optionvalues.forEach(function (ProductOptionValuesitem, ProductOptionValuesIndex) {
371
+ if (ProductOptionValuesitem.isselected == 1) {
372
+ selectedoptionsvalues.push(ProductOptionValuesitem);
373
+ }
374
+ });
375
+ });
376
+ productarr.data.productinfo.variants.forEach(function (ProductVariantItem, ProductVariantIndex) {
377
+ var isvariant = false;
378
+ var variantnotmatch = [];
379
+ if (selectedoptionsvalues.length == ProductVariantItem.variantoptions.length) {
380
+ isvariant = true;
381
+ ProductVariantItem.variantoptions.forEach(function (varinatoptionitem, variantoptionindex) {
382
+ selectedoptionsvalues.forEach(function (ProductOptionValuesitem, ProductOptionValuesIndex) {
383
+ if (ProductOptionValuesitem.optionid == varinatoptionitem.optionid) {
384
+ if (ProductOptionValuesitem.valueid == varinatoptionitem.valueid) {
385
+ } else {
386
+ variantnotmatch.push('s');
387
+ }
388
+ }
389
+ });
390
+ });
391
+ }
392
+ if (variantnotmatch.length == 0 && isvariant == true) {
393
+ var variantobj = fetchProductInfoQueryContext.data.data.productinfo.variants[ProductVariantIndex];
394
+ var variantid = '';
395
+ if (variantobj == undefined) {
396
+ setisoutofstock(false);
397
+ NotificationManager.warning('', 'Variant Not Found');
398
+ } else {
399
+ variantid = variantobj.variantid;
400
+ var tempaddtocardpayloadobj = { ...addtocardpayloadobj };
401
+ tempaddtocardpayloadobj.variantid = variantid;
402
+ var variantimageindex = 0;
403
+ productimagesarray?.forEach(function (tempimageitem, tempimageindex) {
404
+ if (tempimageitem.galleryid == variantobj?.variantgalleryid) {
405
+ variantimageindex = tempimageindex;
406
+ }
407
+ });
408
+ if (variantobj.current_quantity <= 0) {
409
+ setisoutofstock(true);
410
+ } else {
411
+ setisoutofstock(false);
412
+ }
413
+ setvariantsku(variantobj?.sku);
414
+ setcurrentshowingimageindex(variantimageindex);
415
+ setaddtocardpayloadobj({ ...tempaddtocardpayloadobj });
416
+ setvariantindexcompleted(ProductVariantIndex);
417
+ setvariantindex(ProductVariantIndex);
418
+ }
419
+ } else {
420
+ // setisoutofstock(false);
421
+ }
422
+ });
423
+ // queryClient.setQueryData('fetchProductInfo_API' + JSON.stringify(fetchproductinfoObjContext), productarr);
424
+ setProductInfoObj({ ...productarr });
425
+ };
426
+ const addtocartfunc = (forcetocheckout) => {
427
+ var runfunc = false;
428
+ var forcetocheckoutvalue = forcetocheckout;
429
+ // alert(addtocardpayloadobj.quantity + 'sad');
430
+ if (addtocardpayloadobj.productid.length != 0 && addtocardpayloadobj.quantity > 0) {
431
+ if (fetchProductInfoQueryContext?.data?.data?.productinfo?.hasvariants == 1) {
432
+ if (addtocardpayloadobj.variantid.length != 0) {
433
+ runfunc = true;
434
+ } else {
435
+ NotificationManager.warning('', 'Please Choose Product Options');
436
+ }
437
+ } else {
438
+ runfunc = true;
439
+ }
440
+ } else {
441
+ NotificationManager.warning('', 'Please Choose Quantity');
442
+ }
443
+
444
+ if (runfunc == true) {
445
+ var tempaddtocardpayloadobj = { ...addtocardpayloadobj };
446
+ tempaddtocardpayloadobj.isproductforcedtocheckout = fetchProductInfoQueryContext?.data?.data?.productinfo?.isproductforcedtocheckout;
447
+ tempaddtocardpayloadobj.vendorid = fetchProductInfoQueryContext?.data?.data?.productinfo?.vendorproviderid;
448
+ if (forcetocheckoutvalue != undefined) {
449
+ tempaddtocardpayloadobj.forcetocheckoutvalue = forcetocheckoutvalue;
450
+ }
451
+ var Extrafieldvalidationresponse = validateextrafields();
452
+ if (Extrafieldvalidationresponse.status) {
453
+ Pixel_EventsContext('AddToCart', {
454
+ content_ids: [fetchProductInfoQueryContext?.data?.data?.productinfo?.productid],
455
+ content_name: fetchProductInfoQueryContext?.data?.data?.productinfo?.name_en + ' - ' + fetchProductInfoQueryContext?.data?.data?.productinfo?.name_ar,
456
+ content_sku: fetchProductInfoQueryContext?.data?.data?.productinfo?.sku,
457
+ content_type: 'product',
458
+ currency: fetchProductInfoQueryContext?.data?.data?.currencyname_en,
459
+ value: fetchProductInfoQueryContext?.data?.data?.productinfo?.defaultprice,
460
+ quantity: addtocardpayloadobj.quantity,
461
+ });
462
+ AddtoCartContext(tempaddtocardpayloadobj);
463
+ } else {
464
+ // NotificationManager.warning('', Extrafieldvalidationresponse.reason);
465
+ }
466
+ }
467
+ };
468
+ const validateextrafields = () => {
469
+ var tempaddtocardpayloadobj = { ...addtocardpayloadobj };
470
+ var status = false;
471
+ var reason = '';
472
+ var missingitemsfound = [];
473
+ var extrafields = fetchProductInfoQueryContext?.data?.data?.productinfo?.productextrafields;
474
+ if (extrafields?.length == 0) {
475
+ status = true;
476
+ } else {
477
+ extrafields.forEach(function (item, index) {
478
+ if (item.isrequired == 1) {
479
+ var itemfound = null;
480
+ tempaddtocardpayloadobj?.extrafields?.forEach(function (cchoosenitemvalue) {
481
+ if (cchoosenitemvalue.id == item.id) {
482
+ itemfound = cchoosenitemvalue;
483
+ }
484
+ });
485
+ if (itemfound == null) {
486
+ missingitemsfound.push(item);
487
+ } else {
488
+ if (itemfound?.value?.length == 0) {
489
+ missingitemsfound.push(item);
490
+ }
491
+ }
492
+ }
493
+ });
494
+ }
495
+ if (missingitemsfound.length == 0) {
496
+ status = true;
497
+ } else {
498
+ status = false;
499
+ reason = 'Missing items';
500
+ missingitemsfound.forEach(function (missingitem) {
501
+ var notftitle = langdetect == 'en' ? missingitem.title_en : missingitem.title_ar;
502
+ NotificationManager.warning('', langdetect == 'en' ? 'Please Choose ' + notftitle : 'من فضلك اختر' + notftitle);
503
+ });
504
+ }
505
+ return { status: status, reason: reason };
506
+ };
507
+ const returnpolicyobj = (policytype) => {
508
+ var policyobj = {};
509
+ authdetailsContext?.instinfo?.instpolicies?.forEach(function (item, index) {
510
+ if (item.policytype == policytype) {
511
+ policyobj = item;
512
+ }
513
+ });
514
+ return policyobj;
515
+ };
516
+ const relatedproducts = () => {
517
+ if (Relatedproducts.length != 0) {
518
+ return (
519
+ <div
520
+ className="w-100 row ml-0 mr-0 d-flex justify-content-start pl-md-3 pr-md-3 pl-sm-2 pr-sm-2"
521
+ style={{
522
+ background: sectionproperties.relatedproductsbg,
523
+ paddingTop: sectionproperties.relatedproductspaddingTop + 'px',
524
+ paddingBottom: sectionproperties.relatedproductspaddingBottom + 'px',
525
+ paddingLeft: sectionproperties.relatedproductspaddingLeft + 'px',
526
+ paddingRight: sectionproperties.relatedproductspaddingRight + 'px',
527
+ borderTopLeftRadius: sectionproperties.borderTopLeftRadius + 'px',
528
+ borderTopRightRadius: sectionproperties.borderTopRightRadius + 'px',
529
+ borderBottomLeftRadius: sectionproperties.borderBottomLeftRadius + 'px',
530
+ borderBottomRightRadius: sectionproperties.borderBottomRightRadius + 'px',
531
+ borderTop: sectionproperties.sectioncardborderwidth + 'px solid ' + sectionproperties.sectioncardbordercolor,
532
+ borderBottom: sectionproperties.sectioncardborderwidth + 'px solid ' + sectionproperties.sectioncardbordercolor,
533
+ marginBottom: sectionproperties.relatedProductsMb + 'px',
534
+ }}
535
+ >
536
+ {Relatedproducts.length != 0 && (
537
+ <div className="col-lg-12 p-0">
538
+ <div className="row m-0 w-100">
539
+ <div
540
+ className="col-lg-12 col-md-12 col-sm-12 d-flex align-items-center p-0 flex-column"
541
+ style={{
542
+ justifyContent: sectionproperties.relatedtitleposition == 'Centered' ? 'center' : 'start',
543
+ marginBottom: sectionproperties.relatedtitlemb + 'px',
544
+ }}
545
+ >
546
+ <p
547
+ className={' m-0 p-0 wordbreak '}
548
+ style={{
549
+ fontSize: sectionproperties.relatedproductstitlefontsize + 'px',
550
+ color: sectionproperties.relatedproductstitlecolor,
551
+ fontWeight: sectionproperties.relatedproductstitlefontweight,
552
+ textAlign: sectionproperties.relatedtitleposition == 'Centered' ? 'center' : langdetect == 'en' ? 'left' : 'right',
553
+ }}
554
+ >
555
+ {langdetect == 'en' ? sectionproperties.relatedproducttitleEn : sectionproperties.relatedproducttitleAr}
556
+ </p>
557
+ <div
558
+ style={{
559
+ width: sectionproperties.relatedproducttitle_lineafterwidth + 'px',
560
+ height: 2,
561
+ background: sectionproperties.relatedproducttitlelinebgcolor,
562
+ borderRadius: 5,
563
+ }}
564
+ />
565
+ </div>
566
+ <div className="col-lg-12">
567
+ <ScrollMenu
568
+ transitionBehavior={'auto'}
569
+ wrapperClassName={''}
570
+ itemClassName={'scrollmenuclassnameitemrelatedproduct'}
571
+ scrollContainerClassName={'scrollmenuclasssubscrollbar'}
572
+ >
573
+ {Relatedproducts.map((item, index) => {
574
+ if (item.productinfo != null) {
575
+ if (item.productid != fetchProductInfoQueryContext.data.data.productinfo.productid) {
576
+ return (
577
+ <div
578
+ className="col-lg-12 w-100"
579
+ onClick={() => {
580
+ if (props.srcfromprops != 'templatdraftrouter') {
581
+ productidassigner(item.productid);
582
+ } else {
583
+ routingcountext(StaticPagesLinksContext.productinfo, true, item.productid);
584
+ }
585
+ }}
586
+ >
587
+ <div className={productinfo_cssstyles.relatedproductcardcont + ' row w-100 m-0 cursor-pointer '}>
588
+ <div class={' cursor-pointer w-100 '}>
589
+ <div class={`${productinfo_cssstyles.relatedProductImageCont}` + ' w-100 p-0 mb-2 '}>
590
+ <Imagekitimagecomp
591
+ urlEndpoint={ikimagecredcontext?.ikimageendpoint}
592
+ publicKey={ikimagecredcontext?.ikimagepublickey}
593
+ // path={
594
+ // '/tr:w-' +
595
+ // sectionproperties.relatedProductDimWidth +
596
+ // ',h-' +
597
+ // sectionproperties.galleryHeightDimension +
598
+ // '/' +
599
+ // item.productinfo.productmainimage
600
+ // }
601
+ path={
602
+ '/tr:w-' + sectionproperties.imagetr_w + ',h-' + sectionproperties.imagetr_h + '/' + item.productinfo.productmainimage
603
+ }
604
+ loading="lazy"
605
+ style={{
606
+ width: '100%',
607
+ height: '100%',
608
+ objectFit: 'contain',
609
+ }}
610
+ />
611
+ </div>
612
+ <div class="row m-0 w-100 ">
613
+ <div class="col-lg-12 p-0">
614
+ <p
615
+ class={
616
+ `${productinfo_cssstyles.relatedproductNameStyles}` +
617
+ ' relatedproductNameStyles wordbreak wordbreak1 text-center m-0 '
618
+ }
619
+ >
620
+ {langdetect == 'en' ? item.productinfo.name_en : item.productinfo.name_ar}
621
+ </p>
622
+ </div>
623
+ <div style={{ flexDirection: 'column' }} class="col-lg-12 d-flex align-items-center justify-content-center p-0 ">
624
+ <p class={`${productinfo_cssstyles.relatedproductPricestyles}` + ' m-0 '}>
625
+ {item.productinfo.hassale == 1 ? item.productinfo.defaultsaleprice : item.productinfo.defaultprice}{' '}
626
+ {langdetect == 'en' ? authdetailsContext?.currencyname_en : authdetailsContext?.currencyname_ar}{' '}
627
+ </p>
628
+ </div>
629
+ </div>
630
+ </div>
631
+ </div>
632
+ </div>
633
+ );
634
+ }
635
+ }
636
+ })}
637
+ </ScrollMenu>
638
+ </div>
639
+ </div>
640
+ </div>
641
+ )}
642
+ </div>
643
+ );
644
+ }
645
+ };
646
+ // const DescriptionContent = () => {
647
+ // return (
648
+ // <div class="col-lg-12 pl-5 pr-5 p-md-0 w-100">
649
+ // <div class="row m-0 w-100">
650
+ // {langdetect == 'en' &&
651
+ // fetchProductInfoQueryContext?.data?.data?.productinfo?.description_en != '' &&
652
+ // fetchProductInfoQueryContext?.data?.data?.productinfo?.description_en != null &&
653
+ // sectionproperties.prodCatShow == 'Show' && (
654
+ // <div className="col-lg-12 p-0 mb-4 d-flex justify-content-center">
655
+ // <div className="row m-0 w-100 d-flex">
656
+ // <div class="col-lg-12 p-0 d-flex justify-content-start">
657
+ // <p
658
+ // className={'text-black text-capitalize m-0 p-0 wordbreak'}
659
+ // style={{
660
+ // textAlign: langdetect == 'en' ? 'left' : 'right',
661
+ // }}
662
+ // dangerouslySetInnerHTML={{
663
+ // __html:
664
+ // showMore == true
665
+ // ? fetchProductInfoQueryContext?.data?.data?.productinfo?.description_en
666
+ // : fetchProductInfoQueryContext?.data?.data?.productinfo?.description_en.slice(0, 1000),
667
+ // }}
668
+ // ></p>
669
+ // </div>
670
+ // <div class="col-lg-12 allcentered">
671
+ // {fetchProductInfoQueryContext?.data?.data?.productinfo?.description_en.length > 1000 && (
672
+ // <p class="m-0 p-0 cursor-pointer text-grey font-weight-600" onClick={() => setShowMore(!showMore)}>
673
+ // {showMore ? lang.showless : lang.showmore}
674
+ // </p>
675
+ // )}
676
+ // </div>
677
+ // </div>
678
+ // </div>
679
+ // )}
680
+ // {langdetect == 'ar' &&
681
+ // fetchProductInfoQueryContext?.data?.data?.productinfo?.description_ar != '' &&
682
+ // fetchProductInfoQueryContext?.data?.data?.productinfo?.description_ar != null &&
683
+ // sectionproperties.prodCatShow == 'Show' && (
684
+ // <div className="col-lg-12 p-0 mb-4 d-flex justify-content-center">
685
+ // <div className="row m-0 w-100 d-flex">
686
+ // <div class="col-lg-12 p-0 d-flex justify-content-start flex-column">
687
+ // <p
688
+ // className={'text-black text-capitalize m-0 p-0 wordbreak'}
689
+ // style={{
690
+ // textAlign: langdetect == 'en' ? 'left' : 'right',
691
+ // }}
692
+ // dangerouslySetInnerHTML={{
693
+ // __html:
694
+ // showMore == true
695
+ // ? fetchProductInfoQueryContext?.data?.data?.productinfo?.description_ar
696
+ // : fetchProductInfoQueryContext?.data?.data?.productinfo?.description_ar.slice(0, 1000),
697
+ // }}
698
+ // ></p>
699
+ // </div>
700
+ // <div class="col-lg-12 allcentered">
701
+ // {fetchProductInfoQueryContext?.data?.data?.productinfo?.description_ar.length > 1000 && (
702
+ // <p class="m-0 p-0 cursor-pointer text-grey font-weight-600 text-right" onClick={() => setShowMore(!showMore)}>
703
+ // {showMore ? lang.showless : lang.showmore}
704
+ // </p>
705
+ // )}
706
+ // </div>
707
+ // </div>
708
+ // </div>
709
+ // )}
710
+ // {sectionproperties.showGallery == 'Show' && fetchProductInfoQueryContext?.data?.data?.productinfo?.productimages?.length != 0 && (
711
+ // <div class="col-lg-12 p-0">
712
+ // <div
713
+ // class="row m-0 w-100 allcentered pl-md-3 pr-md-3"
714
+ // style={{
715
+ // paddingLeft: sectionproperties.galleryPaddingHorizontal + 'px',
716
+ // paddingRight: sectionproperties.galleryPaddingHorizontal + 'px',
717
+ // }}
718
+ // >
719
+ // {fetchProductInfoQueryContext?.data?.data?.productinfo?.productimages?.map((item, index) => {
720
+ // if (index <= 6) {
721
+ // return (
722
+ // <div
723
+ // class={' col-md-4 col-sm-12 mb-3 col-lg-' + sectionproperties.galleryNoOfCols}
724
+ // style={{
725
+ // height: sectionproperties.galleryHeight + 'px',
726
+ // }}
727
+ // >
728
+ // <Imagekitimagecomp
729
+ // urlEndpoint={ikimagecredcontext?.ikimageendpoint}
730
+ // publicKey={ikimagecredcontext?.ikimagepublickey}
731
+ // path={'/tr:w-' + sectionproperties.galleryWidthDimension + ',h-' + sectionproperties.galleryHeightDimension + '/' + item.path}
732
+ // style={{
733
+ // width: '100%',
734
+ // height: '100%',
735
+ // objectFit: 'contain',
736
+ // }}
737
+ // loading="lazy"
738
+ // />
739
+ // </div>
740
+ // );
741
+ // }
742
+ // })}
743
+ // </div>
744
+ // </div>
745
+ // )}
746
+ // </div>
747
+ // </div>
748
+ // );
749
+ // };
750
+ const productinfo_cssstyles = {
751
+ containerstyles: css({
752
+ marginTop: props.srcfromprops != 'templatedraftrouter' ? sectionproperties.marginTop + 'px' : 30,
753
+ '@media (max-width: 800px)': {
754
+ marginTop: sectionproperties.marginTopResp + 'px',
755
+ },
756
+ }),
757
+ submitreviewbtn: css({
758
+ width: sectionproperties.applybtn_width + 'px',
759
+ height: sectionproperties.applybtn_height + 'px',
760
+ borderRadius: sectionproperties.applybtn_borderBottomLeftRadius + 'px',
761
+ fontSize: sectionproperties.applybtn_fontsize + 'px',
762
+ color: sectionproperties.applybtn_textColor,
763
+ fontWeight: sectionproperties.applybtn_Textfontweight,
764
+ backgroundColor: sectionproperties.applybtn_bgColor,
765
+ border: sectionproperties.applybtnborderwidth + 'px solid ' + sectionproperties.applybtnbordercolor,
766
+ textTransform: sectionproperties.applybtn_texttransform,
767
+ ':hover': {
768
+ transition: '.3s',
769
+ backgroundColor: sectionproperties.applybtn_bgColoronhover,
770
+ color: sectionproperties.applybtn_Textcoloronhover,
771
+ },
772
+ }),
773
+ form_control: css({
774
+ position: 'relative',
775
+ display: 'flex',
776
+ alignItems: 'center',
777
+ display: 'block',
778
+ width: '100%',
779
+ padding: '0 10px',
780
+ transition: '.3s',
781
+ fontWeight: 500,
782
+ border: sectionproperties.inputfieldbordertype == 'All' ? sectionproperties.inputfieldborderWidth + 'px solid ' + sectionproperties.inputfieldborderColor : 0,
783
+ borderBottom: sectionproperties.inputfieldborderWidth + 'px solid ' + sectionproperties.inputfieldborderColor,
784
+ borderRadius: sectionproperties.inputfieldborderradius + 'px',
785
+ height: sectionproperties.inputfieldheight + 'px',
786
+ background: sectionproperties.input_bgcolor,
787
+ color: sectionproperties.inputfieldcolor,
788
+ ':focus': {
789
+ borderColor: sectionproperties.inputfeildbordercoloronfocus,
790
+ },
791
+ ':focus .login_input_icon': {
792
+ color: sectionproperties.inputfeildbordercoloronfocus,
793
+ },
794
+ }),
795
+ inputfield_label: css({
796
+ color: sectionproperties.form_labelcolor,
797
+ fontWeight: sectionproperties.form_labelfontweight,
798
+ fontSize: sectionproperties.form_labelfontsize + 'px',
799
+ textTransform: sectionproperties.form_labeltexttransform,
800
+ marginBottom: sectionproperties.inputfieldbordertype == 'All' ? 10 : 0,
801
+ }),
802
+ reviewbutton: css({
803
+ width: sectionproperties.reviewbtn_width + 'px',
804
+ height: sectionproperties.reviewbtn_height + 'px',
805
+ background: sectionproperties.reviewbtn_bgcolor,
806
+ color: sectionproperties.reviewbtn_color,
807
+ fontSize: sectionproperties.reviewbtn_fontsize + 'px',
808
+ borderRadius: sectionproperties.reviewbtn_borderradius + 'px',
809
+ border: sectionproperties.reviewbtn_borderwidth + 'px solid ' + sectionproperties.reviewbtn_bordercolor,
810
+ fontWeight: sectionproperties.reviewbtn_fontweight,
811
+ ':hover': {
812
+ transition: '.3s',
813
+ color: sectionproperties.reviewbtn_coloronhover,
814
+ borderColor: sectionproperties.reviewbtn_coloronhover,
815
+ backgroundColor: sectionproperties.reviewbtn_bgcoloronhover,
816
+ },
817
+ }),
818
+ before: css({
819
+ ':before': {
820
+ background: sectionproperties.activetabbordercolor,
821
+ },
822
+ }),
823
+ reservationtab: css({
824
+ color: sectionproperties.tabtextactivecolor,
825
+ fontWeight: sectionproperties.tabtextfontweight,
826
+ background: sectionproperties.activetabbgcolor,
827
+ textTransform: sectionproperties.tabtexttexttransform,
828
+ borderRadius: sectionproperties.tabcontainerborderradius + 'px',
829
+ fontFamily: 'Poppins',
830
+ transition: '.3s',
831
+ textAlign: 'start',
832
+ }),
833
+ cart_btn: css({
834
+ position: 'relative',
835
+ display: 'flex',
836
+ alignItems: 'center',
837
+ justifyContent: 'center',
838
+ overflow: 'hidden',
839
+ width: sectionproperties.cartBtnWidth + 'px',
840
+ height: sectionproperties.cartBtnHeight + 'px',
841
+ background: sectionproperties.cartbtn_bgtransparent == 'Transparent' ? 'transparent' : sectionproperties.cartBtnbgColor,
842
+ borderRadius: sectionproperties.cart_btn_borderBottomLeftRadius + 'px',
843
+ color: sectionproperties.cartBtnTextcolor,
844
+ fontSize: sectionproperties.cartBtnTextfontsize + 'px',
845
+ textTransform: sectionproperties.cartBtnTexttransform,
846
+ fontWeight: sectionproperties.cartBtnTextfontweight,
847
+ border: sectionproperties.cartbtnborderwidth + 'px solid ' + sectionproperties.cartbtnbordercolor,
848
+ margin: 0,
849
+ transition: '.3s',
850
+ ':hover': {
851
+ background: sectionproperties.cartbtn_transparentbgcoloronhover == 'Transparent' ? 'transparent' : sectionproperties.cartBtnbgColoronhover,
852
+ color: sectionproperties.cartBtnTextcoloronhover,
853
+ borderColor: sectionproperties.cartBtnTextcoloronhover,
854
+ },
855
+ }),
856
+ quantitybtn: css({
857
+ width: sectionproperties.quantitybtn_height + 'px',
858
+ height: sectionproperties.quantitybtn_width + 'px',
859
+ display: 'flex',
860
+ flexDirection: 'column',
861
+ overflow: 'hidden',
862
+ borderRadius: sectionproperties.quantitybtn_borderradius + 'px',
863
+ background: sectionproperties.quantitybtn_bgcolor,
864
+ alignItems: 'center',
865
+ justifyContent: 'center',
866
+ margin: 0,
867
+ position: 'relative',
868
+ fontWeight: sectionproperties.quantitybtn_textfontweight,
869
+ color: sectionproperties.quantitybtn_textcolor,
870
+ fontSize: sectionproperties.quantitybtn_textfontsize + 'px',
871
+ border: sectionproperties.quantitybtnborderwidth + 'px solid ' + sectionproperties.quantitybtnbordercolor,
872
+ }),
873
+ quantitybtn_text: css({
874
+ margin: 'auto',
875
+ }),
876
+ add_quantitybtn_icon_container: css({
877
+ position: 'relative',
878
+ width: '35px',
879
+ height: '35px',
880
+ background: sectionproperties.add_quantitybtn_bgcolor,
881
+ display: 'flex',
882
+ alignItems: 'center',
883
+ justifyContent: 'center',
884
+ borderRadius: sectionproperties.add_quantitybtn_borderradius + 'px',
885
+ fontSize: sectionproperties.add_quantitybtn_textfontsize + 'px',
886
+ color: sectionproperties.add_quantitybtn_textcolor,
887
+ transition: '.3s',
888
+ ':hover': {
889
+ color: sectionproperties.add_quantitybtn_textcoloronhover,
890
+ background: sectionproperties.add_quantitybtn_bgcoloronhover,
891
+ },
892
+ }),
893
+ minus_quantitybtn_icon_container: css({
894
+ position: 'relative',
895
+ width: '35px',
896
+ height: '35px',
897
+ background: sectionproperties.remove_quantitybtn_bgcolor,
898
+ display: 'flex',
899
+ alignItems: 'center',
900
+ justifyContent: 'center',
901
+ borderRadius: sectionproperties.remove_quantitybtn_borderradius + 'px',
902
+ fontSize: sectionproperties.remove_quantitybtn_textfontsize + 'px',
903
+ color: sectionproperties.remove_quantitybtn_textcolor,
904
+ transition: '.3s',
905
+ ':hover': {
906
+ color: sectionproperties.remove_quantitybtn_textcoloronhover,
907
+ background: sectionproperties.remove_quantitybtn_bgcoloronhover,
908
+ },
909
+ }),
910
+ relatedproductcardcont: css({
911
+ ':hover .relatedproductNameStyles': {
912
+ color: sectionproperties.relatedprodNameColoronhover,
913
+ },
914
+ }),
915
+ relatedProductImageCont: css({
916
+ height: sectionproperties.relatedProductImageHeight + 'px',
917
+ border: sectionproperties.relatedProductImageBorderWidth + 'px solid ' + sectionproperties.relatedProductImageBorderColor,
918
+ borderRadius: sectionproperties.relatedProductImageBr + 'px',
919
+ display: 'flex',
920
+ alignItems: 'center',
921
+ justifyContent: 'center',
922
+ position: 'relative',
923
+ }),
924
+ relatedproductNameStyles: css({
925
+ transition: '.3s',
926
+ color: sectionproperties.relatedprodNameColor,
927
+ fontSize: sectionproperties.relatedprodNameFontSize + 'px',
928
+ fontWeight: sectionproperties.relatedprodnamefontWeight,
929
+ textTransform: sectionproperties.relatedprodNameTextTranform,
930
+ ':hover': {
931
+ color: sectionproperties.relatedprodNameColoronhover,
932
+ },
933
+ }),
934
+ relatedproductPricestyles: css({
935
+ color: sectionproperties.relatedprodPriceColor,
936
+ fontSize: sectionproperties.relatedprodpriceFontSize + 'px',
937
+ fontWeight: sectionproperties.relatedprodPriceFontWeight,
938
+ }),
939
+ cardcontainer: css({
940
+ backgroundColor: sectionproperties.backgroundColor,
941
+ borderTopLeftRadius: sectionproperties.borderTopLeftRadius + 'px',
942
+ borderTopRightRadius: sectionproperties.borderTopRightRadius + 'px',
943
+ borderBottomLeftRadius: sectionproperties.borderBottomLeftRadius + 'px',
944
+ borderBottomRightRadius: sectionproperties.borderBottomRightRadius + 'px',
945
+ paddingRight: langdetect == 'en' ? sectionproperties.paddingRight + 'px' : sectionproperties.paddingLeft + 'px',
946
+ paddingLeft: langdetect == 'en' ? sectionproperties.paddingLeft + 'px' : sectionproperties.paddingRight + 'px',
947
+ paddingTop: sectionproperties.paddingTop + 'px',
948
+ paddingBottom: sectionproperties.paddingBottom + 'px',
949
+ border: sectionproperties.sectioncardborderwidth + 'px solid ' + sectionproperties.sectioncardbordercolor,
950
+ marginBottom: sectionproperties.marginBottom + 'px',
951
+ }),
952
+ wishlist_btn: css({
953
+ // marginTop: sectionproperties.favbtnmargintop + 'px',
954
+ width: sectionproperties.favBtnWidth + 'px',
955
+ height: sectionproperties.favBtnHeight + 'px',
956
+ background: sectionproperties.favbtn_bgtransparent == 'Transparent' ? 'transparent' : sectionproperties.favBtnbgColor,
957
+ borderRadius: sectionproperties.fav_btn_borderBottomLeftRadius + 'px',
958
+ color: sectionproperties.favBtniconcolor,
959
+ fontSize: sectionproperties.favBtnTextfontsize + 'px',
960
+ textTransform: sectionproperties.favBtnTexttransform,
961
+ fontWeight: sectionproperties.favBtnTextfontweight,
962
+ boxShadow: sectionproperties.favbtn_showshadow == 'Show' ? '0 0 10px ' + sectionproperties.favbtn_shadowcolor : '',
963
+ border: sectionproperties.favbtnborderwidth + 'px solid ' + sectionproperties.favbtnbordercolor,
964
+ cursor: 'pointer',
965
+ transition: '.3s',
966
+ ':hover': {
967
+ background: sectionproperties.favbtn_transparentbgcoloronhover == 'Transparent' ? 'transparent' : sectionproperties.favBtnbgColoronhover,
968
+ color: sectionproperties.favBtnTextcoloronhover,
969
+ borderColor: sectionproperties.favBtnTextcoloronhover,
970
+ },
971
+ // '@media (max-width: 800px)': {
972
+ // marginTop: sectionproperties.favbtnmargintopresp + 'px',
973
+ // },
974
+ }),
975
+ productname: css({
976
+ fontSize: sectionproperties.prodNameFontSize + 'px',
977
+ textTransform: sectionproperties.prodNameTextTranform,
978
+ fontWeight: sectionproperties.prodNameFontWeight,
979
+ color: sectionproperties.prodNameColor,
980
+ }),
981
+ productnamehover: css({
982
+ transition: '.3s',
983
+ ':hover': {
984
+ cursor: 'pointer',
985
+ color: sectionproperties.prodNameColorOnHover,
986
+ },
987
+ }),
988
+ storeInfo: css({
989
+ color: sectionproperties.footerinfotext_color,
990
+ fontSize: sectionproperties.footerinfotext_fontsize + 'px',
991
+ textTransform: sectionproperties.footerinfotext_textTransform,
992
+ fontWeight: sectionproperties.footerinfotext_fontweight,
993
+ transition: '.3s',
994
+ }),
995
+ storeInfoContent: css({
996
+ color: sectionproperties.footerinfotext_secondarycolor,
997
+ fontSize: sectionproperties.footerinfotext_secondaryfontsize + 'px',
998
+ fontWeight: sectionproperties.footerinfotext_secondaryfontweight,
999
+ }),
1000
+ iconContainer: css({
1001
+ width: sectionproperties.iconcontainerwidth + 'px',
1002
+ height: sectionproperties.iconcontainerheight + 'px',
1003
+ borderRadius: sectionproperties.iconcontainerborderbl + 'px',
1004
+ background: sectionproperties.iconcontainerbg,
1005
+ color: sectionproperties.iconcontainercolor,
1006
+ }),
1007
+ storeinfocontainer: css({
1008
+ ':hover .storeInfoContent': {
1009
+ transition: '.3s',
1010
+ color: sectionproperties.footerinfotext_coloronhover,
1011
+ },
1012
+ ':hover .iconContainer': {
1013
+ transition: '.3s',
1014
+ color: sectionproperties.iconcontainercoloronhover,
1015
+ backgroundColor: sectionproperties.iconcontainerbgonhover,
1016
+ },
1017
+ }),
1018
+ shareicon: css({
1019
+ width: sectionproperties.shareiconwidth + 'px',
1020
+ height: sectionproperties.shareiconheight + 'px',
1021
+ borderRadius: sectionproperties.shareiconborderradius + 'px',
1022
+ background: sectionproperties.shareiconbgcolor,
1023
+ color: sectionproperties.shareiconcolor,
1024
+ ':hover': {
1025
+ color: sectionproperties.shareiconcoloronhover,
1026
+ transition: '.3s',
1027
+ cursor: 'pointer',
1028
+ },
1029
+ }),
1030
+ checkoutbtn: css({
1031
+ width: sectionproperties.checkoutBtnWidth + 'px',
1032
+ height: sectionproperties.checkoutBtnHeight + 'px',
1033
+ backgroundColor: sectionproperties.checkoutBtnbgColor,
1034
+ color: sectionproperties.checkoutBtnTextcolor,
1035
+ fontWeight: sectionproperties.checkoutBtnTextfontweight,
1036
+ fontSize: sectionproperties.checkoutBtnTextfontsize + 'px',
1037
+ borderRadius: sectionproperties.checkout_borderBottomLeftRadius + 'px',
1038
+ border: sectionproperties.checkout_borderWidth + 'px solid ' + sectionproperties.checkout_bordercolor,
1039
+ transition: '.3s',
1040
+ ':hover': {
1041
+ backgroundColor: sectionproperties.checkoutBtnbgColoronhover,
1042
+ color: sectionproperties.checkoutBtncoloronhover,
1043
+ },
1044
+ }),
1045
+ outstockbadge: css({
1046
+ minWidth: sectionproperties.outstock_width + 'px',
1047
+ height: sectionproperties.outstock_height + 'px',
1048
+ background: sectionproperties.outstock_bg,
1049
+ color: sectionproperties.outstock_color,
1050
+ fontSize: sectionproperties.outstock_fontSize + 'px',
1051
+ borderRadius: sectionproperties.outstock_borderradius + 'px',
1052
+ }),
1053
+ cashbackoutercontainer: css({
1054
+ // minWidth: 'fit-content',
1055
+ width: sectionproperties.cashbackcontainerwidth + '%',
1056
+ height: sectionproperties.cashbackcontainerheight + 'px',
1057
+ background: sectionproperties.cashbackcontainerbgcolor,
1058
+ color: sectionproperties.cashbackcontainercolor,
1059
+ fontSize: sectionproperties.cashbackcontainerfontsize + 'px',
1060
+ border: sectionproperties.cashbackcontainerborderwidth + 'px ' + sectionproperties.cashbackcontainerborderstyle + sectionproperties.cashbackcontainerbordercolor,
1061
+ borderRadius: sectionproperties.cashbackcontainerborderradius + 'px',
1062
+ }),
1063
+ profitcontainer: css({
1064
+ width: sectionproperties.profitcontainerwidth + '%',
1065
+ height: sectionproperties.profitcontainerheight + 'px',
1066
+ background: sectionproperties.profitcontainerbgcolor,
1067
+ border: sectionproperties.profitcontainerborderwidth + 'px solid' + sectionproperties.profitcontainerbordercolor,
1068
+ borderRadius: sectionproperties.profitcontainerborderradius + 'px',
1069
+ color: sectionproperties.profitcontainercolor,
1070
+ '@media (max-width: 800px)': {
1071
+ width: '90%',
1072
+ },
1073
+ }),
1074
+ imagegallery: css({
1075
+ '.image-gallery-thumbnail.active': {
1076
+ border: '2px solid red ',
1077
+ },
1078
+ }),
1079
+ storeinfobtn: css({
1080
+ width: sectionproperties.storeinfobtnwidth + '%',
1081
+ height: sectionproperties.storeinfobtnheight + 'px',
1082
+ background: sectionproperties.storeinfobtnbgcolor,
1083
+ fontSize: sectionproperties.footerinfotext_fontsize,
1084
+ fontWeight: sectionproperties.footerinfotext_fontweight,
1085
+ color: sectionproperties.footerinfotext_color,
1086
+ borderRadius: sectionproperties.storeinfobtnborderradius + 'px',
1087
+ transition: '.3s',
1088
+ ':hover': {
1089
+ color: sectionproperties.footerinfotext_coloronhover,
1090
+ background: sectionproperties.storeinfobtnbgcoloronhover,
1091
+ },
1092
+ }),
1093
+ storeinfocontainer: css({
1094
+ marginTop: sectionproperties.storeinfomarginvertical + 'px',
1095
+ '@media (max-width: 800px)': {
1096
+ marginTop: sectionproperties.storeinfomarginverticalresp + 'px',
1097
+ },
1098
+ }),
1099
+ // storeinfocontainer2: css({
1100
+ // marginBottom: sectionproperties.storeinfomarginvertical + 'px',
1101
+ // '@media (max-width: 800px)': {
1102
+ // marginBottom: sectionproperties.storeinfomarginverticalresp + 'px',
1103
+ // },
1104
+ // }),
1105
+ };
1106
+
1107
+ const getprice_discountpriceprops = (type, withtotal, variantindexcompleted) => {
1108
+ var price = 0;
1109
+ var quantityconditions = [];
1110
+ var quantity = 0;
1111
+ if (addtocardpayloadobj.quantity != undefined && addtocardpayloadobj.quantity != null) {
1112
+ quantity = parseFloat(addtocardpayloadobj.quantity);
1113
+ }
1114
+ if (
1115
+ fetchProductInfoQueryContext?.data?.data?.productinfo?.productquantityoptions != undefined &&
1116
+ fetchProductInfoQueryContext?.data?.data?.productinfo?.productquantityoptions != null &&
1117
+ Array.isArray(fetchProductInfoQueryContext?.data?.data?.productinfo?.productquantityoptions) &&
1118
+ fetchProductInfoQueryContext?.data?.data?.productinfo?.productquantityoptions?.length != 0
1119
+ ) {
1120
+ quantityconditions = fetchProductInfoQueryContext.data.data.productinfo.productquantityoptions;
1121
+ }
1122
+ if (type == 'defaultprice') {
1123
+ price = fetchProductInfoQueryContext.data.data.productinfo.defaultprice;
1124
+ if (fetchProductInfoQueryContext.data.data.productinfo.hasvariants == 1) {
1125
+ if (variantindexcompleted != undefined) {
1126
+ if (fetchProductInfoQueryContext?.data?.data?.productinfo?.variants[variantindexcompleted]?.variantprice != undefined) {
1127
+ price = fetchProductInfoQueryContext?.data?.data?.productinfo?.variants[variantindexcompleted]?.variantprice;
1128
+ }
1129
+ }
1130
+ }
1131
+ } else if (type == 'defaultsaleprice') {
1132
+ price = fetchProductInfoQueryContext.data.data.productinfo.defaultsaleprice;
1133
+ if (fetchProductInfoQueryContext.data.data.productinfo.hasvariants == 1) {
1134
+ if (variantindexcompleted != undefined) {
1135
+ if (fetchProductInfoQueryContext?.data?.data?.productinfo?.variants[variantindexcompleted]?.variantsaleprice != undefined) {
1136
+ price = fetchProductInfoQueryContext?.data?.data?.productinfo?.variants[variantindexcompleted]?.variantsaleprice;
1137
+ }
1138
+ }
1139
+ }
1140
+ }
1141
+ var localquantityconditionobj = null;
1142
+ var temppriceinseidconditions = price;
1143
+ quantityconditions.forEach(function (item, index) {
1144
+ if (item.fromq <= quantity && item.toq >= quantity) {
1145
+ var discountprice = (item.value / 100) * price;
1146
+ if (item.type == 'add') {
1147
+ temppriceinseidconditions = price + discountprice;
1148
+ } else if (item.type == 'subtract') {
1149
+ temppriceinseidconditions = price - discountprice;
1150
+ }
1151
+ localquantityconditionobj = item;
1152
+ }
1153
+ });
1154
+ price = temppriceinseidconditions;
1155
+ setquantityconditionfoundobj(localquantityconditionobj);
1156
+ if (withtotal == true) {
1157
+ price = price * quantity;
1158
+ }
1159
+ if (price != undefined) {
1160
+ return price;
1161
+ } else {
1162
+ return 0;
1163
+ }
1164
+ };
1165
+ const getQuantityCondition = () => {
1166
+ return (
1167
+ <div
1168
+ class="col-lg-12 p-0"
1169
+ style={{
1170
+ background: sectionproperties.reservation_bgcolor,
1171
+ borderRadius: sectionproperties.reservation_borderradius + 'px',
1172
+ }}
1173
+ >
1174
+ <div
1175
+ class="row m-0 w-100"
1176
+ style={{
1177
+ paddingLeft: sectionproperties.reservation_padding_left + 'rem',
1178
+ paddingRight: sectionproperties.reservation_padding_right + 'rem',
1179
+ paddingTop: sectionproperties.reservation_padding_top + 'rem',
1180
+ paddingBottom: sectionproperties.reservation_padding_bottom + 'rem',
1181
+ }}
1182
+ >
1183
+ <div class="col-lg-12 p-0 mb-4 allcentered flex-column">
1184
+ <p
1185
+ class="m-0 p-0 "
1186
+ style={{
1187
+ color: sectionproperties.pricelisttitlecolor,
1188
+ fontSize: sectionproperties.pricelisttitlefontSize + 'px',
1189
+ fontWeight: sectionproperties.pricelisttitlefontWeight,
1190
+ }}
1191
+ >
1192
+ {langdetect == 'en' ? sectionproperties.pricelisttitle_en : sectionproperties.pricelisttitle_ar}
1193
+ </p>
1194
+ <div
1195
+ style={{
1196
+ width: '30%',
1197
+ height: 1,
1198
+ background: sectionproperties.pricelisttitlecolor,
1199
+ }}
1200
+ />
1201
+ </div>
1202
+ {fetchProductInfoQueryContext?.data?.data?.productinfo?.productquantityoptions?.map((item, index) => {
1203
+ return (
1204
+ <div
1205
+ className="col-lg-12 p-0 w-100 d-flex align-items-center"
1206
+ style={{
1207
+ marginBottom: fetchProductInfoQueryContext?.data?.data?.productinfo?.productquantityoptions?.length - 1 != index ? '1rem' : 0,
1208
+ }}
1209
+ >
1210
+ <div
1211
+ class="d-flex align-items-center"
1212
+ style={{
1213
+ color: sectionproperties.pricelistlabelcolor,
1214
+ fontSize: sectionproperties.pricelistlabelfontsize + 'px',
1215
+ fontWeight: sectionproperties.pricelistlabelfontweight,
1216
+ }}
1217
+ >
1218
+ <p
1219
+ class="m-0 pb-0"
1220
+ style={{
1221
+ paddingRight: langdetect == 'en' ? '0.5rem' : 0,
1222
+ paddingLeft: langdetect == 'ar' ? '0.5rem' : 0,
1223
+ }}
1224
+ >
1225
+ {langdetect == 'en' ? 'From' : 'من'}: {item.fromq} - {item.toq}
1226
+ </p>
1227
+ </div>
1228
+ <div class="" style={{ flex: 1, borderTop: '5px dotted #ccc' }} />
1229
+ <p
1230
+ class="m-0 pb-0"
1231
+ style={{
1232
+ paddingLeft: langdetect == 'en' ? '0.5rem' : 0,
1233
+ paddingRight: langdetect == 'ar' ? '0.5rem' : 0,
1234
+ color: item.type == 'add' ? sectionproperties.valueaddcolor : sectionproperties.valueminuscolor,
1235
+ fontSize: sectionproperties.pricelistvaluefontsize + 'px',
1236
+ fontWeight: sectionproperties.pricelistvaluefontweight,
1237
+ }}
1238
+ >
1239
+ {item.type == 'subtract' ? '-' : '+'} {item.value}%
1240
+ </p>
1241
+ </div>
1242
+ );
1243
+ })}
1244
+ </div>
1245
+ </div>
1246
+ );
1247
+ };
1248
+ const StoreInfo = () => {
1249
+ return (
1250
+ <div class="row m-0 w-100">
1251
+ <div class="col-lg-12 p-0">
1252
+ {sectionproperties.storeinfostyle == 'Style 1' && (
1253
+ <div class="row m-0 w-100">
1254
+ {sectionproperties.productInformationType == 'Product/Service Information' && sectionproperties.showstoreinfo1 == 'Show' && (
1255
+ <div className={productinfo_cssstyles.storeinfobtn + ' col-lg-12 p-0 w-100 d-flex align-items-center mb-4 '}>
1256
+ <div class={productinfo_cssstyles.iconContainer}>
1257
+ <i className="h-100 d-flex align-items-center justify-content-center">
1258
+ <FaShippingFast size={20} />
1259
+ </i>
1260
+ </div>
1261
+ <div className="col-lg-9 col-md-9 col-sm-9 d-flex justofy-content-start flex-column">
1262
+ <p
1263
+ className={productinfo_cssstyles.storeInfo + ' m-0 p-0 wordbreak '}
1264
+ style={{
1265
+ textAlign: langdetect == 'en' ? 'left' : 'right',
1266
+ }}
1267
+ >
1268
+ {langdetect == 'en' ? sectionproperties.otherinfotitle1en : sectionproperties.otherinfotitle1ar}
1269
+ </p>
1270
+ <p
1271
+ className={productinfo_cssstyles.storeInfoContent + ' m-0 p-0 wordbreak '}
1272
+ style={{
1273
+ textAlign: langdetect == 'en' ? 'left' : 'right',
1274
+ }}
1275
+ >
1276
+ {langdetect == 'en' ? sectionproperties.otherinfodesc1en : sectionproperties.otherinfodesc1ar}
1277
+ </p>
1278
+ </div>
1279
+ </div>
1280
+ )}
1281
+ {sectionproperties.productInformationType == 'Product/Service Information' && sectionproperties.showstoreinfo2 == 'Show' && (
1282
+ <div className={productinfo_cssstyles.storeinfobtn + ' col-lg-12 p-0 d-flex align-items-center mb-4 '}>
1283
+ <div class={productinfo_cssstyles.iconContainer}>
1284
+ <i className="h-100 d-flex align-items-center justify-content-center">
1285
+ <RiSecurePaymentLine size={20} />
1286
+ </i>
1287
+ </div>
1288
+ <div className="col-lg-9 col-md-9 col-sm-9 d-flex justofy-content-start flex-column">
1289
+ <p
1290
+ className={productinfo_cssstyles.storeInfo + ' m-0 p-0 wordbreak '}
1291
+ style={{
1292
+ textAlign: langdetect == 'en' ? 'left' : 'right',
1293
+ }}
1294
+ >
1295
+ {langdetect == 'en' ? sectionproperties.otherinfotitle2en : sectionproperties.otherinfotitle2ar}
1296
+ </p>
1297
+ <p
1298
+ className={productinfo_cssstyles.storeInfoContent + ' m-0 p-0 wordbreak '}
1299
+ style={{
1300
+ textAlign: langdetect == 'en' ? 'left' : 'right',
1301
+ }}
1302
+ >
1303
+ {langdetect == 'en' ? sectionproperties.otherinfodesc2en : sectionproperties.otherinfodesc2ar}
1304
+ </p>
1305
+ </div>
1306
+ </div>
1307
+ )}
1308
+ {sectionproperties.productInformationType == 'Product/Service Information' &&
1309
+ sectionproperties.showpricinglist == 'Show' &&
1310
+ fetchProductInfoQueryContext?.data?.data?.productinfo?.productquantityoptions?.length != 0 && <div class="col-lg-12 p-0 mb-4">{getQuantityCondition()}</div>}
1311
+ {sectionproperties.showfooterphonenumber == 'Show' && (
1312
+ <div
1313
+ className={`${productinfo_cssstyles.storeinfobtn} ${productinfo_cssstyles.storeinfocontainer}` + ' mb-4 col-lg-12 p-0 d-flex align-items-center cursor-pointer '}
1314
+ onClick={() => {
1315
+ window.open('tel:' + authdetailsContext?.CuContactphonenumber, '_blank');
1316
+ }}
1317
+ >
1318
+ <div class={productinfo_cssstyles.iconContainer + ' iconContainer '}>
1319
+ <i className="h-100 d-flex align-items-center justify-content-center">
1320
+ <HiOutlinePhone size={20} />
1321
+ </i>
1322
+ </div>
1323
+ <div className="col-lg-9 col-md-9 col-sm-9 d-flex justofy-content-start flex-column">
1324
+ <p
1325
+ className={productinfo_cssstyles.storeInfo + ' m-0 p-0 wordbreak '}
1326
+ style={{
1327
+ textAlign: langdetect == 'en' ? 'left' : 'right',
1328
+ }}
1329
+ >
1330
+ {langdetect == 'en' ? sectionproperties.phonetitle_en : sectionproperties.phonetitle_ar}
1331
+ </p>
1332
+ <p
1333
+ className={productinfo_cssstyles.storeInfoContent + ' storeInfoContent m-0 p-0 wordbreak '}
1334
+ style={{
1335
+ textAlign: langdetect == 'en' ? 'left' : 'right',
1336
+ }}
1337
+ >
1338
+ {authdetailsContext?.CuContactphonenumber}
1339
+ </p>
1340
+ </div>
1341
+ </div>
1342
+ )}
1343
+ {sectionproperties.showfooteremail == 'Show' && (
1344
+ <div
1345
+ className={`${productinfo_cssstyles.storeinfobtn} ${productinfo_cssstyles.storeinfocontainer}` + ' mb-4 col-lg-12 p-0 d-flex align-items-center cursor-pointer '}
1346
+ onClick={() => {
1347
+ window.open('mailto:' + authdetailsContext?.instinfo?.contactinfo?.email, '_self');
1348
+ }}
1349
+ >
1350
+ <div class={productinfo_cssstyles.iconContainer + ' iconContainer '}>
1351
+ <i className="h-100 d-flex align-items-center justify-content-center">
1352
+ <AiOutlineMail size={20} />
1353
+ </i>
1354
+ </div>
1355
+ <div className="col-lg-9 col-md-9 col-sm-9 d-flex justofy-content-start flex-column">
1356
+ <p
1357
+ className={productinfo_cssstyles.storeInfo + ' m-0 p-0 wordbreak '}
1358
+ style={{
1359
+ textAlign: langdetect == 'en' ? 'left' : 'right',
1360
+ }}
1361
+ >
1362
+ {langdetect == 'en' ? sectionproperties.emailtitle_en : sectionproperties.emailtitle_ar}
1363
+ </p>
1364
+ <p
1365
+ className={productinfo_cssstyles.storeInfoContent + ' storeInfoContent m-0 p-0 wordbreak '}
1366
+ style={{
1367
+ textAlign: langdetect == 'en' ? 'left' : 'right',
1368
+ }}
1369
+ >
1370
+ {authdetailsContext?.instinfo?.contactinfo?.email}
1371
+ </p>
1372
+ </div>
1373
+ </div>
1374
+ )}
1375
+ </div>
1376
+ )}
1377
+ {sectionproperties.storeinfostyle == 'Style 2' && (
1378
+ <div class="row m-0 w-100">
1379
+ {sectionproperties.showfooterphonenumber == 'Show' && authdetailsContext?.CuContactphonenumber != null && (
1380
+ <div class="col-lg-12 allcentered mb-2 p-sm-0">
1381
+ <button
1382
+ class={productinfo_cssstyles.storeinfobtn + ' allcentered '}
1383
+ onClick={() => {
1384
+ window.open('tel:' + authdetailsContext?.CuContactphonenumber, '_blank');
1385
+ }}
1386
+ >
1387
+ <p class="m-0 p-0">{langdetect == 'en' ? sectionproperties.phonetitle_en : sectionproperties.phonetitle_ar}</p>
1388
+ </button>
1389
+ </div>
1390
+ )}
1391
+ {sectionproperties.showfooteremail == 'Show' && authdetailsContext?.instinfo?.contactinfo?.email != null && (
1392
+ <div class="col-lg-12 allcentered mb-2 p-sm-0">
1393
+ <button
1394
+ class={productinfo_cssstyles.storeinfobtn + ' allcentered '}
1395
+ onClick={() => {
1396
+ window.open('mailto:' + authdetailsContext?.instinfo?.contactinfo?.email, '_self');
1397
+ }}
1398
+ >
1399
+ <p class="m-0 p-0">{langdetect == 'en' ? sectionproperties.emailtitle_en : sectionproperties.emailtitle_ar}</p>
1400
+ </button>
1401
+ </div>
1402
+ )}
1403
+ {sectionproperties.showwhatsapp == 'Show' && authdetailsContext?.instinfo?.whatsappnumber != null && (
1404
+ <div class="col-lg-12 allcentered mb-2 p-sm-0">
1405
+ <button
1406
+ class={productinfo_cssstyles.storeinfobtn + ' allcentered '}
1407
+ onClick={() => {
1408
+ if (authdetailsContext?.instinfo?.whatsappnumber != null) {
1409
+ window.open('https://api.whatsapp.com/send?phone=' + authdetailsContext?.instinfo?.whatsappnumber, '_blank');
1410
+ }
1411
+ }}
1412
+ >
1413
+ <p class="m-0 p-0">{langdetect == 'en' ? sectionproperties.whatsapptitle_en : sectionproperties.whatsapptitle_ar}</p>
1414
+ </button>
1415
+ </div>
1416
+ )}
1417
+ </div>
1418
+ )}
1419
+ </div>
1420
+ </div>
1421
+ );
1422
+ };
1423
+ const isproductofstock = () => {
1424
+ var isproductoutofstock = false;
1425
+ var variantindexcompletedloc = variantindexcompleted?.toString();
1426
+ var currquant = 0;
1427
+ if (fetchProductInfoQueryContext.isSuccess) {
1428
+ if (fetchProductInfoQueryContext?.data?.data?.productinfo?.quantavailtype == 'limit') {
1429
+ if (fetchProductInfoQueryContext?.data?.data?.productinfo?.hasvariants == 1) {
1430
+ if (variantindexcompletedloc != undefined && variantindexcompletedloc != null && variantindexcompletedloc != '') {
1431
+ if (isoutofstock) {
1432
+ isproductoutofstock = true;
1433
+ } else {
1434
+ isproductoutofstock = false;
1435
+ }
1436
+ }
1437
+ } else {
1438
+ if (fetchProductInfoQueryContext?.data?.data?.productinfo?.quantavailtype == 'limit') {
1439
+ if (parseFloat(fetchProductInfoQueryContext?.data?.data?.productinfo?.currentquantity) <= 0) {
1440
+ isproductoutofstock = true;
1441
+ currquant = fetchProductInfoQueryContext?.data?.data?.productinfo?.currentquantity;
1442
+ }
1443
+ }
1444
+ }
1445
+ }
1446
+ }
1447
+ return { isproductoutofstock: isproductoutofstock, currquant: currquant };
1448
+ };
1449
+ return (
1450
+ <div className={productinfo_cssstyles.containerstyles + ' row w-100 ml-0 mr-0 '}>
1451
+ {/* <h1>
1452
+ {isproductofstock()['isproductoutofstock']?.toString()} -- ff - {ProductInfoObj?.data?.productinfo?.name_en}
1453
+ </h1> */}
1454
+ {Object.keys(sectionproperties).length != 0 && (
1455
+ <div className="col-lg-12 p-0" style={{ minHeight: '80vh' }}>
1456
+ {fetchProductInfoQueryContextProps.isFetching && (
1457
+ <div className={'row ml-0 mr-0 w-100 px-5 py-5'}>
1458
+ <div class="col-lg-6 col-md-12 is-loading mb-md-4">
1459
+ <div
1460
+ class="image"
1461
+ style={{
1462
+ width: '100%',
1463
+ height: 400,
1464
+ }}
1465
+ ></div>
1466
+ </div>
1467
+ <div class="col-lg-6 col-md-12 mb-md-4">
1468
+ <p class="is-loading"></p>
1469
+ <p
1470
+ class="is-loading"
1471
+ style={{
1472
+ width: '40%',
1473
+ }}
1474
+ ></p>
1475
+ <p
1476
+ class="is-loading"
1477
+ style={{
1478
+ width: '40%',
1479
+ }}
1480
+ ></p>
1481
+ <p
1482
+ class="is-loading"
1483
+ style={{
1484
+ width: '40%',
1485
+ }}
1486
+ ></p>
1487
+ <p
1488
+ class="is-loading"
1489
+ style={{
1490
+ width: '40%',
1491
+ }}
1492
+ ></p>
1493
+ <p
1494
+ class="is-loading"
1495
+ style={{
1496
+ width: '40%',
1497
+ }}
1498
+ ></p>
1499
+ <p
1500
+ class="is-loading"
1501
+ style={{
1502
+ width: '40%',
1503
+ }}
1504
+ ></p>
1505
+ <p
1506
+ class="is-loading"
1507
+ style={{
1508
+ width: '40%',
1509
+ }}
1510
+ ></p>
1511
+ <p
1512
+ class="is-loading"
1513
+ style={{
1514
+ width: '40%',
1515
+ }}
1516
+ ></p>
1517
+ </div>
1518
+
1519
+ {/* <Messaging color="#ccc" width="10px" height="10px" duration="1s" /> */}
1520
+ </div>
1521
+ )}
1522
+ {!fetchProductInfoQueryContext.isFetching && fetchProductInfoQueryContext.isSuccess && fetchProductInfoQueryContext.data.data.productinfo != null && (
1523
+ <div
1524
+ className={sectionproperties.card_marginLeft != 0 ? ' row m-0 w-100 pl-lg-3 pr-lg-3 pl-md-4 pr-md-4 pl-sm-1 pr-sm-1 ' : ' row m-0 w-100 p-sm-0 '}
1525
+ style={{
1526
+ paddingLeft: props.srcfromprops == 'Productinfomodel' ? (langdetect == 'en' ? sectionproperties.card_marginLeft + 'px' : sectionproperties.card_marginRight + 'px') : 0,
1527
+ paddingRight:
1528
+ props.srcfromprops == 'Productinfomodel' ? (langdetect == 'en' ? sectionproperties.card_marginRight + 'px' : sectionproperties.card_marginLeft + 'px') : 0,
1529
+ }}
1530
+ >
1531
+ {fetchProductInfoQueryContext.data.data.productinfo.item_type == 'product' && (
1532
+ <Product_itemtype
1533
+ actions={{
1534
+ setisoutofstock: setisoutofstock,
1535
+ isoutofstock: isoutofstock,
1536
+ returnpolicyobj: returnpolicyobj,
1537
+ langdetect: langdetect,
1538
+ lang: lang,
1539
+ srcfromprops: props.srcfromprops,
1540
+ returnpolicyobj: returnpolicyobj,
1541
+ productinfo_cssstyles: productinfo_cssstyles,
1542
+ addtocartfunc: addtocartfunc,
1543
+ selectproductoptionvalue: selectproductoptionvalue,
1544
+ clearchoosenvaluesbutkeepcurrentvalue: clearchoosenvaluesbutkeepcurrentvalue,
1545
+ productimagesarray: productimagesarray,
1546
+ fetchProductInfoQueryContext: fetchProductInfoQueryContext,
1547
+ ProductInfoObj: ProductInfoObj,
1548
+ sectionproperties: sectionproperties,
1549
+ addtocardpayloadobj: addtocardpayloadobj,
1550
+ setaddtocardpayloadobj: setaddtocardpayloadobj,
1551
+ routingcountext: routingcountext,
1552
+ AddtoCartMutationContext: AddtoCartMutationContext,
1553
+ authdetailsContext: authdetailsContext,
1554
+ addtofavoritescontext: addtofavoritescontext,
1555
+ variantindexcompleted: variantindexcompleted,
1556
+ StaticPagesLinksContext: StaticPagesLinksContext,
1557
+ NotificationManager: NotificationManager,
1558
+ GeneralAPIMutationContext: GeneralAPIMutationContext,
1559
+ quantityconditionfoundobjprops: quantityconditionfoundobj,
1560
+ relatedproducts: relatedproducts,
1561
+ getprice_discountpriceprops: getprice_discountpriceprops,
1562
+ StoreInfoprops: StoreInfo,
1563
+ currentshowingimageindex: currentshowingimageindex,
1564
+ setcurrentshowingimageindex: setcurrentshowingimageindex,
1565
+ templatepropcontext: templatepropcontext,
1566
+ ikimagecredcontext: ikimagecredcontext,
1567
+ variantindex: variantindex,
1568
+ setvariantindex: setvariantindex,
1569
+ variantsku: variantsku,
1570
+ variantvalueidentifier: variantvalueidentifier,
1571
+ }}
1572
+ />
1573
+ )}
1574
+ {fetchProductInfoQueryContext.data.data.productinfo.item_type == 'Article' && (
1575
+ <Article_itemtype
1576
+ actions={{
1577
+ setisoutofstock: setisoutofstock,
1578
+ isoutofstock: isoutofstock,
1579
+ returnpolicyobj: returnpolicyobj,
1580
+ langdetect: langdetect,
1581
+ lang: lang,
1582
+ srcfromprops: props.srcfromprops,
1583
+ returnpolicyobj: returnpolicyobj,
1584
+ productinfo_cssstyles: productinfo_cssstyles,
1585
+ addtocartfunc: addtocartfunc,
1586
+ selectproductoptionvalue: selectproductoptionvalue,
1587
+ clearchoosenvaluesbutkeepcurrentvalue: clearchoosenvaluesbutkeepcurrentvalue,
1588
+ productimagesarray: productimagesarray,
1589
+ fetchProductInfoQueryContext: fetchProductInfoQueryContext,
1590
+ ProductInfoObj: ProductInfoObj,
1591
+ sectionproperties: sectionproperties,
1592
+ addtocardpayloadobj: addtocardpayloadobj,
1593
+ setaddtocardpayloadobj: setaddtocardpayloadobj,
1594
+ routingcountext: routingcountext,
1595
+ AddtoCartMutationContext: AddtoCartMutationContext,
1596
+ authdetailsContext: authdetailsContext,
1597
+ addtofavoritescontext: addtofavoritescontext,
1598
+ variantindexcompleted: variantindexcompleted,
1599
+ StaticPagesLinksContext: StaticPagesLinksContext,
1600
+ NotificationManager: NotificationManager,
1601
+ GeneralAPIMutationContext: GeneralAPIMutationContext,
1602
+ quantityconditionfoundobjprops: quantityconditionfoundobj,
1603
+ relatedproducts: relatedproducts,
1604
+ getprice_discountpriceprops: getprice_discountpriceprops,
1605
+ StoreInfoprops: StoreInfo,
1606
+ currentshowingimageindex: currentshowingimageindex,
1607
+ setcurrentshowingimageindex: setcurrentshowingimageindex,
1608
+ templatepropcontext: templatepropcontext,
1609
+ ikimagecredcontext: ikimagecredcontext,
1610
+ variantindex: variantindex,
1611
+ setvariantindex: setvariantindex,
1612
+ variantsku: variantsku,
1613
+ variantvalueidentifier: variantvalueidentifier,
1614
+ }}
1615
+ />
1616
+ )}
1617
+ {fetchProductInfoQueryContext.data.data.productinfo.item_type == 'service' && (
1618
+ <Service_itemtype
1619
+ actions={{
1620
+ variantsku: variantsku,
1621
+ setisoutofstock: setisoutofstock,
1622
+ isoutofstock: isoutofstock,
1623
+ returnpolicyobj: returnpolicyobj,
1624
+ langdetect: langdetect,
1625
+ lang: lang,
1626
+ srcfromprops: props.srcfromprops,
1627
+ returnpolicyobj: returnpolicyobj,
1628
+ productinfo_cssstyles: productinfo_cssstyles,
1629
+ addtocartfunc: addtocartfunc,
1630
+ selectproductoptionvalue: selectproductoptionvalue,
1631
+ clearchoosenvaluesbutkeepcurrentvalue: clearchoosenvaluesbutkeepcurrentvalue,
1632
+ productimagesarray: productimagesarray,
1633
+ fetchProductInfoQueryContext: fetchProductInfoQueryContext,
1634
+ sectionproperties: sectionproperties,
1635
+ addtocardpayloadobj: addtocardpayloadobj,
1636
+ ProductInfoObj: ProductInfoObj,
1637
+ currentshowingimageindex: currentshowingimageindex,
1638
+ setcurrentshowingimageindex: setcurrentshowingimageindex,
1639
+ setaddtocardpayloadobj: setaddtocardpayloadobj,
1640
+ routingcountext: routingcountext,
1641
+ AddtoCartMutationContext: AddtoCartMutationContext,
1642
+ authdetailsContext: authdetailsContext,
1643
+ addtofavoritescontext: addtofavoritescontext,
1644
+ StaticPagesLinksContext: StaticPagesLinksContext,
1645
+ variantindexcompleted: variantindexcompleted,
1646
+ GeneralAPIMutationContext: GeneralAPIMutationContext,
1647
+ NotificationManager: NotificationManager,
1648
+ getprice_discountpriceprops: getprice_discountpriceprops,
1649
+ quantityconditionfoundobjprops: quantityconditionfoundobj,
1650
+ relatedproducts: relatedproducts,
1651
+ getQuantityCondition: getQuantityCondition,
1652
+ StoreInfoprops: StoreInfo,
1653
+ templatepropcontext: templatepropcontext,
1654
+ ikimagecredcontext: ikimagecredcontext,
1655
+ }}
1656
+ />
1657
+ )}
1658
+ {props.srcfromprops != 'templatedraftrouter' && (
1659
+ <div
1660
+ className={sectionproperties.card_marginLeft != 0 ? ' col-lg-12 p-0 pl-lg-3 pr-lg-3 pl-md-4 pr-md-4 pl-sm-1 pr-sm-1 ' : ' col-lg-12 p-sm-0 '}
1661
+ style={{
1662
+ paddingLeft:
1663
+ props.srcfromprops == 'Productinfomodel' ? (langdetect == 'en' ? sectionproperties.card_marginLeft + 'px' : sectionproperties.card_marginRight + 'px') : 0,
1664
+ paddingRight:
1665
+ props.srcfromprops == 'Productinfomodel' ? (langdetect == 'en' ? sectionproperties.card_marginRight + 'px' : sectionproperties.card_marginLeft + 'px') : 0,
1666
+ display:
1667
+ sectionproperties.showfirstpolicy == 'Hide' &&
1668
+ sectionproperties.showsecondpolicy == 'Hide' &&
1669
+ fetchProductInfoQueryContext?.data?.data?.productinfo?.product_videos?.length != 0
1670
+ ? 'flex'
1671
+ : fetchProductInfoQueryContext?.data?.data?.productinfo?.productcanrate == 1
1672
+ ? 'flex'
1673
+ : sectionproperties.showfirstpolicy == 'Hide' && sectionproperties.showsecondpolicy == 'Hide'
1674
+ ? 'none'
1675
+ : sectionproperties.showfirstpolicy == 'Hide' &&
1676
+ sectionproperties.showsecondpolicy == 'Hide' &&
1677
+ sectionproperties.descriptionposition != 'Bottom' &&
1678
+ fetchProductInfoQueryContext?.data?.data?.productinfo?.product_videos?.length == 0
1679
+ ? 'none'
1680
+ : 'flex',
1681
+ }}
1682
+ >
1683
+ <div
1684
+ class={`${productinfo_cssstyles.cardcontainer}` + ' ml-0 mr-0 w-100 pl-md-3 pr-md-3 px-1025-1 '}
1685
+ style={{
1686
+ paddingLeft: sectionproperties.tabspaddinghorizontal + 'px',
1687
+ paddingRight: sectionproperties.tabspaddinghorizontal + 'px',
1688
+ marginBottom: sectionproperties.tabsmb + 'px',
1689
+ paddingTop: sectionproperties.tabsPt + 'px',
1690
+ paddingBottom: sectionproperties.tabsPb + 'px',
1691
+ }}
1692
+ >
1693
+ {sectionproperties.tabsfullwidth == 'Full Width' && (
1694
+ <Box>
1695
+ <Tabs
1696
+ value={tabIndex}
1697
+ onChange={handleTabChange}
1698
+ scrollButtons="auto"
1699
+ TabIndicatorProps={{
1700
+ style: {
1701
+ background: sectionproperties.activetabbordercolor,
1702
+ // right: sectionproperties.showfirstpolicy == 'Hide' ? 0 : sectionproperties.showsecondpolicy == 'Hide' ? 0 : '',
1703
+ // margin: sectionproperties.showfirstpolicy == 'Hide' ? 'auto' : sectionproperties.showsecondpolicy == 'Hide' ? 'auto' : '',
1704
+ },
1705
+ }}
1706
+ sx={{
1707
+ '& button': {
1708
+ color: sectionproperties.tabtextcolor,
1709
+ fontWeight: sectionproperties.tabtextfontweight,
1710
+ background: sectionproperties.tabcontainerbgcolor,
1711
+ textTransform: sectionproperties.tabtexttexttransform,
1712
+ borderRadius: sectionproperties.tabcontainerborderradius + 'px',
1713
+ fontFamily: 'Poppins',
1714
+ transition: '.3s',
1715
+ fontSize: sectionproperties.tabtextfontsize + 'px',
1716
+ },
1717
+ '& button:hover': {
1718
+ color: sectionproperties.tabscoloronhover,
1719
+ fontFamily: 'Poppins',
1720
+ transition: '.3s',
1721
+ },
1722
+ '& button.Mui-selected': {
1723
+ color: sectionproperties.tabtextactivecolor,
1724
+ background: sectionproperties.activetabbgcolor,
1725
+ fontFamily: 'Poppins',
1726
+ transition: '.3s',
1727
+ },
1728
+ }}
1729
+ variant={'fullWidth'}
1730
+ // tabsfullwidth
1731
+ >
1732
+ {sectionproperties.prodCatShow == 'Show' && sectionproperties.descriptionposition == 'Bottom' && (
1733
+ <Tab
1734
+ label={langdetect == 'en' ? sectionproperties.tabsdescEn : sectionproperties.tabsdescAr}
1735
+ onClick={() => {
1736
+ settabname('descriptiontab');
1737
+ }}
1738
+ />
1739
+ )}
1740
+ {sectionproperties.productInformationType == 'Product/Service Information' && sectionproperties.showfirstpolicy == 'Show' && (
1741
+ <Tab
1742
+ label={langdetect == 'en' ? returnpolicyobj('Shipping Policy')?.policypagename_en : returnpolicyobj('Shipping Policy')?.policypagename_ar}
1743
+ onClick={() => {
1744
+ settabname('shippingpolicytab');
1745
+ }}
1746
+ />
1747
+ )}
1748
+ {sectionproperties.productInformationType == 'Product/Service Information' && sectionproperties.showsecondpolicy == 'Show' && (
1749
+ <Tab
1750
+ label={langdetect == 'en' ? returnpolicyobj('Refund Policy')?.policypagename_en : returnpolicyobj('Refund Policy')?.policypagename_ar}
1751
+ onClick={() => {
1752
+ settabname('refundpolicytab');
1753
+ }}
1754
+ />
1755
+ )}
1756
+ {fetchProductInfoQueryContext?.data?.data?.productinfo?.product_videos?.length != 0 && (
1757
+ <Tab
1758
+ label={langdetect == 'en' ? sectionproperties.videostitleen : sectionproperties.videostitlear}
1759
+ onClick={() => {
1760
+ settabname('videostab');
1761
+ }}
1762
+ />
1763
+ )}
1764
+ {fetchProductInfoQueryContext?.data?.data?.productinfo?.productcanrate == 1 && (
1765
+ <Tab
1766
+ label={langdetect == 'en' ? 'Reviews' : 'التقييمات'}
1767
+ onClick={() => {
1768
+ settabname('reviewstab');
1769
+ }}
1770
+ />
1771
+ )}
1772
+ </Tabs>
1773
+ </Box>
1774
+ )}
1775
+ {sectionproperties.tabsfullwidth != 'Full Width' && (
1776
+ <Box>
1777
+ <Tabs
1778
+ value={tabIndex}
1779
+ onChange={handleTabChange}
1780
+ scrollButtons="auto"
1781
+ TabIndicatorProps={{
1782
+ style: {
1783
+ background: sectionproperties.activetabbordercolor,
1784
+ // right: sectionproperties.showfirstpolicy == 'Hide' ? 0 : sectionproperties.showsecondpolicy == 'Hide' ? 0 : '',
1785
+ // margin: sectionproperties.showfirstpolicy == 'Hide' ? 'auto' : sectionproperties.showsecondpolicy == 'Hide' ? 'auto' : '',
1786
+ },
1787
+ }}
1788
+ sx={{
1789
+ '& button': {
1790
+ color: sectionproperties.tabtextcolor,
1791
+ fontWeight: sectionproperties.tabtextfontweight,
1792
+ background: sectionproperties.tabcontainerbgcolor,
1793
+ textTransform: sectionproperties.tabtexttexttransform,
1794
+ borderRadius: sectionproperties.tabcontainerborderradius + 'px',
1795
+ fontFamily: 'Poppins',
1796
+ transition: '.3s',
1797
+ fontSize: sectionproperties.tabtextfontsize + 'px',
1798
+ },
1799
+ '& button:hover': {
1800
+ color: sectionproperties.tabscoloronhover,
1801
+ fontFamily: 'Poppins',
1802
+ transition: '.3s',
1803
+ },
1804
+ '& button.Mui-selected': {
1805
+ color: sectionproperties.tabtextactivecolor,
1806
+ background: sectionproperties.activetabbgcolor,
1807
+ fontFamily: 'Poppins',
1808
+ transition: '.3s',
1809
+ },
1810
+ }}
1811
+ >
1812
+ {sectionproperties.prodCatShow == 'Show' && sectionproperties.gallerystyle == 'Style 1' && (
1813
+ <Tab
1814
+ label={langdetect == 'en' ? sectionproperties.tabsdescEn : sectionproperties.tabsdescAr}
1815
+ onClick={() => {
1816
+ settabname('descriptiontab');
1817
+ }}
1818
+ />
1819
+ )}
1820
+ {sectionproperties.productInformationType == 'Product/Service Information' && sectionproperties.showfirstpolicy == 'Show' && (
1821
+ <Tab
1822
+ label={langdetect == 'en' ? returnpolicyobj('Shipping Policy')?.policypagename_en : returnpolicyobj('Shipping Policy')?.policypagename_ar}
1823
+ onClick={() => {
1824
+ settabname('shippingpolicytab');
1825
+ }}
1826
+ />
1827
+ )}
1828
+ {sectionproperties.productInformationType == 'Product/Service Information' && sectionproperties.showsecondpolicy == 'Show' && (
1829
+ <Tab
1830
+ label={langdetect == 'en' ? returnpolicyobj('Refund Policy')?.policypagename_en : returnpolicyobj('Refund Policy')?.policypagename_ar}
1831
+ onClick={() => {
1832
+ settabname('refundpolicytab');
1833
+ }}
1834
+ />
1835
+ )}
1836
+ {fetchProductInfoQueryContext?.data?.data?.productinfo?.product_videos?.length != 0 && (
1837
+ <Tab
1838
+ label={langdetect == 'en' ? 'Videos' : 'فيديوهات'}
1839
+ onClick={() => {
1840
+ settabname('videostab');
1841
+ }}
1842
+ />
1843
+ )}
1844
+ {fetchProductInfoQueryContext?.data?.data?.productinfo?.productcanrate == 1 && (
1845
+ <Tab
1846
+ label={langdetect == 'en' ? 'Reviews' : 'التقييمات'}
1847
+ onClick={() => {
1848
+ settabname('reviewstab');
1849
+ }}
1850
+ />
1851
+ )}
1852
+ </Tabs>
1853
+ </Box>
1854
+ )}
1855
+ <Box class="w-100 mt-5 mb-4">
1856
+ {tabname == 'descriptiontab' && sectionproperties.descriptionposition == 'Bottom' && (
1857
+ <DescriptionContent
1858
+ actions={{
1859
+ ...actions,
1860
+ productinfo_cssstyles: productinfo_cssstyles,
1861
+ sectionproperties: sectionproperties,
1862
+ }}
1863
+ />
1864
+ )}
1865
+ {tabname == 'shippingpolicytab' && (
1866
+ <div class="col-lg-12 pl-5 pr-5 p-md-0 w-100">
1867
+ <p
1868
+ className={' m-0 p-0 wordbreak '}
1869
+ style={{
1870
+ // lineClamp: 10,
1871
+ // WebkitLineClamp: 10,
1872
+ textAlign: langdetect == 'en' ? 'left' : 'right',
1873
+ }}
1874
+ dangerouslySetInnerHTML={{
1875
+ __html: langdetect == 'en' ? returnpolicyobj('Shipping Policy')?.policycontent_en : returnpolicyobj('Shipping Policy')?.policycontent_ar,
1876
+ }}
1877
+ ></p>
1878
+ </div>
1879
+ )}
1880
+ {tabname == 'refundpolicytab' && (
1881
+ <div class="col-lg-12 p-0 w-100 pl-5 pr-5 p-md-0">
1882
+ <p
1883
+ className={' m-0 p-0 wordbreak '}
1884
+ style={{
1885
+ // lineClamp: 10,
1886
+ // WebkitLineClamp: 10,
1887
+ textAlign: langdetect == 'en' ? 'left' : 'right',
1888
+ }}
1889
+ dangerouslySetInnerHTML={{
1890
+ __html: langdetect == 'en' ? returnpolicyobj('Refund Policy')?.policycontent_en : returnpolicyobj('Refund Policy')?.policycontent_ar,
1891
+ }}
1892
+ ></p>
1893
+ </div>
1894
+ )}
1895
+ {tabname == 'videostab' && (
1896
+ <div class="row m-0 w-100 w-100 pl-5 pr-5 p-md-0">
1897
+ {productVideos.map((item, index) => {
1898
+ return (
1899
+ <div
1900
+ className="col-lg-4 col-md-6 col-sm-12 mb-4"
1901
+ style={{
1902
+ height: 400,
1903
+ }}
1904
+ >
1905
+ <ReactPlayer url={item.videourl} height={'100%'} width={'100%'} playing={false} controls={true} loop={true} muted={true} />
1906
+ </div>
1907
+ );
1908
+ })}
1909
+ </div>
1910
+ )}
1911
+ {tabname == 'reviewstab' && (
1912
+ <div class="col-lg-12 p-0 w-100 pl-5 pr-5 p-md-0">
1913
+ <ProductReviews
1914
+ actions={{
1915
+ ...actions,
1916
+ productinfo_cssstyles: productinfo_cssstyles,
1917
+ sectionproperties: sectionproperties,
1918
+ }}
1919
+ />
1920
+ </div>
1921
+ )}
1922
+ </Box>
1923
+ </div>
1924
+ </div>
1925
+ )}
1926
+
1927
+ {props.srcfromprops != 'templatedraftrouter' && (
1928
+ <div
1929
+ className={sectionproperties.card_marginLeft != 0 ? ' col-lg-12 pl-lg-3 pr-lg-3 pl-md-4 pr-md-4 pl-sm-1 pr-sm-1 ' : ' col-lg-12 p-sm-0 '}
1930
+ style={{
1931
+ paddingLeft:
1932
+ props.srcfromprops == 'Productinfomodel' ? (langdetect == 'en' ? sectionproperties.card_marginLeft + 'px' : sectionproperties.card_marginRight + 'px') : 0,
1933
+ paddingRight:
1934
+ props.srcfromprops == 'Productinfomodel' ? (langdetect == 'en' ? sectionproperties.card_marginRight + 'px' : sectionproperties.card_marginLeft + 'px') : 0,
1935
+ }}
1936
+ >
1937
+ {relatedproducts()}
1938
+ </div>
1939
+ )}
1940
+ </div>
1941
+ )}
1942
+ </div>
1943
+ )}
1944
+ </div>
1945
+ );
1946
+ };
1947
+ export default Productinfo;