tabexseriescomponents 0.2.1280 → 0.2.1283

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 (389) hide show
  1. package/dist/index.cjs.js +40 -258
  2. package/dist/index.esm.js +40 -258
  3. package/dist/index.umd.js +40 -258
  4. package/package.json +1 -1
  5. package/srcbefore27-11/Contexts/LanguageContext.jsx +0 -408
  6. package/srcbefore27-11/Contexts/ProductsCardsSectionContext.jsx +0 -36
  7. package/srcbefore27-11/Imagekitconfig copy.jsx +0 -46
  8. package/srcbefore27-11/Imagekitconfig.jsx +0 -178
  9. package/srcbefore27-11/StylesJS/Customstyles.js +0 -456
  10. package/srcbefore27-11/TabexComponents/Cards/CTAProductCard/CTAProductCard.jsx +0 -538
  11. package/srcbefore27-11/TabexComponents/Cards/Card20/Card20.jsx +0 -299
  12. package/srcbefore27-11/TabexComponents/Cards/Card21/Card21.jsx +0 -388
  13. package/srcbefore27-11/TabexComponents/Cards/Card22/Card22.jsx +0 -288
  14. package/srcbefore27-11/TabexComponents/Cards/Card23/Card23 copy.jsx +0 -1630
  15. package/srcbefore27-11/TabexComponents/Cards/Card23/Card23.jsx +0 -733
  16. package/srcbefore27-11/TabexComponents/Cards/CardAll/CardAll.jsx +0 -453
  17. package/srcbefore27-11/TabexComponents/Cards/CardBadgeSlideFromTop/CardBadgeSlideFromTop.jsx +0 -394
  18. package/srcbefore27-11/TabexComponents/Cards/CardWithTextOnly/CardWithTextOnly.jsx +0 -70
  19. package/srcbefore27-11/TabexComponents/Cards/Cardwithdetailsshowonhover/Cardwithdetailsshowonhover.jsx +0 -1074
  20. package/srcbefore27-11/TabexComponents/Cards/CategoryCardTextOnImage/CategoryCardTextOnImage.jsx +0 -211
  21. package/srcbefore27-11/TabexComponents/Cards/CategoryCardwithhoveraction/CategoryCardwithhoveraction.jsx +0 -293
  22. package/srcbefore27-11/TabexComponents/Cards/Categorycard_details_onhover/Categorycard_details_onhover.jsx +0 -512
  23. package/srcbefore27-11/TabexComponents/Cards/Categorycard_details_onhover copy/Categorycard_details_onhover.jsx +0 -513
  24. package/srcbefore27-11/TabexComponents/Cards/Categorycard_fullimage/Categorycard_fullimage.jsx +0 -235
  25. package/srcbefore27-11/TabexComponents/Cards/Categorycard_slidebgscaled/Categorycard_slidebgscaled.jsx +0 -199
  26. package/srcbefore27-11/TabexComponents/Cards/Categorycard_with_trianglebg/Categorycard_with_trianglebg.jsx +0 -182
  27. package/srcbefore27-11/TabexComponents/Cards/Categorycard_with_twolinestransition/Categorycard_with_twolinestransition.jsx +0 -184
  28. package/srcbefore27-11/TabexComponents/Cards/Categorycard_withshapes/Categorycard_withshapes.jsx +0 -161
  29. package/srcbefore27-11/TabexComponents/Cards/Categorycard_withtext/Categorycard_withtext.jsx +0 -208
  30. package/srcbefore27-11/TabexComponents/Cards/CircleCardWithVariants/CircleCardWithVariants.jsx +0 -560
  31. package/srcbefore27-11/TabexComponents/Cards/Classiccategorycard/Classiccategorycard copy.jsx +0 -145
  32. package/srcbefore27-11/TabexComponents/Cards/Classiccategorycard/Classiccategorycard.jsx +0 -145
  33. package/srcbefore27-11/TabexComponents/Cards/Classiccategorycard/ClassiccategorycardOriginal.jsx +0 -142
  34. package/srcbefore27-11/TabexComponents/Cards/HorizontalCategoryCard/HorizontalCategoryCard.jsx +0 -193
  35. package/srcbefore27-11/TabexComponents/Cards/Horizontalcard/Horizontalcard.jsx +0 -605
  36. package/srcbefore27-11/TabexComponents/Cards/MenuCard/MenuCard.jsx +0 -817
  37. package/srcbefore27-11/TabexComponents/Cards/ModernCardWithQuantityButton/ModernCardWithQuantityButton.jsx +0 -468
  38. package/srcbefore27-11/TabexComponents/Cards/ModernProductCard/ModernProductCard.jsx +0 -593
  39. package/srcbefore27-11/TabexComponents/Cards/Moderncategorycard/Moderncategorycard.jsx +0 -208
  40. package/srcbefore27-11/TabexComponents/Cards/NewProductcard/NewProductcard copy.jsx +0 -497
  41. package/srcbefore27-11/TabexComponents/Cards/NewProductcard/NewProductcard.jsx +0 -512
  42. package/srcbefore27-11/TabexComponents/Cards/ProductCardWithTextOnImage/ProductCardWithTextOnImage.jsx +0 -304
  43. package/srcbefore27-11/TabexComponents/Cards/Productcard6/Productcard6.jsx +0 -257
  44. package/srcbefore27-11/TabexComponents/Cards/Productcard7/Productcard7.jsx +0 -277
  45. package/srcbefore27-11/TabexComponents/Cards/Productcard_animatedbuttons/Productcard_animatedbuttons.jsx +0 -352
  46. package/srcbefore27-11/TabexComponents/Cards/Productcard_with_circularbg/Productcard_with_circularbg.jsx +0 -291
  47. package/srcbefore27-11/TabexComponents/Cards/Productcard_with_circularhover/Productcard_with_circularhover.jsx +0 -315
  48. package/srcbefore27-11/TabexComponents/Cards/Productcard_with_slideanimation/Productcard_with_slideanimation.jsx +0 -327
  49. package/srcbefore27-11/TabexComponents/Cards/Productcard_with_variants/Productcard_with_variants copy.jsx +0 -408
  50. package/srcbefore27-11/TabexComponents/Cards/Productcard_with_variants/Productcard_with_variants.jsx +0 -528
  51. package/srcbefore27-11/TabexComponents/Cards/Productcard_with_zoominonhover/Productcard_with_zoominonhover.jsx +0 -731
  52. package/srcbefore27-11/TabexComponents/Cards/Productcarddefault/Productcarddefault.jsx +0 -275
  53. package/srcbefore27-11/TabexComponents/Cards/Productccard_with_imageontopleft/Productccard_with_imageontopleft.jsx +0 -286
  54. package/srcbefore27-11/TabexComponents/Cards/Prouductcard_with_zoomhover/Prouductcard_with_zoomhover.jsx +0 -138
  55. package/srcbefore27-11/TabexComponents/Cards/QuantityButtonBasedProductCard/QuantityButtonBasedProductCard.jsx +0 -611
  56. package/srcbefore27-11/TabexComponents/Cards/ServiceCard/ServiceCard.jsx +0 -600
  57. package/srcbefore27-11/TabexComponents/Cards/Simplecategorycardwithtextbelow/Simplecategorycardwithtextbelow.jsx +0 -225
  58. package/srcbefore27-11/TabexComponents/Cards/Simpleproductcard/Simpleproductcard copy 2.jsx +0 -525
  59. package/srcbefore27-11/TabexComponents/Cards/Simpleproductcard/Simpleproductcard copy.jsx +0 -2321
  60. package/srcbefore27-11/TabexComponents/Cards/Simpleproductcard/Simpleproductcard.jsx +0 -1311
  61. package/srcbefore27-11/TabexComponents/Cards/Simpleproductcard/Simpleproductcardlastversion15-9.jsx +0 -1292
  62. package/srcbefore27-11/TabexComponents/Cards/StylishProductCard/StylishProductCard.jsx +0 -337
  63. package/srcbefore27-11/TabexComponents/Cards/TwoWayServiceSectionWithImage/TwoWayServiceSectionWithImage.jsx +0 -347
  64. package/srcbefore27-11/TabexComponents/Cards/UpSlideEffectCard/UpSlideEffectCard.jsx +0 -605
  65. package/srcbefore27-11/TabexComponents/Cards/UserCardWithSocialMediaOnHover/UserCardWithSocialMediaOnHover.jsx +0 -185
  66. package/srcbefore27-11/TabexComponents/Cards/Variants_J_Cards/Variants_J_Cards.jsx +0 -660
  67. package/srcbefore27-11/TabexComponents/Footer/Allinonefooter/Allinonefooter.jsx +0 -759
  68. package/srcbefore27-11/TabexComponents/Footer/Footer1/Footer1.jsx +0 -551
  69. package/srcbefore27-11/TabexComponents/Footer/Footer2/Footer2.jsx +0 -731
  70. package/srcbefore27-11/TabexComponents/Footer/Footer3/Footer3.jsx +0 -414
  71. package/srcbefore27-11/TabexComponents/Footer/Footer4/Footer4.jsx +0 -466
  72. package/srcbefore27-11/TabexComponents/Footer/Footer5/Footer5.jsx +0 -776
  73. package/srcbefore27-11/TabexComponents/Footer/Footer6/Footer6.jsx +0 -290
  74. package/srcbefore27-11/TabexComponents/Footer/Footer7/Footer7.jsx +0 -430
  75. package/srcbefore27-11/TabexComponents/Footer/Footer8/Footer8 copy.jsx +0 -1970
  76. package/srcbefore27-11/TabexComponents/Footer/Footer8/Footer8.jsx +0 -2015
  77. package/srcbefore27-11/TabexComponents/Footer/FooterWithThreeColumns/FooterWithThreeColumns.jsx +0 -330
  78. package/srcbefore27-11/TabexComponents/Footer/ModernFooter/ModernFooter.jsx +0 -582
  79. package/srcbefore27-11/TabexComponents/Footer/Newsletterfooter/Newsletterfooter.jsx +0 -1165
  80. package/srcbefore27-11/TabexComponents/Footer/Newsletterincenter/Newsletterincenter.jsx +0 -646
  81. package/srcbefore27-11/TabexComponents/Footer/PrivacyPolicy/PrivacyPolicy.jsx +0 -110
  82. package/srcbefore27-11/TabexComponents/Footer/Simplefooter/Simplefooter.jsx +0 -332
  83. package/srcbefore27-11/TabexComponents/Generalfiles/images/egyptflag.png +0 -0
  84. package/srcbefore27-11/TabexComponents/Generalfiles/images/noimage.png +0 -0
  85. package/srcbefore27-11/TabexComponents/Generalfiles/images/payment/cod.png +0 -0
  86. package/srcbefore27-11/TabexComponents/Generalfiles/images/payment/fawry.png +0 -0
  87. package/srcbefore27-11/TabexComponents/Generalfiles/images/payment/payment.png +0 -0
  88. package/srcbefore27-11/TabexComponents/Generalfiles/images/payment/paymob.png +0 -0
  89. package/srcbefore27-11/TabexComponents/Generalfiles/images/payment/paypal.png +0 -0
  90. package/srcbefore27-11/TabexComponents/Generalfiles/images/payment/visa.png +0 -0
  91. package/srcbefore27-11/TabexComponents/Generalfiles/images/shoppingcart.png +0 -0
  92. package/srcbefore27-11/TabexComponents/Generalfiles/images/tabexlogo.png +0 -0
  93. package/srcbefore27-11/TabexComponents/Generalfiles/images/unknownmaleuser.png +0 -0
  94. package/srcbefore27-11/TabexComponents/Generalfiles/images/usflag.png +0 -0
  95. package/srcbefore27-11/TabexComponents/Generalfiles/images/whatsapp.png +0 -0
  96. package/srcbefore27-11/TabexComponents/Headers/CTAHeader/CTAHeader.jsx +0 -1264
  97. package/srcbefore27-11/TabexComponents/Headers/CategoriesComponent/CategoriesComponent.jsx +0 -375
  98. package/srcbefore27-11/TabexComponents/Headers/CategoryFeaturingHeader/CategoryFeaturingHeader.jsx +0 -1056
  99. package/srcbefore27-11/TabexComponents/Headers/CenteredLogoHeaderWithSlider/CenteredLogoHeaderWithSlider.jsx +0 -1498
  100. package/srcbefore27-11/TabexComponents/Headers/ClassicHeader/ClassicHeader.jsx +0 -1289
  101. package/srcbefore27-11/TabexComponents/Headers/DownloadApp/DownloadApp.jsx +0 -76
  102. package/srcbefore27-11/TabexComponents/Headers/ElegantHeader/ElegantHeader.jsx +0 -907
  103. package/srcbefore27-11/TabexComponents/Headers/FloatingIcons/FloatingIcons.jsx +0 -358
  104. package/srcbefore27-11/TabexComponents/Headers/Gotoheader/Gotoheader.jsx +0 -875
  105. package/srcbefore27-11/TabexComponents/Headers/Header4/Header4.jsx +0 -622
  106. package/srcbefore27-11/TabexComponents/Headers/Header8/Header8 copy.jsx +0 -1026
  107. package/srcbefore27-11/TabexComponents/Headers/Header8/Header8.jsx +0 -3414
  108. package/srcbefore27-11/TabexComponents/Headers/HeaderRestaurant/HeaderRestaurant.jsx +0 -777
  109. package/srcbefore27-11/TabexComponents/Headers/HeaderWithAdSlider/HeaderWithAdSlider.jsx +0 -933
  110. package/srcbefore27-11/TabexComponents/Headers/HeaderWithSearchOnCenter/HeaderWithSearchOnCenter.jsx +0 -710
  111. package/srcbefore27-11/TabexComponents/Headers/HeaderWithUtilityBar/HeaderWithUtilityBar.jsx +0 -902
  112. package/srcbefore27-11/TabexComponents/Headers/Header_threesectionslogocentered/Header_threesectionslogocentered.jsx +0 -1347
  113. package/srcbefore27-11/TabexComponents/Headers/Headerresponsive/Headerresponsive.jsx +0 -1566
  114. package/srcbefore27-11/TabexComponents/Headers/Headerresponsive/Headerresponsive11-1.jsx +0 -1201
  115. package/srcbefore27-11/TabexComponents/Headers/Headerresponsive/HeaderresponsiveOriginal.jsx +0 -990
  116. package/srcbefore27-11/TabexComponents/Headers/Headerresponsive/HeaderresponsiveStyle2 copy.jsx +0 -1639
  117. package/srcbefore27-11/TabexComponents/Headers/Headerresponsive/HeaderresponsiveStyle2.jsx +0 -7163
  118. package/srcbefore27-11/TabexComponents/Headers/Headerresponsive/Headerresponsivenew.jsx +0 -1327
  119. package/srcbefore27-11/TabexComponents/Headers/HeaderwithContactinfo/HeaderwithContactinfo.jsx +0 -941
  120. package/srcbefore27-11/TabexComponents/Headers/MarqueeHeader/MarqueeHeader.jsx +0 -80
  121. package/srcbefore27-11/TabexComponents/Headers/Minimalheader/Minimalheader.jsx +0 -846
  122. package/srcbefore27-11/TabexComponents/Headers/Modernheader/Modernheader.jsx +0 -1198
  123. package/srcbefore27-11/TabexComponents/Headers/ParentCollectionsComponent/ParentCollectionsComponent.jsx +0 -385
  124. package/srcbefore27-11/TabexComponents/Headers/SearchCenteredHeader/SearchCenteredHeader.jsx +0 -784
  125. package/srcbefore27-11/TabexComponents/Headers/SearchFocusedHeader/SearchFocusedHeader.jsx +0 -1186
  126. package/srcbefore27-11/TabexComponents/Headers/Simpleheader/Simpleheader.jsx +0 -3692
  127. package/srcbefore27-11/TabexComponents/Headers/SocialMediaSection/SocialMediaSection.jsx +0 -266
  128. package/srcbefore27-11/TabexComponents/Headers/StylishHeader/StylishHeader.jsx +0 -860
  129. package/srcbefore27-11/TabexComponents/Headers/Subheader/Subheader copy.jsx +0 -950
  130. package/srcbefore27-11/TabexComponents/Headers/Subheader/Subheader.jsx +0 -1052
  131. package/srcbefore27-11/TabexComponents/Headers/Subheader/Subheader13-3.jsx +0 -685
  132. package/srcbefore27-11/TabexComponents/Headers/Subheader/SubheaderOriginal.jsx +0 -517
  133. package/srcbefore27-11/TabexComponents/Headers/Subheader/Subheadernew.jsx +0 -555
  134. package/srcbefore27-11/TabexComponents/Headers/SubheaderDropdown/SubheaderDropdown.jsx +0 -610
  135. package/srcbefore27-11/TabexComponents/Headers/ThreeTieredHeader/ThreeTieredHeader.jsx +0 -1049
  136. package/srcbefore27-11/TabexComponents/Headers/TwoTieredHeader/TwoTieredHeader.jsx +0 -1095
  137. package/srcbefore27-11/TabexComponents/Headers/TwoTieredWithCenteredLogoHeader/TwoTieredWithCenteredLogoHeader.jsx +0 -979
  138. package/srcbefore27-11/TabexComponents/Sections/BackgroundImages/BacgroundThreeImageWithCategories/BacgroundThreeImageWithCategories.jsx +0 -533
  139. package/srcbefore27-11/TabexComponents/Sections/BackgroundImages/BackgroundFiveImageStructure/BackgroundFiveImageStructure.jsx +0 -338
  140. package/srcbefore27-11/TabexComponents/Sections/BackgroundImages/BackgroundImageWithTopContent/BackgroundImageWithTopContent.jsx +0 -872
  141. package/srcbefore27-11/TabexComponents/Sections/BackgroundImages/BackgroundImageWithTopContent/BackgroundImageWithTopContentrecent.jsx +0 -895
  142. package/srcbefore27-11/TabexComponents/Sections/BackgroundImages/BackgroundSectionWithServicesCards/BackgroundSectionWithServicesCards.jsx +0 -302
  143. package/srcbefore27-11/TabexComponents/Sections/BackgroundImages/Backgroundimage1/Backgroundimage1.jsx +0 -314
  144. package/srcbefore27-11/TabexComponents/Sections/BackgroundImages/Backgroundimage_with_toppill/Backgroundimage_with_toppill.jsx +0 -318
  145. package/srcbefore27-11/TabexComponents/Sections/BackgroundImages/BackgroundimageandTextsection/BackgroundimageandTextsection.jsx +0 -179
  146. package/srcbefore27-11/TabexComponents/Sections/BackgroundImages/Bgimagewithsearchbar/Bgimagewithsearchbar.jsx +0 -201
  147. package/srcbefore27-11/TabexComponents/Sections/BackgroundImages/CollapsableSection/CollapsableSection.jsx +0 -421
  148. package/srcbefore27-11/TabexComponents/Sections/BackgroundImages/DynamicForm/DynamicForm copy 2.jsx +0 -583
  149. package/srcbefore27-11/TabexComponents/Sections/BackgroundImages/DynamicForm/DynamicForm copy.jsx +0 -291
  150. package/srcbefore27-11/TabexComponents/Sections/BackgroundImages/DynamicForm/DynamicForm.jsx +0 -822
  151. package/srcbefore27-11/TabexComponents/Sections/BackgroundImages/DynamicForm/DynamicForm19-8beforeattach.jsx +0 -789
  152. package/srcbefore27-11/TabexComponents/Sections/BackgroundImages/DynamicForm/DynamicForm22-7.jsx +0 -787
  153. package/srcbefore27-11/TabexComponents/Sections/BackgroundImages/DynamicForm/habal +0 -348
  154. package/srcbefore27-11/TabexComponents/Sections/BackgroundImages/Filterwithcategoriespcoll/Filterwithcategoriespcoll.jsx +0 -387
  155. package/srcbefore27-11/TabexComponents/Sections/BackgroundImages/FullVideoSection/FullVideoSection.jsx +0 -268
  156. package/srcbefore27-11/TabexComponents/Sections/BackgroundImages/MapsSection/MapsSection.jsx +0 -295
  157. package/srcbefore27-11/TabexComponents/Sections/BackgroundImages/PopupCountryComponent/PopupCountryComponent.jsx +0 -120
  158. package/srcbefore27-11/TabexComponents/Sections/BackgroundImages/Popupcomponent/Popupcomponent.jsx +0 -119
  159. package/srcbefore27-11/TabexComponents/Sections/BackgroundImages/Searchcomponent/Searchcomponent.jsx +0 -99
  160. package/srcbefore27-11/TabexComponents/Sections/BackgroundImages/Section_with_rightbgcont/Section_with_rightbgcont.jsx +0 -146
  161. package/srcbefore27-11/TabexComponents/Sections/BackgroundImages/TextSectionConnectToWA/TextSectionConnectToWA.jsx +0 -489
  162. package/srcbefore27-11/TabexComponents/Sections/BackgroundImages/Threebgimages/Threebgimages.jsx +0 -296
  163. package/srcbefore27-11/TabexComponents/Sections/BackgroundImages/Twobgimages/Twobgimages copy.jsx +0 -396
  164. package/srcbefore27-11/TabexComponents/Sections/BackgroundImages/Twobgimages/Twobgimages.jsx +0 -633
  165. package/srcbefore27-11/TabexComponents/Sections/BackgroundImages/VideosSection/VideosSection.jsx +0 -509
  166. package/srcbefore27-11/TabexComponents/Sections/Cards/CardsSection/CardsSection copy 2.jsx +0 -1399
  167. package/srcbefore27-11/TabexComponents/Sections/Cards/CardsSection/CardsSection copy 3.jsx +0 -1656
  168. package/srcbefore27-11/TabexComponents/Sections/Cards/CardsSection/CardsSection copy.jsx +0 -1540
  169. package/srcbefore27-11/TabexComponents/Sections/Cards/CardsSection/CardsSection.jsx +0 -2323
  170. package/srcbefore27-11/TabexComponents/Sections/Cards/CardsSection/CardsSection13-3.jsx +0 -1596
  171. package/srcbefore27-11/TabexComponents/Sections/Cards/CardsSection/CardsSection21-10.jsx +0 -1872
  172. package/srcbefore27-11/TabexComponents/Sections/Cards/CardsSection/CardsSection21-11beforeform.jsx +0 -1891
  173. package/srcbefore27-11/TabexComponents/Sections/Cards/CardsSection/CardsSection_cosmoandmore.jsx +0 -1880
  174. package/srcbefore27-11/TabexComponents/Sections/Cards/CardsSection/CardsSectionwithanomation12-1.jsx +0 -2065
  175. package/srcbefore27-11/TabexComponents/Sections/Cards/CardsSection2/CardsSection2.jsx +0 -726
  176. package/srcbefore27-11/TabexComponents/Sections/Cards/CardsSectionwithfilter/CardsSectionwithfilter.jsx +0 -719
  177. package/srcbefore27-11/TabexComponents/Sections/Cards/ElegantCategoriesCardSection/ElegantCategoriesCardSection.jsx +0 -406
  178. package/srcbefore27-11/TabexComponents/Sections/Cards/ModernCardsSection/ModernCardsSection.jsx +0 -966
  179. package/srcbefore27-11/TabexComponents/Sections/Cards/RandomlyStructuredCollectionCards/RandomlyStructuredCollectionCards copy.jsx +0 -646
  180. package/srcbefore27-11/TabexComponents/Sections/Cards/RandomlyStructuredCollectionCards/RandomlyStructuredCollectionCards.jsx +0 -1577
  181. package/srcbefore27-11/TabexComponents/Sections/Cards/Sixverticalcardssection/Sixverticalcardssection.jsx +0 -596
  182. package/srcbefore27-11/TabexComponents/Sections/Cards/UsersCardsSection/UsersCardsSection.jsx +0 -383
  183. package/srcbefore27-11/TabexComponents/Sections/Slideshow/AboutSection/AboutSection.jsx +0 -342
  184. package/srcbefore27-11/TabexComponents/Sections/Slideshow/Backgroundimage_with_topcircle/Backgroundimage_with_topcircle.jsx +0 -161
  185. package/srcbefore27-11/TabexComponents/Sections/Slideshow/ContactUsSection/ContactUsSection.jsx +0 -394
  186. package/srcbefore27-11/TabexComponents/Sections/Slideshow/CountDownSection/CountDownSection.jsx +0 -174
  187. package/srcbefore27-11/TabexComponents/Sections/Slideshow/Freetextsection/Freetextsection copy.jsx +0 -382
  188. package/srcbefore27-11/TabexComponents/Sections/Slideshow/Freetextsection/Freetextsection.jsx +0 -651
  189. package/srcbefore27-11/TabexComponents/Sections/Slideshow/Freetextsection/Freetextsection19-11.jsx +0 -757
  190. package/srcbefore27-11/TabexComponents/Sections/Slideshow/Freetextsection/Freetextsection20-2.jsx +0 -1017
  191. package/srcbefore27-11/TabexComponents/Sections/Slideshow/HorizontalContactUsSection/HorizontalContactUsSection.jsx +0 -346
  192. package/srcbefore27-11/TabexComponents/Sections/Slideshow/Image_with_leftwords/Image_with_leftwords.jsx +0 -3027
  193. package/srcbefore27-11/TabexComponents/Sections/Slideshow/Image_with_rightwords/Image_with_rightwords.jsx +0 -141
  194. package/srcbefore27-11/TabexComponents/Sections/Slideshow/MarqueeSection/MarqueeSection.jsx +0 -103
  195. package/srcbefore27-11/TabexComponents/Sections/Slideshow/Preloaderone/Preloaderone.jsx +0 -49
  196. package/srcbefore27-11/TabexComponents/Sections/Slideshow/ServiceSectionWithImage/ServiceSectionWithImage.jsx +0 -376
  197. package/srcbefore27-11/TabexComponents/Sections/Slideshow/Servicesection/Servicesection.jsx +0 -384
  198. package/srcbefore27-11/TabexComponents/Sections/Slideshow/ServicesectionCenteredcards/ServicesectionCenteredcards copy.jsx +0 -1576
  199. package/srcbefore27-11/TabexComponents/Sections/Slideshow/ServicesectionCenteredcards/ServicesectionCenteredcards.jsx +0 -1989
  200. package/srcbefore27-11/TabexComponents/Sections/Slideshow/Slideshow_with_rotatedsquare/Slideshow_with_rotatedsquare.jsx +0 -226
  201. package/srcbefore27-11/TabexComponents/Sections/Slideshow/Slideshow_with_squarebg/Slideshow_with_squarebg.jsx +0 -149
  202. package/srcbefore27-11/TabexComponents/Sections/Slideshow/Slideshowdifferentanimations/Slideshowdifferentanimations.jsx +0 -143
  203. package/srcbefore27-11/TabexComponents/Sections/Slideshow/Slideshowfade/Slideshowfade copy.jsx +0 -634
  204. package/srcbefore27-11/TabexComponents/Sections/Slideshow/Slideshowfade/Slideshowfade.jsx +0 -474
  205. package/srcbefore27-11/TabexComponents/Sections/Slideshow/Slideshowslide/Slideshowslide copy.jsx +0 -527
  206. package/srcbefore27-11/TabexComponents/Sections/Slideshow/Slideshowslide/Slideshowslide.jsx +0 -665
  207. package/srcbefore27-11/TabexComponents/Sections/Slideshow/Slideshowslide/SlideshowslideOriginal.jsx +0 -477
  208. package/srcbefore27-11/TabexComponents/Sections/Slideshow/Slideshowslide/SlideshowslideRecent.jsx +0 -1217
  209. package/srcbefore27-11/TabexComponents/Sections/Slideshow/Slideshowslide/Slideshowslideoriginal8-5.jsx +0 -614
  210. package/srcbefore27-11/TabexComponents/Sections/Slideshow/Slideshowzoom/Arrow.jsx +0 -91
  211. package/srcbefore27-11/TabexComponents/Sections/Slideshow/Slideshowzoom/Slideshowzoom copy.jsx +0 -380
  212. package/srcbefore27-11/TabexComponents/Sections/Slideshow/Slideshowzoom/Slideshowzoom.jsx +0 -741
  213. package/srcbefore27-11/TabexComponents/Sections/Slideshow/TableSection/TableSection.jsx +0 -423
  214. package/srcbefore27-11/TabexComponents/Sections/Slideshow/ThreeSectionsWithSlideshow/ThreeSectionsWithSlideshow copy.jsx +0 -284
  215. package/srcbefore27-11/TabexComponents/Sections/Slideshow/ThreeSectionsWithSlideshow/ThreeSectionsWithSlideshow.jsx +0 -636
  216. package/srcbefore27-11/TabexComponents/Sections/Slideshow/TwoWayServiceSectionWithImage/TwoWayServiceSectionWithImage.jsx +0 -402
  217. package/srcbefore27-11/TabexComponents/StaticPages/AccountInformation/AccountInformation.jsx +0 -234
  218. package/srcbefore27-11/TabexComponents/StaticPages/AddReview/AddReview.jsx +0 -306
  219. package/srcbefore27-11/TabexComponents/StaticPages/Afiiliatesignup/Afiiliatesignup.jsx +0 -364
  220. package/srcbefore27-11/TabexComponents/StaticPages/CartSlider/CartSlider.jsx +0 -1000
  221. package/srcbefore27-11/TabexComponents/StaticPages/Categoriesdropdown/Categoriesdropdown.jsx +0 -460
  222. package/srcbefore27-11/TabexComponents/StaticPages/Checkout/Checkout copy.jsx +0 -1306
  223. package/srcbefore27-11/TabexComponents/StaticPages/Checkout/Checkout.jsx +0 -2506
  224. package/srcbefore27-11/TabexComponents/StaticPages/Checkout/Checkout10-1.jsx +0 -1633
  225. package/srcbefore27-11/TabexComponents/StaticPages/Checkout/Checkout12-12beforeextras.jsx +0 -1999
  226. package/srcbefore27-11/TabexComponents/StaticPages/Checkout/Checkout26-9.jsx +0 -1593
  227. package/srcbefore27-11/TabexComponents/StaticPages/Checkout/Checkout9-9.jsx +0 -1574
  228. package/srcbefore27-11/TabexComponents/StaticPages/Compare/Compare.jsx +0 -79
  229. package/srcbefore27-11/TabexComponents/StaticPages/Filter/CollectionsFilterHorizontal.jsx +0 -245
  230. package/srcbefore27-11/TabexComponents/StaticPages/Filter/Filter copy 2.jsx +0 -2888
  231. package/srcbefore27-11/TabexComponents/StaticPages/Filter/Filter copy.jsx +0 -1450
  232. package/srcbefore27-11/TabexComponents/StaticPages/Filter/Filter.jsx +0 -3459
  233. package/srcbefore27-11/TabexComponents/StaticPages/Filter/Filter1-5.jsx +0 -2624
  234. package/srcbefore27-11/TabexComponents/StaticPages/Filter/Filter13-11.jsx +0 -2758
  235. package/srcbefore27-11/TabexComponents/StaticPages/Filter/Filter14-8.jsx +0 -2753
  236. package/srcbefore27-11/TabexComponents/StaticPages/Filter/Filter17-9.jsx +0 -1495
  237. package/srcbefore27-11/TabexComponents/StaticPages/Filter/VariantFilter.jsx +0 -1271
  238. package/srcbefore27-11/TabexComponents/StaticPages/InnerGroups/InnerGroups.jsx +0 -62
  239. package/srcbefore27-11/TabexComponents/StaticPages/Login/FacebookLoginButton.jsx +0 -50
  240. package/srcbefore27-11/TabexComponents/StaticPages/Login/GoogleLoginButton.jsx +0 -35
  241. package/srcbefore27-11/TabexComponents/StaticPages/Login/Login copy.jsx +0 -1060
  242. package/srcbefore27-11/TabexComponents/StaticPages/Login/Login.jsx +0 -616
  243. package/srcbefore27-11/TabexComponents/StaticPages/OrderSuccess/OrderSuccess.jsx +0 -693
  244. package/srcbefore27-11/TabexComponents/StaticPages/OrderSuccess/OrderSuccess2.jsx +0 -173
  245. package/srcbefore27-11/TabexComponents/StaticPages/Ordershistory/Ordershistory.jsx +0 -1831
  246. package/srcbefore27-11/TabexComponents/StaticPages/Policies/Policies.jsx +0 -291
  247. package/srcbefore27-11/TabexComponents/StaticPages/PrivacyPolicy/PrivacyPolicy.jsx +0 -194
  248. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo/Addreviewform.jsx +0 -183
  249. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo/AddreviewformOriginal.jsx +0 -128
  250. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo/Article_itemtype.jsx +0 -268
  251. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo/DescriptionContent.jsx +0 -190
  252. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo/ProductExtraFields.jsx +0 -225
  253. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo/ProductExtras.jsx +0 -224
  254. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo/ProductFileUploader.jsx +0 -136
  255. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo/ProductHeaderPricing.jsx +0 -347
  256. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo/ProductReviews.jsx +0 -262
  257. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo/Product_itemtype.jsx +0 -5566
  258. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo/Product_itemtype10-1.jsx +0 -1554
  259. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo/Product_itemtype3-11.jsx +0 -1827
  260. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo/Product_itemtype31-3.jsx +0 -1351
  261. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo/Product_itemtypeUpdated.jsx +0 -1566
  262. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo/Product_itemtypeeuro.jsx +0 -3101
  263. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo/Productinfo.jsx +0 -3047
  264. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo/Productinfo13-5.jsx +0 -2103
  265. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo/Productinfo_28_6.jsx +0 -2189
  266. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo/Productinfotoday.jsx +0 -2166
  267. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo/Service_itemtype.js +0 -2714
  268. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo/Service_itemtype.jsx +0 -2206
  269. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo/Service_itemtypetill28-4-2025.jsx +0 -1158
  270. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo/Serviceinfotabs.jsx +0 -1117
  271. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo/Serviceinfotabs4-5.jsx +0 -1043
  272. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo/Serviceinfotabstill28-4-2025.jsx +0 -1040
  273. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo/Variantoptions.jsx +0 -905
  274. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo/Variantoptions21-9.jsx +0 -324
  275. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo/staticroutersidenav.module.css +0 -145
  276. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo4-4/Addreviewform.jsx +0 -183
  277. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo4-4/AddreviewformOriginal.jsx +0 -128
  278. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo4-4/DescriptionContent.jsx +0 -140
  279. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo4-4/ProductExtraFields.jsx +0 -225
  280. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo4-4/ProductHeaderPricing.jsx +0 -310
  281. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo4-4/ProductReviews.jsx +0 -235
  282. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo4-4/Product_itemtype.jsx +0 -1672
  283. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo4-4/Product_itemtype10-1.jsx +0 -1554
  284. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo4-4/Product_itemtype31-3.jsx +0 -1351
  285. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo4-4/Product_itemtypeUpdated.jsx +0 -1566
  286. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo4-4/Productinfo.jsx +0 -1804
  287. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo4-4/Service_itemtype.jsx +0 -560
  288. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo4-4/Serviceinfotabs.jsx +0 -928
  289. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo4-4/Variantoptions.jsx +0 -597
  290. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo4-4/Variantoptions21-9.jsx +0 -324
  291. package/srcbefore27-11/TabexComponents/StaticPages/Productinfo4-4/staticroutersidenav.module.css +0 -145
  292. package/srcbefore27-11/TabexComponents/StaticPages/RefundPolicy/RefundPolicy.jsx +0 -194
  293. package/srcbefore27-11/TabexComponents/StaticPages/Resetpassword/Resetpassword.jsx +0 -346
  294. package/srcbefore27-11/TabexComponents/StaticPages/Searchlist/Searchlist.jsx +0 -367
  295. package/srcbefore27-11/TabexComponents/StaticPages/ShippingPolicy/ShippingPolicy.jsx +0 -222
  296. package/srcbefore27-11/TabexComponents/StaticPages/Signup/CustomerAddressForm.jsx +0 -277
  297. package/srcbefore27-11/TabexComponents/StaticPages/Signup/CustomerInformationForm copy.jsx +0 -1135
  298. package/srcbefore27-11/TabexComponents/StaticPages/Signup/CustomerInformationForm.jsx +0 -1505
  299. package/srcbefore27-11/TabexComponents/StaticPages/Signup/CustomerInformationForm12-5beforeemailrequired.jsx +0 -1476
  300. package/srcbefore27-11/TabexComponents/StaticPages/Signup/Signup.jsx +0 -199
  301. package/srcbefore27-11/TabexComponents/StaticPages/Staticpagesrouter/Staticpagesrouter.jsx +0 -292
  302. package/srcbefore27-11/TabexComponents/StaticPages/TermsConditions/TermsConditions.jsx +0 -219
  303. package/srcbefore27-11/TabexComponents/StaticPages/VendorPage/VendorPage.jsx +0 -162
  304. package/srcbefore27-11/TabexComponents/StaticPages/Viewcart/Viewcart 10-10.jsx +0 -765
  305. package/srcbefore27-11/TabexComponents/StaticPages/Viewcart/Viewcart.jsx +0 -786
  306. package/srcbefore27-11/TabexComponents/StaticPages/Viewcart/Viewcart26-9.jsx +0 -786
  307. package/srcbefore27-11/TabexComponents/StaticPages/Viewcart/ViewcartOriginal.jsx +0 -786
  308. package/srcbefore27-11/TabexComponents/StaticPages/Viewcart/ViewcartUpdated.jsx +0 -1425
  309. package/srcbefore27-11/TabexComponents/StaticPages/Wishlist/Wishlist.jsx +0 -844
  310. package/srcbefore27-11/TabexComponents/StaticPages/Wishlist/Wishlist25-4.jsx +0 -555
  311. package/srcbefore27-11/TabexComponents/StaticPages/Wishlist/Wishlist26-9.jsx +0 -555
  312. package/srcbefore27-11/TabexComponents/StaticPages/Wishlist/WishlistOriginal.jsx +0 -555
  313. package/srcbefore27-11/TabexComponents/StaticPages/Wishlist/WishlistUpdated.jsx +0 -815
  314. package/srcbefore27-11/button.jsx +0 -40
  315. package/srcbefore27-11/index.jsx +0 -353
  316. package/srcbefore27-11/styles/Home.module.css +0 -129
  317. package/srcbefore27-11/styles/cards/Categorcycard_fullimage.module.css +0 -14
  318. package/srcbefore27-11/styles/cards/Categorycard_slidebgscaled.module.css +0 -73
  319. package/srcbefore27-11/styles/cards/Categorycard_withshapes.module.css +0 -189
  320. package/srcbefore27-11/styles/cards/ModernCardWithQuantityButton.module.css +0 -30
  321. package/srcbefore27-11/styles/cards/Productcard6.module.css +0 -9
  322. package/srcbefore27-11/styles/cards/Productccard_with_zoominonhover.module.css +0 -94
  323. package/srcbefore27-11/styles/cards/Prouductcard_with_zoomhover.module.css +0 -61
  324. package/srcbefore27-11/styles/cards/UserCardWithSocialMediaOnHover.module.css +0 -65
  325. package/srcbefore27-11/styles/cards/card23.module.css +0 -60
  326. package/srcbefore27-11/styles/cards/categorycard.module.css +0 -84
  327. package/srcbefore27-11/styles/cards/categorycard3.module.css +0 -50
  328. package/srcbefore27-11/styles/cards/categorycardwithtext.module.css +0 -40
  329. package/srcbefore27-11/styles/cards/generalCardsStyles.module.css +0 -79
  330. package/srcbefore27-11/styles/cards/productcard_animatedbuttons.module.css +0 -139
  331. package/srcbefore27-11/styles/cards/productcard_with_textonhover.module.css +0 -18
  332. package/srcbefore27-11/styles/cards/productcard_withtextonimage.module.css +0 -0
  333. package/srcbefore27-11/styles/cards/productccard_with_imageontopleft.module.css +0 -85
  334. package/srcbefore27-11/styles/general/bootstrap.css +0 -4763
  335. package/srcbefore27-11/styles/general/dropdown.css +0 -206
  336. package/srcbefore27-11/styles/general/editorbardropdown.module.css +0 -94
  337. package/srcbefore27-11/styles/general/filter.module.css +0 -108
  338. package/srcbefore27-11/styles/general/form.module.css +0 -255
  339. package/srcbefore27-11/styles/general/general.module.css +0 -872
  340. package/srcbefore27-11/styles/general/image-gallery.css +0 -531
  341. package/srcbefore27-11/styles/general/react-accessible-accordion.module.css +0 -52
  342. package/srcbefore27-11/styles/general/react-phone-input-2.module.css +0 -927
  343. package/srcbefore27-11/styles/general/scrollbtn.module.css +0 -22
  344. package/srcbefore27-11/styles/general/slick.module.css +0 -166
  345. package/srcbefore27-11/styles/general/tabs.module.css +0 -119
  346. package/srcbefore27-11/styles/general/workplaceeditor.module.css +0 -328
  347. package/srcbefore27-11/styles/globals.css +0 -26
  348. package/srcbefore27-11/styles/headers/CTAHeader.module.css +0 -40
  349. package/srcbefore27-11/styles/headers/CategoryFeaturingHeader.module.css +0 -61
  350. package/srcbefore27-11/styles/headers/Gotoheader.module.css +0 -87
  351. package/srcbefore27-11/styles/headers/Header7.module.css +0 -50
  352. package/srcbefore27-11/styles/headers/HeaderWithAdSlider.module.css +0 -86
  353. package/srcbefore27-11/styles/headers/HeaderWithSearchOnCenter.module.css +0 -101
  354. package/srcbefore27-11/styles/headers/HeaderWithUtilityBar.module.css +0 -46
  355. package/srcbefore27-11/styles/headers/Header_threesectionslogocentered.module.css +0 -84
  356. package/srcbefore27-11/styles/headers/NewHeader.module.css +0 -101
  357. package/srcbefore27-11/styles/headers/SearchFocusedHeader.module.css +0 -62
  358. package/srcbefore27-11/styles/headers/Sideheader.module.css +0 -108
  359. package/srcbefore27-11/styles/headers/Simpleheader.module.css +0 -102
  360. package/srcbefore27-11/styles/headers/classicheader.module.css +0 -16
  361. package/srcbefore27-11/styles/headers/classicheaderstyles.module.css +0 -9
  362. package/srcbefore27-11/styles/headers/dropdown.css +0 -0
  363. package/srcbefore27-11/styles/headers/header4.module.css +0 -175
  364. package/srcbefore27-11/styles/headers/header5.module.css +0 -30
  365. package/srcbefore27-11/styles/headers/header_contactinfo.module.css +0 -53
  366. package/srcbefore27-11/styles/headers/headerresturant.module.css +0 -89
  367. package/srcbefore27-11/styles/headers/modernheader.module.css +0 -45
  368. package/srcbefore27-11/styles/headers/stylishheader.module.css +0 -24
  369. package/srcbefore27-11/styles/headers/subheader.module.css +0 -114
  370. package/srcbefore27-11/styles/headers/threetieredheader.module.css +0 -91
  371. package/srcbefore27-11/styles/sections/BackgroundImageWithTopContent.css +0 -4
  372. package/srcbefore27-11/styles/sections/Backgroundimage1.module.css +0 -17
  373. package/srcbefore27-11/styles/sections/Backgroundimage_with_topcircle.module.css +0 -28
  374. package/srcbefore27-11/styles/sections/Freetext.module.css +0 -18
  375. package/srcbefore27-11/styles/sections/Section_with_rightbgcont.module.css +0 -49
  376. package/srcbefore27-11/styles/sections/Slideshow_with_rotatedsquare.module.css +0 -35
  377. package/srcbefore27-11/styles/sections/Slideshow_with_squarebg.module.css +0 -39
  378. package/srcbefore27-11/styles/staticpages/accordion.module.css +0 -9
  379. package/srcbefore27-11/styles/staticpages/cart.module.css +0 -108
  380. package/srcbefore27-11/styles/staticpages/dropdown.css +0 -196
  381. package/srcbefore27-11/styles/staticpages/filter.module.css +0 -139
  382. package/srcbefore27-11/styles/staticpages/image-gallery.css +0 -481
  383. package/srcbefore27-11/styles/staticpages/login.module.css +0 -155
  384. package/srcbefore27-11/styles/staticpages/productinfo.module.css +0 -54
  385. package/srcbefore27-11/styles/staticpages/shop.module.css +0 -191
  386. package/srcbefore27-11/styles/staticpages/signup.module.css +0 -250
  387. package/srcbefore27-11/styles/staticpages/staticroutersidenav.module.css +0 -129
  388. package/srcbefore27-11/styles/staticpages/viewcart.module.css +0 -129
  389. package/srcbefore27-11/styles/staticpages/wishlist.module.css +0 -29
@@ -1,3047 +0,0 @@
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
- import { RiArrowGoBackLine } from '@react-icons/all-files/ri/RiArrowGoBackLine';
20
- import { FiBox } from '@react-icons/all-files/fi/FiBox';
21
- const Productinfo = (props) => {
22
- const [ProductInfoObj, setProductInfoObj] = useState({});
23
- const srcfromprops = props.actions.srcfromprops;
24
- const productinfoDataPassedProps = props?.productinfoDataPassedProps;
25
- const StatePagePropertiesContext = props.actions.StatePagePropertiesContext;
26
- const lang = props.actions.lang;
27
- const langdetect = props.actions.langdetect;
28
- const templatepropcontext = props.actions.templatepropcontext;
29
- const routingcountext = props.actions.routingcountext;
30
- const StaticPagesLinksContext = props.actions.StaticPagesLinksContext;
31
- const TabexSectionsComponentsContext = props.actions.TabexSectionsComponentsContext;
32
- const FetchQueriesEngineContext = props.actions.FetchQueriesEngineContext;
33
- const setFetchQueriesEngineContext = props.actions.setFetchQueriesEngineContext;
34
- const serverbaselink = props.actions.serverbaselink;
35
- const AddtoCartMutationContext = props.actions.AddtoCartMutationContext;
36
- const ProductIdProdutInfoModalContext = props.actions.ProductIdProdutInfoModalContext;
37
- const AddtoCartContext = props.actions.AddtoCartContext;
38
- const addtofavoritescontext = props.actions.addtofavoritescontext;
39
- const fetchProductInfoQueryContextProps = props.actions.fetchProductInfoQueryContext;
40
- const fetchAuthorizationQueryContext = props.actions.fetchAuthorizationQueryContext;
41
- const [fetchProductInfoQueryContext, setfetchProductInfoQueryContext] = useState({});
42
- const [finalProductId, setfinalProductId] = useState(null);
43
- const [isProductPageLoading, setisProductPageLoading] = useState(false);
44
- useEffect(() => {
45
- if (productinfoDataPassedProps != undefined && productinfoDataPassedProps != null && typeof productinfoDataPassedProps === 'object' && Object.keys(productinfoDataPassedProps).length != 0) {
46
- if (Object.keys(fetchProductInfoQueryContext).length == 0) {
47
- var obj = {
48
- data: {
49
- data: {
50
- productinfo: {
51
- name_en: productinfoDataPassedProps?.name_en,
52
- name_ar: productinfoDataPassedProps?.name_ar,
53
- productid: productinfoDataPassedProps?.productid,
54
- item_type: productinfoDataPassedProps?.item_type,
55
-
56
- productimages: productinfoDataPassedProps?.productimages,
57
- defaultprice: productinfoDataPassedProps?.defaultprice,
58
- defaultsaleprice: productinfoDataPassedProps?.defaultsaleprice,
59
- measurmentunit: productinfoDataPassedProps?.measurmentunit,
60
- hasvariants: productinfoDataPassedProps?.hasvariants,
61
- hassale: productinfoDataPassedProps?.hassale,
62
- isproducttobesold: productinfoDataPassedProps?.isproducttobesold,
63
- sku: productinfoDataPassedProps?.sku,
64
- isproducthasquantitychange: productinfoDataPassedProps?.isproducthasquantitychange,
65
- quantitystepincrearse: productinfoDataPassedProps?.quantitystepincrearse,
66
- description_ar: productinfoDataPassedProps?.description_ar,
67
- description_en: productinfoDataPassedProps?.description_en,
68
- instid: productinfoDataPassedProps?.instid,
69
- variants: [],
70
- },
71
- },
72
- },
73
- };
74
- setfetchProductInfoQueryContext({ ...obj });
75
- setProductInfoObj({ ...obj });
76
- }
77
- } else {
78
- if (fetchProductInfoQueryContextProps.isFetching) {
79
- setisProductPageLoading(true);
80
- } else {
81
- if (fetchProductInfoQueryContextProps.isSuccess) {
82
- }
83
- }
84
- }
85
- }, [props, props.productinfoDataPassedProps, productinfoDataPassedProps, fetchProductInfoQueryContext, fetchProductInfoQueryContextProps.isFetching, fetchProductInfoQueryContextProps.isSuccess]);
86
-
87
- useEffect(() => {
88
- if (fetchProductInfoQueryContextProps.isSuccess) {
89
- // if (fetchProductInfoQueryContextProps?.data?.data?.productinfo?.productid == finalProductId) {
90
- var isProductIdMatching = false;
91
-
92
- if (fetchProductInfoQueryContextProps?.data?.data?.productinfo?.productid == finalProductId) {
93
- isProductIdMatching = true;
94
- } else {
95
- if (fetchProductInfoQueryContextProps?.data?.data?.productinfo?.productendpointurl == finalProductId) {
96
- isProductIdMatching = true;
97
- }
98
- }
99
- if (isProductIdMatching) {
100
- setProductInfoObj({ ...fetchProductInfoQueryContextProps.data });
101
- setfetchProductInfoQueryContext(fetchProductInfoQueryContextProps);
102
- setisProductPageLoading(false);
103
- }
104
- }
105
- }, [props.actions, props, fetchProductInfoQueryContextProps.data, fetchProductInfoQueryContextProps.isSuccess, finalProductId]);
106
- const fetchproductinfoObjContext = props.actions.fetchproductinfoObjContext;
107
- const setfetchproductinfoObjContext = props.actions.setfetchproductinfoObjContext;
108
- const pageindexcontext = props.actions.pageindexcontext;
109
- const setpageindexcontext = props.actions.setpageindexcontext;
110
- const authdetailsContext = props.actions.authdetailsContext;
111
- const ikimagecredcontext = props.actions.ikimagecredcontext;
112
- const Pixel_EventsContext = props.actions.Pixel_EventsContext;
113
-
114
- const actions = props.actions;
115
- const GeneralAPIMutationContext = props.actions.GeneralAPIMutationContext;
116
- const setCurrentPageIdContext = props.actions.setCurrentPageIdContext;
117
- const NotificationManager = props.actions.NotificationManager;
118
- const productidparam = props.productidparam;
119
-
120
- const [variantsku, setvariantsku] = useState('');
121
- const [isoutofstock, setisoutofstock] = useState(false);
122
- const [sectionproperties, setsectionproperties] = useState('');
123
- const [CurrentPageId, setCurrentPageId] = useState('');
124
- const [RelatedProductsTagid, setRelatedProductsTagid] = useState('');
125
- const [variantnotchosendisclaimer, setvariantnotchosendisclaimer] = useState('');
126
-
127
- const [filterproductreviews, setfilterproductreviews] = useState('all');
128
- const [productreviews, setproductreviews] = useState([]);
129
- const [Relatedproducts, setRelatedproducts] = useState([]);
130
- const [productimagesarray, setproductimagesarray] = useState([]);
131
- const [quantityconditionfoundobj, setquantityconditionfoundobj] = useState(null);
132
- const [addtocardpayloadobj, setaddtocardpayloadobj] = useState({
133
- functype: 'add',
134
- item_type: 'product',
135
- productid: '',
136
- variantid: '',
137
- quantity: 1,
138
- date: '',
139
- time: '',
140
- from: '',
141
- to: '',
142
- extrafields: [],
143
- });
144
- const [opensizeguidemodal, setopensizeguidemodal] = useState(false);
145
- const [variantindexcompleted, setvariantindexcompleted] = useState('');
146
- const [variantindex, setvariantindex] = useState('');
147
- const [isloaded, setisloaded] = useState(false);
148
- const [showMore, setShowMore] = useState(false);
149
- const [currentshowingimageindex, setcurrentshowingimageindex] = useState(0);
150
- const [tabIndex, setTabIndex] = useState('');
151
- const [tabname, settabname] = useState('');
152
- const [sizeguideimage, setsizeguideimage] = useState([]);
153
- const [productVideos, setproductVideos] = useState([]);
154
- const [variantvalueidentifier, setvariantvalueidentifier] = useState([]);
155
-
156
- const handleTabChange = (event, newTabIndex) => {
157
- setTabIndex(newTabIndex);
158
- };
159
- useEffect(() => {
160
- if (Object.keys(StatePagePropertiesContext).length != 0) {
161
- var secpropobj = {};
162
- StatePagePropertiesContext.pageobj != undefined &&
163
- StatePagePropertiesContext.pageobj.pageproperties != undefined &&
164
- StatePagePropertiesContext.pageobj.pageproperties.forEach(function (arrayItem, arrayindex) {
165
- secpropobj[arrayItem.property_css_name] = arrayItem.property_value;
166
- });
167
-
168
- setsectionproperties({ ...secpropobj });
169
- setTabIndex(0);
170
- settabname('descriptiontab');
171
- if (authdetailsContext?.instinfo?.contactinfo.instid == '68e4efe8cb18e') {
172
- settabname('descriptiontab');
173
- // alert('sd');
174
- } else {
175
- if (
176
- sectionproperties.prodCatShow == 'Hide' ||
177
- (sectionproperties.descriptionposition != 'Bottom' && fetchProductInfoQueryContext?.data?.data?.productinfo?.product_videos?.length == 0)
178
- ) {
179
- settabname('shippingpolicytab');
180
- } else if (
181
- fetchProductInfoQueryContext?.data?.data?.productinfo?.product_videos?.length == 0 &&
182
- sectionproperties.showfirstpolicy == 'Hide' &&
183
- sectionproperties.showsecondpolicy == 'Hide'
184
- ) {
185
- // settabname('videostab');
186
- settabname('reviewstab');
187
- } else if (
188
- fetchProductInfoQueryContext?.data?.data?.productinfo?.product_videos?.length != 0 &&
189
- sectionproperties.showfirstpolicy == 'Hide' &&
190
- sectionproperties.showsecondpolicy == 'Hide'
191
- ) {
192
- // settabname('videostab');
193
- settabname('videostab');
194
- }
195
- }
196
- }
197
- }, [StatePagePropertiesContext]);
198
- useEffect(() => {
199
- if (fetchProductInfoQueryContext?.data?.data?.productinfo?.product_videos?.length != 0) {
200
- if (Array.isArray(fetchProductInfoQueryContext?.data?.data?.productinfo?.product_videos)) {
201
- var temparr = [...fetchProductInfoQueryContext?.data?.data?.productinfo?.product_videos];
202
- temparr.forEach(function (item) {
203
- item.linkclicked = false;
204
- });
205
- setproductVideos([...temparr]);
206
- }
207
- }
208
- }, [fetchProductInfoQueryContext.isSuccess, fetchProductInfoQueryContext.data]);
209
- useEffect(() => {
210
- var cartindex = templatepropcontext.pagesnprop.findIndex((x) => x.staticpageid == '6218bccb810ae');
211
-
212
- if (cartindex >= 0) {
213
- setpageindexcontext(cartindex);
214
- setCurrentPageId(templatepropcontext.pagesnprop[cartindex].pageid);
215
- if (props.srcfromprops != 'templatedraftrouter') {
216
- setCurrentPageIdContext(templatepropcontext.pagesnprop[cartindex].pageid);
217
- }
218
- }
219
- }, []);
220
- useEffect(() => {
221
- var secpropobj = {};
222
- templatepropcontext?.pagesnprop[pageindexcontext]?.pageproperties?.forEach(function (arrayItem, arrayindex) {
223
- secpropobj[arrayItem.property_css_name] = arrayItem.property_value;
224
- });
225
- setsectionproperties({ ...secpropobj });
226
- }, [pageindexcontext]);
227
- useEffect(() => {
228
- if (productidparam == undefined) {
229
- productidassigner(ProductIdProdutInfoModalContext);
230
- } else {
231
- productidassigner(productidparam);
232
- }
233
- }, []);
234
- // useEffect(() => {
235
- // if (fetchProductInfoQueryContext.isSuccess) {
236
- // setProductInfoObj({ ...fetchProductInfoQueryContext.data });
237
- // }
238
- // }, [fetchProductInfoQueryContext.isSuccess, fetchProductInfoQueryContext.data, props, props.actions]);
239
- useEffect(() => {
240
- if (Object.keys(ProductInfoObj).length != 0 && !isloaded) {
241
- variantchecker();
242
- Pixel_EventsContext('productview', {
243
- name_en: fetchProductInfoQueryContext?.data?.data?.productinfo?.name_en,
244
- name_ar: fetchProductInfoQueryContext?.data?.data?.productinfo?.name_ar,
245
- productid: fetchProductInfoQueryContext?.data?.data?.productinfo?.productid,
246
- sku: fetchProductInfoQueryContext?.data?.data?.productinfo?.sku,
247
- });
248
- Pixel_EventsContext('ViewContent', {
249
- name_en: fetchProductInfoQueryContext?.data?.data?.productinfo?.name_en,
250
- name_ar: fetchProductInfoQueryContext?.data?.data?.productinfo?.name_ar,
251
- productid: fetchProductInfoQueryContext?.data?.data?.productinfo?.productid,
252
- sku: fetchProductInfoQueryContext?.data?.data?.productinfo?.sku,
253
- });
254
- Pixel_EventsContext('view_item', {
255
- ecommerce: {
256
- currency: 'EGP',
257
- value: fetchProductInfoQueryContext?.data?.data?.productinfo?.defaultprice,
258
- items: [
259
- {
260
- item_id: fetchProductInfoQueryContext?.data?.data?.productinfo?.productid,
261
- item_name: fetchProductInfoQueryContext?.data?.data?.productinfo?.name_en,
262
- item_name_ar: fetchProductInfoQueryContext?.data?.data?.productinfo?.name_ar,
263
- sku: fetchProductInfoQueryContext?.data?.data?.productinfo?.sku,
264
-
265
- price: fetchProductInfoQueryContext?.data?.data?.productinfo?.defaultprice,
266
- },
267
- ],
268
- },
269
- });
270
- }
271
- }, [ProductInfoObj, isloaded]);
272
- const productidassigner = (productid) => {
273
- var tempFetchQueriesEngineContext = { ...FetchQueriesEngineContext };
274
- tempFetchQueriesEngineContext.fetchproductinfo = true;
275
- setFetchQueriesEngineContext({ ...tempFetchQueriesEngineContext });
276
- var tempfetchproductinfoObjContext = { ...fetchproductinfoObjContext };
277
-
278
- tempfetchproductinfoObjContext.productid = productid;
279
- setfetchproductinfoObjContext({ ...tempfetchproductinfoObjContext });
280
- setfinalProductId(productid);
281
- };
282
- const cloudFlare_Image_Trans = (pathParams, urlEndpointParams) => {
283
- var imagePath = pathParams; // e.g. "tr:h-100,w-200/path/to/image.jpg"
284
- var urlEndpoint = urlEndpointParams.replace(/\/+$/, ''); // e.g. "https://image.tabexseries.com"
285
-
286
- // Extract the tr: transformation part from the path (e.g. tr:h-100,w-200)
287
- var trMatch = imagePath.match(/tr:([^\/]+)/);
288
-
289
- var width = null;
290
- var height = null;
291
-
292
- if (trMatch) {
293
- var transformations = trMatch[1].split(',');
294
- transformations.forEach((transform) => {
295
- if (transform.startsWith('w-')) {
296
- width = transform.substring(2);
297
- } else if (transform.startsWith('h-')) {
298
- height = transform.substring(2);
299
- }
300
- });
301
- }
302
-
303
- // Remove the tr: part from the image path to get the clean image path
304
- var cleanPath = imagePath.replace(/(?:^|\/)tr:[^\/]+\/+/g, '');
305
- cleanPath = cleanPath.replace(/^\/+/, '');
306
-
307
- // Only add transforms if both width AND height are present
308
- var cfTransformStr = '';
309
- if (
310
- width != undefined &&
311
- width != null &&
312
- width != 'null' &&
313
- width != 0 &&
314
- width != '0' &&
315
- width.length != 0 &&
316
- height != undefined &&
317
- height != null &&
318
- height != 0 &&
319
- height != '0' &&
320
- height != 'null' &&
321
- height.length != 0
322
- ) {
323
- cfTransformStr = `cdn-cgi/image/width=${width},height=${height}/`;
324
- }
325
-
326
- // Construct the full Cloudflare URL
327
- var fullPath = urlEndpoint + '/' + cfTransformStr + cleanPath;
328
- return fullPath;
329
- };
330
- useEffect(() => {
331
- // if (!fetchProductInfoQueryContext.isFetching && fetchProductInfoQueryContext.isSuccess && ikimagecredcontext != undefined) {
332
- if (
333
- isProductPageLoading == false &&
334
- Object.keys(fetchProductInfoQueryContext) != 0 &&
335
- fetchProductInfoQueryContext?.data?.data?.productinfo != undefined &&
336
- fetchProductInfoQueryContext?.data?.data?.productinfo != null &&
337
- ikimagecredcontext != undefined
338
- ) {
339
- if (fetchProductInfoQueryContext?.data?.data?.productinfo != null) {
340
- var tempproductimagesarray = [];
341
- var sizeguideimagetemp = [];
342
-
343
- if (Array.isArray(fetchProductInfoQueryContext?.data?.data?.productinfo?.productimages)) {
344
- fetchProductInfoQueryContext?.data?.data?.productinfo?.productimages.forEach(function (arrayItem, arrayindex) {
345
- var imagepath = arrayItem.path;
346
-
347
- // var sizeguideimagearrayobj = {
348
- // thumbnail: arrayItem.path,
349
- // original: arrayItem.path,
350
- // galleryid: arrayItem.galleryid,
351
- // };
352
- if (ikimagecredcontext?.ikimageendpoint?.includes('image.tabexseries.com')) {
353
- var img_endpoint = ikimagecredcontext?.ikimageendpoint;
354
- var path = '/tr:w-' + sectionproperties.imagetr_w + ',h-' + sectionproperties.imagetr_h + '/' + arrayItem.path;
355
- var imagePath = cloudFlare_Image_Trans(path, img_endpoint);
356
- var productimagesarrayobj = {
357
- thumbnail: imagePath,
358
- original: imagePath,
359
- galleryid: arrayItem.galleryid,
360
- };
361
- } else {
362
- if (imagepath.includes('https')) {
363
- let position = imagepath.search('https');
364
- let result = imagepath.slice(position);
365
- var productimagesarrayobj = {
366
- thumbnail: arrayItem.path,
367
- original: arrayItem.path,
368
- galleryid: arrayItem.galleryid,
369
- };
370
- } else {
371
- var productimagesarrayobj = {
372
- thumbnail: ikimagecredcontext?.ikimageendpoint + '/tr:w-' + sectionproperties.imagetr_w + ',h-' + sectionproperties.imagetr_h + '/' + arrayItem.path,
373
- original: ikimagecredcontext?.ikimageendpoint + '/tr:w-' + sectionproperties.imagetr_w + ',h-' + sectionproperties.imagetr_h + '/' + arrayItem.path,
374
- galleryid: arrayItem.galleryid,
375
- };
376
- }
377
- }
378
- // tempproductimagesarray.push(productimagesarrayobj);
379
- if (arrayItem?.is_size_guide != undefined && arrayItem?.is_size_guide != null && arrayItem?.is_size_guide == 1) {
380
- sizeguideimagetemp.push(productimagesarrayobj);
381
- } else {
382
- tempproductimagesarray.push(productimagesarrayobj);
383
- }
384
- });
385
- }
386
- setsizeguideimage([...sizeguideimagetemp]);
387
-
388
- setproductimagesarray([...tempproductimagesarray]);
389
- variantchecker();
390
- var quantitystepincrearse = 1;
391
-
392
- var tempaddtocardpayloadobj = { ...addtocardpayloadobj };
393
- tempaddtocardpayloadobj.productid = fetchProductInfoQueryContext?.data?.data?.productinfo?.productid;
394
- // setaddtocardpayloadobj({ ...tempaddtocardpayloadobj });
395
- setRelatedProductsTagid(fetchProductInfoQueryContext?.data?.data?.productinfo?.maintagid);
396
- if (fetchProductInfoQueryContext?.data?.data?.productinfo?.maintagid != null && fetchProductInfoQueryContext?.data?.data?.productinfo?.maintagid?.length != 0) {
397
- GeneralAPIMutationContext.mutate({
398
- endpointurl: '/FetchRelatedProducts',
399
- tagid: fetchProductInfoQueryContext?.data?.data?.productinfo?.maintagid,
400
- mutateSuccesscallback: (data, variables) => {
401
- if (data.data.status) {
402
- setRelatedproducts(data.data.productsrelated);
403
- } else {
404
- // NotificationManager.warning('', data.data.reason);
405
- }
406
- },
407
- });
408
- }
409
- if (fetchProductInfoQueryContext?.data?.data?.productinfo?.item_type == 'package list') {
410
- tempaddtocardpayloadobj.item_type = 'package list';
411
- } else {
412
- tempaddtocardpayloadobj.item_type = 'product';
413
- }
414
-
415
- if (
416
- fetchProductInfoQueryContext?.data?.data?.productinfo?.quantitystepincrearse != undefined &&
417
- fetchProductInfoQueryContext?.data?.data?.productinfo?.quantitystepincrearse != null &&
418
- fetchProductInfoQueryContext?.data?.data?.productinfo?.quantitystepincrearse != 1 &&
419
- fetchProductInfoQueryContext?.data?.data?.productinfo?.quantitystepincrearse != ''
420
- ) {
421
- if (authdetailsContext?.instinfo?.contactinfo.instid == '66d6de1a1e04a') {
422
- quantitystepincrearse = parseFloat(fetchProductInfoQueryContext?.data?.data?.productinfo?.quantitystepincrearse);
423
- } else {
424
- quantitystepincrearse = parseInt(fetchProductInfoQueryContext?.data?.data?.productinfo?.quantitystepincrearse);
425
- }
426
- // quantitystepincrearse = parseFloat(fetchProductInfoQueryContext?.data?.data?.productinfo?.quantitystepincrearse);
427
- }
428
- tempaddtocardpayloadobj.quantity = quantitystepincrearse;
429
- setaddtocardpayloadobj({ ...tempaddtocardpayloadobj });
430
- }
431
- }
432
- }, [fetchProductInfoQueryContext.isSuccess, fetchProductInfoQueryContext.data, ikimagecredcontext]);
433
- // const clearchoosenvaluesbutkeepcurrentvalue = (optionindex, optionvaluesitem, optionvaluesindex) => {
434
- // var productarr = ProductInfoObj;
435
- // productarr?.data?.productinfo?.productoptions?.forEach(function (item, index) {
436
- // item.isselected = 0;
437
- // item?.optionvalues?.forEach(function (valueitem, valueindex) {
438
- // valueitem.isselected = 0;
439
- // });
440
- // });
441
-
442
- // selectproductoptionvalue(optionindex, optionvaluesitem, optionvaluesindex, productarr);
443
- // };
444
- const isOptionInStock = (Currvalueid) => {
445
- if (authdetailsContext?.instinfo?.contactinfo.instid == '68d28fc494276') {
446
- const productinfo = ProductInfoObj?.data?.productinfo;
447
- const options = productinfo?.productoptions || [];
448
- const variants = productinfo?.variants || [];
449
-
450
- // Collect selected option value IDs and find which option they belong to
451
- const selectedValues = [];
452
- options.forEach((option) => {
453
- option.optionvalues.forEach((value) => {
454
- if (value.isselected === 1) {
455
- selectedValues.push({ optionid: option.optionid, valueid: value.valueid });
456
- }
457
- });
458
- });
459
-
460
- const totalOptionCount = options.length;
461
- const selectedCount = selectedValues.length;
462
- const inStockVariants = variants.filter((v) => v.current_quantity > 0);
463
-
464
- // 🧠 Case 1: No selection yet → show if this value exists in any in-stock variant
465
- if (selectedCount === 0) {
466
- return inStockVariants.some((variant) => variant.variantoptions.some((opt) => opt.valueid === Currvalueid)) ? 1 : 0;
467
- }
468
-
469
- // 🧠 Case 2: Only one option selected
470
- if (selectedCount === 1) {
471
- const selected = selectedValues[0];
472
- const selectedOptionId = selected.optionid;
473
-
474
- // Find which option this Currvalueid belongs to
475
- let currentOptionId = null;
476
- options.forEach((option) => {
477
- option.optionvalues.forEach((v) => {
478
- if (v.valueid === Currvalueid) currentOptionId = option.optionid;
479
- });
480
- });
481
-
482
- // Same option (e.g., selecting only size)
483
- if (selectedOptionId === currentOptionId) {
484
- // Show all sizes that appear in any in-stock variant (any color)
485
- return inStockVariants.some((variant) => variant.variantoptions.some((opt) => opt.valueid === Currvalueid)) ? 1 : 0;
486
- }
487
-
488
- // Different option (e.g., color)
489
- // Only in-stock if a variant has both selected value + this value
490
- return inStockVariants.some((variant) => {
491
- const variantValueIds = variant.variantoptions.map((v) => v.valueid);
492
- return variantValueIds.includes(selected.valueid) && variantValueIds.includes(Currvalueid);
493
- })
494
- ? 1
495
- : 0;
496
- }
497
-
498
- // 🧠 Case 3: Multiple options selected (e.g., color + size)
499
- // Check if this value can exist with all selected options except its own type in any in-stock variant
500
- const inStock = inStockVariants.some((variant) => {
501
- const variantValueIds = variant.variantoptions.map((v) => v.valueid);
502
- // Must match all selected except the one that belongs to same option
503
- return (
504
- selectedValues.every((sel) => {
505
- if (options.some((opt) => opt.optionvalues.some((v) => v.valueid === Currvalueid && v.optionid === sel.optionid))) {
506
- // Skip same option
507
- return true;
508
- }
509
- return variantValueIds.includes(sel.valueid);
510
- }) && variantValueIds.includes(Currvalueid)
511
- );
512
- });
513
-
514
- return inStock ? 1 : 0;
515
- } else {
516
- return 1;
517
- }
518
- };
519
- const clearchoosenvaluesbutkeepcurrentvalue = (optionindex, optionvaluesitem, optionvaluesindex) => {
520
- if (authdetailsContext?.instinfo?.contactinfo.instid == '68d28fc494276') {
521
- const productarr = ProductInfoObj;
522
- if (!productarr?.data?.productinfo) return;
523
-
524
- // 1. Find variants that include the newly selected value
525
- const validVariants = (productarr.data.productinfo.variants || []).filter((variant) => (variant.variantoptions || []).some((opt) => opt.valueid === optionvaluesitem.valueid));
526
-
527
- // 2. Build a set of valid value ids
528
- const validValueIds = new Set(validVariants.flatMap((v) => (v.variantoptions || []).map((opt) => opt.valueid)));
529
-
530
- // 3. Loop all options and their values
531
- productarr.data.productinfo.productoptions?.forEach((option) => {
532
- let anySelected = false;
533
- option.optionvalues?.forEach((value) => {
534
- // Normalize stock check result to boolean
535
- const stockResult = isOptionInStock(value.valueid);
536
- const inStock = !(stockResult === 0 || stockResult === '0' || stockResult === false || stockResult === 'false' || stockResult == null);
537
-
538
- // Unselect if NOT valid with the chosen new value OR out of stock
539
- if (!validValueIds.has(value.valueid) || !inStock) {
540
- value.isselected = 0;
541
- } else {
542
- // keep whatever selection is already there (do not auto-select)
543
- if (value.isselected) anySelected = true;
544
- }
545
- });
546
-
547
- // keep option-level selected state in sync
548
- option.isselected = anySelected ? 1 : 0;
549
- });
550
-
551
- // 4. Only select the new value if it's in stock
552
- const newInStock = (() => {
553
- const r = isOptionInStock(optionvaluesitem.valueid);
554
- return !(r === 0 || r === '0' || r === false || r === 'false' || r == null);
555
- })();
556
-
557
- if (newInStock) {
558
- selectproductoptionvalue(optionindex, optionvaluesitem, optionvaluesindex, productarr);
559
- } else {
560
- // optional: show user message or disable click
561
- console.warn('Attempted to select an out-of-stock value:', optionvaluesitem);
562
- }
563
- } else {
564
- var productarr = ProductInfoObj;
565
- productarr?.data?.productinfo?.productoptions?.forEach(function (item, index) {
566
- item.isselected = 0;
567
- item?.optionvalues?.forEach(function (valueitem, valueindex) {
568
- valueitem.isselected = 0;
569
- });
570
- });
571
-
572
- selectproductoptionvalue(optionindex, optionvaluesitem, optionvaluesindex, productarr);
573
- }
574
- };
575
- const selectproductoptionvalue = (optionindex, optionvaluesitem, optionvaluesindex, productarrtobepassed) => {
576
- if (productarrtobepassed == undefined || productarrtobepassed == null) {
577
- var productarr = ProductInfoObj;
578
- } else {
579
- var productarr = productarrtobepassed;
580
- }
581
- var isselected = productarr.data.productinfo.productoptions[optionindex].optionvalues[optionvaluesindex].isselected;
582
- if (isselected == 1) {
583
- productarr.data.productinfo.productoptions[optionindex].optionvalues[optionvaluesindex].isselected = 0;
584
- } else {
585
- productarr.data.productinfo.productoptions[optionindex].optionvalues[optionvaluesindex].isselected = 1;
586
- }
587
- if (
588
- productarr.data.productinfo.productoptions[optionindex].optionname == 'color' ||
589
- productarr.data.productinfo.productoptions[optionindex].optionname == 'Color' ||
590
- productarr.data.productinfo.productoptions[optionindex].optionname == 'Colour'
591
- ) {
592
- setvariantvalueidentifier(productarr.data.productinfo.productoptions[optionindex].optionvalues[optionvaluesindex]?.value_identifier);
593
- // setvariantnotchosendisclaimer('This field is required');
594
- var variantimageindex = 0;
595
- var variantImageMatching = null;
596
- productarr.data.productinfo.variants.forEach(function (ProductVariantItem, ProductVariantIndex) {
597
- ProductVariantItem.variantoptions.forEach(function (varinatoptionitem, variantoptionindex) {
598
- if (optionvaluesitem.valueid == varinatoptionitem.valueid) {
599
- variantImageMatching = ProductVariantItem;
600
- }
601
- });
602
- });
603
-
604
- if (variantImageMatching != null) {
605
- productimagesarray?.forEach(function (tempimageitem, tempimageindex) {
606
- if (tempimageitem.galleryid == variantImageMatching?.variantgalleryid) {
607
- variantimageindex = tempimageindex;
608
- }
609
- });
610
-
611
- setcurrentshowingimageindex(variantimageindex);
612
- }
613
- }
614
- productarr.data.productinfo.productoptions[optionindex].optionvalues.forEach(function (arrayItem, arrayindex) {
615
- if (optionvaluesindex != arrayindex) {
616
- arrayItem.isselected = 0;
617
- }
618
- });
619
- variantchecker();
620
- variantcompleting();
621
- setProductInfoObj({ ...productarr });
622
- };
623
- // const variantchecker = () => {
624
- // var productarr = ProductInfoObj;
625
- // if (Object.keys(productarr).length != 0) {
626
- // if (productarr?.data?.productinfo?.hasvariants == 1) {
627
- // var selectedoptionsvalues = [];
628
- // var variantsaccessible = [];
629
- // productarr.data.productinfo.productoptions.forEach(function (productoptionsitem, productoptionsindex) {
630
- // productoptionsitem.optionvalues.forEach(function (ProductOptionValuesitem, ProductOptionValuesIndex) {
631
- // if (ProductOptionValuesitem.isselected == 1) {
632
- // selectedoptionsvalues.push(ProductOptionValuesitem);
633
- // }
634
- // });
635
- // });
636
- // if (selectedoptionsvalues.length == 0) {
637
- // productarr.data.productinfo.variants.forEach(function (ProductVariantItem, ProductVariantIndex) {
638
- // ProductVariantItem.variantoptions.forEach(function (varinatoptionitem, variantoptionindex) {
639
- // productarr.data.productinfo.productoptions.forEach(function (productoptionsitem, productoptionsindex) {
640
- // productoptionsitem.optionvalues.forEach(function (ProductOptionValuesitem, ProductOptionValuesIndex) {
641
- // if (ProductOptionValuesitem.valueid == varinatoptionitem.valueid) {
642
- // ProductOptionValuesitem.isenabled = 1;
643
- // }
644
- // });
645
- // });
646
- // });
647
- // });
648
- // } else {
649
- // productarr.data.productinfo.productoptions.forEach(function (productoptionsitem, productoptionsindex) {
650
- // productoptionsitem.optionvalues.forEach(function (ProductOptionValuesitem, ProductOptionValuesIndex) {
651
- // ProductOptionValuesitem.isenabled = 0;
652
- // });
653
- // });
654
-
655
- // productarr.data.productinfo.variants.forEach(function (ProductVariantItem, ProductVariantIndex) {
656
- // var variantcommonvalues = [];
657
- // ProductVariantItem.variantoptions.forEach(function (varinatoptionitem, variantoptionindex) {
658
- // selectedoptionsvalues.forEach(function (ProductOptionValuesitem, ProductOptionValuesIndex) {
659
- // if (ProductOptionValuesitem.optionid == varinatoptionitem.optionid) {
660
- // variantcommonvalues.push(varinatoptionitem);
661
- // }
662
- // });
663
- // });
664
-
665
- // var addvariantcount = [];
666
- // var addvariant = false;
667
- // selectedoptionsvalues.forEach(function (ProductOptionValuesitem, ProductOptionValuesIndex) {
668
- // addvariant = false;
669
- // variantcommonvalues.forEach(function (varinatoptionitem, variantoptionindex) {
670
- // if (ProductOptionValuesitem.optionid == varinatoptionitem.optionid) {
671
- // if (ProductOptionValuesitem.valueid == varinatoptionitem.valueid) {
672
- // addvariant = true;
673
- // } else {
674
- // addvariantcount.push(varinatoptionitem);
675
- // }
676
- // }
677
- // });
678
- // });
679
- // if (addvariant && addvariantcount.length == 0) {
680
- // variantsaccessible.push(ProductVariantItem);
681
- // }
682
- // });
683
-
684
- // variantsaccessible.forEach(function (ProductVariantItem, ProductVariantIndex) {
685
- // ProductVariantItem.variantoptions.forEach(function (varinatoptionitem, variantoptionindex) {
686
- // productarr.data.productinfo.productoptions.forEach(function (productoptionsitem, productoptionsindex) {
687
- // productoptionsitem.optionvalues.forEach(function (ProductOptionValuesitem, ProductOptionValuesIndex) {
688
- // if (ProductOptionValuesitem.valueid == varinatoptionitem.valueid) {
689
- // ProductOptionValuesitem.isenabled = 1;
690
- // }
691
- // });
692
- // });
693
- // });
694
- // });
695
- // // 🆕 Permanent disable logic (final version)
696
- // if (selectedoptionsvalues.length === 1) {
697
- // const selected = selectedoptionsvalues[0];
698
- // const validValueIds = new Set();
699
-
700
- // // Find all compatible values from variants including the selected one
701
- // productarr.data.productinfo.variants.forEach((variant) => {
702
- // const includesSelected = variant.variantoptions.some((opt) => opt.valueid === selected.valueid);
703
- // if (includesSelected) {
704
- // variant.variantoptions.forEach((opt) => {
705
- // validValueIds.add(opt.valueid);
706
- // });
707
- // }
708
- // });
709
-
710
- // // Reset perm_disabled according to the current selection
711
- // productarr.data.productinfo.productoptions.forEach((option) => {
712
- // option.optionvalues.forEach((value) => {
713
- // if (option.optionid !== selected.optionid) {
714
- // // Disable values not found in compatible variants
715
- // if (!validValueIds.has(value.valueid)) {
716
- // value.perm_disabled = 1;
717
- // } else {
718
- // value.perm_disabled = 0; // Re-enable if now compatible
719
- // }
720
- // } else {
721
- // // Never disable values in the same option as the selected one
722
- // value.perm_disabled = 0;
723
- // }
724
- // });
725
- // });
726
- // }
727
- // }
728
- // // queryClient.setQueryData('fetchProductInfo_API' + JSON.stringify(fetchproductinfoObjContext), productarr);
729
- // setProductInfoObj({ ...productarr });
730
- // setisloaded(true);
731
- // }
732
- // }
733
- // };
734
- // const variantchecker = () => {
735
- // var productarr = ProductInfoObj;
736
-
737
- // if (Object.keys(productarr).length != 0) {
738
- // if (productarr?.data?.productinfo?.hasvariants == 1) {
739
- // var selectedoptionsvalues = [];
740
- // var variantsaccessible = [];
741
- // productarr.data.productinfo.productoptions.forEach(function (productoptionsitem, productoptionsindex) {
742
- // productoptionsitem.optionvalues.forEach(function (ProductOptionValuesitem, ProductOptionValuesIndex) {
743
- // if (ProductOptionValuesitem.isselected == 1) {
744
- // selectedoptionsvalues.push(ProductOptionValuesitem);
745
- // }
746
- // });
747
- // });
748
- // if (selectedoptionsvalues.length == 0) {
749
- // productarr.data.productinfo.variants.forEach(function (ProductVariantItem, ProductVariantIndex) {
750
- // ProductVariantItem.variantoptions.forEach(function (varinatoptionitem, variantoptionindex) {
751
- // productarr.data.productinfo.productoptions.forEach(function (productoptionsitem, productoptionsindex) {
752
- // productoptionsitem.optionvalues.forEach(function (ProductOptionValuesitem, ProductOptionValuesIndex) {
753
- // if (ProductOptionValuesitem.valueid == varinatoptionitem.valueid) {
754
- // ProductOptionValuesitem.isenabled = 1;
755
- // ProductOptionValuesitem.perm_disabled = 0;
756
- // }
757
- // });
758
- // });
759
- // });
760
- // });
761
- // } else {
762
- // productarr.data.productinfo.productoptions.forEach(function (productoptionsitem, productoptionsindex) {
763
- // productoptionsitem.optionvalues.forEach(function (ProductOptionValuesitem, ProductOptionValuesIndex) {
764
- // ProductOptionValuesitem.isenabled = 0;
765
- // });
766
- // });
767
-
768
- // productarr.data.productinfo.variants.forEach(function (ProductVariantItem, ProductVariantIndex) {
769
- // var variantcommonvalues = [];
770
- // ProductVariantItem.variantoptions.forEach(function (varinatoptionitem, variantoptionindex) {
771
- // selectedoptionsvalues.forEach(function (ProductOptionValuesitem, ProductOptionValuesIndex) {
772
- // if (ProductOptionValuesitem.optionid == varinatoptionitem.optionid) {
773
- // variantcommonvalues.push(varinatoptionitem);
774
- // }
775
- // });
776
- // });
777
-
778
- // var addvariantcount = [];
779
- // var addvariant = false;
780
- // selectedoptionsvalues.forEach(function (ProductOptionValuesitem, ProductOptionValuesIndex) {
781
- // addvariant = false;
782
- // variantcommonvalues.forEach(function (varinatoptionitem, variantoptionindex) {
783
- // if (ProductOptionValuesitem.optionid == varinatoptionitem.optionid) {
784
- // if (ProductOptionValuesitem.valueid == varinatoptionitem.valueid) {
785
- // addvariant = true;
786
- // } else {
787
- // addvariantcount.push(varinatoptionitem);
788
- // }
789
- // }
790
- // });
791
- // });
792
- // if (addvariant && addvariantcount.length == 0) {
793
- // variantsaccessible.push(ProductVariantItem);
794
- // }
795
- // });
796
-
797
- // variantsaccessible.forEach(function (ProductVariantItem, ProductVariantIndex) {
798
- // ProductVariantItem.variantoptions.forEach(function (varinatoptionitem, variantoptionindex) {
799
- // productarr.data.productinfo.productoptions.forEach(function (productoptionsitem, productoptionsindex) {
800
- // productoptionsitem.optionvalues.forEach(function (ProductOptionValuesitem, ProductOptionValuesIndex) {
801
- // if (ProductOptionValuesitem.valueid == varinatoptionitem.valueid) {
802
- // ProductOptionValuesitem.isenabled = 1;
803
- // }
804
- // });
805
- // });
806
- // });
807
- // });
808
- // // 🆕 Permanent disable logic (final version)
809
-
810
- // if (selectedoptionsvalues.length === 1) {
811
- // const selected = selectedoptionsvalues[0];
812
- // const validValueIds = new Set();
813
-
814
- // // Find all compatible values from variants including the selected one
815
- // productarr.data.productinfo.variants.forEach((variant) => {
816
- // const includesSelected = variant.variantoptions.some((opt) => opt.valueid === selected.valueid);
817
- // if (includesSelected) {
818
- // variant.variantoptions.forEach((opt) => {
819
- // validValueIds.add(opt.valueid);
820
- // });
821
- // }
822
- // });
823
-
824
- // // Reset perm_disabled according to the current selection
825
- // productarr.data.productinfo.productoptions.forEach((option) => {
826
- // option.optionvalues.forEach((value) => {
827
- // if (option.optionid !== selected.optionid) {
828
- // // Disable values not found in compatible variants
829
- // if (!validValueIds.has(value.valueid)) {
830
- // value.perm_disabled = 1;
831
- // } else {
832
- // value.perm_disabled = 0; // Re-enable if now compatible
833
- // }
834
- // } else {
835
- // // Never disable values in the same option as the selected one
836
- // value.perm_disabled = 0;
837
- // }
838
- // });
839
- // });
840
- // }
841
- // }
842
- // setProductInfoObj({ ...productarr });
843
- // setisloaded(true);
844
- // }
845
- // }
846
- // };
847
- const variantchecker = () => {
848
- var productarr = ProductInfoObj;
849
-
850
- if (Object.keys(productarr).length != 0) {
851
- if (productarr?.data?.productinfo?.hasvariants == 1) {
852
- var selectedoptionsvalues = [];
853
- var variantsaccessible = [];
854
- productarr.data.productinfo.productoptions.forEach(function (productoptionsitem, productoptionsindex) {
855
- productoptionsitem.optionvalues.forEach(function (ProductOptionValuesitem, ProductOptionValuesIndex) {
856
- if (ProductOptionValuesitem.isselected == 1) {
857
- selectedoptionsvalues.push(ProductOptionValuesitem);
858
- }
859
- });
860
- });
861
- if (selectedoptionsvalues.length == 0) {
862
- productarr.data.productinfo.variants.forEach(function (ProductVariantItem, ProductVariantIndex) {
863
- ProductVariantItem.variantoptions.forEach(function (varinatoptionitem, variantoptionindex) {
864
- productarr.data.productinfo.productoptions.forEach(function (productoptionsitem, productoptionsindex) {
865
- productoptionsitem.optionvalues.forEach(function (ProductOptionValuesitem, ProductOptionValuesIndex) {
866
- if (ProductOptionValuesitem.valueid == varinatoptionitem.valueid) {
867
- ProductOptionValuesitem.isenabled = 1;
868
- ProductOptionValuesitem.perm_disabled = 0;
869
- }
870
- });
871
- });
872
- });
873
- });
874
- } else {
875
- productarr.data.productinfo.productoptions.forEach(function (productoptionsitem, productoptionsindex) {
876
- productoptionsitem.optionvalues.forEach(function (ProductOptionValuesitem, ProductOptionValuesIndex) {
877
- ProductOptionValuesitem.isenabled = 0;
878
- });
879
- });
880
-
881
- productarr.data.productinfo.variants.forEach(function (ProductVariantItem, ProductVariantIndex) {
882
- var variantcommonvalues = [];
883
- ProductVariantItem.variantoptions.forEach(function (varinatoptionitem, variantoptionindex) {
884
- selectedoptionsvalues.forEach(function (ProductOptionValuesitem, ProductOptionValuesIndex) {
885
- if (ProductOptionValuesitem.optionid == varinatoptionitem.optionid) {
886
- variantcommonvalues.push(varinatoptionitem);
887
- }
888
- });
889
- });
890
-
891
- var addvariantcount = [];
892
- var addvariant = false;
893
- selectedoptionsvalues.forEach(function (ProductOptionValuesitem, ProductOptionValuesIndex) {
894
- addvariant = false;
895
- variantcommonvalues.forEach(function (varinatoptionitem, variantoptionindex) {
896
- if (ProductOptionValuesitem.optionid == varinatoptionitem.optionid) {
897
- if (ProductOptionValuesitem.valueid == varinatoptionitem.valueid) {
898
- addvariant = true;
899
- } else {
900
- addvariantcount.push(varinatoptionitem);
901
- }
902
- }
903
- });
904
- });
905
- if (addvariant && addvariantcount.length == 0) {
906
- variantsaccessible.push(ProductVariantItem);
907
- }
908
- });
909
-
910
- variantsaccessible.forEach(function (ProductVariantItem, ProductVariantIndex) {
911
- ProductVariantItem.variantoptions.forEach(function (varinatoptionitem, variantoptionindex) {
912
- productarr.data.productinfo.productoptions.forEach(function (productoptionsitem, productoptionsindex) {
913
- productoptionsitem.optionvalues.forEach(function (ProductOptionValuesitem, ProductOptionValuesIndex) {
914
- if (ProductOptionValuesitem.valueid == varinatoptionitem.valueid) {
915
- ProductOptionValuesitem.isenabled = 1;
916
- }
917
- });
918
- });
919
- });
920
- });
921
- // 🧩 Permanent disable logic — fully fixed version
922
- // 🧩 Universal Permanent Disable Logic (supports any selection order)
923
- const selectedValueIds = selectedoptionsvalues.map((v) => v.valueid);
924
-
925
- productarr.data.productinfo.productoptions.forEach((option) => {
926
- option.optionvalues.forEach((value) => {
927
- // Always keep selected value enabled
928
- if (value.isselected === 1) {
929
- value.perm_disabled = 0;
930
- return;
931
- }
932
-
933
- // 🛑 Don't disable values from the same option group yet —
934
- // but they will be revalidated if multiple options are selected
935
- const isSameOptionSelected = selectedoptionsvalues.some((sel) => sel.optionid === option.optionid);
936
-
937
- // Build combination of selected + this value
938
- const testValueIds = [
939
- ...selectedValueIds.filter((id) => {
940
- // Filter out selected values from this same option
941
- const sel = selectedoptionsvalues.find((s) => s.valueid === id);
942
- return sel?.optionid !== option.optionid;
943
- }),
944
- value.valueid,
945
- ];
946
-
947
- // Check if there's a variant that includes all testValueIds
948
- const compatibleVariant = productarr.data.productinfo.variants.find((variant) => {
949
- const variantValueIds = variant.variantoptions.map((v) => v.valueid);
950
- return testValueIds.every((vId) => variantValueIds.includes(vId));
951
- });
952
-
953
- // Disable if no compatible variant found
954
- value.perm_disabled = compatibleVariant ? 0 : 1;
955
- });
956
- });
957
- }
958
- setProductInfoObj({ ...productarr });
959
- setisloaded(true);
960
- }
961
- }
962
- };
963
-
964
- const variantcompleting = () => {
965
- setvariantindexcompleted('');
966
- var tempaddtocardpayloadobj = { ...addtocardpayloadobj };
967
- tempaddtocardpayloadobj.variantid = '';
968
- setaddtocardpayloadobj({ ...tempaddtocardpayloadobj });
969
- var productarr = ProductInfoObj;
970
- var selectedoptionsvalues = [];
971
-
972
- productarr.data.productinfo.productoptions.forEach(function (productoptionsitem, productoptionsindex) {
973
- productoptionsitem.optionvalues.forEach(function (ProductOptionValuesitem, ProductOptionValuesIndex) {
974
- if (ProductOptionValuesitem.isselected == 1) {
975
- selectedoptionsvalues.push(ProductOptionValuesitem);
976
- }
977
- });
978
- });
979
- productarr.data.productinfo.variants.forEach(function (ProductVariantItem, ProductVariantIndex) {
980
- var isvariant = false;
981
- var variantnotmatch = [];
982
- if (selectedoptionsvalues.length == ProductVariantItem.variantoptions.length) {
983
- isvariant = true;
984
- ProductVariantItem.variantoptions.forEach(function (varinatoptionitem, variantoptionindex) {
985
- selectedoptionsvalues.forEach(function (ProductOptionValuesitem, ProductOptionValuesIndex) {
986
- if (ProductOptionValuesitem.optionid == varinatoptionitem.optionid) {
987
- if (ProductOptionValuesitem.valueid == varinatoptionitem.valueid) {
988
- } else {
989
- variantnotmatch.push('s');
990
- }
991
- }
992
- });
993
- });
994
- }
995
- if (variantnotmatch.length == 0 && isvariant == true) {
996
- var variantobj = fetchProductInfoQueryContext?.data?.data?.productinfo?.variants[ProductVariantIndex];
997
- var variantid = '';
998
- if (variantobj == undefined) {
999
- setisoutofstock(false);
1000
- NotificationManager.warning('', 'Variant Not Found');
1001
- } else {
1002
- variantid = variantobj.variantid;
1003
- var tempaddtocardpayloadobj = { ...addtocardpayloadobj };
1004
- tempaddtocardpayloadobj.variantid = variantid;
1005
- var variantimageindex = 0;
1006
- productimagesarray?.forEach(function (tempimageitem, tempimageindex) {
1007
- if (tempimageitem.galleryid == variantobj?.variantgalleryid) {
1008
- variantimageindex = tempimageindex;
1009
- }
1010
- });
1011
- if (variantobj.current_quantity <= 0) {
1012
- setisoutofstock(true);
1013
- } else {
1014
- setisoutofstock(false);
1015
- }
1016
- setvariantsku(variantobj?.sku);
1017
- setcurrentshowingimageindex(variantimageindex);
1018
- setaddtocardpayloadobj({ ...tempaddtocardpayloadobj });
1019
- setvariantindexcompleted(ProductVariantIndex);
1020
- setvariantindex(ProductVariantIndex);
1021
- }
1022
- } else {
1023
- // setisoutofstock(false);
1024
- }
1025
- });
1026
- // queryClient.setQueryData('fetchProductInfo_API' + JSON.stringify(fetchproductinfoObjContext), productarr);
1027
- setProductInfoObj({ ...productarr });
1028
- };
1029
- const addtocartfunc = (forcetocheckout) => {
1030
- var runfunc = false;
1031
- var forcetocheckoutvalue = forcetocheckout;
1032
- // alert(addtocardpayloadobj.quantity + 'sad');
1033
- if (addtocardpayloadobj.productid.length != 0 && addtocardpayloadobj.quantity > 0) {
1034
- if (fetchProductInfoQueryContext?.data?.data?.productinfo?.hasvariants == 1) {
1035
- if (addtocardpayloadobj.variantid.length != 0) {
1036
- runfunc = true;
1037
- } else {
1038
- // here
1039
- setvariantnotchosendisclaimer('This field is required');
1040
- NotificationManager.warning('', authdetailsContext?.instinfo?.contactinfo.instid == '674f0617c7811' ? 'Please Choose Size & Color' : 'Please Choose Product Options');
1041
- }
1042
- } else {
1043
- runfunc = true;
1044
- }
1045
- } else {
1046
- NotificationManager.warning('', 'Please Choose Quantity');
1047
- }
1048
-
1049
- if (runfunc == true) {
1050
- var tempaddtocardpayloadobj = { ...addtocardpayloadobj };
1051
- tempaddtocardpayloadobj.isproductforcedtocheckout = fetchProductInfoQueryContext?.data?.data?.productinfo?.isproductforcedtocheckout;
1052
- tempaddtocardpayloadobj.vendorid = fetchProductInfoQueryContext?.data?.data?.productinfo?.vendorproviderid;
1053
- if (forcetocheckoutvalue != undefined) {
1054
- tempaddtocardpayloadobj.forcetocheckoutvalue = forcetocheckoutvalue;
1055
- }
1056
- var Extrafieldvalidationresponse = validateextrafields();
1057
- if (Extrafieldvalidationresponse.status) {
1058
- var finalprice = 0;
1059
- if (fetchProductInfoQueryContext?.data?.data?.productinfo?.hassale == 1) {
1060
- finalprice = getprice_discountpriceprops('defaultsaleprice', 0, variantindexcompleted);
1061
- } else {
1062
- finalprice = getprice_discountpriceprops('defaultprice', 0, variantindexcompleted);
1063
- }
1064
- Pixel_EventsContext('AddToCart', {
1065
- content_ids: [fetchProductInfoQueryContext?.data?.data?.productinfo?.productid],
1066
- content_name: fetchProductInfoQueryContext?.data?.data?.productinfo?.name_en + ' - ' + fetchProductInfoQueryContext?.data?.data?.productinfo?.name_ar,
1067
- content_sku: fetchProductInfoQueryContext?.data?.data?.productinfo?.sku,
1068
- content_type: 'product',
1069
- currency: fetchProductInfoQueryContext?.data?.data?.currencyname_en,
1070
- value: finalprice,
1071
- quantity: addtocardpayloadobj.quantity,
1072
- });
1073
- AddtoCartContext(tempaddtocardpayloadobj);
1074
- } else {
1075
- // NotificationManager.warning('', Extrafieldvalidationresponse.reason);
1076
- }
1077
- }
1078
- };
1079
- const validateextrafields = () => {
1080
- var tempaddtocardpayloadobj = { ...addtocardpayloadobj };
1081
- var status = false;
1082
- var reason = '';
1083
- var missingitemsfound = [];
1084
- var extrafields = fetchProductInfoQueryContext?.data?.data?.productinfo?.productextrafields;
1085
- if (extrafields?.length == 0) {
1086
- status = true;
1087
- } else {
1088
- extrafields.forEach(function (item, index) {
1089
- if (item.isrequired == 1) {
1090
- var itemfound = null;
1091
- tempaddtocardpayloadobj?.extrafields?.forEach(function (cchoosenitemvalue) {
1092
- if (cchoosenitemvalue.id == item.id) {
1093
- itemfound = cchoosenitemvalue;
1094
- }
1095
- });
1096
- if (itemfound == null) {
1097
- missingitemsfound.push(item);
1098
- } else {
1099
- if (itemfound?.value?.length == 0) {
1100
- missingitemsfound.push(item);
1101
- }
1102
- }
1103
- }
1104
- });
1105
- }
1106
- if (missingitemsfound.length == 0) {
1107
- status = true;
1108
- } else {
1109
- status = false;
1110
- reason = 'Missing items';
1111
- missingitemsfound.forEach(function (missingitem) {
1112
- var notftitle = langdetect == 'en' ? missingitem.title_en : missingitem.title_ar;
1113
- NotificationManager.warning('', langdetect == 'en' ? 'Please Choose ' + notftitle : 'من فضلك اختر' + notftitle);
1114
- });
1115
- }
1116
- return { status: status, reason: reason };
1117
- };
1118
- const returnpolicyobj = (policytype) => {
1119
- var policyobj = {};
1120
- authdetailsContext?.instinfo?.instpolicies?.forEach(function (item, index) {
1121
- if (item.policytype == policytype) {
1122
- policyobj = item;
1123
- }
1124
- });
1125
- return policyobj;
1126
- };
1127
- const relatedproducts = () => {
1128
- if (Relatedproducts.length != 0) {
1129
- return (
1130
- <div
1131
- 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"
1132
- style={{
1133
- background: sectionproperties.relatedproductsbg,
1134
- paddingTop: sectionproperties.relatedproductspaddingTop + 'px',
1135
- paddingBottom: sectionproperties.relatedproductspaddingBottom + 'px',
1136
- paddingLeft: sectionproperties.relatedproductspaddingLeft + 'px',
1137
- paddingRight: sectionproperties.relatedproductspaddingRight + 'px',
1138
- borderTopLeftRadius: sectionproperties.borderTopLeftRadius + 'px',
1139
- borderTopRightRadius: sectionproperties.borderTopRightRadius + 'px',
1140
- borderBottomLeftRadius: sectionproperties.borderBottomLeftRadius + 'px',
1141
- borderBottomRightRadius: sectionproperties.borderBottomRightRadius + 'px',
1142
- borderTop: sectionproperties.sectioncardborderwidth + 'px solid ' + sectionproperties.sectioncardbordercolor,
1143
- borderBottom: sectionproperties.sectioncardborderwidth + 'px solid ' + sectionproperties.sectioncardbordercolor,
1144
- marginBottom: sectionproperties.relatedProductsMb + 'px',
1145
- }}
1146
- >
1147
- {Relatedproducts.length != 0 && (
1148
- <div className="col-lg-12 p-0">
1149
- <div className="row m-0 w-100">
1150
- <div
1151
- className="col-lg-12 col-md-12 col-sm-12 d-flex align-items-center p-0 flex-column"
1152
- style={{
1153
- justifyContent: sectionproperties.relatedtitleposition == 'Centered' ? 'center' : 'start',
1154
- marginBottom: sectionproperties.relatedtitlemb + 'px',
1155
- }}
1156
- >
1157
- <p className={productinfo_cssstyles.relatedproducttitle + ' m-0 p-0 wordbreak '} style={{}}>
1158
- {langdetect == 'en' ? sectionproperties.relatedproducttitleEn : sectionproperties.relatedproducttitleAr}
1159
- </p>
1160
- <div
1161
- style={{
1162
- width: sectionproperties.relatedproducttitle_lineafterwidth + 'px',
1163
- height: 2,
1164
- background: sectionproperties.relatedproducttitlelinebgcolor,
1165
- borderRadius: 5,
1166
- }}
1167
- />
1168
- </div>
1169
- <div className="col-lg-12 p-0">
1170
- <ScrollMenu
1171
- transitionBehavior={'auto'}
1172
- wrapperClassName={''}
1173
- itemClassName={
1174
- authdetailsContext?.instinfo?.contactinfo.instid == '67dc756de56bd'
1175
- ? 'scrollmenuclassnameitemrelatedproductkingtut'
1176
- : 'scrollmenuclassnameitemrelatedproduct'
1177
- }
1178
- scrollContainerClassName={'scrollmenuclasssubscrollbarrelatedproducts'}
1179
- >
1180
- {Relatedproducts.map((item, index) => {
1181
- if (item.productinfo != null) {
1182
- if (item.productid != fetchProductInfoQueryContext?.data?.data?.productinfo?.productid) {
1183
- return (
1184
- <div
1185
- className="col-lg-12 mb-3 px-1"
1186
- onClick={() => {
1187
- if (props.srcfromprops != 'templatdraftrouter') {
1188
- productidassigner(item.productid);
1189
- } else {
1190
- routingcountext(StaticPagesLinksContext.productinfo, true, item.productid);
1191
- }
1192
- }}
1193
- >
1194
- <div className={productinfo_cssstyles.relatedproductcardcont + ' row w-100 m-0 cursor-pointer '}>
1195
- <div class={' cursor-pointer w-100 '}>
1196
- <div class={`${productinfo_cssstyles.relatedProductImageCont}` + ' w-100 p-0 mb-2 '}>
1197
- <Imagekitimagecomp
1198
- urlEndpoint={ikimagecredcontext?.ikimageendpoint}
1199
- publicKey={ikimagecredcontext?.ikimagepublickey}
1200
- // path={
1201
- // '/tr:w-' +
1202
- // sectionproperties.relatedProductDimWidth +
1203
- // ',h-' +
1204
- // sectionproperties.galleryHeightDimension +
1205
- // '/' +
1206
- // item.productinfo.productmainimage
1207
- // }
1208
- path={
1209
- '/tr:w-' + sectionproperties.imagetr_w + ',h-' + sectionproperties.imagetr_h + '/' + item.productinfo.productmainimage
1210
- }
1211
- loading="lazy"
1212
- style={{
1213
- width: '100%',
1214
- height: '100%',
1215
- objectFit: 'contain',
1216
- backgroundColor: sectionproperties.relatedproductimagebgcolor,
1217
- borderRadius: sectionproperties.relatedProductImageBr + 'px',
1218
- }}
1219
- />
1220
- </div>
1221
- <div class="row m-0 w-100 ">
1222
- <div class="col-lg-12 p-0">
1223
- <p
1224
- class={
1225
- `${productinfo_cssstyles.relatedproductNameStyles}` +
1226
- ' relatedproductNameStyles wordbreak wordbreak1 text-center m-0 '
1227
- }
1228
- >
1229
- {langdetect == 'en' ? item.productinfo.name_en : item.productinfo.name_ar}
1230
- </p>
1231
- </div>
1232
- <div style={{ flexDirection: 'column' }} class="col-lg-12 d-flex align-items-center justify-content-center p-0 ">
1233
- <p class={`${productinfo_cssstyles.relatedproductPricestyles}` + ' m-0 '}>
1234
- {item.productinfo.hassale == 1 ? item.productinfo.defaultsaleprice : item.productinfo.defaultprice}{' '}
1235
- {langdetect == 'en' ? authdetailsContext?.currencyname_en : authdetailsContext?.currencyname_ar}{' '}
1236
- </p>
1237
- </div>
1238
- </div>
1239
- </div>
1240
- </div>
1241
- </div>
1242
- );
1243
- }
1244
- }
1245
- })}
1246
- </ScrollMenu>
1247
- </div>
1248
- </div>
1249
- </div>
1250
- )}
1251
- </div>
1252
- );
1253
- }
1254
- };
1255
- const addtocartfunc_extras = (forcetocheckout, addtocartobjparam) => {
1256
- var runfunc = false;
1257
- var forcetocheckoutvalue = forcetocheckout;
1258
- // alert(addtocardpayloadobj.quantity + 'sad');
1259
- if (addtocartobjparam.productid.length != 0 && addtocartobjparam.quantity > 0) {
1260
- if (fetchProductInfoQueryContext?.data?.data?.productinfo?.hasvariants == 1) {
1261
- if (addtocartobjparam.variantid.length != 0) {
1262
- runfunc = true;
1263
- } else {
1264
- // here
1265
- setvariantnotchosendisclaimer('This field is required');
1266
- NotificationManager.warning('', authdetailsContext?.instinfo?.contactinfo.instid == '674f0617c7811' ? 'Please Choose Size & Color' : 'Please Choose Product Options');
1267
- }
1268
- } else {
1269
- runfunc = true;
1270
- }
1271
- } else {
1272
- NotificationManager.warning('', 'Please Choose Quantity');
1273
- }
1274
-
1275
- if (runfunc == true) {
1276
- // var tempaddtocardpayloadobj = { ...addtocardpayloadobj };
1277
- addtocartobjparam.isproductforcedtocheckout = fetchProductInfoQueryContext?.data?.data?.productinfo?.isproductforcedtocheckout;
1278
- addtocartobjparam.vendorid = fetchProductInfoQueryContext?.data?.data?.productinfo?.vendorproviderid;
1279
- if (forcetocheckoutvalue != undefined) {
1280
- addtocartobjparam.forcetocheckoutvalue = forcetocheckoutvalue;
1281
- }
1282
- var Extrafieldvalidationresponse = validateextrafields();
1283
- if (Extrafieldvalidationresponse.status) {
1284
- var finalprice = 0;
1285
- if (fetchProductInfoQueryContext?.data?.data?.productinfo?.hassale == 1) {
1286
- finalprice = getprice_discountpriceprops('defaultsaleprice', 0, variantindexcompleted);
1287
- } else {
1288
- finalprice = getprice_discountpriceprops('defaultprice', 0, variantindexcompleted);
1289
- }
1290
- Pixel_EventsContext('AddToCart', {
1291
- content_ids: [fetchProductInfoQueryContext?.data?.data?.productinfo?.productid],
1292
- content_name: fetchProductInfoQueryContext?.data?.data?.productinfo?.name_en + ' - ' + fetchProductInfoQueryContext?.data?.data?.productinfo?.name_ar,
1293
- content_sku: fetchProductInfoQueryContext?.data?.data?.productinfo?.sku,
1294
- content_type: 'product',
1295
- currency: fetchProductInfoQueryContext?.data?.data?.currencyname_en,
1296
- value: finalprice,
1297
- quantity: addtocardpayloadobj.quantity,
1298
- });
1299
- AddtoCartContext(addtocartobjparam);
1300
- } else {
1301
- // NotificationManager.warning('', Extrafieldvalidationresponse.reason);
1302
- }
1303
- }
1304
- };
1305
- // const DescriptionContent = () => {
1306
- // return (
1307
- // <div class="col-lg-12 pl-5 pr-5 p-md-0 w-100">
1308
- // <div class="row m-0 w-100">
1309
- // {langdetect == 'en' &&
1310
- // fetchProductInfoQueryContext?.data?.data?.productinfo?.description_en != '' &&
1311
- // fetchProductInfoQueryContext?.data?.data?.productinfo?.description_en != null &&
1312
- // sectionproperties.prodCatShow == 'Show' && (
1313
- // <div className="col-lg-12 p-0 mb-4 d-flex justify-content-center">
1314
- // <div className="row m-0 w-100 d-flex">
1315
- // <div class="col-lg-12 p-0 d-flex justify-content-start">
1316
- // <p
1317
- // className={'text-black text-capitalize m-0 p-0 wordbreak'}
1318
- // style={{
1319
- // textAlign: langdetect == 'en' ? 'left' : 'right',
1320
- // }}
1321
- // dangerouslySetInnerHTML={{
1322
- // __html:
1323
- // showMore == true
1324
- // ? fetchProductInfoQueryContext?.data?.data?.productinfo?.description_en
1325
- // : fetchProductInfoQueryContext?.data?.data?.productinfo?.description_en.slice(0, 1000),
1326
- // }}
1327
- // ></p>
1328
- // </div>
1329
- // <div class="col-lg-12 allcentered">
1330
- // {fetchProductInfoQueryContext?.data?.data?.productinfo?.description_en.length > 1000 && (
1331
- // <p class="m-0 p-0 cursor-pointer text-grey font-weight-600" onClick={() => setShowMore(!showMore)}>
1332
- // {showMore ? lang.showless : lang.showmore}
1333
- // </p>
1334
- // )}
1335
- // </div>
1336
- // </div>
1337
- // </div>
1338
- // )}
1339
- // {langdetect == 'ar' &&
1340
- // fetchProductInfoQueryContext?.data?.data?.productinfo?.description_ar != '' &&
1341
- // fetchProductInfoQueryContext?.data?.data?.productinfo?.description_ar != null &&
1342
- // sectionproperties.prodCatShow == 'Show' && (
1343
- // <div className="col-lg-12 p-0 mb-4 d-flex justify-content-center">
1344
- // <div className="row m-0 w-100 d-flex">
1345
- // <div class="col-lg-12 p-0 d-flex justify-content-start flex-column">
1346
- // <p
1347
- // className={'text-black text-capitalize m-0 p-0 wordbreak'}
1348
- // style={{
1349
- // textAlign: langdetect == 'en' ? 'left' : 'right',
1350
- // }}
1351
- // dangerouslySetInnerHTML={{
1352
- // __html:
1353
- // showMore == true
1354
- // ? fetchProductInfoQueryContext?.data?.data?.productinfo?.description_ar
1355
- // : fetchProductInfoQueryContext?.data?.data?.productinfo?.description_ar.slice(0, 1000),
1356
- // }}
1357
- // ></p>
1358
- // </div>
1359
- // <div class="col-lg-12 allcentered">
1360
- // {fetchProductInfoQueryContext?.data?.data?.productinfo?.description_ar.length > 1000 && (
1361
- // <p class="m-0 p-0 cursor-pointer text-grey font-weight-600 text-right" onClick={() => setShowMore(!showMore)}>
1362
- // {showMore ? lang.showless : lang.showmore}
1363
- // </p>
1364
- // )}
1365
- // </div>
1366
- // </div>
1367
- // </div>
1368
- // )}
1369
- // {sectionproperties.showGallery == 'Show' && fetchProductInfoQueryContext?.data?.data?.productinfo?.productimages?.length != 0 && (
1370
- // <div class="col-lg-12 p-0">
1371
- // <div
1372
- // class="row m-0 w-100 allcentered pl-md-3 pr-md-3"
1373
- // style={{
1374
- // paddingLeft: sectionproperties.galleryPaddingHorizontal + 'px',
1375
- // paddingRight: sectionproperties.galleryPaddingHorizontal + 'px',
1376
- // }}
1377
- // >
1378
- // {fetchProductInfoQueryContext?.data?.data?.productinfo?.productimages?.map((item, index) => {
1379
- // if (index <= 6) {
1380
- // return (
1381
- // <div
1382
- // class={' col-md-4 col-sm-12 mb-3 col-lg-' + sectionproperties.galleryNoOfCols}
1383
- // style={{
1384
- // height: sectionproperties.galleryHeight + 'px',
1385
- // }}
1386
- // >
1387
- // <Imagekitimagecomp
1388
- // urlEndpoint={ikimagecredcontext?.ikimageendpoint}
1389
- // publicKey={ikimagecredcontext?.ikimagepublickey}
1390
- // path={'/tr:w-' + sectionproperties.galleryWidthDimension + ',h-' + sectionproperties.galleryHeightDimension + '/' + item.path}
1391
- // style={{
1392
- // width: '100%',
1393
- // height: '100%',
1394
- // objectFit: 'contain',
1395
- // }}
1396
- // loading="lazy"
1397
- // />
1398
- // </div>
1399
- // );
1400
- // }
1401
- // })}
1402
- // </div>
1403
- // </div>
1404
- // )}
1405
- // </div>
1406
- // </div>
1407
- // );
1408
- // };
1409
- const productinfo_cssstyles = {
1410
- // showthumbnail: css({
1411
- // '.image-gallery-image': {
1412
- // borderRadius: '30px',
1413
- // },
1414
- // }),
1415
- relatedproducttitle: css({
1416
- fontSize: sectionproperties.relatedproductstitlefontsize + 'px',
1417
- color: sectionproperties.relatedproductstitlecolor,
1418
- fontWeight: sectionproperties.relatedproductstitlefontweight,
1419
-
1420
- textAlign: sectionproperties.relatedtitleposition == 'Centered' ? 'center' : langdetect == 'en' ? 'left' : 'right',
1421
- '@media (max-width: 800px)': {
1422
- fontSize: sectionproperties.relatedproducttitlefontsizeresp + 'px',
1423
- },
1424
- }),
1425
- containerstyles: css({
1426
- marginTop: props.srcfromprops != 'templatedraftrouter' ? sectionproperties.marginTop + 'px' : 30,
1427
- '@media (max-width: 800px)': {
1428
- marginTop: sectionproperties.marginTopResp + 'px',
1429
- },
1430
- }),
1431
- submitreviewbtn: css({
1432
- width: sectionproperties.applybtn_width + 'px',
1433
- height: sectionproperties.applybtn_height + 'px',
1434
- borderRadius: sectionproperties.applybtn_borderBottomLeftRadius + 'px',
1435
- fontSize: sectionproperties.applybtn_fontsize + 'px',
1436
- color: sectionproperties.applybtn_textColor,
1437
- fontWeight: sectionproperties.applybtn_Textfontweight,
1438
- backgroundColor: sectionproperties.applybtn_bgColor,
1439
- border: sectionproperties.applybtnborderwidth + 'px solid ' + sectionproperties.applybtnbordercolor,
1440
- textTransform: sectionproperties.applybtn_texttransform,
1441
- ':hover': {
1442
- transition: '.3s',
1443
- backgroundColor: sectionproperties.applybtn_bgColoronhover,
1444
- color: sectionproperties.applybtn_Textcoloronhover,
1445
- },
1446
- }),
1447
- sizeguidebtn: css({
1448
- color: sectionproperties.sizeguidebtncolor,
1449
- fontSize: sectionproperties.sizeguidebtnfontsize + 'px',
1450
- transition: '.3s',
1451
- textDecoration: 'underline',
1452
- ':hover': {
1453
- color: sectionproperties.sizeguidebtncoloronhover,
1454
- borderColor: sectionproperties.sizeguidebtncoloronhover,
1455
- fontWeight: sectionproperties.sizeguidebtnfontweight,
1456
- },
1457
- }),
1458
- form_control: css({
1459
- position: 'relative',
1460
- display: 'flex',
1461
- alignItems: 'center',
1462
- display: 'block',
1463
- width: '100%',
1464
- padding: '0 10px',
1465
- transition: '.3s',
1466
- fontWeight: 500,
1467
- border: sectionproperties.inputfieldbordertype == 'All' ? sectionproperties.inputfieldborderWidth + 'px solid ' + sectionproperties.inputfieldborderColor : 0,
1468
- borderBottom: sectionproperties.inputfieldborderWidth + 'px solid ' + sectionproperties.inputfieldborderColor,
1469
- borderRadius: sectionproperties.inputfieldborderradius + 'px',
1470
- height: sectionproperties.inputfieldheight + 'px',
1471
- background: sectionproperties.input_bgcolor,
1472
- color: sectionproperties.inputfieldcolor,
1473
- ':focus': {
1474
- borderColor: sectionproperties.inputfeildbordercoloronfocus,
1475
- },
1476
- ':focus .login_input_icon': {
1477
- color: sectionproperties.inputfeildbordercoloronfocus,
1478
- },
1479
- }),
1480
- inputfield_label: css({
1481
- color: sectionproperties.form_labelcolor,
1482
- fontWeight: sectionproperties.form_labelfontweight,
1483
- fontSize: sectionproperties.form_labelfontsize + 'px',
1484
- textTransform: sectionproperties.form_labeltexttransform,
1485
- marginBottom: sectionproperties.inputfieldbordertype == 'All' ? 10 : 0,
1486
- }),
1487
- reviewbutton: css({
1488
- width: sectionproperties.reviewbtn_width + 'px',
1489
- height: sectionproperties.reviewbtn_height + 'px',
1490
- background: sectionproperties.reviewbtn_bgcolor,
1491
- color: sectionproperties.reviewbtn_color,
1492
- fontSize: sectionproperties.reviewbtn_fontsize + 'px',
1493
- borderRadius: sectionproperties.reviewbtn_borderradius + 'px',
1494
- border: sectionproperties.reviewbtn_borderwidth + 'px solid ' + sectionproperties.reviewbtn_bordercolor,
1495
- fontWeight: sectionproperties.reviewbtn_fontweight,
1496
- ':hover': {
1497
- transition: '.3s',
1498
- color: sectionproperties.reviewbtn_coloronhover,
1499
- borderColor: sectionproperties.reviewbtn_coloronhover,
1500
- backgroundColor: sectionproperties.reviewbtn_bgcoloronhover,
1501
- },
1502
- }),
1503
- before: css({
1504
- ':before': {
1505
- background: sectionproperties.activetabbordercolor,
1506
- },
1507
- }),
1508
- reservationtab: css({
1509
- color: sectionproperties.tabtextactivecolor,
1510
- fontWeight: sectionproperties.tabtextfontweight,
1511
- background: sectionproperties.activetabbgcolor,
1512
- textTransform: sectionproperties.tabtexttexttransform,
1513
- borderRadius: sectionproperties.tabcontainerborderradius + 'px',
1514
- fontFamily: 'Poppins',
1515
- transition: '.3s',
1516
- textAlign: 'start',
1517
- }),
1518
- cart_btn: css({
1519
- position: 'relative',
1520
- display: 'flex',
1521
- alignItems: 'center',
1522
- justifyContent: 'center',
1523
- overflow: 'hidden',
1524
- width: sectionproperties.cartBtnWidth + 'px',
1525
- height: sectionproperties.cartBtnHeight + 'px',
1526
- background: sectionproperties.cartbtn_bgtransparent == 'Transparent' ? 'transparent' : sectionproperties.cartBtnbgColor,
1527
- borderRadius: sectionproperties.cart_btn_borderBottomLeftRadius + 'px',
1528
- color: sectionproperties.cartBtnTextcolor,
1529
- fontSize: sectionproperties.cartBtnTextfontsize + 'px',
1530
- textTransform: sectionproperties.cartBtnTexttransform,
1531
- fontWeight: sectionproperties.cartBtnTextfontweight,
1532
- border: sectionproperties.cartbtnborderwidth + 'px solid ' + sectionproperties.cartbtnbordercolor,
1533
- margin: 0,
1534
- transition: '.3s',
1535
- ':hover': {
1536
- background: sectionproperties.cartbtn_transparentbgcoloronhover == 'Transparent' ? 'transparent' : sectionproperties.cartBtnbgColoronhover,
1537
- color: sectionproperties.cartBtnTextcoloronhover,
1538
- borderColor: sectionproperties.cartBtnTextcoloronhover,
1539
- },
1540
- }),
1541
- buynow: css({
1542
- position: 'relative',
1543
- display: 'flex',
1544
- alignItems: 'center',
1545
- justifyContent: 'center',
1546
- overflow: 'hidden',
1547
- width: sectionproperties.cartBtnWidth + 'px',
1548
- height: sectionproperties.cartBtnHeight + 'px',
1549
- background: sectionproperties.buynowbgcolor,
1550
- borderRadius: sectionproperties.cart_btn_borderBottomLeftRadius + 'px',
1551
- color: sectionproperties.buynowtextcolor,
1552
- fontSize: sectionproperties.cartBtnTextfontsize + 'px',
1553
- textTransform: sectionproperties.cartBtnTexttransform,
1554
- fontWeight: sectionproperties.cartBtnTextfontweight,
1555
- border: sectionproperties.buynowborderwidth + 'px solid ' + sectionproperties.buynowbordercolor,
1556
- margin: 0,
1557
- transition: '.3s',
1558
- ':hover': {
1559
- background: sectionproperties.buynowbgcoloronhover,
1560
- color: sectionproperties.buynowtextcoloronhover,
1561
- borderColor: sectionproperties.buynowtextcoloronhover,
1562
- },
1563
- }),
1564
- sizeguidebtn2: css({
1565
- position: 'relative',
1566
- display: 'flex',
1567
- alignItems: 'center',
1568
- justifyContent: 'center',
1569
- overflow: 'hidden',
1570
- width: sectionproperties.cartBtnWidth + 'px',
1571
- height: sectionproperties.cartBtnHeight + 'px',
1572
- borderRadius: sectionproperties.cart_btn_borderBottomLeftRadius + 'px',
1573
- color: sectionproperties.sizeguidebtncolor,
1574
- fontSize: sectionproperties.cartBtnTextfontsize + 'px',
1575
- textTransform: sectionproperties.cartBtnTexttransform,
1576
- fontWeight: sectionproperties.cartBtnTextfontweight,
1577
- border: '1px solid ' + sectionproperties.sizeguidebtncolor,
1578
- margin: 0,
1579
- transition: '.3s',
1580
- ':hover': {
1581
- color: sectionproperties.sizeguidebtncoloronhover,
1582
- borderColor: sectionproperties.sizeguidebtncoloronhover,
1583
- },
1584
- }),
1585
- quantitybtn: css({
1586
- width: sectionproperties.quantitybtn_height + 'px',
1587
- height: sectionproperties.quantitybtn_width + 'px',
1588
- display: 'flex',
1589
- flexDirection: 'column',
1590
- overflow: 'hidden',
1591
- borderRadius: sectionproperties.quantitybtn_borderradius + 'px',
1592
- background: sectionproperties.quantitybtn_bgcolor,
1593
- alignItems: 'center',
1594
- justifyContent: 'center',
1595
- margin: 0,
1596
- position: 'relative',
1597
- fontWeight: sectionproperties.quantitybtn_textfontweight,
1598
- color: sectionproperties.quantitybtn_textcolor,
1599
- fontSize: sectionproperties.quantitybtn_textfontsize + 'px',
1600
- border: sectionproperties.quantitybtnborderwidth + 'px solid ' + sectionproperties.quantitybtnbordercolor,
1601
- }),
1602
- quantitybtn_text: css({
1603
- margin: 'auto',
1604
- }),
1605
- add_quantitybtn_icon_container: css({
1606
- position: 'relative',
1607
- width: '35px',
1608
- height: '35px',
1609
- background: sectionproperties.add_quantitybtn_bgcolor,
1610
- display: 'flex',
1611
- alignItems: 'center',
1612
- justifyContent: 'center',
1613
- borderRadius: sectionproperties.add_quantitybtn_borderradius + 'px',
1614
- fontSize: sectionproperties.add_quantitybtn_textfontsize + 'px',
1615
- color: sectionproperties.add_quantitybtn_textcolor,
1616
- transition: '.3s',
1617
- ':hover': {
1618
- color: sectionproperties.add_quantitybtn_textcoloronhover,
1619
- background: sectionproperties.add_quantitybtn_bgcoloronhover,
1620
- },
1621
- }),
1622
- minus_quantitybtn_icon_container: css({
1623
- position: 'relative',
1624
- width: '35px',
1625
- height: '35px',
1626
- background: sectionproperties.remove_quantitybtn_bgcolor,
1627
- display: 'flex',
1628
- alignItems: 'center',
1629
- justifyContent: 'center',
1630
- borderRadius: sectionproperties.remove_quantitybtn_borderradius + 'px',
1631
- fontSize: sectionproperties.remove_quantitybtn_textfontsize + 'px',
1632
- color: sectionproperties.remove_quantitybtn_textcolor,
1633
- transition: '.3s',
1634
- ':hover': {
1635
- color: sectionproperties.remove_quantitybtn_textcoloronhover,
1636
- background: sectionproperties.remove_quantitybtn_bgcoloronhover,
1637
- },
1638
- }),
1639
- closemodalbtn: css({
1640
- color: sectionproperties.sizeguidebtncolor,
1641
- transition: '.3s',
1642
-
1643
- ':hover': {
1644
- color: sectionproperties.sizeguidebtncoloronhover,
1645
- },
1646
- }),
1647
- relatedproductcardcont: css({
1648
- ':hover .relatedproductNameStyles': {
1649
- color: sectionproperties.relatedprodNameColoronhover,
1650
- },
1651
- }),
1652
- relatedProductImageCont: css({
1653
- height: sectionproperties.relatedProductImageHeight + 'px',
1654
- border: sectionproperties.relatedProductImageBorderWidth + 'px solid ' + sectionproperties.relatedProductImageBorderColor,
1655
- borderRadius: sectionproperties.relatedProductImageBr + 'px',
1656
- display: 'flex',
1657
- alignItems: 'center',
1658
- justifyContent: 'center',
1659
- position: 'relative',
1660
- }),
1661
- relatedproductNameStyles: css({
1662
- transition: '.3s',
1663
- color: sectionproperties.relatedprodNameColor,
1664
- fontSize: sectionproperties.relatedprodNameFontSize + 'px',
1665
- fontWeight: sectionproperties.relatedprodnamefontWeight,
1666
- textTransform: sectionproperties.relatedprodNameTextTranform,
1667
- ':hover': {
1668
- color: sectionproperties.relatedprodNameColoronhover,
1669
- },
1670
- }),
1671
- relatedproductPricestyles: css({
1672
- color: sectionproperties.relatedprodPriceColor,
1673
- fontSize: sectionproperties.relatedprodpriceFontSize + 'px',
1674
- fontWeight: sectionproperties.relatedprodPriceFontWeight,
1675
- }),
1676
- cardcontainer: css({
1677
- backgroundColor: sectionproperties.backgroundColor,
1678
- borderTopLeftRadius: sectionproperties.borderTopLeftRadius + 'px',
1679
- borderTopRightRadius: sectionproperties.borderTopRightRadius + 'px',
1680
- borderBottomLeftRadius: sectionproperties.borderBottomLeftRadius + 'px',
1681
- borderBottomRightRadius: sectionproperties.borderBottomRightRadius + 'px',
1682
- paddingRight: langdetect == 'en' ? sectionproperties.paddingRight + 'px' : sectionproperties.paddingLeft + 'px',
1683
- paddingLeft: langdetect == 'en' ? sectionproperties.paddingLeft + 'px' : sectionproperties.paddingRight + 'px',
1684
- paddingTop: sectionproperties.paddingTop + 'px',
1685
- paddingBottom: sectionproperties.paddingBottom + 'px',
1686
- border: sectionproperties.sectioncardborderwidth + 'px solid ' + sectionproperties.sectioncardbordercolor,
1687
- marginBottom: sectionproperties.marginBottom + 'px',
1688
- }),
1689
- wishlist_btn: css({
1690
- // marginTop: sectionproperties.favbtnmargintop + 'px',
1691
- width: sectionproperties.favBtnWidth + 'px',
1692
- height: sectionproperties.favBtnHeight + 'px',
1693
- background: sectionproperties.favbtn_bgtransparent == 'Transparent' ? 'transparent' : sectionproperties.favBtnbgColor,
1694
- borderRadius: sectionproperties.fav_btn_borderBottomLeftRadius + 'px',
1695
- color: sectionproperties.favBtniconcolor,
1696
- fontSize: sectionproperties.favBtnTextfontsize + 'px',
1697
- textTransform: sectionproperties.favBtnTexttransform,
1698
- fontWeight: sectionproperties.favBtnTextfontweight,
1699
- boxShadow: sectionproperties.favbtn_showshadow == 'Show' ? '0 0 10px ' + sectionproperties.favbtn_shadowcolor : '',
1700
- border: sectionproperties.favbtnborderwidth + 'px solid ' + sectionproperties.favbtnbordercolor,
1701
- cursor: 'pointer',
1702
- transition: '.3s',
1703
- ':hover': {
1704
- background: sectionproperties.favbtn_transparentbgcoloronhover == 'Transparent' ? 'transparent' : sectionproperties.favBtnbgColoronhover,
1705
- color: sectionproperties.favBtnTextcoloronhover,
1706
- borderColor: sectionproperties.favBtnTextcoloronhover,
1707
- },
1708
- // '@media (max-width: 800px)': {
1709
- // marginTop: sectionproperties.favbtnmargintopresp + 'px',
1710
- // },
1711
- }),
1712
- productname: css({
1713
- fontSize: sectionproperties.prodNameFontSize + 'px',
1714
- textTransform: sectionproperties.prodNameTextTranform,
1715
- fontWeight: sectionproperties.prodNameFontWeight,
1716
- color: sectionproperties.prodNameColor,
1717
- }),
1718
- productnamehover: css({
1719
- transition: '.3s',
1720
- ':hover': {
1721
- cursor: 'pointer',
1722
- color: sectionproperties.prodNameColorOnHover,
1723
- },
1724
- }),
1725
- storeInfo: css({
1726
- color: sectionproperties.footerinfotext_color,
1727
- fontSize: sectionproperties.footerinfotext_fontsize + 'px',
1728
- textTransform: sectionproperties.footerinfotext_textTransform,
1729
- fontWeight: sectionproperties.footerinfotext_fontweight,
1730
- transition: '.3s',
1731
- }),
1732
- storeInfoContent: css({
1733
- color: sectionproperties.footerinfotext_secondarycolor,
1734
- fontSize: sectionproperties.footerinfotext_secondaryfontsize + 'px',
1735
- fontWeight: sectionproperties.footerinfotext_secondaryfontweight,
1736
- }),
1737
- iconContainer: css({
1738
- width: sectionproperties.iconcontainerwidth + 'px',
1739
- height: sectionproperties.iconcontainerheight + 'px',
1740
- borderRadius: sectionproperties.iconcontainerborderbl + 'px',
1741
- background: sectionproperties.iconcontainerbg,
1742
- color: sectionproperties.iconcontainercolor,
1743
- }),
1744
- storeinfocontainer: css({
1745
- ':hover .storeInfoContent': {
1746
- transition: '.3s',
1747
- color: sectionproperties.footerinfotext_coloronhover,
1748
- },
1749
- ':hover .iconContainer': {
1750
- transition: '.3s',
1751
- color: sectionproperties.iconcontainercoloronhover,
1752
- backgroundColor: sectionproperties.iconcontainerbgonhover,
1753
- },
1754
- }),
1755
- shareicon: css({
1756
- width: sectionproperties.shareiconwidth + 'px',
1757
- height: sectionproperties.shareiconheight + 'px',
1758
- borderRadius: sectionproperties.shareiconborderradius + 'px',
1759
- background: sectionproperties.shareiconbgcolor,
1760
- color: sectionproperties.shareiconcolor,
1761
- ':hover': {
1762
- color: sectionproperties.shareiconcoloronhover,
1763
- transition: '.3s',
1764
- cursor: 'pointer',
1765
- },
1766
- }),
1767
- checkoutbtn: css({
1768
- width: sectionproperties.checkoutBtnWidth + 'px',
1769
- height: sectionproperties.checkoutBtnHeight + 'px',
1770
- backgroundColor: sectionproperties.checkoutBtnbgColor,
1771
- color: sectionproperties.checkoutBtnTextcolor,
1772
- fontWeight: sectionproperties.checkoutBtnTextfontweight,
1773
- fontSize: sectionproperties.checkoutBtnTextfontsize + 'px',
1774
- borderRadius: sectionproperties.checkout_borderBottomLeftRadius + 'px',
1775
- border: sectionproperties.checkout_borderWidth + 'px solid ' + sectionproperties.checkout_bordercolor,
1776
- transition: '.3s',
1777
- ':hover': {
1778
- backgroundColor: sectionproperties.checkoutBtnbgColoronhover,
1779
- color: sectionproperties.checkoutBtncoloronhover,
1780
- },
1781
- }),
1782
- outstockbadge: css({
1783
- minWidth: sectionproperties.outstock_width + 'px',
1784
- height: sectionproperties.outstock_height + 'px',
1785
- background: sectionproperties.outstock_bg,
1786
- color: sectionproperties.outstock_color,
1787
- fontSize: sectionproperties.outstock_fontSize + 'px',
1788
- borderRadius: sectionproperties.outstock_borderradius + 'px',
1789
- }),
1790
- cashbackoutercontainer: css({
1791
- // minWidth: 'fit-content',
1792
- width: sectionproperties.cashbackcontainerwidth + '%',
1793
- height: sectionproperties.cashbackcontainerheight + 'px',
1794
- background: sectionproperties.cashbackcontainerbgcolor,
1795
- color: sectionproperties.cashbackcontainercolor,
1796
- fontSize: sectionproperties.cashbackcontainerfontsize + 'px',
1797
- border: sectionproperties.cashbackcontainerborderwidth + 'px ' + sectionproperties.cashbackcontainerborderstyle + sectionproperties.cashbackcontainerbordercolor,
1798
- borderRadius: sectionproperties.cashbackcontainerborderradius + 'px',
1799
- }),
1800
- profitcontainer: css({
1801
- width: sectionproperties.profitcontainerwidth + '%',
1802
- height: sectionproperties.profitcontainerheight + 'px',
1803
- background: sectionproperties.profitcontainerbgcolor,
1804
- border: sectionproperties.profitcontainerborderwidth + 'px solid' + sectionproperties.profitcontainerbordercolor,
1805
- borderRadius: sectionproperties.profitcontainerborderradius + 'px',
1806
- color: sectionproperties.profitcontainercolor,
1807
- '@media (max-width: 800px)': {
1808
- width: '90%',
1809
- },
1810
- }),
1811
- imagegallery: css({
1812
- '.image-gallery-thumbnail.active': {
1813
- border: '2px solid red ',
1814
- },
1815
- }),
1816
- storeinfobtn: css({
1817
- width: sectionproperties.storeinfobtnwidth + '%',
1818
- height: sectionproperties.storeinfobtnheight + 'px',
1819
- background: sectionproperties.storeinfobtnbgcolor,
1820
- fontSize: sectionproperties.footerinfotext_fontsize,
1821
- fontWeight: sectionproperties.footerinfotext_fontweight,
1822
- color: sectionproperties.footerinfotext_color,
1823
- borderRadius: sectionproperties.storeinfobtnborderradius + 'px',
1824
- border: sectionproperties.storeinfobtnborderwidth + 'px solid ' + sectionproperties.storeinfobtnbordercolor,
1825
- transition: '.3s',
1826
- ':hover': {
1827
- color: sectionproperties.footerinfotext_coloronhover,
1828
- borderColor: sectionproperties.footerinfotext_coloronhover,
1829
- background: sectionproperties.storeinfobtnbgcoloronhover,
1830
- },
1831
- }),
1832
- storeinfocontainer: css({
1833
- marginTop: sectionproperties.storeinfomarginvertical + 'px',
1834
- '@media (max-width: 800px)': {
1835
- marginTop: sectionproperties.storeinfomarginverticalresp + 'px',
1836
- },
1837
- }),
1838
- // storeinfocontainer2: css({
1839
- // marginBottom: sectionproperties.storeinfomarginvertical + 'px',
1840
- // '@media (max-width: 800px)': {
1841
- // marginBottom: sectionproperties.storeinfomarginverticalresp + 'px',
1842
- // },
1843
- // }),
1844
- };
1845
-
1846
- const getprice_discountpriceprops = (type, withtotal, variantindexcompleted) => {
1847
- var price = 0;
1848
- var quantityconditions = [];
1849
- var quantity = 0;
1850
- if (addtocardpayloadobj.quantity != undefined && addtocardpayloadobj.quantity != null) {
1851
- quantity = parseFloat(addtocardpayloadobj.quantity);
1852
- }
1853
- if (
1854
- fetchProductInfoQueryContext?.data?.data?.productinfo?.productquantityoptions != undefined &&
1855
- fetchProductInfoQueryContext?.data?.data?.productinfo?.productquantityoptions != null &&
1856
- Array.isArray(fetchProductInfoQueryContext?.data?.data?.productinfo?.productquantityoptions) &&
1857
- fetchProductInfoQueryContext?.data?.data?.productinfo?.productquantityoptions?.length != 0
1858
- ) {
1859
- quantityconditions = fetchProductInfoQueryContext?.data?.data?.productinfo?.productquantityoptions;
1860
- }
1861
- if (type == 'defaultprice') {
1862
- price = fetchProductInfoQueryContext?.data?.data?.productinfo?.defaultprice;
1863
- if (fetchProductInfoQueryContext?.data?.data?.productinfo?.hasvariants == 1) {
1864
- if (variantindexcompleted != undefined) {
1865
- if (fetchProductInfoQueryContext?.data?.data?.productinfo?.variants[variantindexcompleted]?.variantprice != undefined) {
1866
- price = fetchProductInfoQueryContext?.data?.data?.productinfo?.variants[variantindexcompleted]?.variantprice;
1867
- }
1868
- }
1869
- }
1870
- } else if (type == 'defaultsaleprice') {
1871
- price = fetchProductInfoQueryContext?.data?.data?.productinfo?.defaultsaleprice;
1872
- if (fetchProductInfoQueryContext?.data?.data?.productinfo?.hasvariants == 1) {
1873
- if (variantindexcompleted != undefined) {
1874
- if (fetchProductInfoQueryContext?.data?.data?.productinfo?.variants[variantindexcompleted]?.variantsaleprice != undefined) {
1875
- price = fetchProductInfoQueryContext?.data?.data?.productinfo?.variants[variantindexcompleted]?.variantsaleprice;
1876
- }
1877
- }
1878
- }
1879
- }
1880
- var localquantityconditionobj = null;
1881
- var temppriceinseidconditions = price;
1882
- // quantityconditions.forEach(function (item, index) {
1883
- // if (item.fromq <= quantity && item.toq >= quantity) {
1884
- // var discountprice = (item.value / 100) * price;
1885
- // if (item.type == 'add') {
1886
- // temppriceinseidconditions = price + discountprice;
1887
- // } else if (item.type == 'subtract') {
1888
- // temppriceinseidconditions = price - discountprice;
1889
- // }
1890
- // localquantityconditionobj = item;
1891
- // }
1892
- // });
1893
- price = temppriceinseidconditions;
1894
- // setquantityconditionfoundobj(localquantityconditionobj);
1895
- if (withtotal == true) {
1896
- if (price != undefined) {
1897
- price = price * quantity;
1898
- }
1899
- }
1900
- if (price != undefined) {
1901
- if (sectionproperties.removedecimals == 'Without Decimals') {
1902
- return parseFloat(Number(price).toFixed(2));
1903
- } else if (sectionproperties.removedecimals == 'Without Decimals and Separated With Comma') {
1904
- return Math.floor(price).toLocaleString();
1905
- } else {
1906
- return price;
1907
- }
1908
- } else {
1909
- return 0;
1910
- }
1911
- };
1912
- // const getprice_discountpricepropsnormalonly = (type, withtotal, variantindexcompleted) => {
1913
- // var price = 0;
1914
- // var quantityconditions = [];
1915
- // var quantity = 0;
1916
- // if (addtocardpayloadobj.quantity != undefined && addtocardpayloadobj.quantity != null) {
1917
- // quantity = parseFloat(addtocardpayloadobj.quantity);
1918
- // }
1919
- // if (
1920
- // fetchProductInfoQueryContext?.data?.data?.productinfo?.productquantityoptions != undefined &&
1921
- // fetchProductInfoQueryContext?.data?.data?.productinfo?.productquantityoptions != null &&
1922
- // Array.isArray(fetchProductInfoQueryContext?.data?.data?.productinfo?.productquantityoptions) &&
1923
- // fetchProductInfoQueryContext?.data?.data?.productinfo?.productquantityoptions?.length != 0
1924
- // ) {
1925
- // quantityconditions = fetchProductInfoQueryContext?.data?.data?.productinfo?.productquantityoptions;
1926
- // }
1927
- // if (type == 'defaultprice') {
1928
- // price = fetchProductInfoQueryContext?.data?.data?.productinfo?.defaultprice;
1929
- // if (fetchProductInfoQueryContext?.data?.data?.productinfo?.hasvariants == 1) {
1930
- // if (variantindexcompleted != undefined) {
1931
- // if (fetchProductInfoQueryContext?.data?.data?.productinfo?.variants[variantindexcompleted]?.variantprice != undefined) {
1932
- // price = fetchProductInfoQueryContext?.data?.data?.productinfo?.variants[variantindexcompleted]?.variantprice;
1933
- // }
1934
- // }
1935
- // }
1936
- // } else if (type == 'defaultsaleprice') {
1937
- // price = fetchProductInfoQueryContext?.data?.data?.productinfo?.defaultsaleprice;
1938
- // if (fetchProductInfoQueryContext?.data?.data?.productinfo?.hasvariants == 1) {
1939
- // if (variantindexcompleted != undefined) {
1940
- // if (fetchProductInfoQueryContext?.data?.data?.productinfo?.variants[variantindexcompleted]?.variantsaleprice != undefined) {
1941
- // price = fetchProductInfoQueryContext?.data?.data?.productinfo?.variants[variantindexcompleted]?.variantsaleprice;
1942
- // }
1943
- // }
1944
- // }
1945
- // }
1946
- // var localquantityconditionobj = null;
1947
- // var temppriceinseidconditions = price;
1948
- // // quantityconditions.forEach(function (item, index) {
1949
- // // if (item.fromq <= quantity && item.toq >= quantity) {
1950
- // // var discountprice = (item.value / 100) * price;
1951
- // // if (item.type == 'add') {
1952
- // // temppriceinseidconditions = price + discountprice;
1953
- // // } else if (item.type == 'subtract') {
1954
- // // temppriceinseidconditions = price - discountprice;
1955
- // // }
1956
- // // localquantityconditionobj = item;
1957
- // // }
1958
- // // });
1959
- // price = temppriceinseidconditions;
1960
- // // setquantityconditionfoundobj(localquantityconditionobj);
1961
- // if (withtotal == true) {
1962
- // if (price != undefined) {
1963
- // price = price * quantity;
1964
- // }
1965
- // }
1966
- // if (price != undefined) {
1967
- // return price;
1968
- // } else {
1969
- // return 0;
1970
- // }
1971
- // };
1972
- const getQuantityCondition = () => {
1973
- return (
1974
- <div
1975
- class="col-lg-12 p-0"
1976
- style={{
1977
- background: sectionproperties.reservation_bgcolor,
1978
- borderRadius: sectionproperties.reservation_borderradius + 'px',
1979
- }}
1980
- >
1981
- <div
1982
- class="row m-0 w-100"
1983
- style={{
1984
- paddingLeft: sectionproperties.reservation_padding_left + 'rem',
1985
- paddingRight: sectionproperties.reservation_padding_right + 'rem',
1986
- paddingTop: sectionproperties.reservation_padding_top + 'rem',
1987
- paddingBottom: sectionproperties.reservation_padding_bottom + 'rem',
1988
- }}
1989
- >
1990
- <div class="col-lg-12 p-0 mb-4 allcentered flex-column">
1991
- <p
1992
- class="m-0 p-0 "
1993
- style={{
1994
- color: sectionproperties.pricelisttitlecolor,
1995
- fontSize: sectionproperties.pricelisttitlefontSize + 'px',
1996
- fontWeight: sectionproperties.pricelisttitlefontWeight,
1997
- }}
1998
- >
1999
- {langdetect == 'en' ? sectionproperties.pricelisttitle_en : sectionproperties.pricelisttitle_ar}
2000
- </p>
2001
- <div
2002
- style={{
2003
- width: '30%',
2004
- height: 1,
2005
- background: sectionproperties.pricelisttitlecolor,
2006
- }}
2007
- />
2008
- </div>
2009
- {fetchProductInfoQueryContext?.data?.data?.productinfo?.productquantityoptions?.map((item, index) => {
2010
- return (
2011
- <div
2012
- className="col-lg-12 p-0 w-100 d-flex align-items-center"
2013
- style={{
2014
- marginBottom: fetchProductInfoQueryContext?.data?.data?.productinfo?.productquantityoptions?.length - 1 != index ? '1rem' : 0,
2015
- }}
2016
- >
2017
- <div
2018
- class="d-flex align-items-center"
2019
- style={{
2020
- color: sectionproperties.pricelistlabelcolor,
2021
- fontSize: sectionproperties.pricelistlabelfontsize + 'px',
2022
- fontWeight: sectionproperties.pricelistlabelfontweight,
2023
- }}
2024
- >
2025
- <p
2026
- class="m-0 pb-0"
2027
- style={{
2028
- paddingRight: langdetect == 'en' ? '0.5rem' : 0,
2029
- paddingLeft: langdetect == 'ar' ? '0.5rem' : 0,
2030
- }}
2031
- >
2032
- {langdetect == 'en' ? 'From' : 'من'}: {item.fromq} - {item.toq}
2033
- </p>
2034
- </div>
2035
- <div class="" style={{ flex: 1, borderTop: '5px dotted #ccc' }} />
2036
- <p
2037
- class="m-0 pb-0"
2038
- style={{
2039
- paddingLeft: langdetect == 'en' ? '0.5rem' : 0,
2040
- paddingRight: langdetect == 'ar' ? '0.5rem' : 0,
2041
- color: item.type == 'add' ? sectionproperties.valueaddcolor : sectionproperties.valueminuscolor,
2042
- fontSize: sectionproperties.pricelistvaluefontsize + 'px',
2043
- fontWeight: sectionproperties.pricelistvaluefontweight,
2044
- }}
2045
- >
2046
- {item.type == 'subtract' ? '-' : '+'} {item.value}%
2047
- </p>
2048
- </div>
2049
- );
2050
- })}
2051
- </div>
2052
- </div>
2053
- );
2054
- };
2055
- const StoreInfo = (position) => {
2056
- return (
2057
- <div
2058
- class={sectionproperties.storeinformationcontainerborderwidth != 0 ? 'row m-0 w-100 p-3' : 'row m-0 w-100'}
2059
- style={{
2060
- border: sectionproperties.storeinformationcontainerborderwidth + 'px solid ' + sectionproperties.storeinformationcontainerbordercolor,
2061
- borderRadius: sectionproperties.storeinformationcontainerborderradius + 'px',
2062
- }}
2063
- >
2064
- <div class="col-lg-12 p-0">
2065
- {sectionproperties.storeinfostyle == 'Style 1' && (
2066
- <div class="row m-0 w-100">
2067
- {sectionproperties.showstoreinfo1 == 'Show' && (
2068
- <div className={productinfo_cssstyles.storeinfobtn + ' col-lg-12 p-0 w-100 d-flex align-items-center '}>
2069
- <div class={productinfo_cssstyles.iconContainer}>
2070
- <i className="h-100 d-flex align-items-center justify-content-center">
2071
- <FaShippingFast size={20} />
2072
- </i>
2073
- </div>
2074
- <div className="col-lg-9 col-md-9 col-sm-9 d-flex justofy-content-start flex-column">
2075
- <p
2076
- className={productinfo_cssstyles.storeInfo + ' m-0 p-0 wordbreak '}
2077
- style={{
2078
- textAlign: langdetect == 'en' ? 'left' : 'right',
2079
- }}
2080
- >
2081
- {langdetect == 'en' ? sectionproperties.otherinfotitle1en : sectionproperties.otherinfotitle1ar}
2082
- </p>
2083
- <p
2084
- className={productinfo_cssstyles.storeInfoContent + ' m-0 p-0 wordbreak '}
2085
- style={{
2086
- textAlign: langdetect == 'en' ? 'left' : 'right',
2087
- }}
2088
- >
2089
- {langdetect == 'en' ? sectionproperties.otherinfodesc1en : sectionproperties.otherinfodesc1ar}
2090
- </p>
2091
- </div>
2092
- </div>
2093
- )}
2094
- {sectionproperties.showstoreinfo2 == 'Show' && (
2095
- <div className={productinfo_cssstyles.storeinfobtn + ' col-lg-12 p-0 d-flex align-items-center mt-4 '}>
2096
- <div class={productinfo_cssstyles.iconContainer}>
2097
- <i className="h-100 d-flex align-items-center justify-content-center">
2098
- <RiSecurePaymentLine size={20} />
2099
- </i>
2100
- </div>
2101
- <div className="col-lg-9 col-md-9 col-sm-9 d-flex justofy-content-start flex-column">
2102
- <p
2103
- className={productinfo_cssstyles.storeInfo + ' m-0 p-0 wordbreak '}
2104
- style={{
2105
- textAlign: langdetect == 'en' ? 'left' : 'right',
2106
- }}
2107
- >
2108
- {langdetect == 'en' ? sectionproperties.otherinfotitle2en : sectionproperties.otherinfotitle2ar}
2109
- </p>
2110
- <p
2111
- className={productinfo_cssstyles.storeInfoContent + ' m-0 p-0 wordbreak '}
2112
- style={{
2113
- textAlign: langdetect == 'en' ? 'left' : 'right',
2114
- }}
2115
- >
2116
- {langdetect == 'en' ? sectionproperties.otherinfodesc2en : sectionproperties.otherinfodesc2ar}
2117
- </p>
2118
- </div>
2119
- </div>
2120
- )}
2121
- {sectionproperties.showpricinglist == 'Show' && fetchProductInfoQueryContext?.data?.data?.productinfo?.productquantityoptions?.length != 0 && (
2122
- <div class="col-lg-12 p-0 mb-4">{getQuantityCondition()}</div>
2123
- )}
2124
- {sectionproperties.showfooterphonenumber == 'Show' && (
2125
- <div
2126
- className={`${productinfo_cssstyles.storeinfobtn} ${productinfo_cssstyles.storeinfocontainer}` + ' mt-4 col-lg-12 p-0 d-flex align-items-center cursor-pointer '}
2127
- onClick={() => {
2128
- window.open('tel:' + authdetailsContext?.CuContactphonenumber, '_blank');
2129
- }}
2130
- >
2131
- <div class={productinfo_cssstyles.iconContainer + ' iconContainer '}>
2132
- <i className="h-100 d-flex align-items-center justify-content-center">
2133
- <HiOutlinePhone size={20} />
2134
- </i>
2135
- </div>
2136
- <div className="col-lg-9 col-md-9 col-sm-9 d-flex justofy-content-start flex-column">
2137
- <p
2138
- className={productinfo_cssstyles.storeInfo + ' m-0 p-0 wordbreak '}
2139
- style={{
2140
- textAlign: langdetect == 'en' ? 'left' : 'right',
2141
- }}
2142
- >
2143
- {langdetect == 'en' ? sectionproperties.phonetitle_en : sectionproperties.phonetitle_ar}
2144
- </p>
2145
- <p
2146
- className={productinfo_cssstyles.storeInfoContent + ' storeInfoContent m-0 p-0 wordbreak '}
2147
- style={{
2148
- textAlign: langdetect == 'en' ? 'left' : 'right',
2149
- }}
2150
- >
2151
- {authdetailsContext?.CuContactphonenumber}
2152
- </p>
2153
- </div>
2154
- </div>
2155
- )}
2156
- {sectionproperties.showfooteremail == 'Show' && (
2157
- <div
2158
- className={`${productinfo_cssstyles.storeinfobtn} ${productinfo_cssstyles.storeinfocontainer}` + ' mb-t col-lg-12 p-0 d-flex align-items-center cursor-pointer '}
2159
- onClick={() => {
2160
- window.open('mailto:' + authdetailsContext?.instinfo?.contactinfo?.email, '_self');
2161
- }}
2162
- >
2163
- <div class={productinfo_cssstyles.iconContainer + ' iconContainer '}>
2164
- <i className="h-100 d-flex align-items-center justify-content-center">
2165
- <AiOutlineMail size={20} />
2166
- </i>
2167
- </div>
2168
- <div className="col-lg-9 col-md-9 col-sm-9 d-flex justofy-content-start flex-column">
2169
- <p
2170
- className={productinfo_cssstyles.storeInfo + ' m-0 p-0 wordbreak '}
2171
- style={{
2172
- textAlign: langdetect == 'en' ? 'left' : 'right',
2173
- }}
2174
- >
2175
- {langdetect == 'en' ? sectionproperties.emailtitle_en : sectionproperties.emailtitle_ar}
2176
- </p>
2177
- <p
2178
- className={productinfo_cssstyles.storeInfoContent + ' storeInfoContent m-0 p-0 wordbreak '}
2179
- style={{
2180
- textAlign: langdetect == 'en' ? 'left' : 'right',
2181
- }}
2182
- >
2183
- {authdetailsContext?.instinfo?.contactinfo?.email}
2184
- </p>
2185
- </div>
2186
- </div>
2187
- )}
2188
- <div
2189
- class="col-lg-12 my-2"
2190
- style={{
2191
- display: sectionproperties.showfirstpolicy_storeinfo == 'Hide' && sectionproperties.showsecondpolicy_storeinfo == 'Hide' ? 'none' : 'block',
2192
- }}
2193
- >
2194
- <hr />
2195
- </div>
2196
- {sectionproperties.showfirstpolicy_storeinfo == 'Show' && (
2197
- <div
2198
- className={
2199
- `${productinfo_cssstyles.storeinfobtn} ${productinfo_cssstyles.storeinfocontainer}` +
2200
- ' mb-4 col-lg-12 p-0 d-flex align-items-center cursor-pointer textdecorationhover '
2201
- }
2202
- onClick={() => {
2203
- routingcountext(StaticPagesLinksContext.ShippingPolicy);
2204
- }}
2205
- >
2206
- <div class={productinfo_cssstyles.iconContainer + ' iconContainer '}>
2207
- <i className="h-100 d-flex align-items-center justify-content-center">
2208
- <FiBox size={20} />
2209
- </i>
2210
- </div>
2211
- <div className="col-lg-9 col-md-9 col-sm-9 d-flex justofy-content-start flex-column">
2212
- <p
2213
- className={productinfo_cssstyles.storeInfo + ' m-0 p-0 wordbreak '}
2214
- style={{
2215
- textAlign: langdetect == 'en' ? 'left' : 'right',
2216
- }}
2217
- >
2218
- {langdetect == 'en' ? returnpolicyobj('Shipping Policy')?.policypagename_en : returnpolicyobj('Shipping Policy')?.policypagename_ar}
2219
- </p>
2220
- </div>
2221
- </div>
2222
- )}
2223
- {sectionproperties.showsecondpolicy_storeinfo == 'Show' && (
2224
- <div
2225
- className={
2226
- `${productinfo_cssstyles.storeinfobtn} ${productinfo_cssstyles.storeinfocontainer}` +
2227
- ' mb-4 col-lg-12 p-0 d-flex align-items-center cursor-pointer textdecorationhover '
2228
- }
2229
- onClick={() => {
2230
- routingcountext(StaticPagesLinksContext.RefundPolicy);
2231
- }}
2232
- >
2233
- <div class={productinfo_cssstyles.iconContainer + ' iconContainer '}>
2234
- <i className="h-100 d-flex align-items-center justify-content-center">
2235
- <RiArrowGoBackLine size={20} />
2236
- </i>
2237
- </div>
2238
- <div className="col-lg-9 col-md-9 col-sm-9 d-flex justofy-content-start flex-column">
2239
- <p
2240
- className={productinfo_cssstyles.storeInfo + ' m-0 p-0 wordbreak '}
2241
- style={{
2242
- textAlign: langdetect == 'en' ? 'left' : 'right',
2243
- }}
2244
- >
2245
- {langdetect == 'en' ? returnpolicyobj('Refund Policy')?.policypagename_en : returnpolicyobj('Refund Policy')?.policypagename_ar}
2246
- </p>
2247
- </div>
2248
- </div>
2249
- )}
2250
- </div>
2251
- )}
2252
- {sectionproperties.storeinfostyle == 'Style 2' && (
2253
- <div class="row m-0 w-100">
2254
- {sectionproperties.showfooterphonenumber == 'Show' && authdetailsContext?.CuContactphonenumber != null && (
2255
- <div class={position == 'belowinfo' ? 'col-lg-12 allcentered mb-2 p-0' : 'col-lg-12 allcentered mb-2 p-sm-0'}>
2256
- <button
2257
- class={productinfo_cssstyles.storeinfobtn + ' allcentered '}
2258
- onClick={() => {
2259
- window.open('tel:' + authdetailsContext?.CuContactphonenumber, '_blank');
2260
- }}
2261
- >
2262
- <p class="m-0 p-0">{langdetect == 'en' ? sectionproperties.phonetitle_en : sectionproperties.phonetitle_ar}</p>
2263
- </button>
2264
- </div>
2265
- )}
2266
- {sectionproperties.showfooteremail == 'Show' && authdetailsContext?.instinfo?.contactinfo?.email != null && (
2267
- <div class={position == 'belowinfo' ? 'col-lg-12 allcentered mb-2 p-0' : 'col-lg-12 allcentered mb-2 p-sm-0'}>
2268
- <button
2269
- class={productinfo_cssstyles.storeinfobtn + ' allcentered '}
2270
- onClick={() => {
2271
- window.open('mailto:' + authdetailsContext?.instinfo?.contactinfo?.email, '_self');
2272
- }}
2273
- >
2274
- <p class="m-0 p-0">{langdetect == 'en' ? sectionproperties.emailtitle_en : sectionproperties.emailtitle_ar}</p>
2275
- </button>
2276
- </div>
2277
- )}
2278
- {sectionproperties.showwhatsapp == 'Show' && authdetailsContext?.instinfo?.whatsappnumber != null && (
2279
- <div class={position == 'belowinfo' ? 'col-lg-12 allcentered mb-2 p-0' : 'col-lg-12 allcentered mb-2 p-sm-0'}>
2280
- <button
2281
- class={productinfo_cssstyles.storeinfobtn + ' allcentered '}
2282
- onClick={() => {
2283
- if (authdetailsContext?.instinfo?.whatsappnumber != null) {
2284
- window.open('https://api.whatsapp.com/send?phone=' + authdetailsContext?.instinfo?.whatsappnumber, '_blank');
2285
- }
2286
- }}
2287
- >
2288
- <p class="m-0 p-0">{langdetect == 'en' ? sectionproperties.whatsapptitle_en : sectionproperties.whatsapptitle_ar}</p>
2289
- </button>
2290
- </div>
2291
- )}
2292
- </div>
2293
- )}
2294
- </div>
2295
- </div>
2296
- );
2297
- };
2298
- const isproductofstock = () => {
2299
- var isproductoutofstock = false;
2300
- var variantindexcompletedloc = variantindexcompleted?.toString();
2301
- var currquant = 0;
2302
- if (fetchProductInfoQueryContext.isSuccess) {
2303
- if (fetchProductInfoQueryContext?.data?.data?.productinfo?.quantavailtype == 'limit') {
2304
- if (fetchProductInfoQueryContext?.data?.data?.productinfo?.hasvariants == 1) {
2305
- if (variantindexcompletedloc != undefined && variantindexcompletedloc != null && variantindexcompletedloc != '') {
2306
- if (isoutofstock) {
2307
- isproductoutofstock = true;
2308
- } else {
2309
- isproductoutofstock = false;
2310
- }
2311
- }
2312
- } else {
2313
- if (fetchProductInfoQueryContext?.data?.data?.productinfo?.quantavailtype == 'limit') {
2314
- if (parseFloat(fetchProductInfoQueryContext?.data?.data?.productinfo?.currentquantity) <= 0) {
2315
- isproductoutofstock = true;
2316
- currquant = fetchProductInfoQueryContext?.data?.data?.productinfo?.currentquantity;
2317
- }
2318
- }
2319
- }
2320
- }
2321
- }
2322
- return { isproductoutofstock: isproductoutofstock, currquant: currquant };
2323
- };
2324
- return (
2325
- <div className={productinfo_cssstyles.containerstyles + ' row w-100 ml-0 mr-0 '}>
2326
- {/* <h1>
2327
- {isproductofstock()['isproductoutofstock']?.toString()} -- ff - {ProductInfoObj?.data?.productinfo?.name_en}
2328
- </h1> */}
2329
- {Object.keys(sectionproperties).length != 0 && (
2330
- <div className="col-lg-12 p-0" style={{ minHeight: props.actions.srcfromprops == 'templatedraftrouter' ? 'auto' : '80vh' }}>
2331
- {/* {fetchProductInfoQueryContextProps.isFetching && ( */}
2332
- {/* {Object.keys(fetchProductInfoQueryContext).length == 0 && ( */}
2333
- {isProductPageLoading && (
2334
- <div className={'row ml-0 mr-0 w-100 px-5 py-5'}>
2335
- <div class="col-lg-6 col-md-12 is-loading mb-md-4">
2336
- <div
2337
- class="image"
2338
- style={{
2339
- width: '100%',
2340
- height: 400,
2341
- }}
2342
- ></div>
2343
- </div>
2344
- <div class="col-lg-6 col-md-12 mb-md-4">
2345
- <p class="is-loading"></p>
2346
- <p
2347
- class="is-loading"
2348
- style={{
2349
- width: '40%',
2350
- }}
2351
- ></p>
2352
- <p
2353
- class="is-loading"
2354
- style={{
2355
- width: '40%',
2356
- }}
2357
- ></p>
2358
- <p
2359
- class="is-loading"
2360
- style={{
2361
- width: '40%',
2362
- }}
2363
- ></p>
2364
- <p
2365
- class="is-loading"
2366
- style={{
2367
- width: '40%',
2368
- }}
2369
- ></p>
2370
- <p
2371
- class="is-loading"
2372
- style={{
2373
- width: '40%',
2374
- }}
2375
- ></p>
2376
- <p
2377
- class="is-loading"
2378
- style={{
2379
- width: '40%',
2380
- }}
2381
- ></p>
2382
- <p
2383
- class="is-loading"
2384
- style={{
2385
- width: '40%',
2386
- }}
2387
- ></p>
2388
- <p
2389
- class="is-loading"
2390
- style={{
2391
- width: '40%',
2392
- }}
2393
- ></p>
2394
- </div>
2395
-
2396
- {/* <Messaging color="#ccc" width="10px" height="10px" duration="1s" /> */}
2397
- </div>
2398
- )}
2399
- {/* {!fetchProductInfoQueryContext.isFetching && fetchProductInfoQueryContext.isSuccess && fetchProductInfoQueryContext?.data?.data?.productinfo? != null && ( */}
2400
- {/* {Object.keys(fetchProductInfoQueryContext).length != 0 && ( */}
2401
- {!isProductPageLoading && (
2402
- <div
2403
- 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 '}
2404
- style={{
2405
- paddingLeft: props.srcfromprops == 'Productinfomodel' ? (langdetect == 'en' ? sectionproperties.card_marginLeft + 'px' : sectionproperties.card_marginRight + 'px') : 0,
2406
- paddingRight:
2407
- props.srcfromprops == 'Productinfomodel' ? (langdetect == 'en' ? sectionproperties.card_marginRight + 'px' : sectionproperties.card_marginLeft + 'px') : 0,
2408
- }}
2409
- >
2410
- {fetchProductInfoQueryContext?.data?.data?.productinfo?.item_type == 'product' && (
2411
- <Product_itemtype
2412
- actions={{
2413
- isOptionInStock: isOptionInStock,
2414
- variantnotchosendisclaimer: variantnotchosendisclaimer,
2415
- fetchAuthorizationQueryContext: fetchAuthorizationQueryContext,
2416
- setisoutofstock: setisoutofstock,
2417
- isoutofstock: isoutofstock,
2418
- returnpolicyobj: returnpolicyobj,
2419
- langdetect: langdetect,
2420
- lang: lang,
2421
- srcfromprops: props.srcfromprops,
2422
- returnpolicyobj: returnpolicyobj,
2423
- productinfo_cssstyles: productinfo_cssstyles,
2424
- addtocartfunc: addtocartfunc,
2425
- selectproductoptionvalue: selectproductoptionvalue,
2426
- clearchoosenvaluesbutkeepcurrentvalue: clearchoosenvaluesbutkeepcurrentvalue,
2427
- productimagesarray: productimagesarray,
2428
- fetchProductInfoQueryContext: fetchProductInfoQueryContext,
2429
- ProductInfoObj: ProductInfoObj,
2430
- sectionproperties: sectionproperties,
2431
- addtocardpayloadobj: addtocardpayloadobj,
2432
- setaddtocardpayloadobj: setaddtocardpayloadobj,
2433
- routingcountext: routingcountext,
2434
- AddtoCartMutationContext: AddtoCartMutationContext,
2435
- authdetailsContext: authdetailsContext,
2436
- addtofavoritescontext: addtofavoritescontext,
2437
- variantindexcompleted: variantindexcompleted,
2438
- StaticPagesLinksContext: StaticPagesLinksContext,
2439
- NotificationManager: NotificationManager,
2440
- GeneralAPIMutationContext: GeneralAPIMutationContext,
2441
- quantityconditionfoundobjprops: quantityconditionfoundobj,
2442
- relatedproducts: relatedproducts,
2443
- productVideos: productVideos,
2444
- getprice_discountpriceprops: getprice_discountpriceprops,
2445
- // getprice_discountpricepropsnormalonly: getprice_discountpricepropsnormalonly,
2446
- StoreInfoprops: StoreInfo,
2447
- currentshowingimageindex: currentshowingimageindex,
2448
- setcurrentshowingimageindex: setcurrentshowingimageindex,
2449
- templatepropcontext: templatepropcontext,
2450
- ikimagecredcontext: ikimagecredcontext,
2451
- variantindex: variantindex,
2452
- setvariantindex: setvariantindex,
2453
- variantsku: variantsku,
2454
- variantvalueidentifier: variantvalueidentifier,
2455
- sizeguideimage: sizeguideimage,
2456
- setopensizeguidemodal: setopensizeguidemodal,
2457
- // ProductFileUploader: ProductFileUploader,
2458
- addtocartfunc_extras: addtocartfunc_extras,
2459
- }}
2460
- />
2461
- )}
2462
- {fetchProductInfoQueryContext?.data?.data?.productinfo?.item_type == 'Article' && (
2463
- <Article_itemtype
2464
- actions={{
2465
- variantnotchosendisclaimer: variantnotchosendisclaimer,
2466
- setisoutofstock: setisoutofstock,
2467
- isoutofstock: isoutofstock,
2468
- returnpolicyobj: returnpolicyobj,
2469
- langdetect: langdetect,
2470
- lang: lang,
2471
- srcfromprops: props.srcfromprops,
2472
- returnpolicyobj: returnpolicyobj,
2473
- productinfo_cssstyles: productinfo_cssstyles,
2474
- addtocartfunc: addtocartfunc,
2475
- selectproductoptionvalue: selectproductoptionvalue,
2476
- clearchoosenvaluesbutkeepcurrentvalue: clearchoosenvaluesbutkeepcurrentvalue,
2477
- productimagesarray: productimagesarray,
2478
- fetchProductInfoQueryContext: fetchProductInfoQueryContext,
2479
- ProductInfoObj: ProductInfoObj,
2480
- sectionproperties: sectionproperties,
2481
- addtocardpayloadobj: addtocardpayloadobj,
2482
- setaddtocardpayloadobj: setaddtocardpayloadobj,
2483
- routingcountext: routingcountext,
2484
- AddtoCartMutationContext: AddtoCartMutationContext,
2485
- authdetailsContext: authdetailsContext,
2486
- addtofavoritescontext: addtofavoritescontext,
2487
- variantindexcompleted: variantindexcompleted,
2488
- StaticPagesLinksContext: StaticPagesLinksContext,
2489
- NotificationManager: NotificationManager,
2490
- GeneralAPIMutationContext: GeneralAPIMutationContext,
2491
- quantityconditionfoundobjprops: quantityconditionfoundobj,
2492
- relatedproducts: relatedproducts,
2493
- getprice_discountpriceprops: getprice_discountpriceprops,
2494
- StoreInfoprops: StoreInfo,
2495
- currentshowingimageindex: currentshowingimageindex,
2496
- setcurrentshowingimageindex: setcurrentshowingimageindex,
2497
- templatepropcontext: templatepropcontext,
2498
- ikimagecredcontext: ikimagecredcontext,
2499
- variantindex: variantindex,
2500
- setvariantindex: setvariantindex,
2501
- variantsku: variantsku,
2502
- variantvalueidentifier: variantvalueidentifier,
2503
- }}
2504
- />
2505
- )}
2506
- {fetchProductInfoQueryContext?.data?.data?.productinfo?.item_type == 'service' && (
2507
- <Service_itemtype
2508
- actions={{
2509
- // getprice_discountpricepropsnormalonly: getprice_discountpricepropsnormalonly,
2510
- variantnotchosendisclaimer: variantnotchosendisclaimer,
2511
- variantsku: variantsku,
2512
- setisoutofstock: setisoutofstock,
2513
- isoutofstock: isoutofstock,
2514
- returnpolicyobj: returnpolicyobj,
2515
- langdetect: langdetect,
2516
- lang: lang,
2517
- srcfromprops: props.srcfromprops,
2518
- returnpolicyobj: returnpolicyobj,
2519
- productinfo_cssstyles: productinfo_cssstyles,
2520
- addtocartfunc: addtocartfunc,
2521
- selectproductoptionvalue: selectproductoptionvalue,
2522
- clearchoosenvaluesbutkeepcurrentvalue: clearchoosenvaluesbutkeepcurrentvalue,
2523
- productimagesarray: productimagesarray,
2524
- fetchProductInfoQueryContext: fetchProductInfoQueryContext,
2525
- sectionproperties: sectionproperties,
2526
- addtocardpayloadobj: addtocardpayloadobj,
2527
- ProductInfoObj: ProductInfoObj,
2528
- currentshowingimageindex: currentshowingimageindex,
2529
- setcurrentshowingimageindex: setcurrentshowingimageindex,
2530
- setaddtocardpayloadobj: setaddtocardpayloadobj,
2531
- routingcountext: routingcountext,
2532
- AddtoCartMutationContext: AddtoCartMutationContext,
2533
- authdetailsContext: authdetailsContext,
2534
- addtofavoritescontext: addtofavoritescontext,
2535
- StaticPagesLinksContext: StaticPagesLinksContext,
2536
- variantindexcompleted: variantindexcompleted,
2537
- GeneralAPIMutationContext: GeneralAPIMutationContext,
2538
- NotificationManager: NotificationManager,
2539
- getprice_discountpriceprops: getprice_discountpriceprops,
2540
- quantityconditionfoundobjprops: quantityconditionfoundobj,
2541
- relatedproducts: relatedproducts,
2542
- getQuantityCondition: getQuantityCondition,
2543
- StoreInfoprops: StoreInfo,
2544
- templatepropcontext: templatepropcontext,
2545
- ikimagecredcontext: ikimagecredcontext,
2546
- sizeguideimage: sizeguideimage,
2547
- setopensizeguidemodal: setopensizeguidemodal,
2548
- isOptionInStock: isOptionInStock,
2549
- addtocartfunc_extras: addtocartfunc_extras,
2550
- }}
2551
- />
2552
- )}
2553
- {props.srcfromprops != 'templatedraftrouter' &&
2554
- authdetailsContext?.instinfo?.contactinfo.instid != '6852e5ed44e14' &&
2555
- authdetailsContext?.instinfo?.contactinfo.instid != '68a9e83c05b75' &&
2556
- authdetailsContext?.instinfo?.contactinfo.instid != '68c27b4570751' && (
2557
- <div
2558
- 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 '}
2559
- style={{
2560
- paddingLeft:
2561
- props.srcfromprops == 'Productinfomodel'
2562
- ? langdetect == 'en'
2563
- ? sectionproperties.card_marginLeft + 'px'
2564
- : sectionproperties.card_marginRight + 'px'
2565
- : 0,
2566
- paddingRight:
2567
- props.srcfromprops == 'Productinfomodel'
2568
- ? langdetect == 'en'
2569
- ? sectionproperties.card_marginRight + 'px'
2570
- : sectionproperties.card_marginLeft + 'px'
2571
- : 0,
2572
- display:
2573
- sectionproperties.showfirstpolicy == 'Hide' &&
2574
- sectionproperties.showsecondpolicy == 'Hide' &&
2575
- fetchProductInfoQueryContext?.data?.data?.productinfo?.product_videos?.length != 0
2576
- ? 'flex'
2577
- : fetchProductInfoQueryContext?.data?.data?.productinfo?.productcanrate == 1
2578
- ? 'flex'
2579
- : sectionproperties.showfirstpolicy == 'Hide' && sectionproperties.showsecondpolicy == 'Hide'
2580
- ? 'none'
2581
- : sectionproperties.showfirstpolicy == 'Hide' &&
2582
- sectionproperties.showsecondpolicy == 'Hide' &&
2583
- sectionproperties.descriptionposition != 'Bottom' &&
2584
- fetchProductInfoQueryContext?.data?.data?.productinfo?.product_videos?.length == 0
2585
- ? 'none'
2586
- : 'flex',
2587
- }}
2588
- >
2589
- <div
2590
- class={`${productinfo_cssstyles.cardcontainer}` + ' ml-0 mr-0 w-100 pl-md-3 pr-md-3 px-1025-1 '}
2591
- style={{
2592
- paddingLeft: sectionproperties.tabspaddinghorizontal + 'px',
2593
- paddingRight: sectionproperties.tabspaddinghorizontal + 'px',
2594
- marginBottom: sectionproperties.tabsmb + 'px',
2595
- paddingTop: sectionproperties.tabsPt + 'px',
2596
- paddingBottom: sectionproperties.tabsPb + 'px',
2597
- }}
2598
- >
2599
- {sectionproperties.tabsfullwidth == 'Full Width' && (
2600
- <Box>
2601
- <Tabs
2602
- value={tabIndex}
2603
- onChange={handleTabChange}
2604
- scrollButtons="auto"
2605
- TabIndicatorProps={{
2606
- style: {
2607
- background: sectionproperties.activetabbordercolor,
2608
- // right: sectionproperties.showfirstpolicy == 'Hide' ? 0 : sectionproperties.showsecondpolicy == 'Hide' ? 0 : '',
2609
- // margin: sectionproperties.showfirstpolicy == 'Hide' ? 'auto' : sectionproperties.showsecondpolicy == 'Hide' ? 'auto' : '',
2610
- },
2611
- }}
2612
- sx={{
2613
- '& button': {
2614
- color: sectionproperties.tabtextcolor,
2615
- fontWeight: sectionproperties.tabtextfontweight,
2616
- background: sectionproperties.tabcontainerbgcolor,
2617
- textTransform: sectionproperties.tabtexttexttransform,
2618
- borderRadius: sectionproperties.tabcontainerborderradius + 'px',
2619
- fontFamily: 'Poppins',
2620
- transition: '.3s',
2621
- fontSize: sectionproperties.tabtextfontsize + 'px',
2622
- },
2623
- '& button:hover': {
2624
- color: sectionproperties.tabscoloronhover,
2625
- fontFamily: 'Poppins',
2626
- transition: '.3s',
2627
- },
2628
- '& button.Mui-selected': {
2629
- color: sectionproperties.tabtextactivecolor,
2630
- background: sectionproperties.activetabbgcolor,
2631
- fontFamily: 'Poppins',
2632
- transition: '.3s',
2633
- },
2634
- }}
2635
- variant={'fullWidth'}
2636
- // tabsfullwidth
2637
- >
2638
- {sectionproperties.prodCatShow == 'Show' && sectionproperties.descriptionposition == 'Bottom' && (
2639
- <Tab
2640
- label={langdetect == 'en' ? sectionproperties.tabsdescEn : sectionproperties.tabsdescAr}
2641
- onClick={() => {
2642
- settabname('descriptiontab');
2643
- }}
2644
- />
2645
- )}
2646
- {sectionproperties.showfirstpolicy == 'Show' && (
2647
- <Tab
2648
- label={
2649
- langdetect == 'en' ? returnpolicyobj('Shipping Policy')?.policypagename_en : returnpolicyobj('Shipping Policy')?.policypagename_ar
2650
- }
2651
- onClick={() => {
2652
- settabname('shippingpolicytab');
2653
- }}
2654
- />
2655
- )}
2656
- {sectionproperties.showsecondpolicy == 'Show' && (
2657
- <Tab
2658
- label={langdetect == 'en' ? returnpolicyobj('Refund Policy')?.policypagename_en : returnpolicyobj('Refund Policy')?.policypagename_ar}
2659
- onClick={() => {
2660
- settabname('refundpolicytab');
2661
- }}
2662
- />
2663
- )}
2664
- {fetchProductInfoQueryContext?.data?.data?.productinfo?.product_videos?.length != 0 && (
2665
- <Tab
2666
- label={langdetect == 'en' ? sectionproperties.videostitleen : sectionproperties.videostitlear}
2667
- onClick={() => {
2668
- settabname('videostab');
2669
- }}
2670
- />
2671
- )}
2672
- {fetchProductInfoQueryContext?.data?.data?.productinfo?.productcanrate == 1 && (
2673
- <Tab
2674
- label={langdetect == 'en' ? 'Reviews' : 'التقييمات'}
2675
- onClick={() => {
2676
- settabname('reviewstab');
2677
- }}
2678
- />
2679
- )}
2680
- </Tabs>
2681
- </Box>
2682
- )}
2683
- {sectionproperties.tabsfullwidth != 'Full Width' && (
2684
- <Box>
2685
- <Tabs
2686
- value={tabIndex}
2687
- onChange={handleTabChange}
2688
- scrollButtons="auto"
2689
- TabIndicatorProps={{
2690
- style: {
2691
- background: sectionproperties.activetabbordercolor,
2692
- // right: sectionproperties.showfirstpolicy == 'Hide' ? 0 : sectionproperties.showsecondpolicy == 'Hide' ? 0 : '',
2693
- // margin: sectionproperties.showfirstpolicy == 'Hide' ? 'auto' : sectionproperties.showsecondpolicy == 'Hide' ? 'auto' : '',
2694
- },
2695
- }}
2696
- sx={{
2697
- '& button': {
2698
- color: sectionproperties.tabtextcolor,
2699
- fontWeight: sectionproperties.tabtextfontweight,
2700
- background: sectionproperties.tabcontainerbgcolor,
2701
- textTransform: sectionproperties.tabtexttexttransform,
2702
- borderRadius: sectionproperties.tabcontainerborderradius + 'px',
2703
- fontFamily: 'Poppins',
2704
- transition: '.3s',
2705
- fontSize: sectionproperties.tabtextfontsize + 'px',
2706
- },
2707
- '& button:hover': {
2708
- color: sectionproperties.tabscoloronhover,
2709
- fontFamily: 'Poppins',
2710
- transition: '.3s',
2711
- },
2712
- '& button.Mui-selected': {
2713
- color: sectionproperties.tabtextactivecolor,
2714
- background: sectionproperties.activetabbgcolor,
2715
- fontFamily: 'Poppins',
2716
- transition: '.3s',
2717
- },
2718
- }}
2719
- >
2720
- {sectionproperties.prodCatShow == 'Show' && sectionproperties.gallerystyle == 'Style 1' && (
2721
- <Tab
2722
- label={langdetect == 'en' ? sectionproperties.tabsdescEn : sectionproperties.tabsdescAr}
2723
- onClick={() => {
2724
- settabname('descriptiontab');
2725
- }}
2726
- />
2727
- )}
2728
- {sectionproperties.showfirstpolicy == 'Show' && (
2729
- <Tab
2730
- label={
2731
- langdetect == 'en' ? returnpolicyobj('Shipping Policy')?.policypagename_en : returnpolicyobj('Shipping Policy')?.policypagename_ar
2732
- }
2733
- onClick={() => {
2734
- settabname('shippingpolicytab');
2735
- }}
2736
- />
2737
- )}
2738
- {sectionproperties.showsecondpolicy == 'Show' && (
2739
- <Tab
2740
- label={langdetect == 'en' ? returnpolicyobj('Refund Policy')?.policypagename_en : returnpolicyobj('Refund Policy')?.policypagename_ar}
2741
- onClick={() => {
2742
- settabname('refundpolicytab');
2743
- }}
2744
- />
2745
- )}
2746
- {fetchProductInfoQueryContext?.data?.data?.productinfo?.product_videos?.length != 0 && (
2747
- <Tab
2748
- label={langdetect == 'en' ? 'Videos' : 'فيديوهات'}
2749
- onClick={() => {
2750
- settabname('videostab');
2751
- }}
2752
- />
2753
- )}
2754
- {fetchProductInfoQueryContext?.data?.data?.productinfo?.productcanrate == 1 && (
2755
- <Tab
2756
- label={langdetect == 'en' ? 'Reviews' : 'التقييمات'}
2757
- onClick={() => {
2758
- settabname('reviewstab');
2759
- }}
2760
- />
2761
- )}
2762
- </Tabs>
2763
- </Box>
2764
- )}
2765
- <Box class="w-100 mt-5 mb-4">
2766
- {tabname == 'descriptiontab' && sectionproperties.descriptionposition == 'Bottom' && (
2767
- <DescriptionContent
2768
- actions={{
2769
- ...actions,
2770
- productinfo_cssstyles: productinfo_cssstyles,
2771
- sectionproperties: sectionproperties,
2772
- }}
2773
- />
2774
- )}
2775
- {tabname == 'shippingpolicytab' && (
2776
- <div class="col-lg-12 pl-5 pr-5 p-md-0 w-100">
2777
- <p
2778
- className={' m-0 p-0 wordbreak '}
2779
- style={{
2780
- // lineClamp: 10,
2781
- // WebkitLineClamp: 10,
2782
- textAlign: langdetect == 'en' ? 'left' : 'right',
2783
- }}
2784
- dangerouslySetInnerHTML={{
2785
- __html:
2786
- langdetect == 'en' ? returnpolicyobj('Shipping Policy')?.policycontent_en : returnpolicyobj('Shipping Policy')?.policycontent_ar,
2787
- }}
2788
- ></p>
2789
- </div>
2790
- )}
2791
- {tabname == 'refundpolicytab' && (
2792
- <div class="col-lg-12 p-0 w-100 pl-5 pr-5 p-md-0">
2793
- <p
2794
- className={' m-0 p-0 wordbreak '}
2795
- style={{
2796
- // lineClamp: 10,
2797
- // WebkitLineClamp: 10,
2798
- textAlign: langdetect == 'en' ? 'left' : 'right',
2799
- }}
2800
- dangerouslySetInnerHTML={{
2801
- __html: langdetect == 'en' ? returnpolicyobj('Refund Policy')?.policycontent_en : returnpolicyobj('Refund Policy')?.policycontent_ar,
2802
- }}
2803
- ></p>
2804
- </div>
2805
- )}
2806
- {tabname == 'videostab' && (
2807
- <div class="row m-0 w-100 w-100 pl-5 pr-5 p-md-0">
2808
- {productVideos.map((item, index) => {
2809
- return (
2810
- <div
2811
- className="col-lg-4 col-md-6 col-sm-12 mb-4"
2812
- style={{
2813
- height: 400,
2814
- }}
2815
- >
2816
- <ReactPlayer url={item.videourl} height={'100%'} width={'100%'} playing={false} controls={true} loop={true} muted={true} />
2817
- </div>
2818
- );
2819
- })}
2820
- </div>
2821
- )}
2822
- {tabname == 'reviewstab' && (
2823
- <div class="col-lg-12 p-0 w-100 pl-5 pr-5 p-md-0">
2824
- <ProductReviews
2825
- actions={{
2826
- ...actions,
2827
- productinfo_cssstyles: productinfo_cssstyles,
2828
- sectionproperties: sectionproperties,
2829
- }}
2830
- />
2831
- </div>
2832
- )}
2833
- </Box>
2834
- </div>
2835
- </div>
2836
- )}
2837
-
2838
- {/* easy tour */}
2839
- {props.srcfromprops != 'templatedraftrouter' && authdetailsContext?.instinfo?.contactinfo.instid == '68e4efe8cb18e' && (
2840
- <div
2841
- 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 '}
2842
- style={{
2843
- paddingLeft:
2844
- props.srcfromprops == 'Productinfomodel' ? (langdetect == 'en' ? sectionproperties.card_marginLeft + 'px' : sectionproperties.card_marginRight + 'px') : 0,
2845
- paddingRight:
2846
- props.srcfromprops == 'Productinfomodel' ? (langdetect == 'en' ? sectionproperties.card_marginRight + 'px' : sectionproperties.card_marginLeft + 'px') : 0,
2847
- display: 'flex',
2848
- }}
2849
- >
2850
- <div
2851
- class={`${productinfo_cssstyles.cardcontainer}` + ' ml-0 mr-0 w-100 pl-md-3 pr-md-3 px-1025-1 '}
2852
- style={{
2853
- paddingLeft: sectionproperties.tabspaddinghorizontal + 'px',
2854
- paddingRight: sectionproperties.tabspaddinghorizontal + 'px',
2855
- marginBottom: sectionproperties.tabsmb + 'px',
2856
- paddingTop: sectionproperties.tabsPt + 'px',
2857
- paddingBottom: sectionproperties.tabsPb + 'px',
2858
- }}
2859
- >
2860
- <Box>
2861
- <Tabs
2862
- value={tabIndex}
2863
- onChange={handleTabChange}
2864
- scrollButtons="auto"
2865
- TabIndicatorProps={{
2866
- style: {
2867
- background: sectionproperties.activetabbordercolor,
2868
- // right: sectionproperties.showfirstpolicy == 'Hide' ? 0 : sectionproperties.showsecondpolicy == 'Hide' ? 0 : '',
2869
- // margin: sectionproperties.showfirstpolicy == 'Hide' ? 'auto' : sectionproperties.showsecondpolicy == 'Hide' ? 'auto' : '',
2870
- },
2871
- }}
2872
- sx={{
2873
- '& button': {
2874
- color: sectionproperties.tabtextcolor,
2875
- fontWeight: sectionproperties.tabtextfontweight,
2876
- background: sectionproperties.tabcontainerbgcolor,
2877
- textTransform: sectionproperties.tabtexttexttransform,
2878
- borderRadius: sectionproperties.tabcontainerborderradius + 'px',
2879
- fontFamily: 'Poppins',
2880
- transition: '.3s',
2881
- fontSize: sectionproperties.tabtextfontsize + 'px',
2882
- },
2883
- '& button:hover': {
2884
- color: sectionproperties.tabscoloronhover,
2885
- fontFamily: 'Poppins',
2886
- transition: '.3s',
2887
- },
2888
- '& button.Mui-selected': {
2889
- color: sectionproperties.tabtextactivecolor,
2890
- background: sectionproperties.activetabbgcolor,
2891
- fontFamily: 'Poppins',
2892
- transition: '.3s',
2893
- },
2894
- }}
2895
- variant={'fullWidth'}
2896
- // tabsfullwidth
2897
- >
2898
- <Tab
2899
- label={langdetect == 'en' ? sectionproperties.tabsdescEn : sectionproperties.tabsdescAr}
2900
- onClick={() => {
2901
- settabname('descriptiontab');
2902
- }}
2903
- />
2904
- <Tab
2905
- label={langdetect == 'en' ? sectionproperties.shortdescriptiontitle_en : sectionproperties.shortdescriptiontitle_ar}
2906
- onClick={() => {
2907
- settabname('shortdescriptiontab');
2908
- }}
2909
- />
2910
- </Tabs>
2911
- </Box>
2912
- {/* <p>12-{sectionproperties.descriptionposition}-{tabname}</p> */}
2913
- <Box class="w-100 mt-5 mb-4">
2914
- {tabname == 'descriptiontab' && sectionproperties.descriptionposition == 'Bottom' && (
2915
- // <DescriptionContent
2916
- // actions={{
2917
- // ...actions,
2918
- // productinfo_cssstyles: productinfo_cssstyles,
2919
- // sectionproperties: sectionproperties,
2920
- // }}
2921
- // />
2922
-
2923
- <div class="col-lg-12 p-0 d-flex justify-content-start">
2924
- <p
2925
- className={'m-0 p-0 wordbreak'}
2926
- style={{
2927
- textAlign: langdetect == 'en' ? 'left' : 'right',
2928
- color: '#000000',
2929
- }}
2930
- dangerouslySetInnerHTML={{
2931
- __html:
2932
- langdetect == 'en'
2933
- ? fetchProductInfoQueryContext?.data?.data?.productinfo?.description_en
2934
- : fetchProductInfoQueryContext?.data?.data?.productinfo?.description_ar,
2935
- }}
2936
- ></p>
2937
- </div>
2938
- )}
2939
-
2940
- {tabname == 'shortdescriptiontab' && (
2941
- <div class="col-lg-12 p-0">
2942
- <p
2943
- className={'m-0 p-0 wordbreak'}
2944
- style={{
2945
- textAlign: langdetect == 'en' ? 'left' : 'right',
2946
- color: sectionproperties.prodCatColor,
2947
- }}
2948
- dangerouslySetInnerHTML={{
2949
- __html:
2950
- langdetect == 'en'
2951
- ? fetchProductInfoQueryContext?.data?.data?.productinfo?.short_description_en
2952
- : fetchProductInfoQueryContext?.data?.data?.productinfo?.short_description_ar,
2953
- }}
2954
- ></p>
2955
- {/* <DescriptionContent actions={props.actions} srcfromprops={'undername'} /> */}
2956
- </div>
2957
- // <DescriptionContent
2958
- // actions={{
2959
- // ...actions,
2960
- // productinfo_cssstyles: productinfo_cssstyles,
2961
- // sectionproperties: sectionproperties,
2962
- // }}
2963
- // />
2964
- )}
2965
- {tabname == 'shippingpolicytab' && (
2966
- <div class="col-lg-12 pl-5 pr-5 p-md-0 w-100">
2967
- <p
2968
- className={' m-0 p-0 wordbreak '}
2969
- style={{
2970
- // lineClamp: 10,
2971
- // WebkitLineClamp: 10,
2972
- textAlign: langdetect == 'en' ? 'left' : 'right',
2973
- }}
2974
- dangerouslySetInnerHTML={{
2975
- __html: langdetect == 'en' ? returnpolicyobj('Shipping Policy')?.policycontent_en : returnpolicyobj('Shipping Policy')?.policycontent_ar,
2976
- }}
2977
- ></p>
2978
- </div>
2979
- )}
2980
- {tabname == 'refundpolicytab' && (
2981
- <div class="col-lg-12 p-0 w-100 pl-5 pr-5 p-md-0">
2982
- <p
2983
- className={' m-0 p-0 wordbreak '}
2984
- style={{
2985
- // lineClamp: 10,
2986
- // WebkitLineClamp: 10,
2987
- textAlign: langdetect == 'en' ? 'left' : 'right',
2988
- }}
2989
- dangerouslySetInnerHTML={{
2990
- __html: langdetect == 'en' ? returnpolicyobj('Refund Policy')?.policycontent_en : returnpolicyobj('Refund Policy')?.policycontent_ar,
2991
- }}
2992
- ></p>
2993
- </div>
2994
- )}
2995
- {tabname == 'videostab' && (
2996
- <div class="row m-0 w-100 w-100 pl-5 pr-5 p-md-0">
2997
- {productVideos.map((item, index) => {
2998
- return (
2999
- <div
3000
- className="col-lg-4 col-md-6 col-sm-12 mb-4"
3001
- style={{
3002
- height: 400,
3003
- }}
3004
- >
3005
- <ReactPlayer url={item.videourl} height={'100%'} width={'100%'} playing={false} controls={true} loop={true} muted={true} />
3006
- </div>
3007
- );
3008
- })}
3009
- </div>
3010
- )}
3011
- {tabname == 'reviewstab' && (
3012
- <div class="col-lg-12 p-0 w-100 pl-5 pr-5 p-md-0">
3013
- <ProductReviews
3014
- actions={{
3015
- ...actions,
3016
- productinfo_cssstyles: productinfo_cssstyles,
3017
- sectionproperties: sectionproperties,
3018
- }}
3019
- />
3020
- </div>
3021
- )}
3022
- </Box>
3023
- </div>
3024
- </div>
3025
- )}
3026
-
3027
- {props.srcfromprops != 'templatedraftrouter' && (
3028
- <div
3029
- 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 '}
3030
- style={{
3031
- paddingLeft:
3032
- props.srcfromprops == 'Productinfomodel' ? (langdetect == 'en' ? sectionproperties.card_marginLeft + 'px' : sectionproperties.card_marginRight + 'px') : 0,
3033
- paddingRight:
3034
- props.srcfromprops == 'Productinfomodel' ? (langdetect == 'en' ? sectionproperties.card_marginRight + 'px' : sectionproperties.card_marginLeft + 'px') : 0,
3035
- }}
3036
- >
3037
- {relatedproducts()}
3038
- </div>
3039
- )}
3040
- </div>
3041
- )}
3042
- </div>
3043
- )}
3044
- </div>
3045
- );
3046
- };
3047
- export default Productinfo;