tabexseriescomponents 0.0.706 → 0.0.708

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (348) hide show
  1. package/package.json +1 -1
  2. package/srcoman/Contexts/LanguageContext.jsx +408 -0
  3. package/srcoman/Contexts/ProductsCardsSectionContext.jsx +36 -0
  4. package/srcoman/Imagekitconfig.jsx +46 -0
  5. package/srcoman/StylesJS/Customstyles.js +345 -0
  6. package/srcoman/TabexComponents/Cards/CTAProductCard/CTAProductCard.jsx +376 -0
  7. package/srcoman/TabexComponents/Cards/Card20/Card20.jsx +298 -0
  8. package/srcoman/TabexComponents/Cards/Card21/Card21.jsx +388 -0
  9. package/srcoman/TabexComponents/Cards/Card22/Card22.jsx +288 -0
  10. package/srcoman/TabexComponents/Cards/Card23/Card23 copy.jsx +1630 -0
  11. package/srcoman/TabexComponents/Cards/Card23/Card23.jsx +742 -0
  12. package/srcoman/TabexComponents/Cards/CardAll/CardAll.jsx +453 -0
  13. package/srcoman/TabexComponents/Cards/CardBadgeSlideFromTop/CardBadgeSlideFromTop.jsx +394 -0
  14. package/srcoman/TabexComponents/Cards/CardWithTextOnly/CardWithTextOnly.jsx +70 -0
  15. package/srcoman/TabexComponents/Cards/CategoryCardTextOnImage/CategoryCardTextOnImage.jsx +211 -0
  16. package/srcoman/TabexComponents/Cards/CategoryCardwithhoveraction/CategoryCardwithhoveraction.jsx +255 -0
  17. package/srcoman/TabexComponents/Cards/Categorycard_fullimage/Categorycard_fullimage.jsx +235 -0
  18. package/srcoman/TabexComponents/Cards/Categorycard_slidebgscaled/Categorycard_slidebgscaled.jsx +199 -0
  19. package/srcoman/TabexComponents/Cards/Categorycard_with_trianglebg/Categorycard_with_trianglebg.jsx +182 -0
  20. package/srcoman/TabexComponents/Cards/Categorycard_with_twolinestransition/Categorycard_with_twolinestransition.jsx +181 -0
  21. package/srcoman/TabexComponents/Cards/Categorycard_withshapes/Categorycard_withshapes.jsx +161 -0
  22. package/srcoman/TabexComponents/Cards/Categorycard_withtext/Categorycard_withtext.jsx +184 -0
  23. package/srcoman/TabexComponents/Cards/CircleCardWithVariants/CircleCardWithVariants.jsx +560 -0
  24. package/srcoman/TabexComponents/Cards/Classiccategorycard/Classiccategorycard copy.jsx +145 -0
  25. package/srcoman/TabexComponents/Cards/Classiccategorycard/Classiccategorycard.jsx +146 -0
  26. package/srcoman/TabexComponents/Cards/Classiccategorycard/ClassiccategorycardOriginal.jsx +142 -0
  27. package/srcoman/TabexComponents/Cards/HorizontalCategoryCard/HorizontalCategoryCard.jsx +193 -0
  28. package/srcoman/TabexComponents/Cards/Horizontalcard/Horizontalcard.jsx +409 -0
  29. package/srcoman/TabexComponents/Cards/MenuCard/MenuCard.jsx +732 -0
  30. package/srcoman/TabexComponents/Cards/ModernCardWithQuantityButton/ModernCardWithQuantityButton.jsx +468 -0
  31. package/srcoman/TabexComponents/Cards/ModernProductCard/ModernProductCard.jsx +593 -0
  32. package/srcoman/TabexComponents/Cards/Moderncategorycard/Moderncategorycard.jsx +208 -0
  33. package/srcoman/TabexComponents/Cards/NewProductcard/NewProductcard copy.jsx +497 -0
  34. package/srcoman/TabexComponents/Cards/NewProductcard/NewProductcard.jsx +512 -0
  35. package/srcoman/TabexComponents/Cards/ProductCardWithTextOnImage/ProductCardWithTextOnImage.jsx +304 -0
  36. package/srcoman/TabexComponents/Cards/Productcard6/Productcard6.jsx +257 -0
  37. package/srcoman/TabexComponents/Cards/Productcard7/Productcard7.jsx +277 -0
  38. package/srcoman/TabexComponents/Cards/Productcard_animatedbuttons/Productcard_animatedbuttons.jsx +352 -0
  39. package/srcoman/TabexComponents/Cards/Productcard_with_circularbg/Productcard_with_circularbg.jsx +291 -0
  40. package/srcoman/TabexComponents/Cards/Productcard_with_circularhover/Productcard_with_circularhover.jsx +315 -0
  41. package/srcoman/TabexComponents/Cards/Productcard_with_slideanimation/Productcard_with_slideanimation.jsx +327 -0
  42. package/srcoman/TabexComponents/Cards/Productcard_with_variants/Productcard_with_variants copy.jsx +408 -0
  43. package/srcoman/TabexComponents/Cards/Productcard_with_variants/Productcard_with_variants.jsx +528 -0
  44. package/srcoman/TabexComponents/Cards/Productcard_with_zoominonhover/Productcard_with_zoominonhover.jsx +558 -0
  45. package/srcoman/TabexComponents/Cards/Productcarddefault/Productcarddefault.jsx +275 -0
  46. package/srcoman/TabexComponents/Cards/Productccard_with_imageontopleft/Productccard_with_imageontopleft.jsx +286 -0
  47. package/srcoman/TabexComponents/Cards/Prouductcard_with_zoomhover/Prouductcard_with_zoomhover.jsx +137 -0
  48. package/srcoman/TabexComponents/Cards/QuantityButtonBasedProductCard/QuantityButtonBasedProductCard.jsx +613 -0
  49. package/srcoman/TabexComponents/Cards/ServiceCard/ServiceCard.jsx +413 -0
  50. package/srcoman/TabexComponents/Cards/Simplecategorycardwithtextbelow/Simplecategorycardwithtextbelow.jsx +225 -0
  51. package/srcoman/TabexComponents/Cards/Simpleproductcard/Simpleproductcard copy 2.jsx +525 -0
  52. package/srcoman/TabexComponents/Cards/Simpleproductcard/Simpleproductcard copy.jsx +455 -0
  53. package/srcoman/TabexComponents/Cards/Simpleproductcard/Simpleproductcard.jsx +905 -0
  54. package/srcoman/TabexComponents/Cards/StylishProductCard/StylishProductCard.jsx +337 -0
  55. package/srcoman/TabexComponents/Cards/TwoWayServiceSectionWithImage/TwoWayServiceSectionWithImage.jsx +347 -0
  56. package/srcoman/TabexComponents/Cards/UpSlideEffectCard/UpSlideEffectCard.jsx +605 -0
  57. package/srcoman/TabexComponents/Cards/UserCardWithSocialMediaOnHover/UserCardWithSocialMediaOnHover.jsx +185 -0
  58. package/srcoman/TabexComponents/Footer/Allinonefooter/Allinonefooter.jsx +528 -0
  59. package/srcoman/TabexComponents/Footer/Footer1/Footer1.jsx +780 -0
  60. package/srcoman/TabexComponents/Footer/Footer2/Footer2.jsx +527 -0
  61. package/srcoman/TabexComponents/Footer/Footer3/Footer3.jsx +411 -0
  62. package/srcoman/TabexComponents/Footer/Footer4/Footer4.jsx +466 -0
  63. package/srcoman/TabexComponents/Footer/Footer5/Footer5.jsx +714 -0
  64. package/srcoman/TabexComponents/Footer/Footer6/Footer6.jsx +290 -0
  65. package/srcoman/TabexComponents/Footer/Footer7/Footer7.jsx +428 -0
  66. package/srcoman/TabexComponents/Footer/Footer8/Footer8.jsx +533 -0
  67. package/srcoman/TabexComponents/Footer/FooterWithThreeColumns/FooterWithThreeColumns.jsx +330 -0
  68. package/srcoman/TabexComponents/Footer/ModernFooter/ModernFooter.jsx +562 -0
  69. package/srcoman/TabexComponents/Footer/Newsletterfooter/Newsletterfooter.jsx +865 -0
  70. package/srcoman/TabexComponents/Footer/Newsletterincenter/Newsletterincenter.jsx +647 -0
  71. package/srcoman/TabexComponents/Footer/PrivacyPolicy/PrivacyPolicy.jsx +110 -0
  72. package/srcoman/TabexComponents/Footer/Simplefooter/Simplefooter.jsx +316 -0
  73. package/srcoman/TabexComponents/Generalfiles/images/egyptflag.png +0 -0
  74. package/srcoman/TabexComponents/Generalfiles/images/noimage.png +0 -0
  75. package/srcoman/TabexComponents/Generalfiles/images/payment/cod.png +0 -0
  76. package/srcoman/TabexComponents/Generalfiles/images/payment/fawry.png +0 -0
  77. package/srcoman/TabexComponents/Generalfiles/images/payment/payment.png +0 -0
  78. package/srcoman/TabexComponents/Generalfiles/images/payment/paymob.png +0 -0
  79. package/srcoman/TabexComponents/Generalfiles/images/payment/paypal.png +0 -0
  80. package/srcoman/TabexComponents/Generalfiles/images/payment/visa.png +0 -0
  81. package/srcoman/TabexComponents/Generalfiles/images/shoppingcart.png +0 -0
  82. package/srcoman/TabexComponents/Generalfiles/images/tabexlogo.png +0 -0
  83. package/srcoman/TabexComponents/Generalfiles/images/unknownmaleuser.png +0 -0
  84. package/srcoman/TabexComponents/Generalfiles/images/usflag.png +0 -0
  85. package/srcoman/TabexComponents/Generalfiles/images/whatsapp.png +0 -0
  86. package/srcoman/TabexComponents/Headers/CTAHeader/CTAHeader.jsx +1259 -0
  87. package/srcoman/TabexComponents/Headers/CategoryFeaturingHeader/CategoryFeaturingHeader.jsx +1049 -0
  88. package/srcoman/TabexComponents/Headers/CenteredLogoHeaderWithSlider/CenteredLogoHeaderWithSlider.jsx +1040 -0
  89. package/srcoman/TabexComponents/Headers/ClassicHeader/ClassicHeader.jsx +1263 -0
  90. package/srcoman/TabexComponents/Headers/DownloadApp/DownloadApp.jsx +76 -0
  91. package/srcoman/TabexComponents/Headers/ElegantHeader/ElegantHeader.jsx +894 -0
  92. package/srcoman/TabexComponents/Headers/Gotoheader/Gotoheader.jsx +831 -0
  93. package/srcoman/TabexComponents/Headers/Header4/Header4.jsx +622 -0
  94. package/srcoman/TabexComponents/Headers/Header8/Header8 copy.jsx +1026 -0
  95. package/srcoman/TabexComponents/Headers/Header8/Header8.jsx +1976 -0
  96. package/srcoman/TabexComponents/Headers/HeaderRestaurant/HeaderRestaurant.jsx +776 -0
  97. package/srcoman/TabexComponents/Headers/HeaderWithAdSlider/HeaderWithAdSlider.jsx +927 -0
  98. package/srcoman/TabexComponents/Headers/HeaderWithSearchOnCenter/HeaderWithSearchOnCenter.jsx +704 -0
  99. package/srcoman/TabexComponents/Headers/HeaderWithUtilityBar/HeaderWithUtilityBar.jsx +902 -0
  100. package/srcoman/TabexComponents/Headers/Header_threesectionslogocentered/Header_threesectionslogocentered.jsx +953 -0
  101. package/srcoman/TabexComponents/Headers/Headerresponsive/Headerresponsive.jsx +1562 -0
  102. package/srcoman/TabexComponents/Headers/Headerresponsive/Headerresponsive11-1.jsx +1201 -0
  103. package/srcoman/TabexComponents/Headers/Headerresponsive/HeaderresponsiveOriginal.jsx +990 -0
  104. package/srcoman/TabexComponents/Headers/Headerresponsive/HeaderresponsiveStyle2 copy.jsx +1639 -0
  105. package/srcoman/TabexComponents/Headers/Headerresponsive/HeaderresponsiveStyle2.jsx +1610 -0
  106. package/srcoman/TabexComponents/Headers/Headerresponsive/Headerresponsivenew.jsx +1327 -0
  107. package/srcoman/TabexComponents/Headers/HeaderwithContactinfo/HeaderwithContactinfo.jsx +934 -0
  108. package/srcoman/TabexComponents/Headers/MarqueeHeader/MarqueeHeader.jsx +78 -0
  109. package/srcoman/TabexComponents/Headers/Modernheader/Modernheader.jsx +972 -0
  110. package/srcoman/TabexComponents/Headers/SearchCenteredHeader/SearchCenteredHeader.jsx +778 -0
  111. package/srcoman/TabexComponents/Headers/SearchFocusedHeader/SearchFocusedHeader.jsx +1159 -0
  112. package/srcoman/TabexComponents/Headers/Simpleheader/Simpleheader.jsx +1073 -0
  113. package/srcoman/TabexComponents/Headers/SocialMediaSection/SocialMediaSection.jsx +133 -0
  114. package/srcoman/TabexComponents/Headers/StylishHeader/StylishHeader.jsx +854 -0
  115. package/srcoman/TabexComponents/Headers/Subheader/Subheader.jsx +863 -0
  116. package/srcoman/TabexComponents/Headers/Subheader/Subheader13-3.jsx +685 -0
  117. package/srcoman/TabexComponents/Headers/Subheader/SubheaderOriginal.jsx +517 -0
  118. package/srcoman/TabexComponents/Headers/Subheader/Subheadernew.jsx +555 -0
  119. package/srcoman/TabexComponents/Headers/ThreeTieredHeader/ThreeTieredHeader.jsx +1042 -0
  120. package/srcoman/TabexComponents/Headers/TwoTieredHeader/TwoTieredHeader.jsx +1089 -0
  121. package/srcoman/TabexComponents/Headers/TwoTieredWithCenteredLogoHeader/TwoTieredWithCenteredLogoHeader.jsx +936 -0
  122. package/srcoman/TabexComponents/Sections/BackgroundImages/BacgroundThreeImageWithCategories/BacgroundThreeImageWithCategories.jsx +533 -0
  123. package/srcoman/TabexComponents/Sections/BackgroundImages/BackgroundFiveImageStructure/BackgroundFiveImageStructure.jsx +338 -0
  124. package/srcoman/TabexComponents/Sections/BackgroundImages/BackgroundImageWithTopContent/BackgroundImageWithTopContent.jsx +870 -0
  125. package/srcoman/TabexComponents/Sections/BackgroundImages/BackgroundSectionWithServicesCards/BackgroundSectionWithServicesCards.jsx +302 -0
  126. package/srcoman/TabexComponents/Sections/BackgroundImages/Backgroundimage1/Backgroundimage1.jsx +314 -0
  127. package/srcoman/TabexComponents/Sections/BackgroundImages/Backgroundimage_with_toppill/Backgroundimage_with_toppill.jsx +318 -0
  128. package/srcoman/TabexComponents/Sections/BackgroundImages/BackgroundimageandTextsection/BackgroundimageandTextsection.jsx +179 -0
  129. package/srcoman/TabexComponents/Sections/BackgroundImages/Bgimagewithsearchbar/Bgimagewithsearchbar.jsx +201 -0
  130. package/srcoman/TabexComponents/Sections/BackgroundImages/CollapsableSection/CollapsableSection.jsx +393 -0
  131. package/srcoman/TabexComponents/Sections/BackgroundImages/DynamicForm/DynamicForm copy 2.jsx +583 -0
  132. package/srcoman/TabexComponents/Sections/BackgroundImages/DynamicForm/DynamicForm copy.jsx +291 -0
  133. package/srcoman/TabexComponents/Sections/BackgroundImages/DynamicForm/DynamicForm.jsx +627 -0
  134. package/srcoman/TabexComponents/Sections/BackgroundImages/DynamicForm/habal +348 -0
  135. package/srcoman/TabexComponents/Sections/BackgroundImages/Filterwithcategoriespcoll/Filterwithcategoriespcoll.jsx +387 -0
  136. package/srcoman/TabexComponents/Sections/BackgroundImages/FullVideoSection/FullVideoSection.jsx +268 -0
  137. package/srcoman/TabexComponents/Sections/BackgroundImages/MapsSection/MapsSection.jsx +288 -0
  138. package/srcoman/TabexComponents/Sections/BackgroundImages/Popupcomponent/Popupcomponent.jsx +117 -0
  139. package/srcoman/TabexComponents/Sections/BackgroundImages/Searchcomponent/Searchcomponent.jsx +99 -0
  140. package/srcoman/TabexComponents/Sections/BackgroundImages/Section_with_rightbgcont/Section_with_rightbgcont.jsx +146 -0
  141. package/srcoman/TabexComponents/Sections/BackgroundImages/TextSectionConnectToWA/TextSectionConnectToWA.jsx +462 -0
  142. package/srcoman/TabexComponents/Sections/BackgroundImages/Threebgimages/Threebgimages.jsx +296 -0
  143. package/srcoman/TabexComponents/Sections/BackgroundImages/Twobgimages/Twobgimages copy.jsx +396 -0
  144. package/srcoman/TabexComponents/Sections/BackgroundImages/Twobgimages/Twobgimages.jsx +617 -0
  145. package/srcoman/TabexComponents/Sections/BackgroundImages/VideosSection/VideosSection.jsx +408 -0
  146. package/srcoman/TabexComponents/Sections/Cards/CardsSection/CardsSection copy 2.jsx +1399 -0
  147. package/srcoman/TabexComponents/Sections/Cards/CardsSection/CardsSection copy 3.jsx +1656 -0
  148. package/srcoman/TabexComponents/Sections/Cards/CardsSection/CardsSection copy.jsx +1540 -0
  149. package/srcoman/TabexComponents/Sections/Cards/CardsSection/CardsSection.jsx +1898 -0
  150. package/srcoman/TabexComponents/Sections/Cards/CardsSection/CardsSection13-3.jsx +1596 -0
  151. package/srcoman/TabexComponents/Sections/Cards/CardsSection/CardsSection21-10.jsx +1872 -0
  152. package/srcoman/TabexComponents/Sections/Cards/CardsSection/CardsSection_cosmoandmore.jsx +1880 -0
  153. package/srcoman/TabexComponents/Sections/Cards/CardsSection2/CardsSection2.jsx +726 -0
  154. package/srcoman/TabexComponents/Sections/Cards/CardsSectionwithfilter/CardsSectionwithfilter.jsx +719 -0
  155. package/srcoman/TabexComponents/Sections/Cards/ElegantCategoriesCardSection/ElegantCategoriesCardSection.jsx +406 -0
  156. package/srcoman/TabexComponents/Sections/Cards/ModernCardsSection/ModernCardsSection.jsx +929 -0
  157. package/srcoman/TabexComponents/Sections/Cards/RandomlyStructuredCollectionCards/RandomlyStructuredCollectionCards copy.jsx +646 -0
  158. package/srcoman/TabexComponents/Sections/Cards/RandomlyStructuredCollectionCards/RandomlyStructuredCollectionCards.jsx +962 -0
  159. package/srcoman/TabexComponents/Sections/Cards/Sixverticalcardssection/Sixverticalcardssection.jsx +582 -0
  160. package/srcoman/TabexComponents/Sections/Cards/UsersCardsSection/UsersCardsSection.jsx +383 -0
  161. package/srcoman/TabexComponents/Sections/Slideshow/AboutSection/AboutSection.jsx +342 -0
  162. package/srcoman/TabexComponents/Sections/Slideshow/Backgroundimage_with_topcircle/Backgroundimage_with_topcircle.jsx +161 -0
  163. package/srcoman/TabexComponents/Sections/Slideshow/ContactUsSection/ContactUsSection.jsx +257 -0
  164. package/srcoman/TabexComponents/Sections/Slideshow/Freetextsection/Freetextsection copy.jsx +382 -0
  165. package/srcoman/TabexComponents/Sections/Slideshow/Freetextsection/Freetextsection.jsx +437 -0
  166. package/srcoman/TabexComponents/Sections/Slideshow/Freetextsection/Freetextsection19-11.jsx +757 -0
  167. package/srcoman/TabexComponents/Sections/Slideshow/HorizontalContactUsSection/HorizontalContactUsSection.jsx +346 -0
  168. package/srcoman/TabexComponents/Sections/Slideshow/Image_with_leftwords/Image_with_leftwords.jsx +1769 -0
  169. package/srcoman/TabexComponents/Sections/Slideshow/Image_with_rightwords/Image_with_rightwords.jsx +141 -0
  170. package/srcoman/TabexComponents/Sections/Slideshow/ServiceSectionWithImage/ServiceSectionWithImage.jsx +376 -0
  171. package/srcoman/TabexComponents/Sections/Slideshow/Servicesection/Servicesection.jsx +380 -0
  172. package/srcoman/TabexComponents/Sections/Slideshow/ServicesectionCenteredcards/ServicesectionCenteredcards.jsx +867 -0
  173. package/srcoman/TabexComponents/Sections/Slideshow/Slideshow_with_rotatedsquare/Slideshow_with_rotatedsquare.jsx +226 -0
  174. package/srcoman/TabexComponents/Sections/Slideshow/Slideshow_with_squarebg/Slideshow_with_squarebg.jsx +149 -0
  175. package/srcoman/TabexComponents/Sections/Slideshow/Slideshowdifferentanimations/Slideshowdifferentanimations.jsx +143 -0
  176. package/srcoman/TabexComponents/Sections/Slideshow/Slideshowfade/Slideshowfade copy.jsx +634 -0
  177. package/srcoman/TabexComponents/Sections/Slideshow/Slideshowfade/Slideshowfade.jsx +520 -0
  178. package/srcoman/TabexComponents/Sections/Slideshow/Slideshowslide/Slideshowslide copy.jsx +527 -0
  179. package/srcoman/TabexComponents/Sections/Slideshow/Slideshowslide/Slideshowslide.jsx +643 -0
  180. package/srcoman/TabexComponents/Sections/Slideshow/Slideshowslide/SlideshowslideOriginal.jsx +477 -0
  181. package/srcoman/TabexComponents/Sections/Slideshow/Slideshowslide/SlideshowslideRecent.jsx +1217 -0
  182. package/srcoman/TabexComponents/Sections/Slideshow/Slideshowslide/Slideshowslideoriginal8-5.jsx +614 -0
  183. package/srcoman/TabexComponents/Sections/Slideshow/Slideshowzoom/Arrow.jsx +91 -0
  184. package/srcoman/TabexComponents/Sections/Slideshow/Slideshowzoom/Slideshowzoom copy.jsx +380 -0
  185. package/srcoman/TabexComponents/Sections/Slideshow/Slideshowzoom/Slideshowzoom.jsx +619 -0
  186. package/srcoman/TabexComponents/Sections/Slideshow/ThreeSectionsWithSlideshow/ThreeSectionsWithSlideshow copy.jsx +284 -0
  187. package/srcoman/TabexComponents/Sections/Slideshow/ThreeSectionsWithSlideshow/ThreeSectionsWithSlideshow.jsx +614 -0
  188. package/srcoman/TabexComponents/Sections/Slideshow/TwoWayServiceSectionWithImage/TwoWayServiceSectionWithImage.jsx +402 -0
  189. package/srcoman/TabexComponents/StaticPages/AccountInformation/AccountInformation.jsx +199 -0
  190. package/srcoman/TabexComponents/StaticPages/AddReview/AddReview.jsx +304 -0
  191. package/srcoman/TabexComponents/StaticPages/Afiiliatesignup/Afiiliatesignup.jsx +321 -0
  192. package/srcoman/TabexComponents/StaticPages/CartSlider/CartSlider.jsx +797 -0
  193. package/srcoman/TabexComponents/StaticPages/Categoriesdropdown/Categoriesdropdown.jsx +460 -0
  194. package/srcoman/TabexComponents/StaticPages/Checkout/Checkout copy.jsx +1306 -0
  195. package/srcoman/TabexComponents/StaticPages/Checkout/Checkout.jsx +1892 -0
  196. package/srcoman/TabexComponents/StaticPages/Checkout/Checkout10-1.jsx +1633 -0
  197. package/srcoman/TabexComponents/StaticPages/Checkout/Checkout26-9.jsx +1593 -0
  198. package/srcoman/TabexComponents/StaticPages/Checkout/Checkout9-9.jsx +1574 -0
  199. package/srcoman/TabexComponents/StaticPages/Filter/CollectionsFilterHorizontal.jsx +245 -0
  200. package/srcoman/TabexComponents/StaticPages/Filter/Filter copy 2.jsx +2888 -0
  201. package/srcoman/TabexComponents/StaticPages/Filter/Filter copy.jsx +1450 -0
  202. package/srcoman/TabexComponents/StaticPages/Filter/Filter.jsx +2771 -0
  203. package/srcoman/TabexComponents/StaticPages/Filter/Filter1-5.jsx +2624 -0
  204. package/srcoman/TabexComponents/StaticPages/Filter/Filter13-11.jsx +2758 -0
  205. package/srcoman/TabexComponents/StaticPages/Filter/Filter14-8.jsx +2753 -0
  206. package/srcoman/TabexComponents/StaticPages/Filter/Filter17-9.jsx +1495 -0
  207. package/srcoman/TabexComponents/StaticPages/Filter/VariantFilter.jsx +1271 -0
  208. package/srcoman/TabexComponents/StaticPages/InnerGroups/InnerGroups.jsx +62 -0
  209. package/srcoman/TabexComponents/StaticPages/Login/FacebookLoginButton.jsx +50 -0
  210. package/srcoman/TabexComponents/StaticPages/Login/GoogleLoginButton.jsx +35 -0
  211. package/srcoman/TabexComponents/StaticPages/Login/Login copy.jsx +1060 -0
  212. package/srcoman/TabexComponents/StaticPages/Login/Login.jsx +610 -0
  213. package/srcoman/TabexComponents/StaticPages/OrderSuccess/OrderSuccess.jsx +172 -0
  214. package/srcoman/TabexComponents/StaticPages/Ordershistory/Ordershistory.jsx +1584 -0
  215. package/srcoman/TabexComponents/StaticPages/Policies/Policies.jsx +291 -0
  216. package/srcoman/TabexComponents/StaticPages/PrivacyPolicy/PrivacyPolicy.jsx +194 -0
  217. package/srcoman/TabexComponents/StaticPages/Productinfo/Addreviewform.jsx +183 -0
  218. package/srcoman/TabexComponents/StaticPages/Productinfo/AddreviewformOriginal.jsx +128 -0
  219. package/srcoman/TabexComponents/StaticPages/Productinfo/Article_itemtype.jsx +255 -0
  220. package/srcoman/TabexComponents/StaticPages/Productinfo/DescriptionContent.jsx +176 -0
  221. package/srcoman/TabexComponents/StaticPages/Productinfo/ProductExtraFields.jsx +225 -0
  222. package/srcoman/TabexComponents/StaticPages/Productinfo/ProductExtras.jsx +92 -0
  223. package/srcoman/TabexComponents/StaticPages/Productinfo/ProductHeaderPricing.jsx +312 -0
  224. package/srcoman/TabexComponents/StaticPages/Productinfo/ProductReviews.jsx +235 -0
  225. package/srcoman/TabexComponents/StaticPages/Productinfo/Product_itemtype.jsx +1983 -0
  226. package/srcoman/TabexComponents/StaticPages/Productinfo/Product_itemtype10-1.jsx +1554 -0
  227. package/srcoman/TabexComponents/StaticPages/Productinfo/Product_itemtype3-11.jsx +1827 -0
  228. package/srcoman/TabexComponents/StaticPages/Productinfo/Product_itemtype31-3.jsx +1351 -0
  229. package/srcoman/TabexComponents/StaticPages/Productinfo/Product_itemtypeUpdated.jsx +1566 -0
  230. package/srcoman/TabexComponents/StaticPages/Productinfo/Productinfo.jsx +1946 -0
  231. package/srcoman/TabexComponents/StaticPages/Productinfo/Service_itemtype.jsx +1037 -0
  232. package/srcoman/TabexComponents/StaticPages/Productinfo/Serviceinfotabs.jsx +966 -0
  233. package/srcoman/TabexComponents/StaticPages/Productinfo/Variantoptions.jsx +632 -0
  234. package/srcoman/TabexComponents/StaticPages/Productinfo/Variantoptions21-9.jsx +324 -0
  235. package/srcoman/TabexComponents/StaticPages/Productinfo/staticroutersidenav.module.css +145 -0
  236. package/srcoman/TabexComponents/StaticPages/Productinfo4-4/Addreviewform.jsx +183 -0
  237. package/srcoman/TabexComponents/StaticPages/Productinfo4-4/AddreviewformOriginal.jsx +128 -0
  238. package/srcoman/TabexComponents/StaticPages/Productinfo4-4/DescriptionContent.jsx +140 -0
  239. package/srcoman/TabexComponents/StaticPages/Productinfo4-4/ProductExtraFields.jsx +225 -0
  240. package/srcoman/TabexComponents/StaticPages/Productinfo4-4/ProductHeaderPricing.jsx +310 -0
  241. package/srcoman/TabexComponents/StaticPages/Productinfo4-4/ProductReviews.jsx +235 -0
  242. package/srcoman/TabexComponents/StaticPages/Productinfo4-4/Product_itemtype.jsx +1672 -0
  243. package/srcoman/TabexComponents/StaticPages/Productinfo4-4/Product_itemtype10-1.jsx +1554 -0
  244. package/srcoman/TabexComponents/StaticPages/Productinfo4-4/Product_itemtype31-3.jsx +1351 -0
  245. package/srcoman/TabexComponents/StaticPages/Productinfo4-4/Product_itemtypeUpdated.jsx +1566 -0
  246. package/srcoman/TabexComponents/StaticPages/Productinfo4-4/Productinfo.jsx +1804 -0
  247. package/srcoman/TabexComponents/StaticPages/Productinfo4-4/Service_itemtype.jsx +560 -0
  248. package/srcoman/TabexComponents/StaticPages/Productinfo4-4/Serviceinfotabs.jsx +919 -0
  249. package/srcoman/TabexComponents/StaticPages/Productinfo4-4/Variantoptions.jsx +597 -0
  250. package/srcoman/TabexComponents/StaticPages/Productinfo4-4/Variantoptions21-9.jsx +324 -0
  251. package/srcoman/TabexComponents/StaticPages/Productinfo4-4/staticroutersidenav.module.css +145 -0
  252. package/srcoman/TabexComponents/StaticPages/RefundPolicy/RefundPolicy.jsx +194 -0
  253. package/srcoman/TabexComponents/StaticPages/Resetpassword/Resetpassword.jsx +338 -0
  254. package/srcoman/TabexComponents/StaticPages/Searchlist/Searchlist.jsx +359 -0
  255. package/srcoman/TabexComponents/StaticPages/ShippingPolicy/ShippingPolicy.jsx +113 -0
  256. package/srcoman/TabexComponents/StaticPages/Signup/CustomerAddressForm.jsx +277 -0
  257. package/srcoman/TabexComponents/StaticPages/Signup/CustomerInformationForm copy.jsx +1135 -0
  258. package/srcoman/TabexComponents/StaticPages/Signup/CustomerInformationForm.jsx +1364 -0
  259. package/srcoman/TabexComponents/StaticPages/Signup/Signup.jsx +199 -0
  260. package/srcoman/TabexComponents/StaticPages/Staticpagesrouter/Staticpagesrouter.jsx +292 -0
  261. package/srcoman/TabexComponents/StaticPages/TermsConditions/TermsConditions.jsx +113 -0
  262. package/srcoman/TabexComponents/StaticPages/VendorPage/VendorPage.jsx +162 -0
  263. package/srcoman/TabexComponents/StaticPages/Viewcart/Viewcart 10-10.jsx +765 -0
  264. package/srcoman/TabexComponents/StaticPages/Viewcart/Viewcart.jsx +786 -0
  265. package/srcoman/TabexComponents/StaticPages/Viewcart/Viewcart26-9.jsx +786 -0
  266. package/srcoman/TabexComponents/StaticPages/Viewcart/ViewcartOriginal.jsx +786 -0
  267. package/srcoman/TabexComponents/StaticPages/Viewcart/ViewcartUpdated.jsx +1425 -0
  268. package/srcoman/TabexComponents/StaticPages/Wishlist/Wishlist.jsx +844 -0
  269. package/srcoman/TabexComponents/StaticPages/Wishlist/Wishlist25-4.jsx +555 -0
  270. package/srcoman/TabexComponents/StaticPages/Wishlist/Wishlist26-9.jsx +555 -0
  271. package/srcoman/TabexComponents/StaticPages/Wishlist/WishlistOriginal.jsx +555 -0
  272. package/srcoman/TabexComponents/StaticPages/Wishlist/WishlistUpdated.jsx +815 -0
  273. package/srcoman/button.jsx +40 -0
  274. package/srcoman/index.jsx +334 -0
  275. package/srcoman/styles/Home.module.css +129 -0
  276. package/srcoman/styles/cards/Categorcycard_fullimage.module.css +14 -0
  277. package/srcoman/styles/cards/Categorycard_slidebgscaled.module.css +73 -0
  278. package/srcoman/styles/cards/Categorycard_withshapes.module.css +189 -0
  279. package/srcoman/styles/cards/ModernCardWithQuantityButton.module.css +30 -0
  280. package/srcoman/styles/cards/Productcard6.module.css +9 -0
  281. package/srcoman/styles/cards/Productccard_with_zoominonhover.module.css +51 -0
  282. package/srcoman/styles/cards/Prouductcard_with_zoomhover.module.css +61 -0
  283. package/srcoman/styles/cards/UserCardWithSocialMediaOnHover.module.css +65 -0
  284. package/srcoman/styles/cards/card23.module.css +60 -0
  285. package/srcoman/styles/cards/categorycard.module.css +84 -0
  286. package/srcoman/styles/cards/categorycard3.module.css +50 -0
  287. package/srcoman/styles/cards/categorycardwithtext.module.css +40 -0
  288. package/srcoman/styles/cards/generalCardsStyles.module.css +79 -0
  289. package/srcoman/styles/cards/productcard_animatedbuttons.module.css +139 -0
  290. package/srcoman/styles/cards/productcard_with_textonhover.module.css +18 -0
  291. package/srcoman/styles/cards/productcard_withtextonimage.module.css +0 -0
  292. package/srcoman/styles/cards/productccard_with_imageontopleft.module.css +85 -0
  293. package/srcoman/styles/general/bootstrap.css +4763 -0
  294. package/srcoman/styles/general/dropdown.css +206 -0
  295. package/srcoman/styles/general/editorbardropdown.module.css +94 -0
  296. package/srcoman/styles/general/filter.module.css +108 -0
  297. package/srcoman/styles/general/form.module.css +255 -0
  298. package/srcoman/styles/general/general.module.css +872 -0
  299. package/srcoman/styles/general/image-gallery.css +531 -0
  300. package/srcoman/styles/general/react-accessible-accordion.module.css +52 -0
  301. package/srcoman/styles/general/react-phone-input-2.module.css +927 -0
  302. package/srcoman/styles/general/scrollbtn.module.css +22 -0
  303. package/srcoman/styles/general/slick.module.css +166 -0
  304. package/srcoman/styles/general/tabs.module.css +119 -0
  305. package/srcoman/styles/general/workplaceeditor.module.css +328 -0
  306. package/srcoman/styles/globals.css +26 -0
  307. package/srcoman/styles/headers/CTAHeader.module.css +40 -0
  308. package/srcoman/styles/headers/CategoryFeaturingHeader.module.css +61 -0
  309. package/srcoman/styles/headers/Gotoheader.module.css +87 -0
  310. package/srcoman/styles/headers/Header7.module.css +50 -0
  311. package/srcoman/styles/headers/HeaderWithAdSlider.module.css +86 -0
  312. package/srcoman/styles/headers/HeaderWithSearchOnCenter.module.css +101 -0
  313. package/srcoman/styles/headers/HeaderWithUtilityBar.module.css +46 -0
  314. package/srcoman/styles/headers/Header_threesectionslogocentered.module.css +84 -0
  315. package/srcoman/styles/headers/NewHeader.module.css +101 -0
  316. package/srcoman/styles/headers/SearchFocusedHeader.module.css +62 -0
  317. package/srcoman/styles/headers/Sideheader.module.css +108 -0
  318. package/srcoman/styles/headers/Simpleheader.module.css +102 -0
  319. package/srcoman/styles/headers/classicheader.module.css +16 -0
  320. package/srcoman/styles/headers/classicheaderstyles.module.css +9 -0
  321. package/srcoman/styles/headers/dropdown.css +0 -0
  322. package/srcoman/styles/headers/header4.module.css +175 -0
  323. package/srcoman/styles/headers/header5.module.css +30 -0
  324. package/srcoman/styles/headers/header_contactinfo.module.css +53 -0
  325. package/srcoman/styles/headers/headerresturant.module.css +89 -0
  326. package/srcoman/styles/headers/modernheader.module.css +45 -0
  327. package/srcoman/styles/headers/stylishheader.module.css +24 -0
  328. package/srcoman/styles/headers/subheader.module.css +114 -0
  329. package/srcoman/styles/headers/threetieredheader.module.css +91 -0
  330. package/srcoman/styles/sections/BackgroundImageWithTopContent.css +4 -0
  331. package/srcoman/styles/sections/Backgroundimage1.module.css +17 -0
  332. package/srcoman/styles/sections/Backgroundimage_with_topcircle.module.css +28 -0
  333. package/srcoman/styles/sections/Freetext.module.css +18 -0
  334. package/srcoman/styles/sections/Section_with_rightbgcont.module.css +49 -0
  335. package/srcoman/styles/sections/Slideshow_with_rotatedsquare.module.css +35 -0
  336. package/srcoman/styles/sections/Slideshow_with_squarebg.module.css +39 -0
  337. package/srcoman/styles/staticpages/accordion.module.css +9 -0
  338. package/srcoman/styles/staticpages/cart.module.css +108 -0
  339. package/srcoman/styles/staticpages/dropdown.css +196 -0
  340. package/srcoman/styles/staticpages/filter.module.css +139 -0
  341. package/srcoman/styles/staticpages/image-gallery.css +481 -0
  342. package/srcoman/styles/staticpages/login.module.css +155 -0
  343. package/srcoman/styles/staticpages/productinfo.module.css +54 -0
  344. package/srcoman/styles/staticpages/shop.module.css +191 -0
  345. package/srcoman/styles/staticpages/signup.module.css +250 -0
  346. package/srcoman/styles/staticpages/staticroutersidenav.module.css +129 -0
  347. package/srcoman/styles/staticpages/viewcart.module.css +129 -0
  348. package/srcoman/styles/staticpages/wishlist.module.css +29 -0
@@ -0,0 +1,2624 @@
1
+ import React, { useEffect, useState, useContext } from 'react';
2
+ import { Accordion, AccordionItem, AccordionItemHeading, AccordionItemButton, AccordionItemPanel, AccordionItemState } from 'react-accessible-accordion';
3
+ import filterstyles from '../../../styles/staticpages/filter.module.css';
4
+ import { css } from 'glamor';
5
+ import Dropdown from 'react-bootstrap/Dropdown';
6
+ import { IoMdClose } from '@react-icons/all-files/io/IoMdClose';
7
+ import { FiChevronDown } from '@react-icons/all-files/fi/FiChevronDown';
8
+ import { FiChevronUp } from '@react-icons/all-files/fi/FiChevronUp';
9
+ import { Offcanvas } from 'react-bootstrap';
10
+ import InputRange from 'react-input-range';
11
+ import { Imagekitimagecomp } from '../../../Imagekitconfig.jsx';
12
+ import { ScrollMenu, VisibilityContext } from 'react-horizontal-scrolling-menu';
13
+ import { defaultstyles, defaultstylestranslated, selectcustomStyles, selectcustomStylesTranslated } from '../../../StylesJS/Customstyles.js';
14
+ import { CircularProgress, Messaging } from 'react-cssfx-loading';
15
+ import formstyles from '../../../styles/general/form.module.css';
16
+ import { BsChevronLeft } from '@react-icons/all-files/bs/BsChevronLeft';
17
+ import { BsChevronRight } from '@react-icons/all-files/bs/BsChevronRight';
18
+ const Select = React.lazy(() => import('react-select'));
19
+
20
+ const Filter = (props) => {
21
+ const lang = props.actions.lang;
22
+ const langdetect = props.actions.langdetect;
23
+ const productfiltercontext = props.actions.productfiltercontext;
24
+ const setproductfiltercontext = props.actions.setproductfiltercontext;
25
+ const ProductFilterObjContext = props.actions.ProductFilterObjContext;
26
+ const setProductFilterObjContext = props.actions.setProductFilterObjContext;
27
+ const authdetailsContext = props.actions.authdetailsContext;
28
+ const fetchproductoptionsQueryContext = props.actions.fetchproductoptionsQueryContext;
29
+ const fetchCategoriesQueryContext = props.actions.fetchCategoriesQueryContext;
30
+ const routingcountext = props.actions.routingcountext;
31
+ const fetchcollectionsQueryContext = props.actions.fetchcollectionsQueryContext;
32
+ const StaticPagesLinksContext = props.actions.StaticPagesLinksContext;
33
+ const ikimagecredcontext = props.actions.ikimagecredcontext;
34
+ const [pricevalue, setpricevalue] = useState({ min: 0, max: 10000 });
35
+ const [productfeatuesarr, setproductfeatuesarr] = useState([]);
36
+
37
+ const fetchTabexCountriesQueryContext = props.actions.fetchTabexCountriesQueryContext;
38
+ const FetchQueriesEngineContext = props.actions.FetchQueriesEngineContext;
39
+ const setFetchQueriesEngineContext = props.actions.setFetchQueriesEngineContext;
40
+
41
+ const fetchTabexCitiesQueryContext = props.actions.fetchTabexCitiesQueryContext;
42
+ const fetchTabexStatesQueryContext = props.actions.fetchTabexStatesQueryContext;
43
+ const FetchTabexStatesPayloadobjContext = props.actions.FetchTabexStatesPayloadobjContext;
44
+ const setFetchTabexStatesPayloadobjContext = props.actions.setFetchTabexStatesPayloadobjContext;
45
+ const fetchProductFeaturesQueryContext = props.actions.fetchProductFeaturesQueryContext;
46
+
47
+ const [sectionproperties, setsectionproperties] = useState('');
48
+ // const [instfilters, setinstfilters] = useState([...authdetailsContext.instinfo.instfilters]);
49
+ const [instfilters, setinstfilters] = useState([]);
50
+ const [collectionstobevisible, setcollectionstobevisible] = useState([]);
51
+ const [instcollections, setinstcollections] = useState([]);
52
+ const [instcategories, setinstcategories] = useState([]);
53
+ // const [sortby, setSortby] = useState('Sort by');
54
+ const [raterangevalue, setraterangevalue] = useState({ min: 0, max: 5 });
55
+ const timeoutRef = React.useRef(null);
56
+ const [sortbycontext, setsortbycontext] = useState('');
57
+
58
+ const [otherfilters, setotherfilters] = useState([
59
+ {
60
+ payloadvalue: 'sortprice',
61
+ name: lang.price,
62
+ filterarray: [
63
+ { name: lang.pricelowtohigh, value: 'lowtohigh', isfilterselected: false },
64
+ { name: lang.pricehightolow, value: 'hightolow', isfilterselected: false },
65
+ ],
66
+ },
67
+ {
68
+ payloadvalue: 'sortdates',
69
+
70
+ name: lang.dates,
71
+ filterarray: [
72
+ { name: lang.recent, value: 'recent', isfilterselected: false },
73
+ { name: lang.oldest, value: 'old', isfilterselected: false },
74
+ ],
75
+ },
76
+ ]);
77
+ useEffect(() => {
78
+ filterupdater();
79
+ }, []);
80
+ useEffect(() => {
81
+ if (fetchproductoptionsQueryContext.isSuccess) {
82
+ setinstfilters([...fetchproductoptionsQueryContext?.data?.data?.productoptions]);
83
+ }
84
+ }, [fetchproductoptionsQueryContext.isSuccess]);
85
+ useEffect(() => {
86
+ if (fetchCategoriesQueryContext.isSuccess) {
87
+ setinstcategories([...fetchCategoriesQueryContext?.data?.data?.categories]);
88
+ }
89
+ }, [fetchCategoriesQueryContext.isSuccess]);
90
+ useEffect(() => {
91
+ if (fetchcollectionsQueryContext.isSuccess) {
92
+ setinstcollections([...fetchcollectionsQueryContext?.data?.data?.collections]);
93
+ }
94
+ }, [fetchcollectionsQueryContext.isSuccess]);
95
+ // useEffect(() => {
96
+ // // setinstfilters([...authdetailsContext.instinfo.instfilters]);
97
+ // // setinstcollections([...authdetailsContext.instinfo.instcollections]);
98
+ // // setinstcategories([...authdetailsContext?.instinfo?.instcategories]);
99
+ // }, [authdetailsContext]);
100
+ useEffect(() => {
101
+ if (props.sectionpropertiesprops != undefined && props.sectionpropertiesprops.length != 0) {
102
+ setsectionproperties(props.sectionpropertiesprops);
103
+ }
104
+ }, [props.sectionpropertiesprops]);
105
+ useEffect(() => {
106
+ filterupdater();
107
+ }, [ProductFilterObjContext]);
108
+ React.useEffect(() => {
109
+ if (timeoutRef.current !== null) {
110
+ clearTimeout(timeoutRef.current);
111
+ }
112
+
113
+ timeoutRef.current = setTimeout(() => {
114
+ if (raterangevalue.min != 0 || raterangevalue.max != 5) {
115
+ var tempfetchproductsfilerobjcontext = { ...ProductFilterObjContext };
116
+ tempfetchproductsfilerobjcontext.minrate = raterangevalue.min;
117
+ tempfetchproductsfilerobjcontext.maxrate = raterangevalue.max;
118
+ tempfetchproductsfilerobjcontext.page = 0;
119
+ setProductFilterObjContext({ ...tempfetchproductsfilerobjcontext });
120
+ // routingcountext(StaticPagesLinksContext.GeneralProductsComponent, true, encodeURIComponent(JSON.stringify(tempfetchproductsfilerobjcontext)));
121
+ }
122
+ }, 500);
123
+ }, [raterangevalue]);
124
+ useEffect(() => {
125
+ if (fetchCategoriesQueryContext.isSuccess && fetchcollectionsQueryContext.isSuccess) {
126
+ if (sectionproperties?.filterretreivetype == 'Depend on chosen parent group') {
127
+ if (ProductFilterObjContext?.collections != undefined && ProductFilterObjContext?.collections != null && Array.isArray(ProductFilterObjContext?.collections)) {
128
+ var collectiontobevisible = [];
129
+ var parentidsfound = [];
130
+ if (ProductFilterObjContext.ProductFetchingType == 'Parent Collection') {
131
+ parentidsfound = ProductFilterObjContext?.collections;
132
+ } else if (ProductFilterObjContext.ProductFetchingType == 'Category') {
133
+ instcategories?.forEach(function (catitem, catindex) {
134
+ ProductFilterObjContext?.collections?.forEach(function (colitem2, colindex2) {
135
+ if (catitem.categoryid == colitem2) {
136
+ catitem?.parentcolletions?.forEach(function (parentcolitem, parentcolindex) {
137
+ parentidsfound.push(parentcolitem.parentcollectionid);
138
+ });
139
+ }
140
+ });
141
+ });
142
+ } else {
143
+ instcategories?.forEach(function (catitem, catindex) {
144
+ catitem?.parentcolletions?.forEach(function (parentcolitem, parentcolindex) {
145
+ parentcolitem?.collections?.forEach(function (colitem, colindex) {
146
+ ProductFilterObjContext?.collections?.forEach(function (colitem2, colindex2) {
147
+ if (colitem.collectionid == colitem2) {
148
+ parentidsfound.push(parentcolitem.parentcollectionid);
149
+ }
150
+ });
151
+ });
152
+ });
153
+ });
154
+ }
155
+
156
+ parentidsfound = parentidsfound.filter((val, id, array) => array.indexOf(val) == id);
157
+
158
+ if (parentidsfound?.length != 0) {
159
+ instcategories?.forEach(function (catitem, catindex) {
160
+ catitem?.parentcolletions?.forEach(function (parentcolitem, parentcolindex) {
161
+ parentidsfound?.forEach(function (parentidfounditem, parentidfoundindex) {
162
+ if (parentidfounditem == parentcolitem?.parentcollectionid) {
163
+ parentcolitem?.collections?.forEach(function (colitem, colindex) {
164
+ var iscolexists = false;
165
+ collectiontobevisible?.forEach(function (colitemex, colindexex) {
166
+ if (colitemex.collectionid == colitem.collectionid) {
167
+ iscolexists = true;
168
+ }
169
+ });
170
+ if (iscolexists == false) {
171
+ collectiontobevisible.push(colitem);
172
+ }
173
+ });
174
+ }
175
+ });
176
+ });
177
+ });
178
+
179
+ if (collectiontobevisible?.length != 0) {
180
+ setcollectionstobevisible(collectiontobevisible);
181
+ } else {
182
+ setcollectionstobevisible(instcollections);
183
+ }
184
+ } else {
185
+ setcollectionstobevisible(instcollections);
186
+ }
187
+ } else {
188
+ setcollectionstobevisible(instcollections);
189
+ }
190
+ } else {
191
+ setcollectionstobevisible(instcollections);
192
+ }
193
+ }
194
+ }, [ProductFilterObjContext, fetchCategoriesQueryContext.isSuccess, fetchcollectionsQueryContext.isSuccess, instcategories, instcollections]);
195
+ useEffect(() => {
196
+ if (productfeatuesarr.length != 0) {
197
+ var tempfetchproductsfilerobjcontext = { ...ProductFilterObjContext };
198
+ tempfetchproductsfilerobjcontext.prod_featruesar = productfeatuesarr;
199
+ setProductFilterObjContext({ ...tempfetchproductsfilerobjcontext });
200
+ filterrouting(tempfetchproductsfilerobjcontext);
201
+ }
202
+ }, [productfeatuesarr]);
203
+ useEffect(() => {
204
+ if (fetchTabexStatesQueryContext.isSuccess) {
205
+ if (ProductFilterObjContext.stateid != undefined && ProductFilterObjContext.stateid != null && ProductFilterObjContext.stateid != '' && ProductFilterObjContext.stateid != 'all') {
206
+ var tempFetchTabexStatesPayloadobjContext = { ...FetchTabexStatesPayloadobjContext };
207
+ tempFetchTabexStatesPayloadobjContext.functype = 'cities';
208
+ tempFetchTabexStatesPayloadobjContext.state_id = ProductFilterObjContext.stateid;
209
+ setFetchTabexStatesPayloadobjContext({ ...tempFetchTabexStatesPayloadobjContext });
210
+ }
211
+ }
212
+ }, [fetchTabexStatesQueryContext.isSuccess]);
213
+ const filterupdater = () => {
214
+ setTimeout(() => {
215
+ var tempFetchQueriesEngineContext = { ...FetchQueriesEngineContext };
216
+ tempFetchQueriesEngineContext.fetchtabexcountries = true;
217
+ setFetchQueriesEngineContext(tempFetchQueriesEngineContext);
218
+ }, 100);
219
+ if (ProductFilterObjContext.countryid != undefined && ProductFilterObjContext.countryid != null && ProductFilterObjContext.countryid != '' && ProductFilterObjContext.countryid != 'all') {
220
+ var tempFetchTabexStatesPayloadobjContext = { ...FetchTabexStatesPayloadobjContext };
221
+ tempFetchTabexStatesPayloadobjContext.functype = 'states';
222
+ tempFetchTabexStatesPayloadobjContext.country_id = ProductFilterObjContext.countryid;
223
+ setFetchTabexStatesPayloadobjContext({ ...tempFetchTabexStatesPayloadobjContext });
224
+ }
225
+
226
+ if (instfilters.length != 0) {
227
+ var tempinstfilters = [...instfilters];
228
+ tempinstfilters?.forEach(function (instfilteritem, instfilterindex) {
229
+ instfilteritem.productvaluesfilter.forEach(function (valefilteritem, valefilteritemindex) {
230
+ valefilteritem.isfilterselected = false;
231
+ });
232
+ });
233
+ ProductFilterObjContext?.FilterOptions?.forEach(function (filteritem, filterindex) {
234
+ tempinstfilters?.forEach(function (instfilteritem, instfilterindex) {
235
+ instfilteritem?.productvaluesfilter?.forEach(function (valefilteritem, valefilteritemindex) {
236
+ if (filteritem.valueid == valefilteritem.valueid) {
237
+ valefilteritem.isfilterselected = true;
238
+ }
239
+ });
240
+ });
241
+ });
242
+ setinstfilters([...tempinstfilters]);
243
+ }
244
+ if (instcategories.length != 0) {
245
+ var tempInstcategories = [...instcategories];
246
+ tempInstcategories.forEach(function (catitem, catindex) {
247
+ catitem.parentcolletions.forEach(function (parentcolitem, parentcolindex) {
248
+ parentcolitem.collections.forEach(function (colitem, colindex) {
249
+ colitem.isfilterselected = false;
250
+ });
251
+ });
252
+ });
253
+
254
+ ProductFilterObjContext?.collections?.forEach(function (filteritem, filterindex) {
255
+ tempInstcategories.forEach(function (catitem, catindex) {
256
+ catitem.parentcolletions.forEach(function (parentcolitem, parentcolindex) {
257
+ parentcolitem.collections.forEach(function (colitem, colindex) {
258
+ if (colitem.collectionid == filteritem) {
259
+ colitem.isfilterselected = true;
260
+ }
261
+ });
262
+ });
263
+ });
264
+ });
265
+
266
+ setinstcategories([...tempInstcategories]);
267
+ }
268
+ if (instcollections.length != 0) {
269
+ var tempInstcollections = [...instcollections];
270
+ tempInstcollections.forEach(function (instfilteritem, valefilteritemindex) {
271
+ instfilteritem.isfilterselected = false;
272
+ });
273
+ ProductFilterObjContext?.collections?.forEach(function (filteritem, filterindex) {
274
+ tempInstcollections?.forEach(function (instfilteritem, instfilterindex) {
275
+ if (instfilteritem.collectionid == filteritem) {
276
+ instfilteritem.isfilterselected = true;
277
+ }
278
+ });
279
+ });
280
+ setinstcollections([...tempInstcollections]);
281
+ }
282
+ };
283
+ const setfilterfunc = (valueid, valueindex, mainparentindex, type) => {
284
+ var tempfetchproductsfilerobjcontext = { ...ProductFilterObjContext };
285
+ if (type == 'clearfilters') {
286
+ tempfetchproductsfilerobjcontext.FilterOptions = [];
287
+ } else {
288
+ var FilterExists = false;
289
+ tempfetchproductsfilerobjcontext?.FilterOptions?.forEach(function (filteritem, filterindex) {
290
+ if (filteritem.valueid == valueid) {
291
+ FilterExists = true;
292
+ tempfetchproductsfilerobjcontext.FilterOptions.splice(filterindex, 1);
293
+ }
294
+ });
295
+ if (!FilterExists) {
296
+ tempfetchproductsfilerobjcontext.FilterOptions.push({ valueid: valueid });
297
+ }
298
+ }
299
+ if (tempfetchproductsfilerobjcontext.FilterOptions.length == 0) {
300
+ tempfetchproductsfilerobjcontext.isfilter = 0;
301
+ } else {
302
+ tempfetchproductsfilerobjcontext.isfilter = 1;
303
+ }
304
+ tempfetchproductsfilerobjcontext.page = 0;
305
+ setProductFilterObjContext({ ...tempfetchproductsfilerobjcontext });
306
+ filterrouting(tempfetchproductsfilerobjcontext);
307
+ // routingcountext(StaticPagesLinksContext.GeneralProductsComponent, true, encodeURIComponent(JSON.stringify(tempfetchproductsfilerobjcontext)));
308
+ };
309
+ const setCollectionFilterFunc = (collectionid) => {
310
+ var tempfetchproductsfilerobjcontext = { ...ProductFilterObjContext };
311
+ var CollectionExists = false;
312
+ tempfetchproductsfilerobjcontext?.collections?.forEach(function (filteritem, filterindex) {
313
+ if (filteritem == collectionid) {
314
+ CollectionExists = true;
315
+ tempfetchproductsfilerobjcontext.collections.splice(filterindex, 1);
316
+ }
317
+ });
318
+ if (!CollectionExists) {
319
+ if (tempfetchproductsfilerobjcontext.collections != undefined && Array.isArray(tempfetchproductsfilerobjcontext.collections)) {
320
+ if (sectionproperties.filterType != 'Title & Sort By Only' && sectionproperties.filterdirection == 'Horizontal') {
321
+ tempfetchproductsfilerobjcontext.collections = [];
322
+ tempfetchproductsfilerobjcontext.collections.push(collectionid);
323
+ } else {
324
+ tempfetchproductsfilerobjcontext.collections.push(collectionid);
325
+ }
326
+ } else {
327
+ tempfetchproductsfilerobjcontext.collections = [collectionid];
328
+ }
329
+ }
330
+
331
+ tempfetchproductsfilerobjcontext.page = 0;
332
+ tempfetchproductsfilerobjcontext.ProductFetchingType = 'Random';
333
+ setProductFilterObjContext({ ...tempfetchproductsfilerobjcontext });
334
+ filterrouting(tempfetchproductsfilerobjcontext);
335
+ // routingcountext(StaticPagesLinksContext.GeneralProductsComponent, true, encodeURIComponent(JSON.stringify(tempfetchproductsfilerobjcontext)));
336
+ };
337
+ const AccordionInner = (parentcollectionindex, parentcollectionitem) => {
338
+ return (
339
+ <AccordionItem uuid={parentcollectionindex}>
340
+ <AccordionItemHeading>
341
+ <AccordionItemButton>
342
+ <div className={filter_cssstyles.titlecontainer + ' row m-0 p-0 mb-2 pl-md-3 pr-md-3 '}>
343
+ <div className="col-lg-10 col-md-10 col-sm-10 p-0">
344
+ <p
345
+ className={
346
+ langdetect == 'en'
347
+ ? filter_cssstyles.pCollectionName + ' collapsetitle text-capitalize m-0 p-0 '
348
+ : filter_cssstyles.pCollectionName + ' collapsetitle text-capitalize m-0 p-0 text-right'
349
+ }
350
+ >
351
+ {langdetect == 'en' ? parentcollectionitem.title_en : parentcollectionitem.title_ar}
352
+ </p>
353
+ </div>
354
+ <div className="col-lg-2 col-md-2 col-sm-2 p-0">
355
+ <AccordionItemState>
356
+ {(state) => {
357
+ if (state.expanded == true) {
358
+ return (
359
+ <i className={filter_cssstyles.collapsetitle + ' collapsetitle h-100 d-flex align-items-center justify-content-end '}>
360
+ <FiChevronUp />
361
+ </i>
362
+ );
363
+ } else {
364
+ return (
365
+ <i className={filter_cssstyles.collapsetitle + ' collapsetitle h-100 d-flex align-items-center justify-content-end '}>
366
+ <FiChevronDown />
367
+ </i>
368
+ );
369
+ }
370
+ }}
371
+ </AccordionItemState>
372
+ </div>
373
+ </div>
374
+ </AccordionItemButton>
375
+ </AccordionItemHeading>
376
+ <AccordionItemPanel className="p-0">
377
+ <div className="row mt-0 mb-2 ml-0 mr-0 d-lg-flex ">
378
+ <div class="col-lg-12 mb-3 allcentered">
379
+ <p
380
+ class={filter_cssstyles.explorebtn + ' m-0 p-0 cursor-pointer text-capitalize '}
381
+ style={{ textDecoration: 'underline' }}
382
+ onClick={() => {
383
+ routingcountext(StaticPagesLinksContext.GeneralProductsComponent, true, 'parentcollections/' + parentcollectionitem.parentcollectionid);
384
+ }}
385
+ >
386
+ {langdetect == 'en' ? sectionproperties.explorebtncontenten : sectionproperties.explorebtncontentar}{' '}
387
+ {langdetect == 'en' ? parentcollectionitem.title_en : parentcollectionitem.title_ar}
388
+ </p>
389
+ </div>
390
+ <div className={'col-lg-12 pl-md-3 pr-md-3'}>
391
+ <div
392
+ className={
393
+ langdetect == 'en' ? `${filterstyles.timeline} ${filterstyles.timelinetrans}` + ' p-sm-0 ' : `${filterstyles.timeline} ${filterstyles.timelinetrans}` + ' p-sm-0 '
394
+ }
395
+ >
396
+ {parentcollectionitem?.collections?.map((collectionitem, collectionindex) => {
397
+ if (collectionitem.isinftiler == 1) {
398
+ return (
399
+ <div
400
+ className={
401
+ `${filterstyles.border_left_line} ${filterstyles.timelineinnercont} ${filter_cssstyles.timelineinnercont}
402
+ ${collectionitem.isfilterselected ? `${filter_cssstyles.timelineinnercont_active} ${filterstyles.timelineinnercont_active}` : ''}
403
+ ` + ' d-flex align-items-start pb-3 '
404
+ }
405
+ onClick={() => {
406
+ setCollectionFilterFunc(collectionitem.collectionid);
407
+ }}
408
+ >
409
+ <div
410
+ className={
411
+ ` ${collectionitem.isfilterselected ? filter_cssstyles.btn_item_active : ''} ${filterstyles.btn_item} ${filter_cssstyles.btn_item}` +
412
+ ' mb-2 d-flex align-items-center '
413
+ }
414
+ >
415
+ <i className="h-100 d-flex align-items-center"></i>
416
+ </div>
417
+ <div className={langdetect == 'en' ? 'ml-3' : 'mr-3 text-right'}>
418
+ <p
419
+ className={`${filterstyles.timeline_text} ${filter_cssstyles.timeline_text}` + ' m-0 p-0 '}
420
+ style={{
421
+ color: collectionitem.isfilterselected ? sectionproperties.activecat_color : '',
422
+ }}
423
+ >
424
+ {langdetect == 'en' ? collectionitem.title_en : collectionitem.title_ar}
425
+ </p>
426
+ </div>
427
+ </div>
428
+ );
429
+ }
430
+ })}
431
+ </div>
432
+ </div>
433
+ </div>
434
+ </AccordionItemPanel>
435
+ </AccordionItem>
436
+ );
437
+ };
438
+ const AccordionOuter = (categoryItem, categoryIndex) => {
439
+ return (
440
+ <AccordionItem uuid={categoryIndex}>
441
+ <AccordionItemHeading>
442
+ <AccordionItemButton>
443
+ <div className={filter_cssstyles.titlecontainer + ' row m-0 p-0 mb-1 pl-md-3 pr-md-3 '}>
444
+ <div className="col-lg-10 col-md-10 col-sm-10 p-0 d-flex align-items-center justify-content-start">
445
+ <p className={filter_cssstyles.categoryName + ' collapsetitle text-capitalize m-0 p-0 '}>{langdetect == 'en' ? categoryItem.title_en : categoryItem.title_ar}</p>
446
+ </div>
447
+ <div className="col-lg-2 col-md-2 col-sm-2 p-0">
448
+ <AccordionItemState>
449
+ {(state) => {
450
+ if (state.expanded == true) {
451
+ return (
452
+ <i className={filter_cssstyles.collapsetitle + ' collapsetitle h-100 d-flex align-items-center justify-content-end '}>
453
+ <FiChevronUp />
454
+ </i>
455
+ );
456
+ } else {
457
+ return (
458
+ <i className={filter_cssstyles.collapsetitle + ' collapsetitle h-100 d-flex align-items-center justify-content-end '}>
459
+ <FiChevronDown />
460
+ </i>
461
+ );
462
+ }
463
+ }}
464
+ </AccordionItemState>
465
+ </div>
466
+ <div className="col-lg-12 p-0">
467
+ <hr className="mt-3 mb-2" />
468
+ </div>
469
+ </div>
470
+ </AccordionItemButton>
471
+ </AccordionItemHeading>
472
+ <AccordionItemPanel className="p-0">
473
+ <div className="row mt-0 mb-2 ml-0 mr-0 d-lg-flex">
474
+ <div class="col-lg-12 mb-3 allcentered">
475
+ <p
476
+ class={filter_cssstyles.explorebtn + ' m-0 p-0 cursor-pointer text-capitalize '}
477
+ style={{ textDecoration: 'underline' }}
478
+ onClick={() => {
479
+ routingcountext(StaticPagesLinksContext.GeneralProductsComponent, true, 'categories/' + categoryItem.categoryid);
480
+ }}
481
+ >
482
+ {langdetect == 'en' ? sectionproperties.explorebtncontenten : sectionproperties.explorebtncontentar}{' '}
483
+ {langdetect == 'en' ? categoryItem.title_en : categoryItem.title_ar}
484
+ </p>
485
+ </div>
486
+ {instcategories[categoryIndex]?.parentcolletions.map((parentcollectionitem, parentcollectionindex) => {
487
+ if (parentcollectionitem.isinftiler == 1) {
488
+ return (
489
+ <div class="col-lg-12">
490
+ {sectionproperties.expandall == 'Yes' && (
491
+ <Accordion allowMultipleExpanded={true} allowZeroExpanded={true} preExpanded={[0, 1, 2, 3, 4, 5, 6, 7, 8, , 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]}>
492
+ {AccordionInner(parentcollectionindex, parentcollectionitem)}
493
+ </Accordion>
494
+ )}
495
+ {sectionproperties.expandall == 'No' && (
496
+ <Accordion allowMultipleExpanded={true} allowZeroExpanded={true}>
497
+ {AccordionInner(parentcollectionindex, parentcollectionitem)}
498
+ </Accordion>
499
+ )}
500
+ </div>
501
+ );
502
+ }
503
+ })}
504
+ </div>
505
+ </AccordionItemPanel>
506
+ </AccordionItem>
507
+ );
508
+ };
509
+ const CategoriesFilter = () => {
510
+ return (
511
+ <div class="col-lg-12 p-0">
512
+ {instcategories?.map((categoryItem, categoryIndex) => {
513
+ if (categoryItem.isinftiler == 1) {
514
+ return (
515
+ <div class="col-lg-12 p-0">
516
+ {sectionproperties.expandall == 'Yes' && (
517
+ <Accordion allowMultipleExpanded={true} allowZeroExpanded={true} preExpanded={[0, 1, 2, 3, 4, 5, 6, 7, 8, , 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]}>
518
+ {AccordionOuter(categoryItem, categoryIndex)}
519
+ </Accordion>
520
+ )}
521
+ {sectionproperties.expandall == 'No' && (
522
+ <Accordion allowMultipleExpanded={true} allowZeroExpanded={true}>
523
+ {AccordionOuter(categoryItem, categoryIndex)}
524
+ </Accordion>
525
+ )}
526
+ </div>
527
+ );
528
+ }
529
+ })}
530
+ </div>
531
+ );
532
+ };
533
+ const CollectionsFilter = () => {
534
+ return (
535
+ <div class="col-lg-12 p-0">
536
+ <Accordion allowMultipleExpanded={true} allowZeroExpanded={true} preExpanded={[0, 1, 2, 3]}>
537
+ <AccordionItem uuid={0}>
538
+ <AccordionItemHeading>
539
+ <AccordionItemButton>
540
+ <div className={filter_cssstyles.titlecontainer + ' row m-0 p-0 mb-2 pl-md-3 pr-md-3 '}>
541
+ <div className="col-lg-10 col-md-10 col-sm-10 p-0">
542
+ <p className={langdetect == 'en' ? filter_cssstyles.collapsetitle + ' m-0 p-0 ' : filter_cssstyles.collapsetitle + ' m-0 p-0 text-right'}>
543
+ {langdetect == 'en' ? sectionproperties.filtercollectiontitle_en : sectionproperties.filtercollectiontitle_ar}
544
+ </p>
545
+ </div>
546
+ <div className="col-lg-2 col-md-2 col-sm-2 p-0">
547
+ <AccordionItemState>
548
+ {(state) => {
549
+ if (state.expanded == true) {
550
+ return (
551
+ <i className={filter_cssstyles.collapsetitle + ' collapsetitle h-100 d-flex align-items-center justify-content-end '}>
552
+ <FiChevronUp />
553
+ </i>
554
+ );
555
+ } else {
556
+ return (
557
+ <i className={filter_cssstyles.collapsetitle + ' collapsetitle h-100 d-flex align-items-center justify-content-end '}>
558
+ <FiChevronDown />
559
+ </i>
560
+ );
561
+ }
562
+ }}
563
+ </AccordionItemState>
564
+ </div>
565
+ </div>
566
+ </AccordionItemButton>
567
+ </AccordionItemHeading>
568
+ <AccordionItemPanel className="p-0">
569
+ <div className="row mt-0 mb-2 ml-0 mr-0 d-lg-flex pl-md-3 pr-md-3">
570
+ <div className={'col-lg-12'}>
571
+ <div
572
+ className={
573
+ langdetect == 'en'
574
+ ? `${filterstyles.timeline} ${filterstyles.timelinetrans}` + ' p-sm-0 '
575
+ : `${filterstyles.timeline} ${filterstyles.timelinetrans}` + ' p-sm-0 '
576
+ }
577
+ >
578
+ {collectionstobevisible.map((item, index) => {
579
+ return (
580
+ <div
581
+ className={
582
+ `${filterstyles.border_left_line} ${filterstyles.timelineinnercont} ${filter_cssstyles.timelineinnercont}
583
+ ${item.isfilterselected ? `${filter_cssstyles.timelineinnercont_active} ${filterstyles.timelineinnercont_active}` : ''}
584
+ ` + ' d-flex align-items-start pb-3 '
585
+ }
586
+ onClick={() => {
587
+ setCollectionFilterFunc(item.collectionid);
588
+ }}
589
+ >
590
+ <div
591
+ className={
592
+ ` ${item.isfilterselected ? filter_cssstyles.btn_item_active : ''} ${filterstyles.btn_item} ${filter_cssstyles.btn_item}` +
593
+ ' mb-2 d-flex align-items-center '
594
+ }
595
+ >
596
+ <i className="h-100 d-flex align-items-center"></i>
597
+ </div>
598
+ <div className={langdetect == 'en' ? 'ml-3' : 'mr-3 text-right'}>
599
+ <p
600
+ className={`${filterstyles.timeline_text} ${filter_cssstyles.timeline_text}` + ' m-0 p-0 '}
601
+ style={{
602
+ color: item.isfilterselected ? sectionproperties.activecat_color : '',
603
+ }}
604
+ >
605
+ {langdetect == 'en' ? item.title_en : item.title_ar}
606
+ </p>
607
+ </div>
608
+ </div>
609
+ );
610
+ })}
611
+ </div>
612
+ {sectionproperties.showshowallbtn == 'Show' && (
613
+ <div class="col-lg-12 allcentered">
614
+ <div class={filter_cssstyles.showallbtn} style={{}}>
615
+ <p
616
+ class="m-0 p-0"
617
+ onClick={() => {
618
+ setcollectionstobevisible(instcollections);
619
+ }}
620
+ // style={{ cursor: 'pointer' }}
621
+ >
622
+ {langdetect == 'en' ? sectionproperties.showalltexten : sectionproperties.showalltextar}
623
+ </p>
624
+ </div>
625
+ </div>
626
+ )}
627
+ </div>
628
+ </div>
629
+ </AccordionItemPanel>
630
+ </AccordionItem>
631
+ {/* <hr className="mt-3 mb-3" /> */}
632
+ </Accordion>
633
+ </div>
634
+ );
635
+ };
636
+ const DynamicFilter = () => {
637
+ return (
638
+ <div class="row m-0 w-100">
639
+ <div class="col-lg-12 p-0 mb-3">
640
+ {fetchProductFeaturesQueryContext?.isSuccess && (
641
+ <div className="row mt-0 mb-2 ml-0 mr-0 d-lg-flex pl-md-3 pr-md-3 w-100">
642
+ {fetchProductFeaturesQueryContext?.data?.data?.productfeatues?.map(function (item, index) {
643
+ // if (item.type == 'Selectbox') {
644
+ // var selectboxarr = [];
645
+ // item?.featuresselectbovalue?.forEach(function (slecitem) {
646
+ // var itemlabel = '';
647
+ // if (langdetect == 'en') {
648
+ // itemlabel = slecitem.value_en;
649
+ // } else {
650
+ // itemlabel = slecitem.value_ar;
651
+ // }
652
+ // selectboxarr.push({ label: itemlabel, value: slecitem.value_en });
653
+ // });
654
+ // return (
655
+ // <div class="col-lg-12 col-md-12 d-flex flex-column align-items-center justify-content-start mb-3 p-0">
656
+ // <label
657
+ // className={' mb-3 w-100 '}
658
+ // style={{
659
+ // textAlign: langdetect == 'en' ? 'left' : 'right',
660
+ // color: sectionproperties.filtertitle_color,
661
+ // color: sectionproperties.filtertitle_color,
662
+ // fontSize: sectionproperties.filtertitle_fontsize + 'px',
663
+ // fontWeight: sectionproperties.filtertitle_fontweight,
664
+ // color: sectionproperties.filtertitle_color,
665
+ // textTransform: 'capitalize',
666
+ // }}
667
+ // >
668
+ // {langdetect == 'en' ? item.name_en : item.name_ar}
669
+ // </label>
670
+ // <div class={'col-lg-12 p-0'}>
671
+ // <Select
672
+ // options={selectboxarr}
673
+ // styles={langdetect == 'en' ? selectcustomStyles : selectcustomStylesTranslated}
674
+ // placeholder={''}
675
+ // onChange={(e) => {
676
+ // var isattrexists = false;
677
+ // var tempproductfeatuesarr = [...productfeatuesarr];
678
+ // tempproductfeatuesarr?.forEach(function (attritem, attrindex) {
679
+ // if (attritem.id == item.id) {
680
+ // tempproductfeatuesarr[attrindex].value = e.value;
681
+ // isattrexists = true;
682
+ // }
683
+ // });
684
+ // if (isattrexists == false) {
685
+ // tempproductfeatuesarr.push({
686
+ // id: item.id,
687
+ // value: e.value,
688
+ // });
689
+ // }
690
+ // setproductfeatuesarr([...tempproductfeatuesarr]);
691
+ // }}
692
+ // />
693
+ // </div>
694
+ // </div>
695
+ // );
696
+ // }
697
+ if (item.type == 'Selectbox') {
698
+ var selectboxarr = [];
699
+ // item?.featuresselectbovalue?.forEach(function (slecitem) {
700
+ // var itemlabel = '';
701
+ // var itemlabelar = '';
702
+ // if (langdetect == 'en') {
703
+ // itemlabel = slecitem.value_en;
704
+ // } else {
705
+ // itemlabel = slecitem.value_ar;
706
+ // }
707
+ // selectboxarr.push({ label: itemlabel, value: slecitem.value_en });
708
+ // });
709
+ return (
710
+ <Accordion allowMultipleExpanded={true} allowZeroExpanded={true} preExpanded={[0, 1, 2, 3]}>
711
+ <AccordionItem uuid={index}>
712
+ <AccordionItemHeading>
713
+ <AccordionItemButton>
714
+ <div className={filter_cssstyles.titlecontainer + ' row m-0 w-100 p-0 mb-2 pl-md-3 pr-md-3 '}>
715
+ <div className="col-lg-10 col-md-10 col-sm-10 p-0">
716
+ <p
717
+ className={
718
+ langdetect == 'en'
719
+ ? filter_cssstyles.collapsetitle + ' collapsetitle m-0 p-0 '
720
+ : filter_cssstyles.collapsetitle + ' collapsetitle m-0 p-0 text-right'
721
+ }
722
+ >
723
+ {langdetect == 'en' ? item.name_en : item.name_ar}
724
+ </p>
725
+ </div>
726
+ <div className="col-lg-2 col-md-2 col-sm-2 p-0">
727
+ <AccordionItemState>
728
+ {(state) => {
729
+ if (state.expanded == true) {
730
+ return (
731
+ <i className={filter_cssstyles.collapsetitle + ' collapsetitle h-100 d-flex align-items-center justify-content-end '}>
732
+ <FiChevronUp />
733
+ </i>
734
+ );
735
+ } else {
736
+ return (
737
+ <i className={filter_cssstyles.collapsetitle + ' collapsetitle h-100 d-flex align-items-center justify-content-end '}>
738
+ <FiChevronDown />
739
+ </i>
740
+ );
741
+ }
742
+ }}
743
+ </AccordionItemState>
744
+ </div>
745
+ </div>
746
+ </AccordionItemButton>
747
+ </AccordionItemHeading>
748
+ <AccordionItemPanel className="p-0">
749
+ <div className="row mt-0 mb-2 ml-0 mr-0 d-lg-flex pl-md-3 pr-md-3">
750
+ <div
751
+ className={
752
+ langdetect == 'en' ? `${filterstyles.timeline}` + ' p-sm-0 ' : `${filterstyles.timeline} ${filterstyles.timelinetrans}` + ' p-sm-0 '
753
+ }
754
+ >
755
+ {item?.featuresselectbovalue?.map((slecitem, slecindex) => {
756
+ return (
757
+ <div
758
+ className={
759
+ `${filterstyles.border_left_line} ${filterstyles.timelineinnercont} ${filter_cssstyles.timelineinnercont}
760
+ ${slecitem.isfilterselected ? `${filter_cssstyles.timelineinnercont_active} ${filterstyles.timelineinnercont_active}` : ''}
761
+
762
+ ` + ' d-flex align-items-start pb-3 '
763
+ }
764
+ onClick={(e) => {
765
+ var isattrexists = false;
766
+ var tempproductfeatuesarr = [...productfeatuesarr];
767
+ tempproductfeatuesarr?.forEach(function (attritem, attrindex) {
768
+ if (attritem.id == slecitem.id) {
769
+ tempproductfeatuesarr[attrindex].value = slecitem.value_en;
770
+ isattrexists = true;
771
+ }
772
+ });
773
+ if (isattrexists == false) {
774
+ tempproductfeatuesarr.push({
775
+ id: slecitem.id,
776
+ value: slecitem.value_en,
777
+ });
778
+ }
779
+ setproductfeatuesarr([...tempproductfeatuesarr]);
780
+
781
+ // setfilterfunc(valueitem.valueid, valueindex, index, 'assign');
782
+ }}
783
+ >
784
+ <div>
785
+ <div
786
+ className={
787
+ ` ${slecitem.isfilterselected ? filter_cssstyles.btn_item_active : ''} ${filterstyles.btn_item} ${
788
+ filter_cssstyles.btn_item
789
+ }` + ' mb-2 d-flex align-items-center '
790
+ }
791
+ >
792
+ <i className="h-100 d-flex align-items-center"></i>
793
+ </div>
794
+ </div>
795
+
796
+ <div className={langdetect == 'en' ? 'ml-3' : 'mr-3 text-right'}>
797
+ <p
798
+ className={`${filterstyles.timeline_text} ${filter_cssstyles.timeline_text}` + ' m-0 p-0 '}
799
+ style={{
800
+ color: slecitem.isfilterselected ? sectionproperties.activecat_color : '',
801
+ }}
802
+ >
803
+ {langdetect == 'en' ? slecitem.value_en : slecitem.value_ar}
804
+ </p>
805
+ </div>
806
+ </div>
807
+ );
808
+ })}
809
+ </div>
810
+ </div>
811
+ </AccordionItemPanel>
812
+ </AccordionItem>
813
+ </Accordion>
814
+ // <div class="col-lg-12 col-md-12 d-flex flex-column align-items-center justify-content-start mb-3 p-0">
815
+ // <label
816
+ // className={' mb-3 w-100 '}
817
+ // style={{
818
+ // textAlign: langdetect == 'en' ? 'left' : 'right',
819
+ // color: sectionproperties.filtertitle_color,
820
+ // color: sectionproperties.filtertitle_color,
821
+ // fontSize: sectionproperties.filtertitle_fontsize + 'px',
822
+ // fontWeight: sectionproperties.filtertitle_fontweight,
823
+ // color: sectionproperties.filtertitle_color,
824
+ // textTransform: 'capitalize',
825
+ // }}
826
+ // >
827
+ // {langdetect == 'en' ? item.name_en : item.name_ar}
828
+ // </label>
829
+ // <div class={'col-lg-12 p-0'}>
830
+ // <Select
831
+ // options={selectboxarr}
832
+ // styles={langdetect == 'en' ? selectcustomStyles : selectcustomStylesTranslated}
833
+ // placeholder={''}
834
+ // onChange={(e) => {
835
+ // var isattrexists = false;
836
+ // var tempproductfeatuesarr = [...productfeatuesarr];
837
+ // tempproductfeatuesarr?.forEach(function (attritem, attrindex) {
838
+ // if (attritem.id == item.id) {
839
+ // tempproductfeatuesarr[attrindex].value = e.value;
840
+ // isattrexists = true;
841
+ // }
842
+ // });
843
+ // if (isattrexists == false) {
844
+ // tempproductfeatuesarr.push({
845
+ // id: item.id,
846
+ // value: e.value,
847
+ // });
848
+ // }
849
+ // setproductfeatuesarr([...tempproductfeatuesarr]);
850
+ // }}
851
+ // />
852
+ // </div>
853
+ // </div>
854
+ );
855
+ }
856
+ // up here
857
+ if (item.type == 'Number') {
858
+ return (
859
+ <div class="col-lg-12 col-md-12 d-flex flex-column align-items-center justify-content-start mb-3 p-0">
860
+ <label
861
+ className={`${filter_cssstyles.input_label_name}` + ' mb-3 w-100 '}
862
+ style={{
863
+ textAlign: langdetect == 'en' ? 'left' : 'right',
864
+ color: sectionproperties.filtertitle_color,
865
+ color: sectionproperties.filtertitle_color,
866
+ fontSize: sectionproperties.filtertitle_fontsize + 'px',
867
+ fontWeight: sectionproperties.filtertitle_fontweight,
868
+ color: sectionproperties.filtertitle_color,
869
+ textTransform: 'capitalize',
870
+ }}
871
+ >
872
+ {langdetect == 'en' ? item.name_en : item.name_ar}
873
+ </label>
874
+ <div class={'col-lg-12 p-0'}>
875
+ <input
876
+ type="number"
877
+ className={`${formstyles.form_control} ${filter_cssstyles.form_control}`}
878
+ placeholder={''}
879
+ onChange={(e) => {
880
+ var isattrexists = false;
881
+ var tempproductfeatuesarr = [...productfeatuesarr];
882
+ tempproductfeatuesarr?.forEach(function (attritem, attrindex) {
883
+ if (attritem.id == item.id) {
884
+ tempproductfeatuesarr[attrindex].value = e.target.value;
885
+ isattrexists = true;
886
+ }
887
+ });
888
+ if (isattrexists == false) {
889
+ tempproductfeatuesarr.push({
890
+ id: item.id,
891
+ value: e.target.value,
892
+ });
893
+ }
894
+ setproductfeatuesarr([...tempproductfeatuesarr]);
895
+ }}
896
+ />
897
+ </div>
898
+ </div>
899
+ );
900
+ }
901
+ if (item.type == 'NumberRange') {
902
+ var temppricevalue = { min: 0, max: 10000 };
903
+ var tempproductfeatuesarr = [...productfeatuesarr];
904
+ tempproductfeatuesarr?.forEach(function (attritem, attrindex) {
905
+ if (attritem.id == item.id) {
906
+ if (attritem.value != undefined && attritem.value != null && attritem?.value?.length != 0) {
907
+ temppricevalue.min = attritem.value;
908
+ }
909
+ if (attritem.valuemax != undefined && attritem.valuemax != null && attritem?.valuemax?.length != 0) {
910
+ temppricevalue.max = attritem.valuemax;
911
+ }
912
+ }
913
+ });
914
+ return (
915
+ <div className={`${langdetect == 'en' ? 'text-left' : 'text-right'}` + ' col-lg-12 col-md-12 col-sm-12 mb-3 '}>
916
+ <label
917
+ className={`${filter_cssstyles.input_label_name}` + ' mb-3 w-100'}
918
+ style={{
919
+ textAlign: langdetect == 'en' ? 'left' : 'right',
920
+ color: sectionproperties.filtertitle_color,
921
+ color: sectionproperties.filtertitle_color,
922
+ fontSize: sectionproperties.filtertitle_fontsize + 'px',
923
+ fontWeight: sectionproperties.filtertitle_fontweight,
924
+ color: sectionproperties.filtertitle_color,
925
+ textTransform: 'capitalize',
926
+ }}
927
+ >
928
+ {langdetect == 'en' ? item.name_en : item.name_ar}
929
+ {item.type}
930
+ </label>
931
+ <div class={'col-lg-12 pl-4 pr-4 mt-2 mb-2'} style={{ direction: 'ltr' }}>
932
+ <InputRange
933
+ draggableTrack={true}
934
+ formatLabel={(value) => `${value}`}
935
+ maxValue={parseInt(sectionproperties.filterpricemaxvalue)}
936
+ minValue={parseInt(sectionproperties.filterpriceminvalue)}
937
+ value={temppricevalue}
938
+ onChange={(e) => {
939
+ // setpricevalue({ ...value });
940
+ var isattrexists = false;
941
+ var tempproductfeatuesarr = [...productfeatuesarr];
942
+ tempproductfeatuesarr?.forEach(function (attritem, attrindex) {
943
+ if (attritem.id == item.id) {
944
+ tempproductfeatuesarr[attrindex].value = e.min;
945
+ tempproductfeatuesarr[attrindex].valuemax = e.max;
946
+ isattrexists = true;
947
+ }
948
+ });
949
+ if (isattrexists == false) {
950
+ tempproductfeatuesarr.push({
951
+ id: item.id,
952
+ value: e.min,
953
+ valuemax: e.max,
954
+ });
955
+ }
956
+ setproductfeatuesarr([...tempproductfeatuesarr]);
957
+ }}
958
+ />
959
+ </div>
960
+ </div>
961
+ );
962
+ }
963
+ })}
964
+ {/* {sectionproperties.showpricerange == 'Show' && (
965
+ <div className={`${langdetect == 'en' ? 'text-left' : 'text-right'}` + ' col-lg-12 col-md-12 col-sm-12 mb-3 p-0 '}>
966
+ <label
967
+ className={`${filter_cssstyles.input_label_name}` + ' mb-3 w-100'}
968
+ style={{
969
+ textAlign: langdetect == 'en' ? 'left' : 'right',
970
+ color: sectionproperties.filtertitle_color,
971
+ color: sectionproperties.filtertitle_color,
972
+ fontSize: sectionproperties.filtertitle_fontsize + 'px',
973
+ fontWeight: sectionproperties.filtertitle_fontweight,
974
+ color: sectionproperties.filtertitle_color,
975
+ textTransform: 'capitalize',
976
+ }}
977
+ >
978
+ {langdetect == 'en' ? 'Price' : 'السعر'}
979
+ {item.type}
980
+ </label>
981
+ <div class={'col-lg-12 pl-4 pr-4 mt-2 mb-2'} style={{ direction: 'ltr' }}>
982
+ <InputRange
983
+ draggableTrack={true}
984
+ formatLabel={(value) => `${value}`}
985
+ maxValue={parseInt(sectionproperties.filterpricemaxvalue)}
986
+ minValue={parseInt(sectionproperties.filterpriceminvalue)}
987
+ value={temppricevalue}
988
+ onChange={(e) => {
989
+ // setpricevalue({ ...value });
990
+ var isattrexists = false;
991
+ var tempproductfeatuesarr = [...productfeatuesarr];
992
+ tempproductfeatuesarr?.forEach(function (attritem, attrindex) {
993
+ if (attritem.id == item.id) {
994
+ tempproductfeatuesarr[attrindex].value = e.min;
995
+ tempproductfeatuesarr[attrindex].valuemax = e.max;
996
+ isattrexists = true;
997
+ }
998
+ });
999
+ if (isattrexists == false) {
1000
+ tempproductfeatuesarr.push({
1001
+ id: item.id,
1002
+ value: e.min,
1003
+ valuemax: e.max,
1004
+ });
1005
+ }
1006
+ setproductfeatuesarr([...tempproductfeatuesarr]);
1007
+ }}
1008
+ />
1009
+ </div>
1010
+ </div>
1011
+ )} */}
1012
+ </div>
1013
+ )}
1014
+ </div>
1015
+ </div>
1016
+ );
1017
+ };
1018
+ const InstFilters = () => {
1019
+ return (
1020
+ // <Accordion allowMultipleExpanded={true} allowZeroExpanded={true}>
1021
+ <Accordion allowMultipleExpanded={true} allowZeroExpanded={true} preExpanded={[0, 1, 2, 3]}>
1022
+ {instfilters.map((item, index) => {
1023
+ return (
1024
+ <>
1025
+ <AccordionItem uuid={index}>
1026
+ <AccordionItemHeading>
1027
+ <AccordionItemButton>
1028
+ <div className={filter_cssstyles.titlecontainer + ' row m-0 p-0 mb-2 pl-md-3 pr-md-3 mb-4 '}>
1029
+ <div className="col-lg-10 col-md-10 col-sm-10 p-0">
1030
+ <p
1031
+ className={
1032
+ langdetect == 'en'
1033
+ ? filter_cssstyles.collapsetitle + ' collapsetitle m-0 p-0 '
1034
+ : filter_cssstyles.collapsetitle + ' collapsetitle m-0 p-0 text-right'
1035
+ }
1036
+ >
1037
+ {langdetect == 'en' ? item.optionname : item.optionname_ar}
1038
+ </p>
1039
+ </div>
1040
+ <div className="col-lg-2 col-md-2 col-sm-2 p-0">
1041
+ <AccordionItemState>
1042
+ {(state) => {
1043
+ if (state.expanded == true) {
1044
+ return (
1045
+ <i className={filter_cssstyles.collapsetitle + ' collapsetitle h-100 d-flex align-items-center justify-content-end '}>
1046
+ <FiChevronUp />
1047
+ </i>
1048
+ );
1049
+ } else {
1050
+ return (
1051
+ <i className={filter_cssstyles.collapsetitle + ' collapsetitle h-100 d-flex align-items-center justify-content-end '}>
1052
+ <FiChevronDown />
1053
+ </i>
1054
+ );
1055
+ }
1056
+ }}
1057
+ </AccordionItemState>
1058
+ </div>
1059
+ </div>
1060
+ </AccordionItemButton>
1061
+ </AccordionItemHeading>
1062
+ <AccordionItemPanel className="p-0">
1063
+ {/* <div className="row mt-0 mb-2 ml-0 mr-0 d-lg-flex pl-md-3 pr-md-3">
1064
+ <div className={'col-lg-12'}>
1065
+ <div className={langdetect == 'en' ? `${filterstyles.timeline}` + ' p-sm-0 ' : `${filterstyles.timeline} ${filterstyles.timelinetrans}` + ' p-sm-0 '}>
1066
+ {item.productvaluesfilter.map((valueitem, valueindex) => {
1067
+ return (
1068
+ <div
1069
+ className={
1070
+ `${filterstyles.border_left_line} ${filterstyles.timelineinnercont} ${filter_cssstyles.timelineinnercont}
1071
+ ${valueitem.isfilterselected ? `${filter_cssstyles.timelineinnercont_active} ${filterstyles.timelineinnercont_active}` : ''}
1072
+
1073
+ ` + ' d-flex align-items-start pb-3 '
1074
+ }
1075
+ onClick={() => {
1076
+ setfilterfunc(valueitem.valueid, valueindex, index, 'assign');
1077
+ }}
1078
+ >
1079
+ <div>
1080
+ <div
1081
+ className={
1082
+ ` ${valueitem.isfilterselected ? filter_cssstyles.btn_item_active : ''} ${filterstyles.btn_item} ${filter_cssstyles.btn_item}` +
1083
+ ' mb-2 d-flex align-items-center '
1084
+ }
1085
+ >
1086
+ <i className="h-100 d-flex align-items-center"></i>
1087
+ </div>
1088
+ </div>
1089
+ <div className={langdetect == 'en' ? 'ml-3' : 'mr-3 text-right'}>
1090
+ <p
1091
+ className={`${filterstyles.timeline_text} ${filter_cssstyles.timeline_text}` + ' m-0 p-0 '}
1092
+ style={{
1093
+ color: valueitem.isfilterselected ? sectionproperties.activecat_color : '',
1094
+ }}
1095
+ >
1096
+ {langdetect == 'en' ? valueitem.valuename : valueitem.valuename_ar}
1097
+ </p>
1098
+ </div>
1099
+ </div>
1100
+ );
1101
+ })}
1102
+ </div>
1103
+ </div>
1104
+ </div> */}
1105
+ <div className="row mt-0 mb-2 ml-0 mr-0 d-lg-flex pl-md-3 pr-md-3">
1106
+ <ul class="thwvsf-wrapper-ul">
1107
+ <div className={langdetect == 'en' ? `${filterstyles.timeline}` + ' p-sm-0 ' : `${filterstyles.timeline} ${filterstyles.timelinetrans}` + ' p-sm-0 '}>
1108
+ <ul class=" d-flex list-none flex-row flex-wrap overflow-auto px-6 pb-5 pt-2 lg:px-0">
1109
+ {item.productvaluesfilter.map((valueitem, valueindex) => {
1110
+ return (
1111
+ <li
1112
+ className={
1113
+ // `${filterstyles.border_left_line} ${filterstyles.timelineinnercont} ${filter_cssstyles.timelineinnercont}
1114
+ // ${valueitem.isfilterselected ? `${filter_cssstyles.timelineinnercont_active} ${filterstyles.timelineinnercont_active}` : ''}
1115
+ // ` +
1116
+ item.optionname != 'Color'
1117
+ ? `${filter_cssstyles.filteroptionvertical} ${
1118
+ valueitem.isfilterselected ? `${filter_cssstyles.filteroptionverticalactive} ` : ''
1119
+ }` + ' mx-3 mb-3 cursor-pointer allcentered '
1120
+ : ' mx-3 mb-3 cursor-pointer allcentered '
1121
+ }
1122
+ onClick={() => {
1123
+ setfilterfunc(valueitem.valueid, valueindex, index, 'assign');
1124
+ }}
1125
+ style={
1126
+ {
1127
+ // border: sectionproperties.filter_optionborderwidth + 'px solid ' + sectionproperties.filter_optionbordercolor,
1128
+ // width: item.optionname == 'Color' ? 'auto' : '',
1129
+ // height: item.optionname == 'Color' ? 'auto' : '',
1130
+ // borderWidth: item.optionname == 'Color' ? 0 : '',
1131
+ }
1132
+ }
1133
+ >
1134
+ {item.optionname == 'Color' && (
1135
+ <div className={'mx-3'}>
1136
+ <div class="row m-0 w-100">
1137
+ <div class="col-lg-12 p-0 allcentered mb-3">
1138
+ {valueitem.isfilterselected && (
1139
+ <div
1140
+ class="allcentered"
1141
+ style={{
1142
+ width: 40,
1143
+ height: 40,
1144
+ border: '2px solid ' + valueitem.valuename,
1145
+ borderRadius: 100,
1146
+ }}
1147
+ >
1148
+ <div
1149
+ style={{
1150
+ width: 28,
1151
+ height: 28,
1152
+ background: valueitem.valuename,
1153
+ borderRadius: 100,
1154
+ }}
1155
+ ></div>
1156
+ </div>
1157
+ )}
1158
+ {!valueitem.isfilterselected && (
1159
+ <div
1160
+ style={{
1161
+ width: 28,
1162
+ height: 28,
1163
+ background: valueitem.valuename,
1164
+ borderRadius: 100,
1165
+ }}
1166
+ ></div>
1167
+ )}
1168
+ </div>
1169
+ <div class="col-lg-12 p-0 allcentered">
1170
+ <p className={`${filterstyles.timeline_text} ${filter_cssstyles.timeline_text}` + ' m-0 p-0 '} style={{}}>
1171
+ {valueitem.value_identifier}
1172
+ </p>
1173
+ </div>
1174
+ </div>
1175
+ </div>
1176
+ )}
1177
+ {item.optionname != 'Color' && (
1178
+ <p
1179
+ className={' m-0 p-0 '}
1180
+ style={{
1181
+ color: valueitem.isfilterselected ? sectionproperties.activecat_color : '',
1182
+ }}
1183
+ >
1184
+ {langdetect == 'en' ? valueitem.valuename : valueitem.valuename_ar}
1185
+ </p>
1186
+ )}
1187
+ </li>
1188
+ );
1189
+ })}
1190
+ </ul>
1191
+ </div>
1192
+ </ul>
1193
+ </div>
1194
+ </AccordionItemPanel>
1195
+ </AccordionItem>
1196
+ {/* <hr className="mt-3 mb-3" /> */}
1197
+ </>
1198
+ );
1199
+ })}
1200
+ </Accordion>
1201
+ );
1202
+ };
1203
+ const filter_cssstyles = {
1204
+ form_control: css({
1205
+ position: 'relative',
1206
+ display: 'flex',
1207
+ alignItems: 'center',
1208
+ display: 'block',
1209
+ width: '100%',
1210
+ padding: '0 30px',
1211
+ transition: '.3s',
1212
+ fontWeight: 500,
1213
+ border: '1px solid #ccc',
1214
+ // border: sectionproperties.inputfieldbordertype == 'All' ? sectionproperties.inputfieldborderWidth + 'px solid ' + sectionproperties.inputfieldborderColor : 0,
1215
+ // borderBottom: sectionproperties.inputfieldborderWidth + 'px solid ' + sectionproperties.inputfieldborderColor,
1216
+ // borderRadius: sectionproperties.inputfieldborderradius + 'px',
1217
+ borderRadius: '5px',
1218
+ // height: sectionproperties.inputfieldheight + 'px',
1219
+ height: '40px',
1220
+ background: 'transparent',
1221
+ // color: sectionproperties.inputfieldcolor,
1222
+ color: '#000',
1223
+ // fontSize: sectionproperties.inputfieldfontsize + 'px',
1224
+ fontSize: '14px',
1225
+ ':focus': {
1226
+ // borderColor: sectionproperties.inputfeildbordercoloronfocus,
1227
+ borderColor: '#eac435',
1228
+ boxShadow: 'none',
1229
+ },
1230
+ }),
1231
+ collapsetitle: css({
1232
+ fontSize: sectionproperties.filtertitle_fontsize + 'px',
1233
+ fontWeight: sectionproperties.filtertitle_fontweight,
1234
+ textTransform: sectionproperties.filtertitle_texttransform,
1235
+ color: sectionproperties.filtertitle_color,
1236
+ ':hover': {
1237
+ color: sectionproperties.filtertitle_coloronhover,
1238
+ },
1239
+ }),
1240
+ titlecontainer: css({
1241
+ color: sectionproperties.filtertitle_color,
1242
+ ':hover .collapsetitle': {
1243
+ color: sectionproperties.filtertitle_coloronhover,
1244
+ },
1245
+ }),
1246
+ timeline_text: css({
1247
+ fontSize: sectionproperties.timeline_text_fontsize + 'px',
1248
+ fontWeight: sectionproperties.timeline_text_fontweight,
1249
+ textTransform: sectionproperties.timeline_text_texttransform,
1250
+ color: sectionproperties.timeline_text_color,
1251
+ transition: '.3s',
1252
+ ':hover': {
1253
+ color: sectionproperties.timeline_text_coloronhover,
1254
+ },
1255
+ }),
1256
+ btnstyles: css({
1257
+ color: sectionproperties.generalbtn_textColor,
1258
+ fontSize: sectionproperties.generalbtn_fontsize + 'px',
1259
+ textTransform: sectionproperties.generalbtn_texttransform,
1260
+ width: sectionproperties.generalbtn_width + 'px',
1261
+ height: sectionproperties.generalbtn_height + 'px',
1262
+ background: sectionproperties.generalbtn_bgColor,
1263
+ borderTopLeftRadius: sectionproperties.generalbtn_bordertopleftradius + 'px',
1264
+ borderTopRightRadius: sectionproperties.generalbtn_bordertoprightradius + 'px',
1265
+ borderBottomRightRadius: sectionproperties.generalbtn_borderbottomrightradius + 'px',
1266
+ borderBottomLeftRadius: sectionproperties.generalbtn_borderbottomleftradius + 'px',
1267
+ fontWeight: sectionproperties.generalbtn_fontweight,
1268
+ transition: '.3s',
1269
+ ':hover': {
1270
+ background: sectionproperties.generalbtn_bgColoronhover,
1271
+ color: sectionproperties.generalbtn_textColoronhover,
1272
+ },
1273
+ }),
1274
+ close_menu_icon_cont: css({
1275
+ background: sectionproperties.closeSliderBgColor,
1276
+ width: sectionproperties.closeSliderWidth + 'px',
1277
+ height: sectionproperties.closeSliderHeight + 'px',
1278
+ borderRadius: sectionproperties.closeSlider_borderBottomLeftRadius + 'px',
1279
+ ':hover': {
1280
+ background: sectionproperties.closeSliderBgColorHover,
1281
+ },
1282
+ }),
1283
+ horizontalfilter_card: css({
1284
+ marginBottom: sectionproperties.horizontalfilter_mb + 'px',
1285
+ marginTop: sectionproperties.horizontalfilter_mt + 'px',
1286
+ background: sectionproperties.horizontalfilter_cardbg,
1287
+ border: sectionproperties.horizontalfilter_cardborderwidth + 'px solid ' + sectionproperties.horizontalfilter_cardbordercolor,
1288
+ boxShadow: sectionproperties.horizontalfilter_cardboxShadow == 'Show' ? sectionproperties.horizontalfilter_cardboxShadowcolor : 'horizontalfilter_cardboxShadow',
1289
+ }),
1290
+ btn_item: css({
1291
+ width: '20px',
1292
+ height: '20px',
1293
+ background: sectionproperties.filteritembtn_bgcolor,
1294
+ ':hover': {
1295
+ background: sectionproperties.filteritembtn_bghover,
1296
+ },
1297
+ }),
1298
+ btn_item_active: css({
1299
+ background: sectionproperties.btn_item_activebgcolor,
1300
+ }),
1301
+ timelineinnercont_active: css({
1302
+ fontWeight: sectionproperties.activecat_fontweight,
1303
+ color: sectionproperties.activecat_color,
1304
+ }),
1305
+ categoryName: css({
1306
+ color: sectionproperties.filtertitle_color,
1307
+ fontWeight: sectionproperties.filterCatFontWeight,
1308
+ fontSize: sectionproperties.filterCatFontSize + 'px',
1309
+ }),
1310
+ pCollectionName: css({
1311
+ color: sectionproperties.filtertitle_color,
1312
+ fontWeight: sectionproperties.filterPCollFontWeight,
1313
+ fontSize: sectionproperties.filterPCollFontSize + 'px',
1314
+ }),
1315
+ explorebtn: css({
1316
+ fontSize: sectionproperties.explorebtnfontsize + 'px',
1317
+ fontWeight: 600,
1318
+ color: sectionproperties.explorebtncolor,
1319
+ transition: '.3s',
1320
+ ':hover': {
1321
+ color: sectionproperties.explorebtncoloronhover,
1322
+ },
1323
+ }),
1324
+ showallbtn: css({
1325
+ color: sectionproperties.showallcolor,
1326
+ ':hover': {
1327
+ transition: '.3s',
1328
+ cursor: 'pointer',
1329
+ color: sectionproperties.showallcolorhover,
1330
+ },
1331
+ }),
1332
+ sectiontitle: css({
1333
+ position: 'relative',
1334
+ justifyContent: sectionproperties.sectiontitleposition == 'Centered' ? 'center' : '',
1335
+ width: sectionproperties.sectiontitlestyle == 'Line Before Text' ? '100%' : '',
1336
+ fontSize: sectionproperties.sectionTitleFontSize + 'px',
1337
+ '@media (max-width: 800px)': {
1338
+ fontSize: sectionproperties.sectionTitleFontSizeresp + 'px',
1339
+ },
1340
+ }),
1341
+ filtercard: css({
1342
+ minWidth: sectionproperties.filtercardwidth + 'px',
1343
+ maxWidth: sectionproperties.filtercardwidth + 'px',
1344
+ }),
1345
+ filteroptionvertical: css({
1346
+ border: sectionproperties.filter_optionborderwidth + 'px solid ' + sectionproperties.filter_optionbordercolor,
1347
+ color: sectionproperties.timeline_text_color,
1348
+ ':hover': {
1349
+ color: sectionproperties.timeline_text_coloronhover,
1350
+ },
1351
+ // filter_activebackgroundtransparent
1352
+ }),
1353
+ filteroptionverticalactive: css({
1354
+ background: sectionproperties.btn_item_activebgcolor,
1355
+ color: sectionproperties.activecat_color,
1356
+ }),
1357
+ };
1358
+ const filterrouting = (tempfetchproductsfilerobjcontext) => {
1359
+ const path = window.location.pathname.split('/');
1360
+ var currentpagepath = path[1];
1361
+ var pagenamepathinstaticpagelinkcont = '';
1362
+ for (const key in StaticPagesLinksContext) {
1363
+ if (StaticPagesLinksContext[key] == currentpagepath) {
1364
+ pagenamepathinstaticpagelinkcont = key;
1365
+ }
1366
+ }
1367
+ if (pagenamepathinstaticpagelinkcont != undefined && pagenamepathinstaticpagelinkcont != '') {
1368
+ routingcountext(StaticPagesLinksContext[pagenamepathinstaticpagelinkcont], true, encodeURIComponent(JSON.stringify(tempfetchproductsfilerobjcontext)));
1369
+ }
1370
+ };
1371
+ const Countriesfilter = () => {
1372
+ return (
1373
+ <div class="row m-0 w-100 pl-md-3 pr-md-3">
1374
+ <div class="col-lg-12 p-0 mt-3">
1375
+ <div class="row m-0 w-100">
1376
+ <div class="col-lg-12 p-0 mb-3">
1377
+ {fetchTabexCountriesQueryContext?.isFetching && (
1378
+ <div className="w-100 allcentered mt-1">
1379
+ <CircularProgress color="#000" width="20px" height="20px" duration="1s" />
1380
+ </div>
1381
+ )}
1382
+
1383
+ {!fetchTabexCountriesQueryContext?.isFetching && fetchTabexCountriesQueryContext?.isSuccess && (
1384
+ <Select
1385
+ options={fetchTabexCountriesQueryContext?.data?.data?.countries}
1386
+ getOptionLabel={(option) => {
1387
+ var crname = '';
1388
+ if (langdetect == 'en') {
1389
+ crname = option.name;
1390
+ } else if (langdetect == 'ar') {
1391
+ if (option.name_ar != null) {
1392
+ crname = option.name_ar;
1393
+ } else {
1394
+ crname = option.name;
1395
+ }
1396
+ }
1397
+ return crname;
1398
+ }}
1399
+ getOptionValue={(option) => option.id}
1400
+ value={fetchTabexCountriesQueryContext.data.data.countries.filter((option) => option.id == ProductFilterObjContext.countryid)}
1401
+ onChange={(option) => {
1402
+ var tempFetchTabexStatesPayloadobjContext = { ...FetchTabexStatesPayloadobjContext };
1403
+ tempFetchTabexStatesPayloadobjContext.functype = 'states';
1404
+ tempFetchTabexStatesPayloadobjContext.country_id = option.id;
1405
+ setFetchTabexStatesPayloadobjContext({ ...tempFetchTabexStatesPayloadobjContext });
1406
+
1407
+ var tempfetchproductsfilerobjcontext = { ...ProductFilterObjContext };
1408
+ tempfetchproductsfilerobjcontext.countryid = option.id;
1409
+ tempfetchproductsfilerobjcontext.page = 0;
1410
+ setProductFilterObjContext({ ...tempfetchproductsfilerobjcontext });
1411
+ filterrouting(tempfetchproductsfilerobjcontext);
1412
+ }}
1413
+ styles={langdetect == 'en' ? defaultstyles : defaultstylestranslated}
1414
+ placeholder={lang.choosecountry}
1415
+ isSearchable={true}
1416
+ />
1417
+ )}
1418
+ </div>
1419
+ <div class="col-lg-12 mb-3 p-0">
1420
+ {fetchTabexStatesQueryContext?.isFetching && (
1421
+ <div className="w-100 allcentered mt-1">
1422
+ <CircularProgress color="#000" width="20px" height="20px" duration="1s" />
1423
+ </div>
1424
+ )}
1425
+
1426
+ {!fetchTabexStatesQueryContext?.isFetching && fetchTabexStatesQueryContext?.isSuccess && (
1427
+ <Select
1428
+ options={fetchTabexStatesQueryContext?.data?.data?.states}
1429
+ getOptionLabel={(option) => {
1430
+ var crname = '';
1431
+ if (langdetect == 'en') {
1432
+ crname = option.name;
1433
+ } else if (langdetect == 'ar') {
1434
+ if (option.name_ar != null) {
1435
+ crname = option.name_ar;
1436
+ } else {
1437
+ crname = option.name;
1438
+ }
1439
+ }
1440
+ return crname;
1441
+ }}
1442
+ getOptionValue={(option) => option.id}
1443
+ value={fetchTabexStatesQueryContext?.data?.data?.states.filter((option) => option.id == ProductFilterObjContext.stateid)}
1444
+ onChange={(option) => {
1445
+ var tempFetchTabexStatesPayloadobjContext = { ...FetchTabexStatesPayloadobjContext };
1446
+ tempFetchTabexStatesPayloadobjContext.functype = 'cities';
1447
+ tempFetchTabexStatesPayloadobjContext.state_id = option.id;
1448
+ setFetchTabexStatesPayloadobjContext({ ...tempFetchTabexStatesPayloadobjContext });
1449
+
1450
+ var tempfetchproductsfilerobjcontext = { ...ProductFilterObjContext };
1451
+ tempfetchproductsfilerobjcontext.stateid = option.id;
1452
+ tempfetchproductsfilerobjcontext.page = 0;
1453
+ setProductFilterObjContext({ ...tempfetchproductsfilerobjcontext });
1454
+ filterrouting(tempfetchproductsfilerobjcontext);
1455
+ }}
1456
+ styles={langdetect == 'en' ? defaultstyles : defaultstylestranslated}
1457
+ placeholder={lang.choosestategov}
1458
+ isSearchable={true}
1459
+ />
1460
+ )}
1461
+ </div>
1462
+ <div class="col-lg-12 mb-3 p-0">
1463
+ {fetchTabexCitiesQueryContext?.isFetching && (
1464
+ <div className="w-100 allcentered mt-1">
1465
+ <CircularProgress color="#000" width="20px" height="20px" duration="1s" />
1466
+ </div>
1467
+ )}
1468
+
1469
+ {!fetchTabexCitiesQueryContext?.isFetching && fetchTabexCitiesQueryContext?.isSuccess && (
1470
+ <Select
1471
+ options={fetchTabexCitiesQueryContext?.data?.data?.cities}
1472
+ getOptionLabel={(option) => {
1473
+ var crname = '';
1474
+ if (langdetect == 'en') {
1475
+ crname = option.name;
1476
+ } else if (langdetect == 'ar') {
1477
+ if (option.name_ar != null) {
1478
+ crname = option.name_ar;
1479
+ } else {
1480
+ crname = option.name;
1481
+ }
1482
+ }
1483
+ return crname;
1484
+ }}
1485
+ getOptionValue={(option) => option.id}
1486
+ value={fetchTabexCitiesQueryContext?.data?.data?.cities.filter((option) => option.id == ProductFilterObjContext.cityid)}
1487
+ onChange={(option) => {
1488
+ var tempfetchproductsfilerobjcontext = { ...ProductFilterObjContext };
1489
+ tempfetchproductsfilerobjcontext.cityid = option.id;
1490
+ tempfetchproductsfilerobjcontext.page = 0;
1491
+ setProductFilterObjContext({ ...tempfetchproductsfilerobjcontext });
1492
+ filterrouting(tempfetchproductsfilerobjcontext);
1493
+ }}
1494
+ styles={langdetect == 'en' ? defaultstyles : defaultstylestranslated}
1495
+ placeholder={lang.choosecity}
1496
+ isSearchable={true}
1497
+ />
1498
+ )}
1499
+ </div>
1500
+ </div>
1501
+ </div>
1502
+ </div>
1503
+ );
1504
+ };
1505
+ const [checked, setChecked] = useState(false);
1506
+ // const queryParameters = new URLSearchParams(window.location.search);
1507
+ // useEffect(() => {
1508
+ // // setsortbycontext('Sort By');
1509
+ // if (queryParameters.get('sortprice') == undefined) {
1510
+ // setsortbycontext('Sort By');
1511
+ // } else {
1512
+ // var temp = { ...sortbycontext };
1513
+ // temp = queryParameters.get('sortprice');
1514
+ // alert(temp);
1515
+ // }
1516
+ // }, []);
1517
+ return (
1518
+ <div
1519
+ // className={sectionproperties.filterdirection == 'Horizontal' ? 'col-lg-12 p-0 w-100 filter mt-md-0 ' : 'col-lg-12 p-0 w-100 filter mt-md-0 d-md-none'}
1520
+ className={'row m-0 p-0 w-100'}
1521
+ style={{ marginTop: sectionproperties.filtersection_mt + 'px', minHeight: sectionproperties.filterminheight == 0 ? 'auto' : sectionproperties.filterminheight + 'vh' }}
1522
+ >
1523
+ {props.typeprops != 'vertical' && (
1524
+ <div className={sectionproperties.filterdirection == 'Horizontal' ? 'col-lg-12 p-0 w-100 filter mt-md-0 ' : 'col-lg-12 p-0 w-100 filter mt-md-0 d-md-none'}>
1525
+ {sectionproperties.filterType == 'Title & Sort By Only' && (
1526
+ <div
1527
+ class="row mx-0 w-100"
1528
+ style={{
1529
+ marginTop: sectionproperties.sectionTitleMarginTop + 'px',
1530
+ marginBottom: sectionproperties.sectiontitledirection == 'Vertical' ? sectionproperties.sectionTitleMarginBottom + 'px' : 0,
1531
+ paddingLeft: langdetect == 'en' ? sectionproperties.sectionTitleMarginLeft + 'px' : sectionproperties.sectionTitleMarginRight + 'px',
1532
+ paddingRight: langdetect == 'en' ? sectionproperties.sectionTitleMarginRight + 'px' : sectionproperties.sectionTitleMarginLeft + 'px',
1533
+ }}
1534
+ >
1535
+ <div class="col-lg-6 col-md-6 p-0 d-flex align-items-center justify-content-start">
1536
+ <div class={filter_cssstyles.sectiontitle + ' d-flex align-items-center flex-row '} style={{}}>
1537
+ <p
1538
+ class={
1539
+ sectionproperties.sectiontitlefontfamily == 'Pacifico'
1540
+ ? ' PacificoFont mb-auto mb-0 pb-0 wordbreak d-flex align-items-center justify-content-start '
1541
+ : sectionproperties.sectiontitlefontfamily == 'Playfair'
1542
+ ? ' PlayfairFont mb-auto mb-0 pb-0 wordbreak d-flex align-items-center justify-content-start '
1543
+ : sectionproperties.sectiontitlefontfamily == 'Great Vibes'
1544
+ ? ' GreatvibesFont mb-auto mb-0 pb-0 wordbreak d-flex align-items-center justify-content-start '
1545
+ : sectionproperties.sectiontitlefontfamily == 'Quicksand'
1546
+ ? ' QuicksandFont mb-auto mb-0 pb-0 wordbreak d-flex align-items-center justify-content-start '
1547
+ : sectionproperties.sectiontitlefontfamily == 'Satisfy'
1548
+ ? ' SatisfyFont mb-auto mb-0 pb-0 wordbreak d-flex align-items-center justify-content-start '
1549
+ : sectionproperties.sectiontitlefontfamily == 'ASUL'
1550
+ ? ' ASUL mb-auto mb-0 pb-0 wordbreak d-flex align-items-center justify-content-start '
1551
+ : ' mb-auto mb-0 pb-0 wordbreak d-flex align-items-center justify-content-start '
1552
+ }
1553
+ style={{
1554
+ color: sectionproperties.sectionTitleColor,
1555
+ fontWeight: sectionproperties.sectionTitleFontWeight,
1556
+ paddingLeft: sectionproperties.sectiontitlestyle == 'Line Before Text' ? '12px' : 0,
1557
+ paddingRight: sectionproperties.sectiontitlestyle == 'Line Before Text' ? '12px' : 0,
1558
+ textAlign: sectionproperties.sectiontitleposition == 'Centered' ? 'center' : '',
1559
+ }}
1560
+ >
1561
+ {langdetect == 'en' ? sectionproperties.sectionTitleContent : sectionproperties.sectionTitleContent_ar}
1562
+ </p>
1563
+ </div>
1564
+ </div>
1565
+ <div
1566
+ class="col-lg-6 col-md-6 d-flex align-items-center justify-content-end"
1567
+ style={{
1568
+ paddingRight: langdetect == 'en' ? 0 : '',
1569
+ paddingLeft: langdetect == 'ar' ? 0 : '',
1570
+ }}
1571
+ >
1572
+ <div class="dropdowncontainer">
1573
+ <input class={filter_cssstyles.dropdown + ' dropdown '} type="checkbox" checked={checked} id="dropdown" name="dropdown" hidden />
1574
+ <label
1575
+ onClick={() => {
1576
+ setChecked(!checked);
1577
+ }}
1578
+ className={filter_cssstyles.collapsetitle + ' d-flex justify-content-end align-items-center for-dropdown m-0 '}
1579
+ for="dropdown"
1580
+ style={{ cursor: 'pointer' }}
1581
+ >
1582
+ {langdetect == 'en' ? 'Sort By' : 'ترتيب حسب'}{' '}
1583
+ <i class={langdetect == 'en' ? 'h-100 allcentered ml-3' : 'h-100 allcentered mr-3'}>
1584
+ <FiChevronDown size={20} />
1585
+ </i>
1586
+ </label>
1587
+
1588
+ <div
1589
+ class="dropdownmenu"
1590
+ style={{
1591
+ background: sectionproperties.filter_backgroundcolor,
1592
+ }}
1593
+ >
1594
+ {otherfilters.map((item, index) => {
1595
+ return (
1596
+ <div class="w-100">
1597
+ {item.filterarray.map((valueitem, valueindex) => {
1598
+ var ischecked = false;
1599
+ if (item.payloadvalue == 'sortprice') {
1600
+ if (valueitem.value == ProductFilterObjContext.sortprice) {
1601
+ ischecked = true;
1602
+ }
1603
+ } else if (item.payloadvalue == 'sortdates') {
1604
+ if (valueitem.value == ProductFilterObjContext.sortdates) {
1605
+ ischecked = true;
1606
+ }
1607
+ }
1608
+ return (
1609
+ <p
1610
+ class={filter_cssstyles.timeline_text + ' dropdownlink '}
1611
+ style={{ color: ischecked ? sectionproperties.activecat_color : '' }}
1612
+ onClick={() => {
1613
+ var tempfetchproductsfilerobjcontext = { ...ProductFilterObjContext };
1614
+ if (tempfetchproductsfilerobjcontext[item.payloadvalue] == valueitem.value) {
1615
+ tempfetchproductsfilerobjcontext[item.payloadvalue] = '';
1616
+ } else {
1617
+ tempfetchproductsfilerobjcontext[item.payloadvalue] = valueitem.value;
1618
+ }
1619
+ tempfetchproductsfilerobjcontext.page = 0;
1620
+ setProductFilterObjContext({ ...tempfetchproductsfilerobjcontext });
1621
+
1622
+ filterrouting(tempfetchproductsfilerobjcontext);
1623
+ setsortbycontext(valueitem.name);
1624
+ }}
1625
+ >
1626
+ {valueitem.name}
1627
+ </p>
1628
+ );
1629
+ })}
1630
+ </div>
1631
+ );
1632
+ })}
1633
+ </div>
1634
+ </div>
1635
+ </div>
1636
+ </div>
1637
+ )}
1638
+ {sectionproperties.filterType != 'Title & Sort By Only' && sectionproperties.filterdirection == 'Horizontal' && (
1639
+ <div class="row m-0 w-100">
1640
+ {/* <div className="col-lg-12 col-md-12 col-sm-12 p-0 d-flex justify-content-start mb-3">
1641
+ <p className={langdetect == 'en' ? filter_cssstyles.collapsetitle + ' m-0 p-0 ' : filter_cssstyles.collapsetitle + ' m-0 p-0 text-right'}>
1642
+ {langdetect == 'en' ? sectionproperties.filtercollectiontitle_en : sectionproperties.filtercollectiontitle_ar}
1643
+ </p>
1644
+ </div> */}
1645
+ <div class="col-lg-12 p-0 mb-4">
1646
+ {/* filtercard */}
1647
+ {/* here */}
1648
+ <ScrollMenu transitionBehavior={'auto'} wrapperClassName={''} itemClassName={''} scrollContainerClassName={'filterscrollmenuclasssubscrollbar'}>
1649
+ {collectionstobevisible.map((item, index) => {
1650
+ return (
1651
+ <div className={' col-xl-12 p-0 col-lg-12 col-md-12 col-sm-12 w-100'}>
1652
+ <div
1653
+ className={`${filter_cssstyles.timeline_text} ${filter_cssstyles.filtercard}` + ' p-0 cursor-pointer '}
1654
+ onClick={() => {
1655
+ setCollectionFilterFunc(item.collectionid);
1656
+ }}
1657
+ style={{
1658
+ color: item.isfilterselected == true ? sectionproperties.activecat_color : '',
1659
+ }}
1660
+ >
1661
+ <div class="col-lg-12 allcentered mb-2">
1662
+ <div
1663
+ style={{
1664
+ width: sectionproperties.filterimagewidthheight + '%',
1665
+ height: sectionproperties.filterimagewidthheight + '%',
1666
+ }}
1667
+ >
1668
+ <Imagekitimagecomp
1669
+ urlEndpoint={ikimagecredcontext?.ikimageendpoint}
1670
+ publicKey={ikimagecredcontext?.ikimagepublickey}
1671
+ path={'/tr:w-' + sectionproperties.filterimage_tr + ',h-' + sectionproperties.filterimage_h + '/' + item.collectionlogo}
1672
+ style={{
1673
+ width: '100%',
1674
+ height: '100%',
1675
+ objectFit: 'cover',
1676
+ borderRadius: sectionproperties.filterimageborderradius + 'px',
1677
+ }}
1678
+ loading="lazy"
1679
+ />
1680
+ </div>
1681
+ </div>
1682
+ <div class="row m-0 w-100">
1683
+ <div class="col-lg-10 text-start">
1684
+ <p class={' m-0 p-0 '}>{langdetect == 'en' ? item.title_en : item.title_ar}</p>
1685
+ </div>
1686
+ <div class="col-lg-2 text-end">
1687
+ <i class="h-100 allcentered">{langdetect == 'en' ? <BsChevronRight /> : <BsChevronRight />}</i>
1688
+ </div>
1689
+ </div>
1690
+ </div>
1691
+ </div>
1692
+ );
1693
+ })}
1694
+ </ScrollMenu>
1695
+ </div>
1696
+ {sectionproperties.showproductgroupbytitle == 'Show' && (
1697
+ <div
1698
+ class="col-lg-12 text-start px-4 mb-5"
1699
+ style={{
1700
+ fontSize: 15,
1701
+ color: '#62554a',
1702
+ }}
1703
+ >
1704
+ <span
1705
+ class="cursor-pointer"
1706
+ onClick={() => {
1707
+ routingcountext('home', false, '');
1708
+ }}
1709
+ >
1710
+ {'Home'} /{' '}
1711
+ </span>{' '}
1712
+ <span style={{ textTransform: 'capitalize' }} class="mx-2">
1713
+ {props.show_product_group_titles()['title_en']}
1714
+ </span>
1715
+ </div>
1716
+ )}
1717
+ </div>
1718
+ )}
1719
+ {sectionproperties.filterType != 'Title & Sort By Only' && sectionproperties.filterdirection == 'Vertical' && (
1720
+ <div
1721
+ className={`${filterstyles.filterslider_container}` + ' pb-md-5 '}
1722
+ id="filterslider"
1723
+ style={{
1724
+ background: sectionproperties.filter_backgroundcolor,
1725
+ borderRadius: sectionproperties.filter_borderBottomLeftRadius + 'px',
1726
+ }}
1727
+ >
1728
+ <div className={filter_cssstyles.filteraccordion + ' row m-0 w-100 pt-2 pb-3 filter-accordion '}>
1729
+ <div className="col-lg-9 col-md-9 col-sm-9 d-none align-items-center d-md-flex">
1730
+ <p
1731
+ className="m-0 p-0 font-16 font-weight-600"
1732
+ style={{
1733
+ color: sectionproperties.filter_titlecolor,
1734
+ fontSize: sectionproperties.filter_titlefontsize + 'px',
1735
+ fontWeight: sectionproperties.filter_titlefontweight,
1736
+ textTransform: sectionproperties.filter_titletextransform,
1737
+ }}
1738
+ >
1739
+ {langdetect == 'en' ? 'Filter' : 'فلترة'}
1740
+ </p>
1741
+ </div>
1742
+ <div className="col-lg-3 col-md-3 col-sm-3 d-none d-md-flex align-items-center justify-content-end p-0">
1743
+ <div
1744
+ className={`${filterstyles.close_menu_icon_cont} ${filter_cssstyles.close_menu_icon_cont}` + ' d-none d-md-flex align-items-center justify-content-center '}
1745
+ onClick={() => {
1746
+ var element = document.getElementById('filterslider');
1747
+ element.classList.remove(filterstyles.filterslider_container_opened);
1748
+ }}
1749
+ >
1750
+ <i className="h-100 d-flex align-items-center justify-content-center">
1751
+ <IoMdClose
1752
+ size={sectionproperties.closeSlider_fontSize}
1753
+ style={{
1754
+ color: sectionproperties.closeSlider_color,
1755
+ }}
1756
+ />
1757
+ </i>
1758
+ </div>
1759
+ </div>
1760
+ {sectionproperties.otherfilters == 'Show' && (
1761
+ <div class="row m-0 w-100">
1762
+ <div class="col-lg-12 d-flex justify-content-start">
1763
+ <p
1764
+ className="m-0 p-0 font-16 font-weight-600"
1765
+ style={{
1766
+ color: sectionproperties.filter_titlecolor,
1767
+ fontSize: sectionproperties.filter_titlefontsize + 'px',
1768
+ fontWeight: sectionproperties.filter_titlefontweight,
1769
+ textTransform: sectionproperties.filter_titletextransform,
1770
+ }}
1771
+ >
1772
+ {langdetect == 'en' ? 'Sort By' : 'ترتيب حسب'}
1773
+ </p>
1774
+ </div>
1775
+ <div className="col-lg-12">
1776
+ <hr className="mt-2 mb-3" />
1777
+ </div>
1778
+ {otherfilters.map((item, index) => {
1779
+ return (
1780
+ <div className="col-lg-12 pl-4 pr-4">
1781
+ <Accordion allowMultipleExpanded={true} allowZeroExpanded={true} preExpanded={[0, 1, 2, 3]} style={{ width: '100%' }}>
1782
+ <AccordionItem uuid={index}>
1783
+ <AccordionItemHeading>
1784
+ <AccordionItemButton>
1785
+ <div className={filter_cssstyles.titlecontainer + ' row m-0 p-0 mb-2 pl-md-3 pr-md-3 '}>
1786
+ <div className="col-lg-10 col-md-10 col-sm-10 p-0">
1787
+ <p
1788
+ className={
1789
+ langdetect == 'en'
1790
+ ? filter_cssstyles.collapsetitle + ' m-0 p-0 collapsetitle '
1791
+ : filter_cssstyles.collapsetitle + ' collapsetitle m-0 p-0 text-right'
1792
+ }
1793
+ >
1794
+ {item.name}
1795
+ </p>
1796
+ </div>
1797
+ <div className="col-lg-2 col-md-2 col-sm-2 p-0">
1798
+ <AccordionItemState>
1799
+ {(state) => {
1800
+ if (state.expanded == true) {
1801
+ return (
1802
+ <i
1803
+ className={
1804
+ filter_cssstyles.collapsetitle +
1805
+ ' collapsetitle h-100 d-flex align-items-center justify-content-end '
1806
+ }
1807
+ >
1808
+ <FiChevronUp />
1809
+ </i>
1810
+ );
1811
+ } else {
1812
+ return (
1813
+ <i className={filter_cssstyles.collapsetitle + ' h-100 d-flex align-items-center justify-content-end '}>
1814
+ <FiChevronDown />
1815
+ </i>
1816
+ );
1817
+ }
1818
+ }}
1819
+ </AccordionItemState>
1820
+ </div>
1821
+ </div>
1822
+ </AccordionItemButton>
1823
+ </AccordionItemHeading>
1824
+ <AccordionItemPanel className="p-0">
1825
+ <div className="row mt-0 mb-2 ml-0 mr-0 d-lg-flex">
1826
+ <div className={'col-lg-12'}>
1827
+ <div
1828
+ className={
1829
+ langdetect == 'en'
1830
+ ? `${filterstyles.timeline}` + ' p-sm-0 '
1831
+ : `${filterstyles.timeline} ${filterstyles.timelinetrans}` + ' p-sm-0 '
1832
+ }
1833
+ >
1834
+ {item.filterarray.map((valueitem, valueindex) => {
1835
+ var ischecked = false;
1836
+ if (item.payloadvalue == 'sortprice') {
1837
+ if (valueitem.value == ProductFilterObjContext.sortprice) {
1838
+ ischecked = true;
1839
+ }
1840
+ } else if (item.payloadvalue == 'sortdates') {
1841
+ if (valueitem.value == ProductFilterObjContext.sortdates) {
1842
+ ischecked = true;
1843
+ }
1844
+ }
1845
+ return (
1846
+ <div
1847
+ className={
1848
+ `${filterstyles.border_left_line} ${filterstyles.timelineinnercont} ${filter_cssstyles.timelineinnercont}
1849
+ ${ischecked ? `${filter_cssstyles.timelineinnercont_active} ${filterstyles.timelineinnercont_active}` : ''}
1850
+
1851
+ ` + ' d-flex align-items-start pb-3 '
1852
+ }
1853
+ onClick={() => {
1854
+ var tempfetchproductsfilerobjcontext = { ...ProductFilterObjContext };
1855
+ if (tempfetchproductsfilerobjcontext[item.payloadvalue] == valueitem.value) {
1856
+ tempfetchproductsfilerobjcontext[item.payloadvalue] = '';
1857
+ } else {
1858
+ tempfetchproductsfilerobjcontext[item.payloadvalue] = valueitem.value;
1859
+ }
1860
+ tempfetchproductsfilerobjcontext.page = 0;
1861
+ setProductFilterObjContext({ ...tempfetchproductsfilerobjcontext });
1862
+
1863
+ filterrouting(tempfetchproductsfilerobjcontext);
1864
+ }}
1865
+ >
1866
+ <div>
1867
+ <div
1868
+ className={
1869
+ ` ${ischecked ? filter_cssstyles.btn_item_active : ''} ${filterstyles.btn_item} ${
1870
+ filter_cssstyles.btn_item
1871
+ }` + ' mb-2 d-flex align-items-center '
1872
+ }
1873
+ >
1874
+ <i className="h-100 d-flex align-items-center"></i>
1875
+ </div>
1876
+ </div>
1877
+ <div className={langdetect == 'en' ? 'ml-3' : 'mr-3 text-right'}>
1878
+ <p
1879
+ className={`${filterstyles.timeline_text} ${filter_cssstyles.timeline_text}` + ' m-0 p-0 '}
1880
+ style={{
1881
+ color: ischecked ? sectionproperties.activecat_color : '',
1882
+ }}
1883
+ >
1884
+ {valueitem.name}
1885
+ </p>
1886
+ </div>
1887
+ </div>
1888
+ );
1889
+ })}
1890
+ </div>
1891
+ </div>
1892
+ </div>
1893
+ </AccordionItemPanel>
1894
+ </AccordionItem>
1895
+ </Accordion>
1896
+ </div>
1897
+ );
1898
+ })}
1899
+ {sectionproperties.showfilterbyrating == 'Show' && (
1900
+ <div className="col-lg-12 pl-4 pr-4">
1901
+ <div className={filter_cssstyles.titlecontainer + ' row m-0 p-0 mb-2 pl-md-3 pr-md-3 '}>
1902
+ <div className="col-lg-12 col-md-12 col-sm-12 p-0 mb-3">
1903
+ <p
1904
+ className={
1905
+ langdetect == 'en'
1906
+ ? filter_cssstyles.collapsetitle + ' m-0 p-0 collapsetitle '
1907
+ : filter_cssstyles.collapsetitle + ' collapsetitle m-0 p-0 text-right'
1908
+ }
1909
+ >
1910
+ {langdetect == 'en' ? 'Ratings' : 'التقييمات'}
1911
+ </p>
1912
+ </div>
1913
+ <div className="col-lg-12 col-md-12 col-sm-12 mb-4">
1914
+ <InputRange
1915
+ draggableTrack={true}
1916
+ formatLabel={(value) => `${value}`}
1917
+ maxValue={5}
1918
+ minValue={0}
1919
+ value={raterangevalue}
1920
+ onChange={(value) => {
1921
+ setraterangevalue({ ...value });
1922
+ }}
1923
+ />
1924
+ </div>
1925
+ </div>
1926
+ </div>
1927
+ )}
1928
+ </div>
1929
+ )}
1930
+ <div className="col-lg-9 col-md-9 col-sm-9 d-flex align-items-center d-md-none">
1931
+ <p
1932
+ className="m-0 p-0 font-16 font-weight-600"
1933
+ style={{
1934
+ color: sectionproperties.filter_titlecolor,
1935
+ fontSize: sectionproperties.filter_titlefontsize + 'px',
1936
+ fontWeight: sectionproperties.filter_titlefontweight,
1937
+ textTransform: sectionproperties.filter_titletextransform,
1938
+ }}
1939
+ >
1940
+ {langdetect == 'en' ? 'Filter' : 'فلترة'}
1941
+ </p>
1942
+ </div>
1943
+ <div className="col-lg-3 col-md-3 col-sm-3 d-flex d-md-none align-items-center justify-content-end p-0">
1944
+ <div
1945
+ className={`${filterstyles.close_menu_icon_cont} ${filter_cssstyles.close_menu_icon_cont}` + ' d-none d-md-flex align-items-center justify-content-center '}
1946
+ onClick={() => {
1947
+ var element = document.getElementById('filterslider');
1948
+ element.classList.remove(filterstyles.filterslider_container_opened);
1949
+ }}
1950
+ >
1951
+ <i className="h-100 d-flex align-items-center justify-content-center">
1952
+ <IoMdClose
1953
+ size={sectionproperties.closeSlider_fontSize}
1954
+ style={{
1955
+ color: sectionproperties.closeSlider_color,
1956
+ }}
1957
+ />
1958
+ </i>
1959
+ </div>
1960
+ </div>
1961
+ <div className="col-lg-12">
1962
+ <hr className="mt-2 mb-3" />
1963
+ </div>
1964
+ <div className={filter_cssstyles.filteraccordion + ' col-lg-12 filter-accordion p-md-0 pl-4 pr-4 '}>
1965
+ {sectionproperties.showcountriesfilter == 'Show' && Countriesfilter()}
1966
+ {sectionproperties.filterType == 'All' && sectionproperties.showcategoriesfilter == 'Show' && <div class="row m-0 w-100">{CategoriesFilter()}</div>}
1967
+ {sectionproperties.filterType == 'Collections' && sectionproperties.showcategoriesfilter == 'Show' && <div class="row m-0 w-100">{CollectionsFilter()}</div>}
1968
+ {sectionproperties.showdynamicfilter == 'Show' && <div class="row m-0 w-100">{DynamicFilter()}</div>}
1969
+ {sectionproperties.showvariantsfilter == 'Show' && InstFilters()}
1970
+ </div>
1971
+ </div>
1972
+ </div>
1973
+ )}
1974
+ <div className="col-lg-12">
1975
+ <Offcanvas
1976
+ show={props?.openFilterSlider}
1977
+ onHide={() => {
1978
+ props.setopenFilterSlider(false);
1979
+ }}
1980
+ placement="end"
1981
+ scroll={true}
1982
+ style={{
1983
+ minWidth: '200px',
1984
+ background: sectionproperties.filter_backgroundcolor,
1985
+ borderRadius: sectionproperties.filter_borderBottomLeftRadius + 'px',
1986
+ }}
1987
+ backdrop={true}
1988
+ >
1989
+ <Offcanvas.Header>
1990
+ <Offcanvas.Title>
1991
+ <div className="row m-0 w-100 mt-2">
1992
+ <div className="col-lg-9 col-md-9 col-sm-9 d-none align-items-center d-md-flex">
1993
+ <p
1994
+ className="m-0 p-0 font-16 font-weight-600"
1995
+ style={{
1996
+ color: sectionproperties.filter_titlecolor,
1997
+ fontSize: sectionproperties.filter_titlefontsize + 'px',
1998
+ fontWeight: sectionproperties.filter_titlefontweight,
1999
+ textTransform: sectionproperties.filter_titletextransform,
2000
+ }}
2001
+ >
2002
+ {langdetect == 'en' ? 'Filter' : 'فلترة'}
2003
+ </p>
2004
+ </div>
2005
+ <div className="col-lg-3 col-md-3 col-sm-3 d-none d-md-flex align-items-center justify-content-end p-0">
2006
+ <div
2007
+ className={
2008
+ `${filterstyles.close_menu_icon_cont} ${filter_cssstyles.close_menu_icon_cont}` + ' d-none d-md-flex align-items-center justify-content-center '
2009
+ }
2010
+ onClick={() => {
2011
+ props.setopenFilterSlider(false);
2012
+ }}
2013
+ >
2014
+ <i className="h-100 d-flex align-items-center justify-content-center">
2015
+ <IoMdClose
2016
+ size={sectionproperties.closeSlider_fontSize}
2017
+ style={{
2018
+ color: sectionproperties.closeSlider_color,
2019
+ }}
2020
+ />
2021
+ </i>
2022
+ </div>
2023
+ </div>
2024
+ <div class="col-lg-12">
2025
+ <hr class="mt-2 mb-2" />
2026
+ </div>
2027
+ </div>
2028
+ </Offcanvas.Title>
2029
+ </Offcanvas.Header>
2030
+ <Offcanvas.Body>
2031
+ <div
2032
+ className={' pb-md-5 '}
2033
+ style={{
2034
+ background: sectionproperties.filter_backgroundcolor,
2035
+ borderRadius: sectionproperties.filter_borderBottomLeftRadius + 'px',
2036
+ }}
2037
+ >
2038
+ <div className={filter_cssstyles.filteraccordion + ' row m-0 w-100 pt-2 pb-3 filter-accordion '}>
2039
+ {sectionproperties.otherfilters == 'Show' &&
2040
+ otherfilters.map((item, index) => {
2041
+ return (
2042
+ <>
2043
+ <Accordion allowMultipleExpanded={true} allowZeroExpanded={true} preExpanded={[0, 1, 2, 3]} style={{ width: '100%' }}>
2044
+ <AccordionItem uuid={index}>
2045
+ <AccordionItemHeading>
2046
+ <AccordionItemButton>
2047
+ <div className={filter_cssstyles.titlecontainer + ' row m-0 p-0 mb-2 pl-md-3 pr-md-3 '}>
2048
+ <div className="col-lg-10 col-md-10 col-sm-10 p-0">
2049
+ <p
2050
+ className={
2051
+ langdetect == 'en'
2052
+ ? filter_cssstyles.collapsetitle + ' m-0 p-0 '
2053
+ : filter_cssstyles.collapsetitle + ' m-0 p-0 text-right'
2054
+ }
2055
+ >
2056
+ {item.name}
2057
+ </p>
2058
+ </div>
2059
+ <div className="col-lg-2 col-md-2 col-sm-2 p-0">
2060
+ <AccordionItemState>
2061
+ {(state) => {
2062
+ if (state.expanded == true) {
2063
+ return (
2064
+ <i
2065
+ className={
2066
+ filter_cssstyles.collapsetitle + ' h-100 d-flex align-items-center justify-content-end '
2067
+ }
2068
+ >
2069
+ <FiChevronUp />
2070
+ </i>
2071
+ );
2072
+ } else {
2073
+ return (
2074
+ <i
2075
+ className={
2076
+ filter_cssstyles.collapsetitle + ' h-100 d-flex align-items-center justify-content-end '
2077
+ }
2078
+ >
2079
+ <FiChevronDown />
2080
+ </i>
2081
+ );
2082
+ }
2083
+ }}
2084
+ </AccordionItemState>
2085
+ </div>
2086
+ </div>
2087
+ </AccordionItemButton>
2088
+ </AccordionItemHeading>
2089
+ <AccordionItemPanel className="p-0">
2090
+ <div className="row mt-0 mb-2 ml-0 mr-0 d-lg-flex">
2091
+ <div className={'col-lg-12'}>
2092
+ <div
2093
+ className={
2094
+ langdetect == 'en'
2095
+ ? `${filterstyles.timeline}` + ' p-sm-0 '
2096
+ : `${filterstyles.timeline} ${filterstyles.timelinetrans}` + ' p-sm-0 '
2097
+ }
2098
+ >
2099
+ {item.filterarray.map((valueitem, valueindex) => {
2100
+ var ischecked = false;
2101
+ if (item.payloadvalue == 'sortprice') {
2102
+ if (valueitem.value == ProductFilterObjContext.sortprice) {
2103
+ ischecked = true;
2104
+ }
2105
+ } else if (item.payloadvalue == 'sortdates') {
2106
+ if (valueitem.value == ProductFilterObjContext.sortdates) {
2107
+ ischecked = true;
2108
+ }
2109
+ }
2110
+ return (
2111
+ <div
2112
+ className={
2113
+ `${filterstyles.border_left_line} ${filterstyles.timelineinnercont} ${
2114
+ filter_cssstyles.timelineinnercont
2115
+ }
2116
+ ${ischecked ? `${filter_cssstyles.timelineinnercont_active} ${filterstyles.timelineinnercont_active}` : ''}
2117
+
2118
+ ` + ' d-flex align-items-start pb-3 '
2119
+ }
2120
+ onClick={() => {
2121
+ // setfilterfunc(valueitem.valueid, valueindex, index, 'assign');
2122
+ var tempfetchproductsfilerobjcontext = { ...ProductFilterObjContext };
2123
+ if (tempfetchproductsfilerobjcontext[item.payloadvalue] == valueitem.value) {
2124
+ tempfetchproductsfilerobjcontext[item.payloadvalue] = '';
2125
+ } else {
2126
+ tempfetchproductsfilerobjcontext[item.payloadvalue] = valueitem.value;
2127
+ }
2128
+ setProductFilterObjContext({ ...tempfetchproductsfilerobjcontext });
2129
+ }}
2130
+ >
2131
+ <div>
2132
+ <div
2133
+ className={
2134
+ ` ${ischecked ? filter_cssstyles.btn_item_active : ''} ${filterstyles.btn_item} ${
2135
+ filter_cssstyles.btn_item
2136
+ }` + ' mb-2 d-flex align-items-center '
2137
+ }
2138
+ >
2139
+ <i className="h-100 d-flex align-items-center"></i>
2140
+ </div>
2141
+ </div>
2142
+ <div className={langdetect == 'en' ? 'ml-3' : 'mr-3 text-right'}>
2143
+ <p
2144
+ className={`${filterstyles.timeline_text} ${filter_cssstyles.timeline_text}` + ' m-0 p-0 '}
2145
+ style={{
2146
+ color: ischecked ? sectionproperties.activecat_color : '',
2147
+ }}
2148
+ >
2149
+ {valueitem.name}
2150
+ </p>
2151
+ </div>
2152
+ </div>
2153
+ );
2154
+ })}
2155
+ </div>
2156
+ </div>
2157
+ </div>
2158
+ </AccordionItemPanel>
2159
+ </AccordionItem>
2160
+ </Accordion>
2161
+ {/* <hr className="mt-3 mb-3" /> */}
2162
+ </>
2163
+ );
2164
+ })}
2165
+ {sectionproperties.otherfilters == 'Show' && (
2166
+ <div className="col-lg-12">
2167
+ <hr className="mt-2 mb-3" />
2168
+ </div>
2169
+ )}
2170
+ <div className={filter_cssstyles.filteraccordion + ' col-lg-12 filter-accordion p-md-0 '}>
2171
+ {sectionproperties.showcountriesfilter == 'Show' && Countriesfilter()}
2172
+ {sectionproperties.filterType == 'All' && sectionproperties.showcategoriesfilter == 'Show' && <div class="row m-0 w-100">{CategoriesFilter()}</div>}
2173
+ {sectionproperties.filterType == 'Collections' && sectionproperties.showcategoriesfilter == 'Show' && (
2174
+ <div class="row m-0 w-100">{CollectionsFilter()}</div>
2175
+ )}
2176
+ {sectionproperties.showdynamicfilter == 'Show' && <div class="row m-0 w-100">{DynamicFilter()}</div>}
2177
+ {sectionproperties.showvariantsfilter == 'Show' && InstFilters()}
2178
+ </div>
2179
+ </div>
2180
+ </div>
2181
+ </Offcanvas.Body>
2182
+ </Offcanvas>
2183
+ </div>
2184
+ </div>
2185
+ )}
2186
+
2187
+ {props.typeprops == 'vertical' && (
2188
+ <div className={'col-lg-12 p-0 w-100 filter mt-md-0 d-md-none'}>
2189
+ <div
2190
+ className={`${filterstyles.filterslider_container}` + ' pb-md-5 '}
2191
+ id="filterslider"
2192
+ style={{
2193
+ background: sectionproperties.filter_backgroundcolor,
2194
+ borderRadius: sectionproperties.filter_borderBottomLeftRadius + 'px',
2195
+ }}
2196
+ >
2197
+ <div className={filter_cssstyles.filteraccordion + ' row m-0 w-100 pt-2 pb-3 filter-accordion '}>
2198
+ <div className="col-lg-9 col-md-9 col-sm-9 d-none align-items-center d-md-flex">
2199
+ <p
2200
+ className="m-0 p-0 font-16 font-weight-600"
2201
+ style={{
2202
+ color: sectionproperties.filter_titlecolor,
2203
+ fontSize: sectionproperties.filter_titlefontsize + 'px',
2204
+ fontWeight: sectionproperties.filter_titlefontweight,
2205
+ textTransform: sectionproperties.filter_titletextransform,
2206
+ }}
2207
+ >
2208
+ {langdetect == 'en' ? 'Filter' : 'فلترة'}
2209
+ </p>
2210
+ </div>
2211
+ <div className="col-lg-3 col-md-3 col-sm-3 d-none d-md-flex align-items-center justify-content-end p-0">
2212
+ <div
2213
+ className={`${filterstyles.close_menu_icon_cont} ${filter_cssstyles.close_menu_icon_cont}` + ' d-none d-md-flex align-items-center justify-content-center '}
2214
+ onClick={() => {
2215
+ var element = document.getElementById('filterslider');
2216
+ element.classList.remove(filterstyles.filterslider_container_opened);
2217
+ }}
2218
+ >
2219
+ <i className="h-100 d-flex align-items-center justify-content-center">
2220
+ <IoMdClose
2221
+ size={sectionproperties.closeSlider_fontSize}
2222
+ style={{
2223
+ color: sectionproperties.closeSlider_color,
2224
+ }}
2225
+ />
2226
+ </i>
2227
+ </div>
2228
+ </div>
2229
+ {/* {sectionproperties.otherfilters == 'Show' && (
2230
+ <div class="row m-0 w-100">
2231
+ <div class="col-lg-12 d-flex justify-content-start">
2232
+ <p
2233
+ className="m-0 p-0 font-16 font-weight-600"
2234
+ style={{
2235
+ color: sectionproperties.filter_titlecolor,
2236
+ fontSize: sectionproperties.filter_titlefontsize + 'px',
2237
+ fontWeight: sectionproperties.filter_titlefontweight,
2238
+ textTransform: sectionproperties.filter_titletextransform,
2239
+ }}
2240
+ >
2241
+ {langdetect == 'en' ? 'Sort By' : 'ترتيب حسب'}
2242
+ </p>
2243
+ </div>
2244
+ <div className="col-lg-12">
2245
+ <hr className="mt-2 mb-3" />
2246
+ </div>
2247
+ {otherfilters.map((item, index) => {
2248
+ return (
2249
+ <div className="col-lg-12 pl-4 pr-4">
2250
+ <Accordion allowMultipleExpanded={true} allowZeroExpanded={true} preExpanded={[0, 1, 2, 3]} style={{ width: '100%' }}>
2251
+ <AccordionItem uuid={index}>
2252
+ <AccordionItemHeading>
2253
+ <AccordionItemButton>
2254
+ <div className={filter_cssstyles.titlecontainer + ' row m-0 p-0 mb-2 pl-md-3 pr-md-3 '}>
2255
+ <div className="col-lg-10 col-md-10 col-sm-10 p-0">
2256
+ <p
2257
+ className={
2258
+ langdetect == 'en'
2259
+ ? filter_cssstyles.collapsetitle + ' m-0 p-0 collapsetitle '
2260
+ : filter_cssstyles.collapsetitle + ' collapsetitle m-0 p-0 text-right'
2261
+ }
2262
+ >
2263
+ {item.name}
2264
+ </p>
2265
+ </div>
2266
+ <div className="col-lg-2 col-md-2 col-sm-2 p-0">
2267
+ <AccordionItemState>
2268
+ {(state) => {
2269
+ if (state.expanded == true) {
2270
+ return (
2271
+ <i
2272
+ className={
2273
+ filter_cssstyles.collapsetitle + ' collapsetitle h-100 d-flex align-items-center justify-content-end '
2274
+ }
2275
+ >
2276
+ <FiChevronDown />
2277
+ </i>
2278
+ );
2279
+ } else {
2280
+ return (
2281
+ <i className={filter_cssstyles.collapsetitle + ' h-100 d-flex align-items-center justify-content-end '}>
2282
+ <FiChevronUp />
2283
+ </i>
2284
+ );
2285
+ }
2286
+ }}
2287
+ </AccordionItemState>
2288
+ </div>
2289
+ </div>
2290
+ </AccordionItemButton>
2291
+ </AccordionItemHeading>
2292
+ <AccordionItemPanel className="p-0">
2293
+ <div className="row mt-0 mb-2 ml-0 mr-0 d-lg-flex">
2294
+ <div className={'col-lg-12'}>
2295
+ <div
2296
+ className={
2297
+ langdetect == 'en'
2298
+ ? `${filterstyles.timeline}` + ' p-sm-0 '
2299
+ : `${filterstyles.timeline} ${filterstyles.timelinetrans}` + ' p-sm-0 '
2300
+ }
2301
+ >
2302
+ {item.filterarray.map((valueitem, valueindex) => {
2303
+ var ischecked = false;
2304
+ if (item.payloadvalue == 'sortprice') {
2305
+ if (valueitem.value == ProductFilterObjContext.sortprice) {
2306
+ ischecked = true;
2307
+ }
2308
+ } else if (item.payloadvalue == 'sortdates') {
2309
+ if (valueitem.value == ProductFilterObjContext.sortdates) {
2310
+ ischecked = true;
2311
+ }
2312
+ }
2313
+ return (
2314
+ <div
2315
+ className={
2316
+ `${filterstyles.border_left_line} ${filterstyles.timelineinnercont} ${filter_cssstyles.timelineinnercont}
2317
+ ${ischecked ? `${filter_cssstyles.timelineinnercont_active} ${filterstyles.timelineinnercont_active}` : ''}
2318
+
2319
+ ` + ' d-flex align-items-start pb-3 '
2320
+ }
2321
+ onClick={() => {
2322
+ var tempfetchproductsfilerobjcontext = { ...ProductFilterObjContext };
2323
+ if (tempfetchproductsfilerobjcontext[item.payloadvalue] == valueitem.value) {
2324
+ tempfetchproductsfilerobjcontext[item.payloadvalue] = '';
2325
+ } else {
2326
+ tempfetchproductsfilerobjcontext[item.payloadvalue] = valueitem.value;
2327
+ }
2328
+ tempfetchproductsfilerobjcontext.page = 0;
2329
+ setProductFilterObjContext({ ...tempfetchproductsfilerobjcontext });
2330
+
2331
+ filterrouting(tempfetchproductsfilerobjcontext);
2332
+ }}
2333
+ >
2334
+ <div>
2335
+ <div
2336
+ className={
2337
+ ` ${ischecked ? filter_cssstyles.btn_item_active : ''} ${filterstyles.btn_item} ${
2338
+ filter_cssstyles.btn_item
2339
+ }` + ' mb-2 d-flex align-items-center '
2340
+ }
2341
+ >
2342
+ <i className="h-100 d-flex align-items-center"></i>
2343
+ </div>
2344
+ </div>
2345
+ <div className={langdetect == 'en' ? 'ml-3' : 'mr-3 text-right'}>
2346
+ <p
2347
+ className={`${filterstyles.timeline_text} ${filter_cssstyles.timeline_text}` + ' m-0 p-0 '}
2348
+ style={{
2349
+ color: ischecked ? sectionproperties.activecat_color : '',
2350
+ }}
2351
+ >
2352
+ {valueitem.name}
2353
+ </p>
2354
+ </div>
2355
+ </div>
2356
+ );
2357
+ })}
2358
+ </div>
2359
+ </div>
2360
+ </div>
2361
+ </AccordionItemPanel>
2362
+ </AccordionItem>
2363
+ </Accordion>
2364
+ </div>
2365
+ );
2366
+ })}
2367
+ {sectionproperties.showfilterbyrating == 'Show' && (
2368
+ <div className="col-lg-12 pl-4 pr-4">
2369
+ <div className={filter_cssstyles.titlecontainer + ' row m-0 p-0 mb-2 pl-md-3 pr-md-3 '}>
2370
+ <div className="col-lg-12 col-md-12 col-sm-12 p-0 mb-3">
2371
+ <p
2372
+ className={
2373
+ langdetect == 'en'
2374
+ ? filter_cssstyles.collapsetitle + ' m-0 p-0 collapsetitle '
2375
+ : filter_cssstyles.collapsetitle + ' collapsetitle m-0 p-0 text-right'
2376
+ }
2377
+ >
2378
+ {langdetect == 'en' ? 'Ratings' : 'التقييمات'}
2379
+ </p>
2380
+ </div>
2381
+ <div className="col-lg-12 col-md-12 col-sm-12 mb-4">
2382
+ <InputRange
2383
+ draggableTrack={true}
2384
+ formatLabel={(value) => `${value}`}
2385
+ maxValue={5}
2386
+ minValue={0}
2387
+ value={raterangevalue}
2388
+ onChange={(value) => {
2389
+ setraterangevalue({ ...value });
2390
+ }}
2391
+ />
2392
+ </div>
2393
+ </div>
2394
+ </div>
2395
+ )}
2396
+ </div>
2397
+ )} */}
2398
+
2399
+ <div className={filter_cssstyles.filteraccordion + ' col-lg-12 filter-accordion p-md-0 pl-4 pr-4 '}>
2400
+ {sectionproperties.showcountriesfilter == 'Show' && Countriesfilter()}
2401
+ {sectionproperties.showvariantsfilter == 'Show' && InstFilters()}
2402
+ {sectionproperties.filterType == 'All' && sectionproperties.showcategoriesfilter == 'Show' && <div class="row m-0 w-100 mb-3">{CategoriesFilter()}</div>}
2403
+ {sectionproperties.filterType == 'Collections' && sectionproperties.showcategoriesfilter == 'Show' && <div class="row m-0 w-100 mb-3">{CollectionsFilter()}</div>}
2404
+ {sectionproperties.showdynamicfilter == 'Show' && <div class="row m-0 w-100 mb-3">{DynamicFilter()}</div>}
2405
+ </div>
2406
+ </div>
2407
+ </div>
2408
+
2409
+ <div className="col-lg-12">
2410
+ <Offcanvas
2411
+ show={props?.openFilterSlider}
2412
+ onHide={() => {
2413
+ props.setopenFilterSlider(false);
2414
+ }}
2415
+ placement="end"
2416
+ scroll={true}
2417
+ style={{
2418
+ minWidth: '200px',
2419
+ background: sectionproperties.filter_backgroundcolor,
2420
+ borderRadius: sectionproperties.filter_borderBottomLeftRadius + 'px',
2421
+ }}
2422
+ backdrop={true}
2423
+ >
2424
+ <Offcanvas.Header>
2425
+ <Offcanvas.Title>
2426
+ <div className="row m-0 w-100 mt-2">
2427
+ <div className="col-lg-9 col-md-9 col-sm-9 d-none align-items-center d-md-flex">
2428
+ <p
2429
+ className="m-0 p-0 font-16 font-weight-600"
2430
+ style={{
2431
+ color: sectionproperties.filter_titlecolor,
2432
+ fontSize: sectionproperties.filter_titlefontsize + 'px',
2433
+ fontWeight: sectionproperties.filter_titlefontweight,
2434
+ textTransform: sectionproperties.filter_titletextransform,
2435
+ }}
2436
+ >
2437
+ {langdetect == 'en' ? 'Filter' : 'فلترة'}
2438
+ </p>
2439
+ </div>
2440
+ <div className="col-lg-3 col-md-3 col-sm-3 d-none d-md-flex align-items-center justify-content-end p-0">
2441
+ <div
2442
+ className={
2443
+ `${filterstyles.close_menu_icon_cont} ${filter_cssstyles.close_menu_icon_cont}` + ' d-none d-md-flex align-items-center justify-content-center '
2444
+ }
2445
+ onClick={() => {
2446
+ props.setopenFilterSlider(false);
2447
+ }}
2448
+ >
2449
+ <i className="h-100 d-flex align-items-center justify-content-center">
2450
+ <IoMdClose
2451
+ size={sectionproperties.closeSlider_fontSize}
2452
+ style={{
2453
+ color: sectionproperties.closeSlider_color,
2454
+ }}
2455
+ />
2456
+ </i>
2457
+ </div>
2458
+ </div>
2459
+ <div class="col-lg-12">
2460
+ <hr class="mt-2 mb-2" />
2461
+ </div>
2462
+ </div>
2463
+ </Offcanvas.Title>
2464
+ </Offcanvas.Header>
2465
+ <Offcanvas.Body>
2466
+ <div
2467
+ className={' pb-md-5 '}
2468
+ style={{
2469
+ background: sectionproperties.filter_backgroundcolor,
2470
+ borderRadius: sectionproperties.filter_borderBottomLeftRadius + 'px',
2471
+ }}
2472
+ >
2473
+ <div className={filter_cssstyles.filteraccordion + ' row m-0 w-100 pt-2 pb-3 filter-accordion '}>
2474
+ {sectionproperties.otherfilters == 'Show' &&
2475
+ otherfilters.map((item, index) => {
2476
+ return (
2477
+ <>
2478
+ <Accordion allowMultipleExpanded={true} allowZeroExpanded={true} preExpanded={[0, 1, 2, 3]} style={{ width: '100%' }}>
2479
+ <AccordionItem uuid={index}>
2480
+ <AccordionItemHeading>
2481
+ <AccordionItemButton>
2482
+ <div className={filter_cssstyles.titlecontainer + ' row m-0 p-0 mb-2 pl-md-3 pr-md-3 '}>
2483
+ <div className="col-lg-10 col-md-10 col-sm-10 p-0">
2484
+ <p
2485
+ className={
2486
+ langdetect == 'en'
2487
+ ? filter_cssstyles.collapsetitle + ' m-0 p-0 '
2488
+ : filter_cssstyles.collapsetitle + ' m-0 p-0 text-right'
2489
+ }
2490
+ >
2491
+ {item.name}
2492
+ </p>
2493
+ </div>
2494
+ <div className="col-lg-2 col-md-2 col-sm-2 p-0">
2495
+ <AccordionItemState>
2496
+ {(state) => {
2497
+ if (state.expanded == true) {
2498
+ return (
2499
+ <i
2500
+ className={
2501
+ filter_cssstyles.collapsetitle + ' h-100 d-flex align-items-center justify-content-end '
2502
+ }
2503
+ >
2504
+ <FiChevronUp />
2505
+ </i>
2506
+ );
2507
+ } else {
2508
+ return (
2509
+ <i
2510
+ className={
2511
+ filter_cssstyles.collapsetitle + ' h-100 d-flex align-items-center justify-content-end '
2512
+ }
2513
+ >
2514
+ <FiChevronDown />
2515
+ </i>
2516
+ );
2517
+ }
2518
+ }}
2519
+ </AccordionItemState>
2520
+ </div>
2521
+ </div>
2522
+ </AccordionItemButton>
2523
+ </AccordionItemHeading>
2524
+ <AccordionItemPanel className="p-0">
2525
+ <div className="row mt-0 mb-2 ml-0 mr-0 d-lg-flex">
2526
+ <div className={'col-lg-12'}>
2527
+ <div
2528
+ className={
2529
+ langdetect == 'en'
2530
+ ? `${filterstyles.timeline}` + ' p-sm-0 '
2531
+ : `${filterstyles.timeline} ${filterstyles.timelinetrans}` + ' p-sm-0 '
2532
+ }
2533
+ >
2534
+ {item.filterarray.map((valueitem, valueindex) => {
2535
+ var ischecked = false;
2536
+ if (item.payloadvalue == 'sortprice') {
2537
+ if (valueitem.value == ProductFilterObjContext.sortprice) {
2538
+ ischecked = true;
2539
+ }
2540
+ } else if (item.payloadvalue == 'sortdates') {
2541
+ if (valueitem.value == ProductFilterObjContext.sortdates) {
2542
+ ischecked = true;
2543
+ }
2544
+ }
2545
+ return (
2546
+ <div
2547
+ className={
2548
+ `${filterstyles.border_left_line} ${filterstyles.timelineinnercont} ${
2549
+ filter_cssstyles.timelineinnercont
2550
+ }
2551
+ ${ischecked ? `${filter_cssstyles.timelineinnercont_active} ${filterstyles.timelineinnercont_active}` : ''}
2552
+
2553
+ ` + ' d-flex align-items-start pb-3 '
2554
+ }
2555
+ onClick={() => {
2556
+ // setfilterfunc(valueitem.valueid, valueindex, index, 'assign');
2557
+ var tempfetchproductsfilerobjcontext = { ...ProductFilterObjContext };
2558
+ if (tempfetchproductsfilerobjcontext[item.payloadvalue] == valueitem.value) {
2559
+ tempfetchproductsfilerobjcontext[item.payloadvalue] = '';
2560
+ } else {
2561
+ tempfetchproductsfilerobjcontext[item.payloadvalue] = valueitem.value;
2562
+ }
2563
+ setProductFilterObjContext({ ...tempfetchproductsfilerobjcontext });
2564
+ }}
2565
+ >
2566
+ <div>
2567
+ <div
2568
+ className={
2569
+ ` ${ischecked ? filter_cssstyles.btn_item_active : ''} ${filterstyles.btn_item} ${
2570
+ filter_cssstyles.btn_item
2571
+ }` + ' mb-2 d-flex align-items-center '
2572
+ }
2573
+ >
2574
+ <i className="h-100 d-flex align-items-center"></i>
2575
+ </div>
2576
+ </div>
2577
+ <div className={langdetect == 'en' ? 'ml-3' : 'mr-3 text-right'}>
2578
+ <p
2579
+ className={`${filterstyles.timeline_text} ${filter_cssstyles.timeline_text}` + ' m-0 p-0 '}
2580
+ style={{
2581
+ color: ischecked ? sectionproperties.activecat_color : '',
2582
+ }}
2583
+ >
2584
+ {valueitem.name}
2585
+ </p>
2586
+ </div>
2587
+ </div>
2588
+ );
2589
+ })}
2590
+ </div>
2591
+ </div>
2592
+ </div>
2593
+ </AccordionItemPanel>
2594
+ </AccordionItem>
2595
+ </Accordion>
2596
+ {/* <hr className="mt-3 mb-3" /> */}
2597
+ </>
2598
+ );
2599
+ })}
2600
+ {sectionproperties.otherfilters == 'Show' && (
2601
+ <div className="col-lg-12">
2602
+ <hr className="mt-2 mb-3" />
2603
+ </div>
2604
+ )}
2605
+ <div className={filter_cssstyles.filteraccordion + ' col-lg-12 filter-accordion p-md-0 '}>
2606
+ {sectionproperties.showcountriesfilter == 'Show' && Countriesfilter()}
2607
+ {sectionproperties.filterType == 'All' && sectionproperties.showcategoriesfilter == 'Show' && <div class="row m-0 w-100">{CategoriesFilter()}</div>}
2608
+ {sectionproperties.filterType == 'Collections' && sectionproperties.showcategoriesfilter == 'Show' && (
2609
+ <div class="row m-0 w-100">{CollectionsFilter()}</div>
2610
+ )}
2611
+ {sectionproperties.showdynamicfilter == 'Show' && <div class="row m-0 w-100">{DynamicFilter()}</div>}
2612
+ {sectionproperties.showvariantsfilter == 'Show' && InstFilters()}
2613
+ </div>
2614
+ </div>
2615
+ </div>
2616
+ </Offcanvas.Body>
2617
+ </Offcanvas>
2618
+ </div>
2619
+ </div>
2620
+ )}
2621
+ </div>
2622
+ );
2623
+ };
2624
+ export default Filter;