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,1495 @@
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 { FiChevronUp } from '@react-icons/all-files/fi/FiChevronUp';
8
+ import { FiChevronDown } from '@react-icons/all-files/fi/FiChevronDown';
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 } from '../../../StylesJS/Customstyles';
14
+ import { CircularProgress, Messaging } from 'react-cssfx-loading';
15
+
16
+ const Select = React.lazy(() => import('react-select'));
17
+
18
+ const Filter = (props) => {
19
+ const lang = props.actions.lang;
20
+ const langdetect = props.actions.langdetect;
21
+ const productfiltercontext = props.actions.productfiltercontext;
22
+ const setproductfiltercontext = props.actions.setproductfiltercontext;
23
+ const ProductFilterObjContext = props.actions.ProductFilterObjContext;
24
+ const setProductFilterObjContext = props.actions.setProductFilterObjContext;
25
+ const authdetailsContext = props.actions.authdetailsContext;
26
+ const routingcountext = props.actions.routingcountext;
27
+ const StaticPagesLinksContext = props.actions.StaticPagesLinksContext;
28
+ const ikimagecredcontext = props.actions.ikimagecredcontext;
29
+
30
+ const fetchTabexCountriesQueryContext = props.actions.fetchTabexCountriesQueryContext;
31
+ const FetchQueriesEngineContext = props.actions.FetchQueriesEngineContext;
32
+ const setFetchQueriesEngineContext = props.actions.setFetchQueriesEngineContext;
33
+
34
+ const fetchTabexCitiesQueryContext = props.actions.fetchTabexCitiesQueryContext;
35
+ const fetchTabexStatesQueryContext = props.actions.fetchTabexStatesQueryContext;
36
+ const FetchTabexStatesPayloadobjContext = props.actions.FetchTabexStatesPayloadobjContext;
37
+ const setFetchTabexStatesPayloadobjContext = props.actions.setFetchTabexStatesPayloadobjContext;
38
+
39
+ const [sectionproperties, setsectionproperties] = useState('');
40
+ const [instfilters, setinstfilters] = useState([...authdetailsContext.instinfo.instfilters]);
41
+ const [collectionstobevisible, setcollectionstobevisible] = useState([]);
42
+ const [instcollections, setinstcollections] = useState([...authdetailsContext.instinfo.instcollections]);
43
+ const [instcategories, setinstcategories] = useState([...authdetailsContext?.instinfo?.instcategories]);
44
+ const [sortby, setSortby] = useState('Sort by');
45
+ const [raterangevalue, setraterangevalue] = useState({ min: 0, max: 5 });
46
+
47
+ const timeoutRef = React.useRef(null);
48
+ const [otherfilters, setotherfilters] = useState([
49
+ {
50
+ payloadvalue: 'sortprice',
51
+ name: lang.price,
52
+ filterarray: [
53
+ { name: lang.pricehightolow, value: 'hightolow', isfilterselected: false },
54
+ { name: lang.pricelowtohigh, value: 'lowtohigh', isfilterselected: false },
55
+ ],
56
+ },
57
+ {
58
+ payloadvalue: 'sortdates',
59
+
60
+ name: lang.dates,
61
+ filterarray: [
62
+ { name: lang.recent, value: 'recent', isfilterselected: false },
63
+ { name: lang.oldest, value: 'old', isfilterselected: false },
64
+ ],
65
+ },
66
+ ]);
67
+ useEffect(() => {
68
+ filterupdater();
69
+ }, []);
70
+ useEffect(() => {
71
+ setinstfilters([...authdetailsContext.instinfo.instfilters]);
72
+ setinstcollections([...authdetailsContext.instinfo.instcollections]);
73
+ setinstcategories([...authdetailsContext?.instinfo?.instcategories]);
74
+ }, [authdetailsContext]);
75
+ useEffect(() => {
76
+ if (props.sectionpropertiesprops != undefined && props.sectionpropertiesprops.length != 0) {
77
+ setsectionproperties(props.sectionpropertiesprops);
78
+ }
79
+ }, [props.sectionpropertiesprops]);
80
+ useEffect(() => {
81
+ filterupdater();
82
+ }, [ProductFilterObjContext]);
83
+ React.useEffect(() => {
84
+ if (timeoutRef.current !== null) {
85
+ clearTimeout(timeoutRef.current);
86
+ }
87
+
88
+ timeoutRef.current = setTimeout(() => {
89
+ if (raterangevalue.min != 0 || raterangevalue.max != 5) {
90
+ var tempfetchproductsfilerobjcontext = { ...ProductFilterObjContext };
91
+ tempfetchproductsfilerobjcontext.minrate = raterangevalue.min;
92
+ tempfetchproductsfilerobjcontext.maxrate = raterangevalue.max;
93
+ tempfetchproductsfilerobjcontext.page = 0;
94
+ setProductFilterObjContext({ ...tempfetchproductsfilerobjcontext });
95
+ // routingcountext(StaticPagesLinksContext.GeneralProductsComponent, true, encodeURIComponent(JSON.stringify(tempfetchproductsfilerobjcontext)));
96
+ }
97
+ }, 500);
98
+ }, [raterangevalue]);
99
+ useEffect(() => {
100
+ if (sectionproperties?.filterretreivetype == 'Depend on chosen parent group') {
101
+ if (ProductFilterObjContext?.collections != undefined && ProductFilterObjContext?.collections != null && Array.isArray(ProductFilterObjContext?.collections)) {
102
+ var collectiontobevisible = [];
103
+ var parentidsfound = [];
104
+ if (ProductFilterObjContext.ProductFetchingType == 'Parent Collection') {
105
+ parentidsfound = ProductFilterObjContext?.collections;
106
+ } else if (ProductFilterObjContext.ProductFetchingType == 'Category') {
107
+ instcategories?.forEach(function (catitem, catindex) {
108
+ ProductFilterObjContext?.collections?.forEach(function (colitem2, colindex2) {
109
+ if (catitem.categoryid == colitem2) {
110
+ catitem?.parentcolletions?.forEach(function (parentcolitem, parentcolindex) {
111
+ parentidsfound.push(parentcolitem.parentcollectionid);
112
+ });
113
+ }
114
+ });
115
+ });
116
+ } else {
117
+ instcategories?.forEach(function (catitem, catindex) {
118
+ catitem?.parentcolletions?.forEach(function (parentcolitem, parentcolindex) {
119
+ parentcolitem?.collections?.forEach(function (colitem, colindex) {
120
+ ProductFilterObjContext?.collections?.forEach(function (colitem2, colindex2) {
121
+ if (colitem.collectionid == colitem2) {
122
+ parentidsfound.push(parentcolitem.parentcollectionid);
123
+ }
124
+ });
125
+ });
126
+ });
127
+ });
128
+ }
129
+
130
+ parentidsfound = parentidsfound.filter((val, id, array) => array.indexOf(val) == id);
131
+
132
+ if (parentidsfound?.length != 0) {
133
+ instcategories?.forEach(function (catitem, catindex) {
134
+ catitem?.parentcolletions?.forEach(function (parentcolitem, parentcolindex) {
135
+ parentidsfound?.forEach(function (parentidfounditem, parentidfoundindex) {
136
+ if (parentidfounditem == parentcolitem?.parentcollectionid) {
137
+ parentcolitem?.collections?.forEach(function (colitem, colindex) {
138
+ var iscolexists = false;
139
+ collectiontobevisible?.forEach(function (colitemex, colindexex) {
140
+ if (colitemex.collectionid == colitem.collectionid) {
141
+ iscolexists = true;
142
+ }
143
+ });
144
+ if (iscolexists == false) {
145
+ collectiontobevisible.push(colitem);
146
+ }
147
+ });
148
+ }
149
+ });
150
+ });
151
+ });
152
+
153
+ if (collectiontobevisible?.length != 0) {
154
+ setcollectionstobevisible(collectiontobevisible);
155
+ } else {
156
+ setcollectionstobevisible(instcollections);
157
+ }
158
+ } else {
159
+ setcollectionstobevisible(instcollections);
160
+ }
161
+ } else {
162
+ setcollectionstobevisible(instcollections);
163
+ }
164
+ } else {
165
+ setcollectionstobevisible(instcollections);
166
+ }
167
+ }, [ProductFilterObjContext]);
168
+ useEffect(() => {
169
+ if (fetchTabexStatesQueryContext.isSuccess) {
170
+ if (ProductFilterObjContext.stateid != undefined && ProductFilterObjContext.stateid != null && ProductFilterObjContext.stateid != '' && ProductFilterObjContext.stateid != 'all') {
171
+ var tempFetchTabexStatesPayloadobjContext = { ...FetchTabexStatesPayloadobjContext };
172
+ tempFetchTabexStatesPayloadobjContext.functype = 'cities';
173
+ tempFetchTabexStatesPayloadobjContext.state_id = ProductFilterObjContext.stateid;
174
+ setFetchTabexStatesPayloadobjContext({ ...tempFetchTabexStatesPayloadobjContext });
175
+ }
176
+ }
177
+ }, [fetchTabexStatesQueryContext.isSuccess]);
178
+ const filterupdater = () => {
179
+ setTimeout(() => {
180
+ var tempFetchQueriesEngineContext = { ...FetchQueriesEngineContext };
181
+ tempFetchQueriesEngineContext.fetchtabexcountries = true;
182
+ setFetchQueriesEngineContext(tempFetchQueriesEngineContext);
183
+ }, 100);
184
+ if (ProductFilterObjContext.countryid != undefined && ProductFilterObjContext.countryid != null && ProductFilterObjContext.countryid != '' && ProductFilterObjContext.countryid != 'all') {
185
+ var tempFetchTabexStatesPayloadobjContext = { ...FetchTabexStatesPayloadobjContext };
186
+ tempFetchTabexStatesPayloadobjContext.functype = 'states';
187
+ tempFetchTabexStatesPayloadobjContext.country_id = ProductFilterObjContext.countryid;
188
+ setFetchTabexStatesPayloadobjContext({ ...tempFetchTabexStatesPayloadobjContext });
189
+ }
190
+
191
+ if (instfilters.length != 0) {
192
+ var tempinstfilters = [...instfilters];
193
+ tempinstfilters?.forEach(function (instfilteritem, instfilterindex) {
194
+ instfilteritem.productvaluesfilter.forEach(function (valefilteritem, valefilteritemindex) {
195
+ valefilteritem.isfilterselected = false;
196
+ });
197
+ });
198
+ ProductFilterObjContext?.FilterOptions?.forEach(function (filteritem, filterindex) {
199
+ tempinstfilters?.forEach(function (instfilteritem, instfilterindex) {
200
+ instfilteritem?.productvaluesfilter?.forEach(function (valefilteritem, valefilteritemindex) {
201
+ if (filteritem.valueid == valefilteritem.valueid) {
202
+ valefilteritem.isfilterselected = true;
203
+ }
204
+ });
205
+ });
206
+ });
207
+ setinstfilters([...tempinstfilters]);
208
+ }
209
+ if (instcategories.length != 0) {
210
+ var tempInstcategories = [...instcategories];
211
+ tempInstcategories.forEach(function (catitem, catindex) {
212
+ catitem.parentcolletions.forEach(function (parentcolitem, parentcolindex) {
213
+ parentcolitem.collections.forEach(function (colitem, colindex) {
214
+ colitem.isfilterselected = false;
215
+ });
216
+ });
217
+ });
218
+
219
+ ProductFilterObjContext?.collections?.forEach(function (filteritem, filterindex) {
220
+ tempInstcategories.forEach(function (catitem, catindex) {
221
+ catitem.parentcolletions.forEach(function (parentcolitem, parentcolindex) {
222
+ parentcolitem.collections.forEach(function (colitem, colindex) {
223
+ if (colitem.collectionid == filteritem) {
224
+ colitem.isfilterselected = true;
225
+ }
226
+ });
227
+ });
228
+ });
229
+ });
230
+
231
+ setinstcategories([...tempInstcategories]);
232
+ }
233
+ if (instcollections.length != 0) {
234
+ var tempInstcollections = [...instcollections];
235
+ tempInstcollections.forEach(function (instfilteritem, valefilteritemindex) {
236
+ instfilteritem.isfilterselected = false;
237
+ });
238
+ ProductFilterObjContext?.collections?.forEach(function (filteritem, filterindex) {
239
+ tempInstcollections?.forEach(function (instfilteritem, instfilterindex) {
240
+ if (instfilteritem.collectionid == filteritem) {
241
+ instfilteritem.isfilterselected = true;
242
+ }
243
+ });
244
+ });
245
+ setinstcollections([...tempInstcollections]);
246
+ }
247
+ };
248
+ const setfilterfunc = (valueid, valueindex, mainparentindex, type) => {
249
+ var tempfetchproductsfilerobjcontext = { ...ProductFilterObjContext };
250
+ if (type == 'clearfilters') {
251
+ tempfetchproductsfilerobjcontext.FilterOptions = [];
252
+ } else {
253
+ var FilterExists = false;
254
+ tempfetchproductsfilerobjcontext?.FilterOptions?.forEach(function (filteritem, filterindex) {
255
+ if (filteritem.valueid == valueid) {
256
+ FilterExists = true;
257
+ tempfetchproductsfilerobjcontext.FilterOptions.splice(filterindex, 1);
258
+ }
259
+ });
260
+ if (!FilterExists) {
261
+ tempfetchproductsfilerobjcontext.FilterOptions.push({ valueid: valueid });
262
+ }
263
+ }
264
+ if (tempfetchproductsfilerobjcontext.FilterOptions.length == 0) {
265
+ tempfetchproductsfilerobjcontext.isfilter = 0;
266
+ } else {
267
+ tempfetchproductsfilerobjcontext.isfilter = 1;
268
+ }
269
+ tempfetchproductsfilerobjcontext.page = 0;
270
+ setProductFilterObjContext({ ...tempfetchproductsfilerobjcontext });
271
+ filterrouting(tempfetchproductsfilerobjcontext);
272
+ // routingcountext(StaticPagesLinksContext.GeneralProductsComponent, true, encodeURIComponent(JSON.stringify(tempfetchproductsfilerobjcontext)));
273
+ };
274
+ const setCollectionFilterFunc = (collectionid) => {
275
+ var tempfetchproductsfilerobjcontext = { ...ProductFilterObjContext };
276
+ var CollectionExists = false;
277
+ tempfetchproductsfilerobjcontext?.collections?.forEach(function (filteritem, filterindex) {
278
+ if (filteritem == collectionid) {
279
+ CollectionExists = true;
280
+ tempfetchproductsfilerobjcontext.collections.splice(filterindex, 1);
281
+ }
282
+ });
283
+ if (!CollectionExists) {
284
+ if (tempfetchproductsfilerobjcontext.collections != undefined && Array.isArray(tempfetchproductsfilerobjcontext.collections)) {
285
+ tempfetchproductsfilerobjcontext.collections.push(collectionid);
286
+ } else {
287
+ tempfetchproductsfilerobjcontext.collections = [collectionid];
288
+ }
289
+ }
290
+
291
+ tempfetchproductsfilerobjcontext.page = 0;
292
+ tempfetchproductsfilerobjcontext.ProductFetchingType = 'Random';
293
+ setProductFilterObjContext({ ...tempfetchproductsfilerobjcontext });
294
+ filterrouting(tempfetchproductsfilerobjcontext);
295
+ // routingcountext(StaticPagesLinksContext.GeneralProductsComponent, true, encodeURIComponent(JSON.stringify(tempfetchproductsfilerobjcontext)));
296
+ };
297
+ const CategoriesFilter = () => {
298
+ return (
299
+ <div class="col-lg-12 p-0">
300
+ {instcategories?.map((categoryItem, categoryIndex) => {
301
+ if (categoryItem.isinftiler == 1) {
302
+ return (
303
+ <Accordion allowMultipleExpanded={true} allowZeroExpanded={true}>
304
+ <AccordionItem uuid={categoryIndex}>
305
+ <AccordionItemHeading>
306
+ <AccordionItemButton>
307
+ <div className={filter_cssstyles.titlecontainer + ' row m-0 p-0 mb-1 pl-md-3 pr-md-3 '}>
308
+ <div className="col-lg-10 col-md-10 col-sm-10 p-0 d-flex align-items-center justify-content-start">
309
+ <p className={filter_cssstyles.categoryName + ' collapsetitle text-capitalize m-0 p-0 '}>
310
+ {langdetect == 'en' ? categoryItem.title_en : categoryItem.title_ar}
311
+ </p>
312
+ </div>
313
+ <div className="col-lg-2 col-md-2 col-sm-2 p-0">
314
+ <AccordionItemState>
315
+ {(state) => {
316
+ if (state.expanded == true) {
317
+ return (
318
+ <i className={filter_cssstyles.collapsetitle + ' collapsetitle h-100 d-flex align-items-center justify-content-end '}>
319
+ <FiChevronDown />
320
+ </i>
321
+ );
322
+ } else {
323
+ return (
324
+ <i className={filter_cssstyles.collapsetitle + ' collapsetitle h-100 d-flex align-items-center justify-content-end '}>
325
+ <FiChevronUp />
326
+ </i>
327
+ );
328
+ }
329
+ }}
330
+ </AccordionItemState>
331
+ </div>
332
+ <div className="col-lg-12 p-0">
333
+ <hr className="mt-3 mb-2" />
334
+ </div>
335
+ </div>
336
+ </AccordionItemButton>
337
+ </AccordionItemHeading>
338
+ <AccordionItemPanel className="p-0">
339
+ <div className="row mt-0 mb-2 ml-0 mr-0 d-lg-flex">
340
+ <div class="col-lg-12 mb-3 allcentered">
341
+ <p
342
+ class={filter_cssstyles.explorebtn + ' m-0 p-0 cursor-pointer text-capitalize '}
343
+ style={{ textDecoration: 'underline' }}
344
+ onClick={() => {
345
+ routingcountext(StaticPagesLinksContext.GeneralProductsComponent, true, 'categories/' + categoryItem.categoryid);
346
+ }}
347
+ >
348
+ {langdetect == 'en' ? sectionproperties.explorebtncontenten : sectionproperties.explorebtncontentar}{' '}
349
+ {langdetect == 'en' ? categoryItem.title_en : categoryItem.title_ar}
350
+ </p>
351
+ </div>
352
+ {authdetailsContext?.instinfo?.instcategories[categoryIndex]?.parentcolletions.map((parentcollectionitem, parentcollectionindex) => {
353
+ if (parentcollectionitem.isinftiler == 1) {
354
+ return (
355
+ <div class="col-lg-12">
356
+ <Accordion allowMultipleExpanded={true} allowZeroExpanded={true}>
357
+ <AccordionItem uuid={parentcollectionindex}>
358
+ <AccordionItemHeading>
359
+ <AccordionItemButton>
360
+ <div className={filter_cssstyles.titlecontainer + ' row m-0 p-0 mb-2 pl-md-3 pr-md-3 '}>
361
+ <div className="col-lg-10 col-md-10 col-sm-10 p-0">
362
+ <p
363
+ className={
364
+ langdetect == 'en'
365
+ ? filter_cssstyles.pCollectionName + ' collapsetitle text-capitalize m-0 p-0 '
366
+ : filter_cssstyles.pCollectionName + ' collapsetitle text-capitalize m-0 p-0 text-right'
367
+ }
368
+ >
369
+ {langdetect == 'en' ? parentcollectionitem.title_en : parentcollectionitem.title_ar}
370
+ </p>
371
+ </div>
372
+ <div className="col-lg-2 col-md-2 col-sm-2 p-0">
373
+ <AccordionItemState>
374
+ {(state) => {
375
+ if (state.expanded == true) {
376
+ return (
377
+ <i
378
+ className={
379
+ filter_cssstyles.collapsetitle +
380
+ ' collapsetitle h-100 d-flex align-items-center justify-content-end '
381
+ }
382
+ >
383
+ <FiChevronDown />
384
+ </i>
385
+ );
386
+ } else {
387
+ return (
388
+ <i
389
+ className={
390
+ filter_cssstyles.collapsetitle +
391
+ ' collapsetitle h-100 d-flex align-items-center justify-content-end '
392
+ }
393
+ >
394
+ <FiChevronUp />
395
+ </i>
396
+ );
397
+ }
398
+ }}
399
+ </AccordionItemState>
400
+ </div>
401
+ </div>
402
+ </AccordionItemButton>
403
+ </AccordionItemHeading>
404
+ <AccordionItemPanel className="p-0">
405
+ <div className="row mt-0 mb-2 ml-0 mr-0 d-lg-flex ">
406
+ <div class="col-lg-12 mb-3 allcentered">
407
+ <p
408
+ class={filter_cssstyles.explorebtn + ' m-0 p-0 cursor-pointer text-capitalize '}
409
+ style={{ textDecoration: 'underline' }}
410
+ onClick={() => {
411
+ routingcountext(
412
+ StaticPagesLinksContext.GeneralProductsComponent,
413
+ true,
414
+ 'parentcollections/' + parentcollectionitem.parentcollectionid,
415
+ );
416
+ }}
417
+ >
418
+ {langdetect == 'en' ? sectionproperties.explorebtncontenten : sectionproperties.explorebtncontentar}{' '}
419
+ {langdetect == 'en' ? parentcollectionitem.title_en : parentcollectionitem.title_ar}
420
+ </p>
421
+ </div>
422
+ <div className={'col-lg-12 pl-md-3 pr-md-3'}>
423
+ <div
424
+ className={
425
+ langdetect == 'en'
426
+ ? `${filterstyles.timeline} ${filterstyles.timelinetrans}` + ' p-sm-0 '
427
+ : `${filterstyles.timeline} ${filterstyles.timelinetrans}` + ' p-sm-0 '
428
+ }
429
+ >
430
+ {parentcollectionitem?.collections?.map((collectionitem, collectionindex) => {
431
+ if (collectionitem.isinftiler == 1) {
432
+ return (
433
+ <div
434
+ className={
435
+ `${filterstyles.border_left_line} ${filterstyles.timelineinnercont} ${
436
+ filter_cssstyles.timelineinnercont
437
+ }
438
+ ${collectionitem.isfilterselected ? `${filter_cssstyles.timelineinnercont_active} ${filterstyles.timelineinnercont_active}` : ''}
439
+ ` + ' d-flex align-items-start pb-3 '
440
+ }
441
+ onClick={() => {
442
+ setCollectionFilterFunc(collectionitem.collectionid);
443
+ }}
444
+ >
445
+ <div
446
+ className={
447
+ ` ${collectionitem.isfilterselected ? filter_cssstyles.btn_item_active : ''} ${
448
+ filterstyles.btn_item
449
+ } ${filter_cssstyles.btn_item}` + ' mb-2 d-flex align-items-center '
450
+ }
451
+ >
452
+ <i className="h-100 d-flex align-items-center"></i>
453
+ </div>
454
+ <div className={langdetect == 'en' ? 'ml-3' : 'mr-3 text-right'}>
455
+ <p
456
+ className={`${filterstyles.timeline_text} ${filter_cssstyles.timeline_text}` + ' m-0 p-0 '}
457
+ style={{
458
+ color: collectionitem.isfilterselected ? sectionproperties.activecat_color : '',
459
+ }}
460
+ >
461
+ {langdetect == 'en' ? collectionitem.title_en : collectionitem.title_ar}
462
+ </p>
463
+ </div>
464
+ </div>
465
+ );
466
+ }
467
+ })}
468
+ </div>
469
+ </div>
470
+ </div>
471
+ </AccordionItemPanel>
472
+ </AccordionItem>
473
+ </Accordion>
474
+ </div>
475
+ );
476
+ }
477
+ })}
478
+ </div>
479
+ </AccordionItemPanel>
480
+ </AccordionItem>
481
+ </Accordion>
482
+ );
483
+ }
484
+ })}
485
+ </div>
486
+ );
487
+ };
488
+ const CollectionsFilter = () => {
489
+ return (
490
+ <div class="col-lg-12 p-0">
491
+ <Accordion allowMultipleExpanded={true} allowZeroExpanded={true} preExpanded={[0, 1, 2, 3]}>
492
+ <AccordionItem uuid={0}>
493
+ <AccordionItemHeading>
494
+ <AccordionItemButton>
495
+ <div className={filter_cssstyles.titlecontainer + ' row m-0 p-0 mb-2 pl-md-3 pr-md-3 '}>
496
+ <div className="col-lg-10 col-md-10 col-sm-10 p-0">
497
+ <p className={langdetect == 'en' ? filter_cssstyles.collapsetitle + ' m-0 p-0 ' : filter_cssstyles.collapsetitle + ' m-0 p-0 text-right'}>
498
+ {langdetect == 'en' ? sectionproperties.filtercollectiontitle_en : sectionproperties.filtercollectiontitle_ar}
499
+ </p>
500
+ </div>
501
+ <div className="col-lg-2 col-md-2 col-sm-2 p-0">
502
+ <AccordionItemState>
503
+ {(state) => {
504
+ if (state.expanded == true) {
505
+ return (
506
+ <i className={filter_cssstyles.collapsetitle + ' collapsetitle h-100 d-flex align-items-center justify-content-end '}>
507
+ <FiChevronDown />
508
+ </i>
509
+ );
510
+ } else {
511
+ return (
512
+ <i className={filter_cssstyles.collapsetitle + ' collapsetitle h-100 d-flex align-items-center justify-content-end '}>
513
+ <FiChevronUp />
514
+ </i>
515
+ );
516
+ }
517
+ }}
518
+ </AccordionItemState>
519
+ </div>
520
+ </div>
521
+ </AccordionItemButton>
522
+ </AccordionItemHeading>
523
+ <AccordionItemPanel className="p-0">
524
+ <div className="row mt-0 mb-2 ml-0 mr-0 d-lg-flex pl-md-3 pr-md-3">
525
+ <div className={'col-lg-12'}>
526
+ <div
527
+ className={
528
+ langdetect == 'en'
529
+ ? `${filterstyles.timeline} ${filterstyles.timelinetrans}` + ' p-sm-0 '
530
+ : `${filterstyles.timeline} ${filterstyles.timelinetrans}` + ' p-sm-0 '
531
+ }
532
+ >
533
+ {collectionstobevisible.map((item, index) => {
534
+ return (
535
+ <div
536
+ className={
537
+ `${filterstyles.border_left_line} ${filterstyles.timelineinnercont} ${filter_cssstyles.timelineinnercont}
538
+ ${item.isfilterselected ? `${filter_cssstyles.timelineinnercont_active} ${filterstyles.timelineinnercont_active}` : ''}
539
+ ` + ' d-flex align-items-start pb-3 '
540
+ }
541
+ onClick={() => {
542
+ setCollectionFilterFunc(item.collectionid);
543
+ }}
544
+ >
545
+ <div
546
+ className={
547
+ ` ${item.isfilterselected ? filter_cssstyles.btn_item_active : ''} ${filterstyles.btn_item} ${filter_cssstyles.btn_item}` +
548
+ ' mb-2 d-flex align-items-center '
549
+ }
550
+ >
551
+ <i className="h-100 d-flex align-items-center"></i>
552
+ </div>
553
+ <div className={langdetect == 'en' ? 'ml-3' : 'mr-3 text-right'}>
554
+ <p
555
+ className={`${filterstyles.timeline_text} ${filter_cssstyles.timeline_text}` + ' m-0 p-0 '}
556
+ style={{
557
+ color: item.isfilterselected ? sectionproperties.activecat_color : '',
558
+ }}
559
+ >
560
+ {langdetect == 'en' ? item.title_en : item.title_ar}
561
+ </p>
562
+ </div>
563
+ </div>
564
+ );
565
+ })}
566
+ </div>
567
+ {sectionproperties.showshowallbtn == 'Show' && (
568
+ <div class="col-lg-12 allcentered">
569
+ <div class={filter_cssstyles.showallbtn} style={{}}>
570
+ <p
571
+ class="m-0 p-0"
572
+ onClick={() => {
573
+ setcollectionstobevisible(instcollections);
574
+ }}
575
+ // style={{ cursor: 'pointer' }}
576
+ >
577
+ {langdetect == 'en' ? sectionproperties.showalltexten : sectionproperties.showalltextar}
578
+ </p>
579
+ </div>
580
+ </div>
581
+ )}
582
+ </div>
583
+ </div>
584
+ </AccordionItemPanel>
585
+ </AccordionItem>
586
+ <hr className="mt-3 mb-3" />
587
+ </Accordion>
588
+ </div>
589
+ );
590
+ };
591
+ const InstFilters = () => {
592
+ return (
593
+ <Accordion allowMultipleExpanded={true} allowZeroExpanded={true}>
594
+ {instfilters.map((item, index) => {
595
+ return (
596
+ <>
597
+ <AccordionItem uuid={index}>
598
+ <AccordionItemHeading>
599
+ <AccordionItemButton>
600
+ <div className={filter_cssstyles.titlecontainer + ' row m-0 p-0 mb-2 pl-md-3 pr-md-3 '}>
601
+ <div className="col-lg-10 col-md-10 col-sm-10 p-0">
602
+ <p
603
+ className={
604
+ langdetect == 'en'
605
+ ? filter_cssstyles.collapsetitle + ' collapsetitle m-0 p-0 '
606
+ : filter_cssstyles.collapsetitle + ' collapsetitle m-0 p-0 text-right'
607
+ }
608
+ >
609
+ {langdetect == 'en' ? item.optionname : item.optionname_ar}
610
+ </p>
611
+ </div>
612
+ <div className="col-lg-2 col-md-2 col-sm-2 p-0">
613
+ <AccordionItemState>
614
+ {(state) => {
615
+ if (state.expanded == true) {
616
+ return (
617
+ <i className={filter_cssstyles.collapsetitle + ' collapsetitle h-100 d-flex align-items-center justify-content-end '}>
618
+ <FiChevronDown />
619
+ </i>
620
+ );
621
+ } else {
622
+ return (
623
+ <i className={filter_cssstyles.collapsetitle + ' collapsetitle h-100 d-flex align-items-center justify-content-end '}>
624
+ <FiChevronUp />
625
+ </i>
626
+ );
627
+ }
628
+ }}
629
+ </AccordionItemState>
630
+ </div>
631
+ </div>
632
+ </AccordionItemButton>
633
+ </AccordionItemHeading>
634
+ <AccordionItemPanel className="p-0">
635
+ <div className="row mt-0 mb-2 ml-0 mr-0 d-lg-flex pl-md-3 pr-md-3">
636
+ <div className={'col-lg-12'}>
637
+ <div className={langdetect == 'en' ? `${filterstyles.timeline}` + ' p-sm-0 ' : `${filterstyles.timeline} ${filterstyles.timelinetrans}` + ' p-sm-0 '}>
638
+ {item.productvaluesfilter.map((valueitem, valueindex) => {
639
+ return (
640
+ <div
641
+ className={
642
+ `${filterstyles.border_left_line} ${filterstyles.timelineinnercont} ${filter_cssstyles.timelineinnercont}
643
+ ${valueitem.isfilterselected ? `${filter_cssstyles.timelineinnercont_active} ${filterstyles.timelineinnercont_active}` : ''}
644
+
645
+ ` + ' d-flex align-items-start pb-3 '
646
+ }
647
+ onClick={() => {
648
+ setfilterfunc(valueitem.valueid, valueindex, index, 'assign');
649
+ }}
650
+ >
651
+ <div>
652
+ <div
653
+ className={
654
+ ` ${valueitem.isfilterselected ? filter_cssstyles.btn_item_active : ''} ${filterstyles.btn_item} ${filter_cssstyles.btn_item}` +
655
+ ' mb-2 d-flex align-items-center '
656
+ }
657
+ >
658
+ <i className="h-100 d-flex align-items-center"></i>
659
+ </div>
660
+ </div>
661
+ <div className={langdetect == 'en' ? 'ml-3' : 'mr-3 text-right'}>
662
+ <p
663
+ className={`${filterstyles.timeline_text} ${filter_cssstyles.timeline_text}` + ' m-0 p-0 '}
664
+ style={{
665
+ color: valueitem.isfilterselected ? sectionproperties.activecat_color : '',
666
+ }}
667
+ >
668
+ {langdetect == 'en' ? valueitem.valuename : valueitem.valuename_ar}
669
+ </p>
670
+ </div>
671
+ </div>
672
+ );
673
+ })}
674
+ </div>
675
+ </div>
676
+ </div>
677
+ </AccordionItemPanel>
678
+ </AccordionItem>
679
+ <hr className="mt-3 mb-3" />
680
+ </>
681
+ );
682
+ })}
683
+ </Accordion>
684
+ );
685
+ };
686
+ const filter_cssstyles = {
687
+ collapsetitle: css({
688
+ fontSize: sectionproperties.filtertitle_fontsize + 'px',
689
+ fontWeight: sectionproperties.filtertitle_fontweight,
690
+ textTransform: sectionproperties.filtertitle_texttransform,
691
+ color: sectionproperties.filtertitle_color,
692
+ ':hover': {
693
+ color: sectionproperties.filtertitle_coloronhover,
694
+ },
695
+ }),
696
+ titlecontainer: css({
697
+ color: sectionproperties.filtertitle_color,
698
+ ':hover .collapsetitle': {
699
+ color: sectionproperties.filtertitle_coloronhover,
700
+ },
701
+ }),
702
+ timeline_text: css({
703
+ fontSize: sectionproperties.timeline_text_fontsize + 'px',
704
+ fontWeight: sectionproperties.timeline_text_fontweight,
705
+ textTransform: sectionproperties.timeline_text_texttransform,
706
+ color: sectionproperties.timeline_text_color,
707
+ transition: '.3s',
708
+ ':hover': {
709
+ color: sectionproperties.timeline_text_coloronhover,
710
+ },
711
+ }),
712
+ btnstyles: css({
713
+ color: sectionproperties.generalbtn_textColor,
714
+ fontSize: sectionproperties.generalbtn_fontsize + 'px',
715
+ textTransform: sectionproperties.generalbtn_texttransform,
716
+ width: sectionproperties.generalbtn_width + 'px',
717
+ height: sectionproperties.generalbtn_height + 'px',
718
+ background: sectionproperties.generalbtn_bgColor,
719
+ borderTopLeftRadius: sectionproperties.generalbtn_bordertopleftradius + 'px',
720
+ borderTopRightRadius: sectionproperties.generalbtn_bordertoprightradius + 'px',
721
+ borderBottomRightRadius: sectionproperties.generalbtn_borderbottomrightradius + 'px',
722
+ borderBottomLeftRadius: sectionproperties.generalbtn_borderbottomleftradius + 'px',
723
+ fontWeight: sectionproperties.generalbtn_fontweight,
724
+ transition: '.3s',
725
+ ':hover': {
726
+ background: sectionproperties.generalbtn_bgColoronhover,
727
+ color: sectionproperties.generalbtn_textColoronhover,
728
+ },
729
+ }),
730
+ close_menu_icon_cont: css({
731
+ background: sectionproperties.closeSliderBgColor,
732
+ width: sectionproperties.closeSliderWidth + 'px',
733
+ height: sectionproperties.closeSliderHeight + 'px',
734
+ borderRadius: sectionproperties.closeSlider_borderBottomLeftRadius + 'px',
735
+ ':hover': {
736
+ background: sectionproperties.closeSliderBgColorHover,
737
+ },
738
+ }),
739
+ horizontalfilter_card: css({
740
+ marginBottom: sectionproperties.horizontalfilter_mb + 'px',
741
+ marginTop: sectionproperties.horizontalfilter_mt + 'px',
742
+ background: sectionproperties.horizontalfilter_cardbg,
743
+ border: sectionproperties.horizontalfilter_cardborderwidth + 'px solid ' + sectionproperties.horizontalfilter_cardbordercolor,
744
+ boxShadow: sectionproperties.horizontalfilter_cardboxShadow == 'Show' ? sectionproperties.horizontalfilter_cardboxShadowcolor : 'horizontalfilter_cardboxShadow',
745
+ }),
746
+ btn_item: css({
747
+ width: '20px',
748
+ height: '20px',
749
+ background: sectionproperties.filteritembtn_bgcolor,
750
+ ':hover': {
751
+ background: sectionproperties.filteritembtn_bghover,
752
+ },
753
+ }),
754
+ btn_item_active: css({
755
+ background: sectionproperties.btn_item_activebgcolor,
756
+ }),
757
+ timelineinnercont_active: css({
758
+ fontWeight: sectionproperties.activecat_fontweight,
759
+ color: sectionproperties.activecat_color,
760
+ }),
761
+ categoryName: css({
762
+ color: sectionproperties.filtertitle_color,
763
+ fontWeight: sectionproperties.filterCatFontWeight,
764
+ fontSize: sectionproperties.filterCatFontSize + 'px',
765
+ }),
766
+ pCollectionName: css({
767
+ color: sectionproperties.filtertitle_color,
768
+ fontWeight: sectionproperties.filterPCollFontWeight,
769
+ fontSize: sectionproperties.filterPCollFontSize + 'px',
770
+ }),
771
+ explorebtn: css({
772
+ fontSize: sectionproperties.explorebtnfontsize + 'px',
773
+ fontWeight: 600,
774
+ color: sectionproperties.explorebtncolor,
775
+ transition: '.3s',
776
+ ':hover': {
777
+ color: sectionproperties.explorebtncoloronhover,
778
+ },
779
+ }),
780
+ showallbtn: css({
781
+ color: sectionproperties.showallcolor,
782
+ ':hover': {
783
+ transition: '.3s',
784
+ cursor: 'pointer',
785
+ color: sectionproperties.showallcolorhover,
786
+ },
787
+ }),
788
+ };
789
+ const filterrouting = (tempfetchproductsfilerobjcontext) => {
790
+ const path = window.location.pathname.split('/');
791
+ var currentpagepath = path[1];
792
+ var pagenamepathinstaticpagelinkcont = '';
793
+ for (const key in StaticPagesLinksContext) {
794
+ if (StaticPagesLinksContext[key] == currentpagepath) {
795
+ pagenamepathinstaticpagelinkcont = key;
796
+ }
797
+ }
798
+ if (pagenamepathinstaticpagelinkcont != undefined && pagenamepathinstaticpagelinkcont != '') {
799
+ routingcountext(StaticPagesLinksContext[pagenamepathinstaticpagelinkcont], true, encodeURIComponent(JSON.stringify(tempfetchproductsfilerobjcontext)));
800
+ }
801
+ };
802
+ const Countriesfilter = () => {
803
+ return (
804
+ <div class="row m-0 w-100 pl-md-3 pr-md-3">
805
+ <div class="col-lg-12 p-0 mt-3">
806
+ <div class="row m-0 w-100">
807
+ <div class="col-lg-12 p-0 mb-3">
808
+ {fetchTabexCountriesQueryContext?.isFetching && (
809
+ <div className="w-100 allcentered mt-1">
810
+ <CircularProgress color="#000" width="20px" height="20px" duration="1s" />
811
+ </div>
812
+ )}
813
+
814
+ {!fetchTabexCountriesQueryContext?.isFetching && fetchTabexCountriesQueryContext?.isSuccess && (
815
+ <Select
816
+ options={fetchTabexCountriesQueryContext?.data?.data?.countries}
817
+ getOptionLabel={(option) => {
818
+ var crname = '';
819
+ if (langdetect == 'en') {
820
+ crname = option.name;
821
+ } else if (langdetect == 'ar') {
822
+ if (option.name_ar != null) {
823
+ crname = option.name_ar;
824
+ } else {
825
+ crname = option.name;
826
+ }
827
+ }
828
+ return crname;
829
+ }}
830
+ getOptionValue={(option) => option.id}
831
+ value={fetchTabexCountriesQueryContext.data.data.countries.filter((option) => option.id == ProductFilterObjContext.countryid)}
832
+ onChange={(option) => {
833
+ var tempFetchTabexStatesPayloadobjContext = { ...FetchTabexStatesPayloadobjContext };
834
+ tempFetchTabexStatesPayloadobjContext.functype = 'states';
835
+ tempFetchTabexStatesPayloadobjContext.country_id = option.id;
836
+ setFetchTabexStatesPayloadobjContext({ ...tempFetchTabexStatesPayloadobjContext });
837
+
838
+ var tempfetchproductsfilerobjcontext = { ...ProductFilterObjContext };
839
+ tempfetchproductsfilerobjcontext.countryid = option.id;
840
+ tempfetchproductsfilerobjcontext.page = 0;
841
+ setProductFilterObjContext({ ...tempfetchproductsfilerobjcontext });
842
+ filterrouting(tempfetchproductsfilerobjcontext);
843
+ }}
844
+ styles={langdetect == 'en' ? defaultstyles : defaultstylestranslated}
845
+ placeholder={lang.choosecountry}
846
+ isSearchable={true}
847
+ />
848
+ )}
849
+ </div>
850
+ <div class="col-lg-12 mb-3 p-0">
851
+ {fetchTabexStatesQueryContext?.isFetching && (
852
+ <div className="w-100 allcentered mt-1">
853
+ <CircularProgress color="#000" width="20px" height="20px" duration="1s" />
854
+ </div>
855
+ )}
856
+
857
+ {!fetchTabexStatesQueryContext?.isFetching && fetchTabexStatesQueryContext?.isSuccess && (
858
+ <Select
859
+ options={fetchTabexStatesQueryContext?.data?.data?.states}
860
+ getOptionLabel={(option) => {
861
+ var crname = '';
862
+ if (langdetect == 'en') {
863
+ crname = option.name;
864
+ } else if (langdetect == 'ar') {
865
+ if (option.name_ar != null) {
866
+ crname = option.name_ar;
867
+ } else {
868
+ crname = option.name;
869
+ }
870
+ }
871
+ return crname;
872
+ }}
873
+ getOptionValue={(option) => option.id}
874
+ value={fetchTabexStatesQueryContext?.data?.data?.states.filter((option) => option.id == ProductFilterObjContext.stateid)}
875
+ onChange={(option) => {
876
+ var tempFetchTabexStatesPayloadobjContext = { ...FetchTabexStatesPayloadobjContext };
877
+ tempFetchTabexStatesPayloadobjContext.functype = 'cities';
878
+ tempFetchTabexStatesPayloadobjContext.state_id = option.id;
879
+ setFetchTabexStatesPayloadobjContext({ ...tempFetchTabexStatesPayloadobjContext });
880
+
881
+ var tempfetchproductsfilerobjcontext = { ...ProductFilterObjContext };
882
+ tempfetchproductsfilerobjcontext.stateid = option.id;
883
+ tempfetchproductsfilerobjcontext.page = 0;
884
+ setProductFilterObjContext({ ...tempfetchproductsfilerobjcontext });
885
+ filterrouting(tempfetchproductsfilerobjcontext);
886
+ }}
887
+ styles={langdetect == 'en' ? defaultstyles : defaultstylestranslated}
888
+ placeholder={lang.choosestategov}
889
+ isSearchable={true}
890
+ />
891
+ )}
892
+ </div>
893
+ <div class="col-lg-12 mb-3 p-0">
894
+ {fetchTabexCitiesQueryContext?.isFetching && (
895
+ <div className="w-100 allcentered mt-1">
896
+ <CircularProgress color="#000" width="20px" height="20px" duration="1s" />
897
+ </div>
898
+ )}
899
+
900
+ {!fetchTabexCitiesQueryContext?.isFetching && fetchTabexCitiesQueryContext?.isSuccess && (
901
+ <Select
902
+ options={fetchTabexCitiesQueryContext?.data?.data?.cities}
903
+ getOptionLabel={(option) => {
904
+ var crname = '';
905
+ if (langdetect == 'en') {
906
+ crname = option.name;
907
+ } else if (langdetect == 'ar') {
908
+ if (option.name_ar != null) {
909
+ crname = option.name_ar;
910
+ } else {
911
+ crname = option.name;
912
+ }
913
+ }
914
+ return crname;
915
+ }}
916
+ getOptionValue={(option) => option.id}
917
+ value={fetchTabexCitiesQueryContext?.data?.data?.cities.filter((option) => option.id == ProductFilterObjContext.cityid)}
918
+ onChange={(option) => {
919
+ var tempfetchproductsfilerobjcontext = { ...ProductFilterObjContext };
920
+ tempfetchproductsfilerobjcontext.cityid = option.id;
921
+ tempfetchproductsfilerobjcontext.page = 0;
922
+ setProductFilterObjContext({ ...tempfetchproductsfilerobjcontext });
923
+ filterrouting(tempfetchproductsfilerobjcontext);
924
+ }}
925
+ styles={langdetect == 'en' ? defaultstyles : defaultstylestranslated}
926
+ placeholder={lang.choosecity}
927
+ isSearchable={true}
928
+ />
929
+ )}
930
+ </div>
931
+ </div>
932
+ </div>
933
+ </div>
934
+ );
935
+ };
936
+ return (
937
+ <div
938
+ 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'}
939
+ style={{ marginTop: sectionproperties.filtersection_mt + 'px', minHeight: sectionproperties.filterminheight == 0 ? 'auto' : sectionproperties.filterminheight + 'vh' }}
940
+ >
941
+ {sectionproperties.filterdirection == 'Horizontal' && (
942
+ <div class="row m-0 w-100">
943
+ <div className="col-lg-12 col-md-12 col-sm-12 p-0 d-flex justify-content-start mb-3">
944
+ <p className={langdetect == 'en' ? filter_cssstyles.collapsetitle + ' m-0 p-0 ' : filter_cssstyles.collapsetitle + ' m-0 p-0 text-right'}>
945
+ {langdetect == 'en' ? sectionproperties.filtercollectiontitle_en : sectionproperties.filtercollectiontitle_ar}
946
+ </p>
947
+ </div>
948
+ <div class="col-lg-12 p-0 mb-4">
949
+ <ScrollMenu transitionBehavior={'auto'} wrapperClassName={''} itemClassName={'filtercard'} scrollContainerClassName={'scrollmenuclasssubscrollbar'}>
950
+ {instcollections.map((item, index) => {
951
+ return (
952
+ <div
953
+ className={filter_cssstyles.timeline_text + ' col-xl-12 p-0 col-lg-12 col-md-12 col-sm-12 w-100 cursor-pointer '}
954
+ onClick={() => {
955
+ setCollectionFilterFunc(item.collectionid);
956
+ }}
957
+ style={{
958
+ color: item.isfilterselected == true ? 'red' : '',
959
+ }}
960
+ >
961
+ <div class="col-lg-12 allcentered mb-2">
962
+ <div
963
+ style={{
964
+ width: 200,
965
+ height: 200,
966
+ }}
967
+ >
968
+ <Imagekitimagecomp
969
+ urlEndpoint={ikimagecredcontext?.ikimageendpoint}
970
+ publicKey={ikimagecredcontext?.ikimagepublickey}
971
+ path={'/tr:w-' + sectionproperties.imagetr_w + ',h-' + sectionproperties.imagetr_h + '/' + item.collectionlogo}
972
+ style={{
973
+ width: '100%',
974
+ height: '100%',
975
+ objectFit: 'contain',
976
+ }}
977
+ loading="lazy"
978
+ />
979
+ </div>
980
+ </div>
981
+ <div class="col-lg-12 allcentered">
982
+ <p class={' m-0 p-0 '}>{langdetect == 'en' ? item.title_en : item.title_ar}</p>
983
+ </div>
984
+ </div>
985
+ );
986
+ })}
987
+ </ScrollMenu>
988
+ </div>
989
+ </div>
990
+ )}
991
+ {sectionproperties.filterdirection == 'Vertical' && (
992
+ <div
993
+ className={`${filterstyles.filterslider_container}` + ' pb-md-5 '}
994
+ id="filterslider"
995
+ style={{
996
+ background: sectionproperties.filter_backgroundcolor,
997
+ borderRadius: sectionproperties.filter_borderBottomLeftRadius + 'px',
998
+ }}
999
+ >
1000
+ <div className={filter_cssstyles.filteraccordion + ' row m-0 w-100 pt-2 pb-3 filter-accordion '}>
1001
+ <div className="col-lg-9 col-md-9 col-sm-9 d-none align-items-center d-md-flex">
1002
+ <p
1003
+ className="m-0 p-0 font-16 font-weight-600"
1004
+ style={{
1005
+ color: sectionproperties.filter_titlecolor,
1006
+ fontSize: sectionproperties.filter_titlefontsize + 'px',
1007
+ fontWeight: sectionproperties.filter_titlefontweight,
1008
+ textTransform: sectionproperties.filter_titletextransform,
1009
+ }}
1010
+ >
1011
+ {langdetect == 'en' ? 'Filter' : 'فلترة'}
1012
+ </p>
1013
+ </div>
1014
+ <div className="col-lg-3 col-md-3 col-sm-3 d-none d-md-flex align-items-center justify-content-end p-0">
1015
+ <div
1016
+ className={`${filterstyles.close_menu_icon_cont} ${filter_cssstyles.close_menu_icon_cont}` + ' d-none d-md-flex align-items-center justify-content-center '}
1017
+ onClick={() => {
1018
+ var element = document.getElementById('filterslider');
1019
+ element.classList.remove(filterstyles.filterslider_container_opened);
1020
+ }}
1021
+ >
1022
+ <i className="h-100 d-flex align-items-center justify-content-center">
1023
+ <IoMdClose
1024
+ size={sectionproperties.closeSlider_fontSize}
1025
+ style={{
1026
+ color: sectionproperties.closeSlider_color,
1027
+ }}
1028
+ />
1029
+ </i>
1030
+ </div>
1031
+ </div>
1032
+ {sectionproperties.otherfilters == 'Show' && (
1033
+ <div class="row m-0 w-100">
1034
+ <div class="col-lg-12 d-flex justify-content-start">
1035
+ <p
1036
+ className="m-0 p-0 font-16 font-weight-600"
1037
+ style={{
1038
+ color: sectionproperties.filter_titlecolor,
1039
+ fontSize: sectionproperties.filter_titlefontsize + 'px',
1040
+ fontWeight: sectionproperties.filter_titlefontweight,
1041
+ textTransform: sectionproperties.filter_titletextransform,
1042
+ }}
1043
+ >
1044
+ {langdetect == 'en' ? 'Sort By' : 'ترتيب حسب'}
1045
+ </p>
1046
+ </div>
1047
+ <div className="col-lg-12">
1048
+ <hr className="mt-2 mb-3" />
1049
+ </div>
1050
+ {otherfilters.map((item, index) => {
1051
+ return (
1052
+ <div className="col-lg-12 pl-4 pr-4">
1053
+ {/* <div class="dropdowncontainer mr-2 mt-sm-3">
1054
+ {/* checked={checked}
1055
+ <input class="dropdown" type="checkbox" id="dropdown" name="dropdown" hidden />
1056
+ <label
1057
+ // onClick={() => {
1058
+ // setChecked(!checked);
1059
+ // }}
1060
+ className={' d-flex justify-content-center align-items-center for-dropdown'}
1061
+ for="dropdown"
1062
+ style={{ cursor: 'pointer' }}
1063
+ >
1064
+ {sortby}
1065
+ {/* <i className="bx bx-chevron-down ml-2" style={{ fontSize: '20px' }}></i>
1066
+ </label>
1067
+ <div class="dropdownmenu">
1068
+ {item.filterarray.map((valueitem, valueindex) => {
1069
+ var ischecked = false;
1070
+ if (item.payloadvalue == 'sortprice') {
1071
+ if (valueitem.value == ProductFilterObjContext.sortprice) {
1072
+ ischecked = true;
1073
+ }
1074
+ } else if (item.payloadvalue == 'sortdates') {
1075
+ if (valueitem.value == ProductFilterObjContext.sortdates) {
1076
+ ischecked = true;
1077
+ }
1078
+ }
1079
+ return (
1080
+ <p
1081
+ class="dropdownlink"
1082
+ onClick={() => {
1083
+ // setfilterfunc(valueitem.valueid, valueindex, index, 'assign');
1084
+ var tempfetchproductsfilerobjcontext = { ...ProductFilterObjContext };
1085
+ if (tempfetchproductsfilerobjcontext[item.payloadvalue] == valueitem.value) {
1086
+ tempfetchproductsfilerobjcontext[item.payloadvalue] = '';
1087
+ } else {
1088
+ tempfetchproductsfilerobjcontext[item.payloadvalue] = valueitem.value;
1089
+ }
1090
+ tempfetchproductsfilerobjcontext.page = 0;
1091
+ setProductFilterObjContext({ ...tempfetchproductsfilerobjcontext });
1092
+ routingcountext(
1093
+ StaticPagesLinksContext.GeneralProductsComponent,
1094
+ true,
1095
+ encodeURIComponent(JSON.stringify(tempfetchproductsfilerobjcontext)),
1096
+ );
1097
+ setSortby(valueitem.name);
1098
+ }}
1099
+ >
1100
+ {valueitem.name}
1101
+ </p>
1102
+ );
1103
+ })}
1104
+ </div>
1105
+ </div> */}
1106
+ <Accordion allowMultipleExpanded={true} allowZeroExpanded={true} preExpanded={[0, 1, 2, 3]} style={{ width: '100%' }}>
1107
+ <AccordionItem uuid={index}>
1108
+ <AccordionItemHeading>
1109
+ <AccordionItemButton>
1110
+ <div className={filter_cssstyles.titlecontainer + ' row m-0 p-0 mb-2 pl-md-3 pr-md-3 '}>
1111
+ <div className="col-lg-10 col-md-10 col-sm-10 p-0">
1112
+ <p
1113
+ className={
1114
+ langdetect == 'en'
1115
+ ? filter_cssstyles.collapsetitle + ' m-0 p-0 collapsetitle '
1116
+ : filter_cssstyles.collapsetitle + ' collapsetitle m-0 p-0 text-right'
1117
+ }
1118
+ >
1119
+ {item.name}
1120
+ </p>
1121
+ </div>
1122
+ <div className="col-lg-2 col-md-2 col-sm-2 p-0">
1123
+ <AccordionItemState>
1124
+ {(state) => {
1125
+ if (state.expanded == true) {
1126
+ return (
1127
+ <i
1128
+ className={
1129
+ filter_cssstyles.collapsetitle + ' collapsetitle h-100 d-flex align-items-center justify-content-end '
1130
+ }
1131
+ >
1132
+ <FiChevronDown />
1133
+ </i>
1134
+ );
1135
+ } else {
1136
+ return (
1137
+ <i className={filter_cssstyles.collapsetitle + ' h-100 d-flex align-items-center justify-content-end '}>
1138
+ <FiChevronUp />
1139
+ </i>
1140
+ );
1141
+ }
1142
+ }}
1143
+ </AccordionItemState>
1144
+ </div>
1145
+ </div>
1146
+ </AccordionItemButton>
1147
+ </AccordionItemHeading>
1148
+ <AccordionItemPanel className="p-0">
1149
+ <div className="row mt-0 mb-2 ml-0 mr-0 d-lg-flex">
1150
+ <div className={'col-lg-12'}>
1151
+ <div
1152
+ className={
1153
+ langdetect == 'en'
1154
+ ? `${filterstyles.timeline}` + ' p-sm-0 '
1155
+ : `${filterstyles.timeline} ${filterstyles.timelinetrans}` + ' p-sm-0 '
1156
+ }
1157
+ >
1158
+ {item.filterarray.map((valueitem, valueindex) => {
1159
+ var ischecked = false;
1160
+ if (item.payloadvalue == 'sortprice') {
1161
+ if (valueitem.value == ProductFilterObjContext.sortprice) {
1162
+ ischecked = true;
1163
+ }
1164
+ } else if (item.payloadvalue == 'sortdates') {
1165
+ if (valueitem.value == ProductFilterObjContext.sortdates) {
1166
+ ischecked = true;
1167
+ }
1168
+ }
1169
+ return (
1170
+ <div
1171
+ className={
1172
+ `${filterstyles.border_left_line} ${filterstyles.timelineinnercont} ${filter_cssstyles.timelineinnercont}
1173
+ ${ischecked ? `${filter_cssstyles.timelineinnercont_active} ${filterstyles.timelineinnercont_active}` : ''}
1174
+
1175
+ ` + ' d-flex align-items-start pb-3 '
1176
+ }
1177
+ onClick={() => {
1178
+ var tempfetchproductsfilerobjcontext = { ...ProductFilterObjContext };
1179
+ if (tempfetchproductsfilerobjcontext[item.payloadvalue] == valueitem.value) {
1180
+ tempfetchproductsfilerobjcontext[item.payloadvalue] = '';
1181
+ } else {
1182
+ tempfetchproductsfilerobjcontext[item.payloadvalue] = valueitem.value;
1183
+ }
1184
+ tempfetchproductsfilerobjcontext.page = 0;
1185
+ setProductFilterObjContext({ ...tempfetchproductsfilerobjcontext });
1186
+
1187
+ filterrouting(tempfetchproductsfilerobjcontext);
1188
+ }}
1189
+ >
1190
+ <div>
1191
+ <div
1192
+ className={
1193
+ ` ${ischecked ? filter_cssstyles.btn_item_active : ''} ${filterstyles.btn_item} ${
1194
+ filter_cssstyles.btn_item
1195
+ }` + ' mb-2 d-flex align-items-center '
1196
+ }
1197
+ >
1198
+ <i className="h-100 d-flex align-items-center"></i>
1199
+ </div>
1200
+ </div>
1201
+ <div className={langdetect == 'en' ? 'ml-3' : 'mr-3 text-right'}>
1202
+ <p
1203
+ className={`${filterstyles.timeline_text} ${filter_cssstyles.timeline_text}` + ' m-0 p-0 '}
1204
+ style={{
1205
+ color: ischecked ? sectionproperties.activecat_color : '',
1206
+ }}
1207
+ >
1208
+ {valueitem.name}
1209
+ </p>
1210
+ </div>
1211
+ </div>
1212
+ );
1213
+ })}
1214
+ </div>
1215
+ </div>
1216
+ </div>
1217
+ </AccordionItemPanel>
1218
+ </AccordionItem>
1219
+ </Accordion>
1220
+ </div>
1221
+ );
1222
+ })}
1223
+ {sectionproperties.showfilterbyrating == 'Show' && (
1224
+ <div className="col-lg-12 pl-4 pr-4">
1225
+ <div className={filter_cssstyles.titlecontainer + ' row m-0 p-0 mb-2 pl-md-3 pr-md-3 '}>
1226
+ <div className="col-lg-12 col-md-12 col-sm-12 p-0 mb-3">
1227
+ <p
1228
+ className={
1229
+ langdetect == 'en'
1230
+ ? filter_cssstyles.collapsetitle + ' m-0 p-0 collapsetitle '
1231
+ : filter_cssstyles.collapsetitle + ' collapsetitle m-0 p-0 text-right'
1232
+ }
1233
+ >
1234
+ {langdetect == 'en' ? 'Ratings' : 'التقييمات'}
1235
+ </p>
1236
+ </div>
1237
+ <div className="col-lg-12 col-md-12 col-sm-12 mb-4">
1238
+ <InputRange
1239
+ draggableTrack={true}
1240
+ formatLabel={(value) => `${value}`}
1241
+ maxValue={5}
1242
+ minValue={0}
1243
+ value={raterangevalue}
1244
+ onChange={(value) => {
1245
+ setraterangevalue({ ...value });
1246
+ }}
1247
+ />
1248
+ </div>
1249
+ </div>
1250
+ </div>
1251
+ )}
1252
+ </div>
1253
+ )}
1254
+ <div className="col-lg-9 col-md-9 col-sm-9 d-flex align-items-center d-md-none">
1255
+ <p
1256
+ className="m-0 p-0 font-16 font-weight-600"
1257
+ style={{
1258
+ color: sectionproperties.filter_titlecolor,
1259
+ fontSize: sectionproperties.filter_titlefontsize + 'px',
1260
+ fontWeight: sectionproperties.filter_titlefontweight,
1261
+ textTransform: sectionproperties.filter_titletextransform,
1262
+ }}
1263
+ >
1264
+ {langdetect == 'en' ? 'Filter' : 'فلترة'}
1265
+ </p>
1266
+ </div>
1267
+ <div className="col-lg-3 col-md-3 col-sm-3 d-flex d-md-none align-items-center justify-content-end p-0">
1268
+ <div
1269
+ className={`${filterstyles.close_menu_icon_cont} ${filter_cssstyles.close_menu_icon_cont}` + ' d-none d-md-flex align-items-center justify-content-center '}
1270
+ onClick={() => {
1271
+ var element = document.getElementById('filterslider');
1272
+ element.classList.remove(filterstyles.filterslider_container_opened);
1273
+ }}
1274
+ >
1275
+ <i className="h-100 d-flex align-items-center justify-content-center">
1276
+ <IoMdClose
1277
+ size={sectionproperties.closeSlider_fontSize}
1278
+ style={{
1279
+ color: sectionproperties.closeSlider_color,
1280
+ }}
1281
+ />
1282
+ </i>
1283
+ </div>
1284
+ </div>
1285
+ <div className="col-lg-12">
1286
+ <hr className="mt-2 mb-3" />
1287
+ </div>
1288
+ <div className={filter_cssstyles.filteraccordion + ' col-lg-12 filter-accordion p-md-0 pl-4 pr-4 '}>
1289
+ {sectionproperties.showcountriesfilter == 'Show' && Countriesfilter()}
1290
+ {sectionproperties.filterType == 'All' && sectionproperties.showcategoriesfilter == 'Show' && <div class="row m-0 w-100">{CategoriesFilter()}</div>}
1291
+ {sectionproperties.filterType == 'Collections' && sectionproperties.showcategoriesfilter == 'Show' && <div class="row m-0 w-100">{CollectionsFilter()}</div>}
1292
+ {sectionproperties.showvariantsfilter == 'Show' && InstFilters()}
1293
+ </div>
1294
+ </div>
1295
+ </div>
1296
+ )}
1297
+ <div className="col-lg-12">
1298
+ <Offcanvas
1299
+ show={props?.openFilterSlider}
1300
+ onHide={() => {
1301
+ props.setopenFilterSlider(false);
1302
+ }}
1303
+ placement="end"
1304
+ scroll={true}
1305
+ style={{
1306
+ minWidth: '200px',
1307
+ background: sectionproperties.filter_backgroundcolor,
1308
+ borderRadius: sectionproperties.filter_borderBottomLeftRadius + 'px',
1309
+ }}
1310
+ backdrop={true}
1311
+ >
1312
+ <Offcanvas.Header>
1313
+ <Offcanvas.Title>
1314
+ <div className="row m-0 w-100 mt-2">
1315
+ <div className="col-lg-9 col-md-9 col-sm-9 d-none align-items-center d-md-flex">
1316
+ <p
1317
+ className="m-0 p-0 font-16 font-weight-600"
1318
+ style={{
1319
+ color: sectionproperties.filter_titlecolor,
1320
+ fontSize: sectionproperties.filter_titlefontsize + 'px',
1321
+ fontWeight: sectionproperties.filter_titlefontweight,
1322
+ textTransform: sectionproperties.filter_titletextransform,
1323
+ }}
1324
+ >
1325
+ {langdetect == 'en' ? 'Filter' : 'فلترة'}
1326
+ </p>
1327
+ </div>
1328
+ <div className="col-lg-3 col-md-3 col-sm-3 d-none d-md-flex align-items-center justify-content-end p-0">
1329
+ <div
1330
+ className={`${filterstyles.close_menu_icon_cont} ${filter_cssstyles.close_menu_icon_cont}` + ' d-none d-md-flex align-items-center justify-content-center '}
1331
+ onClick={() => {
1332
+ props.setopenFilterSlider(false);
1333
+ }}
1334
+ >
1335
+ <i className="h-100 d-flex align-items-center justify-content-center">
1336
+ <IoMdClose
1337
+ size={sectionproperties.closeSlider_fontSize}
1338
+ style={{
1339
+ color: sectionproperties.closeSlider_color,
1340
+ }}
1341
+ />
1342
+ </i>
1343
+ </div>
1344
+ </div>
1345
+ <div class="col-lg-12">
1346
+ <hr class="mt-2 mb-2" />
1347
+ </div>
1348
+ </div>
1349
+ </Offcanvas.Title>
1350
+ </Offcanvas.Header>
1351
+ <Offcanvas.Body>
1352
+ <div
1353
+ className={' pb-md-5 '}
1354
+ style={{
1355
+ background: sectionproperties.filter_backgroundcolor,
1356
+ borderRadius: sectionproperties.filter_borderBottomLeftRadius + 'px',
1357
+ }}
1358
+ >
1359
+ <div className={filter_cssstyles.filteraccordion + ' row m-0 w-100 pt-2 pb-3 filter-accordion '}>
1360
+ {sectionproperties.otherfilters == 'Show' &&
1361
+ otherfilters.map((item, index) => {
1362
+ return (
1363
+ <>
1364
+ <Accordion allowMultipleExpanded={true} allowZeroExpanded={true} preExpanded={[0, 1, 2, 3]} style={{ width: '100%' }}>
1365
+ <AccordionItem uuid={index}>
1366
+ <AccordionItemHeading>
1367
+ <AccordionItemButton>
1368
+ <div className={filter_cssstyles.titlecontainer + ' row m-0 p-0 mb-2 pl-md-3 pr-md-3 '}>
1369
+ <div className="col-lg-10 col-md-10 col-sm-10 p-0">
1370
+ <p
1371
+ className={
1372
+ langdetect == 'en'
1373
+ ? filter_cssstyles.collapsetitle + ' m-0 p-0 '
1374
+ : filter_cssstyles.collapsetitle + ' m-0 p-0 text-right'
1375
+ }
1376
+ >
1377
+ {item.name}
1378
+ </p>
1379
+ </div>
1380
+ <div className="col-lg-2 col-md-2 col-sm-2 p-0">
1381
+ <AccordionItemState>
1382
+ {(state) => {
1383
+ if (state.expanded == true) {
1384
+ return (
1385
+ <i className={filter_cssstyles.collapsetitle + ' h-100 d-flex align-items-center justify-content-end '}>
1386
+ <FiChevronDown />
1387
+ </i>
1388
+ );
1389
+ } else {
1390
+ return (
1391
+ <i className={filter_cssstyles.collapsetitle + ' h-100 d-flex align-items-center justify-content-end '}>
1392
+ <FiChevronUp />
1393
+ </i>
1394
+ );
1395
+ }
1396
+ }}
1397
+ </AccordionItemState>
1398
+ </div>
1399
+ </div>
1400
+ </AccordionItemButton>
1401
+ </AccordionItemHeading>
1402
+ <AccordionItemPanel className="p-0">
1403
+ <div className="row mt-0 mb-2 ml-0 mr-0 d-lg-flex">
1404
+ <div className={'col-lg-12'}>
1405
+ <div
1406
+ className={
1407
+ langdetect == 'en'
1408
+ ? `${filterstyles.timeline}` + ' p-sm-0 '
1409
+ : `${filterstyles.timeline} ${filterstyles.timelinetrans}` + ' p-sm-0 '
1410
+ }
1411
+ >
1412
+ {item.filterarray.map((valueitem, valueindex) => {
1413
+ var ischecked = false;
1414
+ if (item.payloadvalue == 'sortprice') {
1415
+ if (valueitem.value == ProductFilterObjContext.sortprice) {
1416
+ ischecked = true;
1417
+ }
1418
+ } else if (item.payloadvalue == 'sortdates') {
1419
+ if (valueitem.value == ProductFilterObjContext.sortdates) {
1420
+ ischecked = true;
1421
+ }
1422
+ }
1423
+ return (
1424
+ <div
1425
+ className={
1426
+ `${filterstyles.border_left_line} ${filterstyles.timelineinnercont} ${filter_cssstyles.timelineinnercont}
1427
+ ${ischecked ? `${filter_cssstyles.timelineinnercont_active} ${filterstyles.timelineinnercont_active}` : ''}
1428
+
1429
+ ` + ' d-flex align-items-start pb-3 '
1430
+ }
1431
+ onClick={() => {
1432
+ // setfilterfunc(valueitem.valueid, valueindex, index, 'assign');
1433
+ var tempfetchproductsfilerobjcontext = { ...ProductFilterObjContext };
1434
+ if (tempfetchproductsfilerobjcontext[item.payloadvalue] == valueitem.value) {
1435
+ tempfetchproductsfilerobjcontext[item.payloadvalue] = '';
1436
+ } else {
1437
+ tempfetchproductsfilerobjcontext[item.payloadvalue] = valueitem.value;
1438
+ }
1439
+ setProductFilterObjContext({ ...tempfetchproductsfilerobjcontext });
1440
+ }}
1441
+ >
1442
+ <div>
1443
+ <div
1444
+ className={
1445
+ ` ${ischecked ? filter_cssstyles.btn_item_active : ''} ${filterstyles.btn_item} ${
1446
+ filter_cssstyles.btn_item
1447
+ }` + ' mb-2 d-flex align-items-center '
1448
+ }
1449
+ >
1450
+ <i className="h-100 d-flex align-items-center"></i>
1451
+ </div>
1452
+ </div>
1453
+ <div className={langdetect == 'en' ? 'ml-3' : 'mr-3 text-right'}>
1454
+ <p
1455
+ className={`${filterstyles.timeline_text} ${filter_cssstyles.timeline_text}` + ' m-0 p-0 '}
1456
+ style={{
1457
+ color: ischecked ? sectionproperties.activecat_color : '',
1458
+ }}
1459
+ >
1460
+ {valueitem.name}
1461
+ </p>
1462
+ </div>
1463
+ </div>
1464
+ );
1465
+ })}
1466
+ </div>
1467
+ </div>
1468
+ </div>
1469
+ </AccordionItemPanel>
1470
+ </AccordionItem>
1471
+ </Accordion>
1472
+ <hr className="mt-3 mb-3" />
1473
+ </>
1474
+ );
1475
+ })}
1476
+ {sectionproperties.otherfilters == 'Show' && (
1477
+ <div className="col-lg-12">
1478
+ <hr className="mt-2 mb-3" />
1479
+ </div>
1480
+ )}
1481
+ <div className={filter_cssstyles.filteraccordion + ' col-lg-12 filter-accordion p-md-0 '}>
1482
+ {sectionproperties.showcountriesfilter == 'Show' && Countriesfilter()}
1483
+ {sectionproperties.filterType == 'All' && sectionproperties.showcategoriesfilter == 'Show' && <div class="row m-0 w-100">{CategoriesFilter()}</div>}
1484
+ {sectionproperties.filterType == 'Collections' && sectionproperties.showcategoriesfilter == 'Show' && <div class="row m-0 w-100">{CollectionsFilter()}</div>}
1485
+ {sectionproperties.showvariantsfilter == 'Show' && InstFilters()}
1486
+ </div>
1487
+ </div>
1488
+ </div>
1489
+ </Offcanvas.Body>
1490
+ </Offcanvas>
1491
+ </div>
1492
+ </div>
1493
+ );
1494
+ };
1495
+ export default Filter;