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