tabexseriescomponents 0.0.706 → 0.0.708

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