tabexseriescomponents 0.0.217 → 0.0.220

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 (255) hide show
  1. package/dist/index.cjs.js +1044 -780
  2. package/dist/index.esm.js +1044 -780
  3. package/dist/index.umd.js +1042 -778
  4. package/library.zip +0 -0
  5. package/package.json +2 -1
  6. package/srcold/Contexts/LanguageContext.jsx +390 -0
  7. package/srcold/Contexts/ProductsCardsSectionContext.jsx +34 -0
  8. package/srcold/StylesJS/Customstyles.js +236 -0
  9. package/srcold/TabexComponents/Cards/Card20/Card20.jsx +282 -0
  10. package/srcold/TabexComponents/Cards/Card21/Card21.jsx +388 -0
  11. package/srcold/TabexComponents/Cards/Card22/Card22.jsx +287 -0
  12. package/srcold/TabexComponents/Cards/Card23/Card23.jsx +403 -0
  13. package/srcold/TabexComponents/Cards/CardBadgeSlideFromTop/CardBadgeSlideFromTop.jsx +395 -0
  14. package/srcold/TabexComponents/Cards/CardWithTextOnly/CardWithTextOnly.jsx +70 -0
  15. package/srcold/TabexComponents/Cards/CategoryCardTextOnImage/CategoryCardTextOnImage.jsx +211 -0
  16. package/srcold/TabexComponents/Cards/CategoryCardwithhoveraction/CategoryCardwithhoveraction.jsx +220 -0
  17. package/srcold/TabexComponents/Cards/Categorycard_fullimage/Categorycard_fullimage.jsx +230 -0
  18. package/srcold/TabexComponents/Cards/Categorycard_slidebgscaled/Categorycard_slidebgscaled.jsx +198 -0
  19. package/srcold/TabexComponents/Cards/Categorycard_with_trianglebg/Categorycard_with_trianglebg.jsx +170 -0
  20. package/srcold/TabexComponents/Cards/Categorycard_with_twolinestransition/Categorycard_with_twolinestransition.jsx +181 -0
  21. package/srcold/TabexComponents/Cards/Categorycard_withshapes/Categorycard_withshapes.jsx +161 -0
  22. package/srcold/TabexComponents/Cards/Categorycard_withtext/Categorycard_withtext.jsx +180 -0
  23. package/srcold/TabexComponents/Cards/CircleCardWithVariants/CircleCardWithVariants.jsx +487 -0
  24. package/srcold/TabexComponents/Cards/Classiccategorycard/Classiccategorycard.jsx +123 -0
  25. package/srcold/TabexComponents/Cards/HorizontalCategoryCard/HorizontalCategoryCard.jsx +192 -0
  26. package/srcold/TabexComponents/Cards/Horizontalcard/Horizontalcard.jsx +270 -0
  27. package/srcold/TabexComponents/Cards/MenuCard/MenuCard.jsx +543 -0
  28. package/srcold/TabexComponents/Cards/ModernCardWithQuantityButton/ModernCardWithQuantityButton.jsx +467 -0
  29. package/srcold/TabexComponents/Cards/ModernProductCard/ModernProductCard.jsx +469 -0
  30. package/srcold/TabexComponents/Cards/NewProductcard/NewProductcard.jsx +445 -0
  31. package/srcold/TabexComponents/Cards/ProductCardWithTextOnImage/ProductCardWithTextOnImage.jsx +304 -0
  32. package/srcold/TabexComponents/Cards/Productcard6/Productcard6.jsx +256 -0
  33. package/srcold/TabexComponents/Cards/Productcard7/Productcard7.jsx +278 -0
  34. package/srcold/TabexComponents/Cards/Productcard_animatedbuttons/Productcard_animatedbuttons.jsx +443 -0
  35. package/srcold/TabexComponents/Cards/Productcard_with_circularbg/Productcard_with_circularbg.jsx +275 -0
  36. package/srcold/TabexComponents/Cards/Productcard_with_circularhover/Productcard_with_circularhover.jsx +315 -0
  37. package/srcold/TabexComponents/Cards/Productcard_with_slideanimation/Productcard_with_slideanimation.jsx +301 -0
  38. package/srcold/TabexComponents/Cards/Productcard_with_variants/Productcard_with_variants.jsx +419 -0
  39. package/srcold/TabexComponents/Cards/Productcard_with_zoominonhover/Productcard_with_zoominonhover.jsx +524 -0
  40. package/srcold/TabexComponents/Cards/Productcarddefault/Productcarddefault.jsx +275 -0
  41. package/srcold/TabexComponents/Cards/Productccard_with_imageontopleft/Productccard_with_imageontopleft.jsx +286 -0
  42. package/srcold/TabexComponents/Cards/Prouductcard_with_zoomhover/Prouductcard_with_zoomhover.jsx +136 -0
  43. package/srcold/TabexComponents/Cards/Simplecategorycardwithtextbelow/Simplecategorycardwithtextbelow.jsx +179 -0
  44. package/srcold/TabexComponents/Cards/Simpleproductcard/Simpleproductcard.jsx +291 -0
  45. package/srcold/TabexComponents/Cards/StylishProductCard/StylishProductCard.jsx +339 -0
  46. package/srcold/TabexComponents/Cards/TwoWayServiceSectionWithImage/TwoWayServiceSectionWithImage.jsx +338 -0
  47. package/srcold/TabexComponents/Cards/UpSlideEffectCard/UpSlideEffectCard.jsx +515 -0
  48. package/srcold/TabexComponents/Cards/UserCardWithSocialMediaOnHover/UserCardWithSocialMediaOnHover.jsx +184 -0
  49. package/srcold/TabexComponents/Footer/Allinonefooter/Allinonefooter.jsx +475 -0
  50. package/srcold/TabexComponents/Footer/Footer1/Footer1.jsx +448 -0
  51. package/srcold/TabexComponents/Footer/Footer2/Footer2.jsx +383 -0
  52. package/srcold/TabexComponents/Footer/Footer3/Footer3.jsx +394 -0
  53. package/srcold/TabexComponents/Footer/Footer4/Footer4.jsx +699 -0
  54. package/srcold/TabexComponents/Footer/Footer5/Footer5.jsx +523 -0
  55. package/srcold/TabexComponents/Footer/Footer6/Footer6.jsx +301 -0
  56. package/srcold/TabexComponents/Footer/Footer7/Footer7.jsx +415 -0
  57. package/srcold/TabexComponents/Footer/Footer8/Footer8.jsx +454 -0
  58. package/srcold/TabexComponents/Footer/FooterWithThreeColumns/FooterWithThreeColumns.jsx +329 -0
  59. package/srcold/TabexComponents/Footer/Simplefooter/Simplefooter.jsx +274 -0
  60. package/srcold/TabexComponents/Generalfiles/images/egyptflag.png +0 -0
  61. package/srcold/TabexComponents/Generalfiles/images/noimage.png +0 -0
  62. package/srcold/TabexComponents/Generalfiles/images/payment/cod.png +0 -0
  63. package/srcold/TabexComponents/Generalfiles/images/payment/fawry.png +0 -0
  64. package/srcold/TabexComponents/Generalfiles/images/payment/payment.png +0 -0
  65. package/srcold/TabexComponents/Generalfiles/images/payment/paymob.png +0 -0
  66. package/srcold/TabexComponents/Generalfiles/images/payment/paypal.png +0 -0
  67. package/srcold/TabexComponents/Generalfiles/images/payment/visa.png +0 -0
  68. package/srcold/TabexComponents/Generalfiles/images/shoppingcart.png +0 -0
  69. package/srcold/TabexComponents/Generalfiles/images/tabexlogo.png +0 -0
  70. package/srcold/TabexComponents/Generalfiles/images/unknownmaleuser.png +0 -0
  71. package/srcold/TabexComponents/Generalfiles/images/usflag.png +0 -0
  72. package/srcold/TabexComponents/Generalfiles/images/whatsapp.png +0 -0
  73. package/srcold/TabexComponents/Headers/CTAHeader/CTAHeader.jsx +880 -0
  74. package/srcold/TabexComponents/Headers/CategoryFeaturingHeader/CategoryFeaturingHeader.jsx +870 -0
  75. package/srcold/TabexComponents/Headers/ClassicHeader/ClassicHeader.jsx +688 -0
  76. package/srcold/TabexComponents/Headers/Gotoheader/Gotoheader.jsx +720 -0
  77. package/srcold/TabexComponents/Headers/Header4/Header4.jsx +621 -0
  78. package/srcold/TabexComponents/Headers/Header8/Header8.jsx +824 -0
  79. package/srcold/TabexComponents/Headers/HeaderRestaurant/HeaderRestaurant.jsx +730 -0
  80. package/srcold/TabexComponents/Headers/HeaderWithAdSlider/HeaderWithAdSlider.jsx +762 -0
  81. package/srcold/TabexComponents/Headers/HeaderWithSearchOnCenter/HeaderWithSearchOnCenter.jsx +706 -0
  82. package/srcold/TabexComponents/Headers/HeaderWithUtilityBar/HeaderWithUtilityBar.jsx +900 -0
  83. package/srcold/TabexComponents/Headers/Header_threesectionslogocentered/Header_threesectionslogocentered.jsx +841 -0
  84. package/srcold/TabexComponents/Headers/Headerresponsive/Headerresponsive.jsx +988 -0
  85. package/srcold/TabexComponents/Headers/Headerresponsive/HeaderresponsiveNew.jsx +1081 -0
  86. package/srcold/TabexComponents/Headers/Headerresponsive/HeaderresponsiveOriginal.jsx +988 -0
  87. package/srcold/TabexComponents/Headers/HeaderwithContactinfo/HeaderwithContactinfo.jsx +917 -0
  88. package/srcold/TabexComponents/Headers/Modernheader/Modernheader.jsx +693 -0
  89. package/srcold/TabexComponents/Headers/SearchFocusedHeader/SearchFocusedHeader.jsx +952 -0
  90. package/srcold/TabexComponents/Headers/Simpleheader/Simpleheader.jsx +636 -0
  91. package/srcold/TabexComponents/Headers/StylishHeader/StylishHeader.jsx +853 -0
  92. package/srcold/TabexComponents/Headers/Subheader/Subheader copy.jsx +373 -0
  93. package/srcold/TabexComponents/Headers/Subheader/Subheader.jsx +515 -0
  94. package/srcold/TabexComponents/Headers/Subheader/SubheaderDropdown.jsx +190 -0
  95. package/srcold/TabexComponents/Headers/Subheader/SubheaderOriginal.jsx +483 -0
  96. package/srcold/TabexComponents/Headers/ThreeTieredHeader/ThreeTieredHeader.jsx +1005 -0
  97. package/srcold/TabexComponents/Headers/TwoTieredHeader/TwoTieredHeader.jsx +1020 -0
  98. package/srcold/TabexComponents/Headers/TwoTieredWithCenteredLogoHeader/TwoTieredWithCenteredLogoHeader .jsx +843 -0
  99. package/srcold/TabexComponents/Sections/BackgroundImages/BacgroundThreeImageWithCategories/BacgroundThreeImageWithCategories.jsx +448 -0
  100. package/srcold/TabexComponents/Sections/BackgroundImages/BackgroundFiveImageStructure/BackgroundFiveImageStructure.jsx +346 -0
  101. package/srcold/TabexComponents/Sections/BackgroundImages/BackgroundImageWithTopContent/BackgroundImageWithTopContent.jsx +304 -0
  102. package/srcold/TabexComponents/Sections/BackgroundImages/BackgroundSectionWithServicesCards/BackgroundSectionWithServicesCards.jsx +301 -0
  103. package/srcold/TabexComponents/Sections/BackgroundImages/Backgroundimage1/Backgroundimage1.jsx +312 -0
  104. package/srcold/TabexComponents/Sections/BackgroundImages/Backgroundimage_with_toppill/Backgroundimage_with_toppill.jsx +271 -0
  105. package/srcold/TabexComponents/Sections/BackgroundImages/BackgroundimageandTextsection/BackgroundimageandTextsection.jsx +174 -0
  106. package/srcold/TabexComponents/Sections/BackgroundImages/Bgimagewithsearchbar/Bgimagewithsearchbar.jsx +200 -0
  107. package/srcold/TabexComponents/Sections/BackgroundImages/FullVideoSection/FullVideoSection.jsx +263 -0
  108. package/srcold/TabexComponents/Sections/BackgroundImages/Section_with_rightbgcont/Section_with_rightbgcont.jsx +143 -0
  109. package/srcold/TabexComponents/Sections/BackgroundImages/TextSectionConnectToWA/TextSectionConnectToWA.jsx +248 -0
  110. package/srcold/TabexComponents/Sections/BackgroundImages/Threebgimages/Threebgimages.jsx +295 -0
  111. package/srcold/TabexComponents/Sections/BackgroundImages/Twobgimages/Twobgimages copy.jsx +394 -0
  112. package/srcold/TabexComponents/Sections/BackgroundImages/Twobgimages/Twobgimages.jsx +406 -0
  113. package/srcold/TabexComponents/Sections/BackgroundImages/VideosSection/VideosSection.jsx +246 -0
  114. package/srcold/TabexComponents/Sections/Cards/CardsSection/CardsSection.jsx +1220 -0
  115. package/srcold/TabexComponents/Sections/Cards/CardsSection2/CardsSection2.jsx +480 -0
  116. package/srcold/TabexComponents/Sections/Cards/CardsSectionwithfilter/CardsSectionwithfilter.jsx +718 -0
  117. package/srcold/TabexComponents/Sections/Cards/ElegantCategoriesCardSection/ElegantCategoriesCardSection.jsx +406 -0
  118. package/srcold/TabexComponents/Sections/Cards/ModernCardsSection/ModernCardsSection.jsx +652 -0
  119. package/srcold/TabexComponents/Sections/Cards/RandomlyStructuredCollectionCards/RandomlyStructuredCollectionCards.jsx +635 -0
  120. package/srcold/TabexComponents/Sections/Cards/Sixverticalcardssection/Sixverticalcardssection.jsx +495 -0
  121. package/srcold/TabexComponents/Sections/Cards/UsersCardsSection/UsersCardsSection.jsx +383 -0
  122. package/srcold/TabexComponents/Sections/Slideshow/AboutSection/AboutSection.jsx +250 -0
  123. package/srcold/TabexComponents/Sections/Slideshow/Backgroundimage_with_topcircle/Backgroundimage_with_topcircle.jsx +160 -0
  124. package/srcold/TabexComponents/Sections/Slideshow/ContactUsSection/ContactUsSection.jsx +256 -0
  125. package/srcold/TabexComponents/Sections/Slideshow/Freetextsection/Freetextsection.jsx +329 -0
  126. package/srcold/TabexComponents/Sections/Slideshow/HorizontalContactUsSection/HorizontalContactUsSection.jsx +266 -0
  127. package/srcold/TabexComponents/Sections/Slideshow/Image_with_leftwords/Image_with_leftwords.jsx +371 -0
  128. package/srcold/TabexComponents/Sections/Slideshow/Image_with_rightwords/Image_with_rightwords.jsx +140 -0
  129. package/srcold/TabexComponents/Sections/Slideshow/ServiceSectionWithImage/ServiceSectionWithImage.jsx +374 -0
  130. package/srcold/TabexComponents/Sections/Slideshow/Servicesection/Servicesection.jsx +339 -0
  131. package/srcold/TabexComponents/Sections/Slideshow/ServicesectionCenteredcards/ServicesectionCenteredcards.jsx +303 -0
  132. package/srcold/TabexComponents/Sections/Slideshow/Slideshow_with_rotatedsquare/Slideshow_with_rotatedsquare.jsx +224 -0
  133. package/srcold/TabexComponents/Sections/Slideshow/Slideshow_with_squarebg/Slideshow_with_squarebg.jsx +147 -0
  134. package/srcold/TabexComponents/Sections/Slideshow/Slideshowdifferentanimations/Slideshowdifferentanimations.jsx +139 -0
  135. package/srcold/TabexComponents/Sections/Slideshow/Slideshowfade/Slideshowfade copy.jsx +634 -0
  136. package/srcold/TabexComponents/Sections/Slideshow/Slideshowfade/Slideshowfade.jsx +324 -0
  137. package/srcold/TabexComponents/Sections/Slideshow/Slideshowslide/Slideshowslide copy.jsx +525 -0
  138. package/srcold/TabexComponents/Sections/Slideshow/Slideshowslide/Slideshowslide.jsx +569 -0
  139. package/srcold/TabexComponents/Sections/Slideshow/Slideshowslide/SlideshowslideOriginal.jsx +475 -0
  140. package/srcold/TabexComponents/Sections/Slideshow/Slideshowzoom/Arrow.js +91 -0
  141. package/srcold/TabexComponents/Sections/Slideshow/Slideshowzoom/Slideshowzoom.jsx +369 -0
  142. package/srcold/TabexComponents/Sections/Slideshow/TwoWayServiceSectionWithImage/TwoWayServiceSectionWithImage.jsx +392 -0
  143. package/srcold/TabexComponents/StaticPages/AccountInformation/AccountInformation.jsx +213 -0
  144. package/srcold/TabexComponents/StaticPages/CartSlider/CartSlider.jsx +467 -0
  145. package/srcold/TabexComponents/StaticPages/Categoriesdropdown/Categoriesdropdown.jsx +181 -0
  146. package/srcold/TabexComponents/StaticPages/Checkout/Checkout.jsx +1280 -0
  147. package/srcold/TabexComponents/StaticPages/Filter/Filter copy.jsx +1392 -0
  148. package/srcold/TabexComponents/StaticPages/Filter/Filter.jsx +1399 -0
  149. package/srcold/TabexComponents/StaticPages/Filter/FilterOriginal.jsx +1132 -0
  150. package/srcold/TabexComponents/StaticPages/InnerGroups/InnerGroups.jsx +60 -0
  151. package/srcold/TabexComponents/StaticPages/Login/FacebookLoginButton.jsx +50 -0
  152. package/srcold/TabexComponents/StaticPages/Login/GoogleLoginButton.jsx +35 -0
  153. package/srcold/TabexComponents/StaticPages/Login/Login.jsx +469 -0
  154. package/srcold/TabexComponents/StaticPages/OrderSuccess/OrderSuccess.jsx +143 -0
  155. package/srcold/TabexComponents/StaticPages/Ordershistory/Ordershistory.jsx +1329 -0
  156. package/srcold/TabexComponents/StaticPages/Policies/Policies.jsx +306 -0
  157. package/srcold/TabexComponents/StaticPages/Productinfo/Product_itemtype.jsx +1334 -0
  158. package/srcold/TabexComponents/StaticPages/Productinfo/Productinfo.jsx +715 -0
  159. package/srcold/TabexComponents/StaticPages/Productinfo/Service_itemtype copy.jsx +361 -0
  160. package/srcold/TabexComponents/StaticPages/Productinfo/Service_itemtype.jsx +361 -0
  161. package/srcold/TabexComponents/StaticPages/Productinfo/Serviceinfotabs.jsx +501 -0
  162. package/srcold/TabexComponents/StaticPages/Productinfo/staticroutersidenav.module.css +145 -0
  163. package/srcold/TabexComponents/StaticPages/Searchlist/Searchlist.jsx +227 -0
  164. package/srcold/TabexComponents/StaticPages/Signup/CustomerInformationForm.jsx +832 -0
  165. package/srcold/TabexComponents/StaticPages/Signup/Signup.jsx +154 -0
  166. package/srcold/TabexComponents/StaticPages/Staticpagesrouter/Staticpagesrouter.jsx +280 -0
  167. package/srcold/TabexComponents/StaticPages/Viewcart/Viewcart.jsx +671 -0
  168. package/srcold/TabexComponents/StaticPages/Wishlist/Wishlist.jsx +538 -0
  169. package/srcold/assets/images/appstore.png +0 -0
  170. package/srcold/assets/images/cod.png +0 -0
  171. package/srcold/assets/images/egyptflag.png +0 -0
  172. package/srcold/assets/images/fawry.png +0 -0
  173. package/srcold/assets/images/googleplay.png +0 -0
  174. package/srcold/assets/images/ksa.png +0 -0
  175. package/srcold/assets/images/mastercard.png +0 -0
  176. package/srcold/assets/images/payment.png +0 -0
  177. package/srcold/assets/images/paymob.png +0 -0
  178. package/srcold/assets/images/paypal.png +0 -0
  179. package/srcold/assets/images/shoppingcart.png +0 -0
  180. package/srcold/assets/images/usflag.png +0 -0
  181. package/srcold/assets/images/visa.png +0 -0
  182. package/srcold/assets/images/whatsapp.png +0 -0
  183. package/srcold/button.jsx +40 -0
  184. package/srcold/index.jsx +283 -0
  185. package/srcold/styles/Home.module.css +129 -0
  186. package/srcold/styles/cards/Categorcycard_fullimage.module.css +10 -0
  187. package/srcold/styles/cards/Categorycard_slidebgscaled.module.css +73 -0
  188. package/srcold/styles/cards/Categorycard_withshapes.module.css +189 -0
  189. package/srcold/styles/cards/ModernCardWithQuantityButton.module.css +30 -0
  190. package/srcold/styles/cards/Productcard6.module.css +9 -0
  191. package/srcold/styles/cards/Productccard_with_zoominonhover.module.css +51 -0
  192. package/srcold/styles/cards/Prouductcard_with_zoomhover.module.css +61 -0
  193. package/srcold/styles/cards/UserCardWithSocialMediaOnHover.module.css +65 -0
  194. package/srcold/styles/cards/categorycard.module.css +85 -0
  195. package/srcold/styles/cards/categorycard3.module.css +50 -0
  196. package/srcold/styles/cards/categorycardwithtext.module.css +40 -0
  197. package/srcold/styles/cards/productcard_animatedbuttons.module.css +130 -0
  198. package/srcold/styles/cards/productcard_with_textonhover.module.css +18 -0
  199. package/srcold/styles/cards/productcard_withtextonimage.module.css +0 -0
  200. package/srcold/styles/cards/productccard_with_imageontopleft.module.css +85 -0
  201. package/srcold/styles/general/bootstrap.css +4727 -0
  202. package/srcold/styles/general/dropdown.css +206 -0
  203. package/srcold/styles/general/editorbardropdown.module.css +94 -0
  204. package/srcold/styles/general/filter.module.css +108 -0
  205. package/srcold/styles/general/form.module.css +273 -0
  206. package/srcold/styles/general/general.module.css +872 -0
  207. package/srcold/styles/general/image-gallery.css +531 -0
  208. package/srcold/styles/general/react-accessible-accordion.module.css +52 -0
  209. package/srcold/styles/general/react-phone-input-2.module.css +927 -0
  210. package/srcold/styles/general/scrollbtn.module.css +22 -0
  211. package/srcold/styles/general/slick.module.css +166 -0
  212. package/srcold/styles/general/tabs.module.css +119 -0
  213. package/srcold/styles/general/workplaceeditor.module.css +328 -0
  214. package/srcold/styles/globals.css +26 -0
  215. package/srcold/styles/headers/CTAHeader.module.css +40 -0
  216. package/srcold/styles/headers/CategoryFeaturingHeader.module.css +61 -0
  217. package/srcold/styles/headers/Gotoheader.module.css +81 -0
  218. package/srcold/styles/headers/Header7.module.css +50 -0
  219. package/srcold/styles/headers/HeaderWithAdSlider.module.css +86 -0
  220. package/srcold/styles/headers/HeaderWithSearchOnCenter.module.css +101 -0
  221. package/srcold/styles/headers/HeaderWithUtilityBar.module.css +46 -0
  222. package/srcold/styles/headers/Header_threesectionslogocentered.module.css +84 -0
  223. package/srcold/styles/headers/NewHeader.module.css +101 -0
  224. package/srcold/styles/headers/SearchFocusedHeader.module.css +62 -0
  225. package/srcold/styles/headers/Sideheader.module.css +108 -0
  226. package/srcold/styles/headers/Simpleheader.module.css +102 -0
  227. package/srcold/styles/headers/classicheader.module.css +16 -0
  228. package/srcold/styles/headers/classicheaderstyles.module.css +9 -0
  229. package/srcold/styles/headers/dropdown.css +0 -0
  230. package/srcold/styles/headers/header4.module.css +175 -0
  231. package/srcold/styles/headers/header5.module.css +30 -0
  232. package/srcold/styles/headers/header_contactinfo.module.css +53 -0
  233. package/srcold/styles/headers/headerresturant.module.css +89 -0
  234. package/srcold/styles/headers/modernheader.module.css +72 -0
  235. package/srcold/styles/headers/stylishheader.module.css +24 -0
  236. package/srcold/styles/headers/subheader.module.css +114 -0
  237. package/srcold/styles/headers/threetieredheader.module.css +91 -0
  238. package/srcold/styles/sections/BackgroundImageWithTopContent.css +4 -0
  239. package/srcold/styles/sections/Backgroundimage1.module.css +17 -0
  240. package/srcold/styles/sections/Backgroundimage_with_topcircle.module.css +28 -0
  241. package/srcold/styles/sections/Section_with_rightbgcont.module.css +49 -0
  242. package/srcold/styles/sections/Slideshow_with_rotatedsquare.module.css +35 -0
  243. package/srcold/styles/sections/Slideshow_with_squarebg.module.css +39 -0
  244. package/srcold/styles/staticpages/accordion.module.css +9 -0
  245. package/srcold/styles/staticpages/cart.module.css +108 -0
  246. package/srcold/styles/staticpages/dropdown.css +196 -0
  247. package/srcold/styles/staticpages/filter.module.css +139 -0
  248. package/srcold/styles/staticpages/image-gallery.css +481 -0
  249. package/srcold/styles/staticpages/login.module.css +113 -0
  250. package/srcold/styles/staticpages/productinfo.module.css +54 -0
  251. package/srcold/styles/staticpages/shop.module.css +191 -0
  252. package/srcold/styles/staticpages/signup.module.css +206 -0
  253. package/srcold/styles/staticpages/staticroutersidenav.module.css +129 -0
  254. package/srcold/styles/staticpages/viewcart.module.css +129 -0
  255. package/srcold/styles/staticpages/wishlist.module.css +29 -0
@@ -0,0 +1,1399 @@
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
+
11
+ const Filter = (props) => {
12
+ const lang = props.actions.lang;
13
+ const langdetect = props.actions.langdetect;
14
+ const productfiltercontext = props.actions.productfiltercontext;
15
+ const setproductfiltercontext = props.actions.setproductfiltercontext;
16
+ const ProductFilterObjContext = props.actions.ProductFilterObjContext;
17
+ const setProductFilterObjContext = props.actions.setProductFilterObjContext;
18
+ const authdetailsContext = props.actions.authdetailsContext;
19
+ const routingcountext = props.actions.routingcountext;
20
+ const StaticPagesLinksContext = props.actions.StaticPagesLinksContext;
21
+ const [sectionproperties, setsectionproperties] = useState('');
22
+ const [instfilters, setinstfilters] = useState([...authdetailsContext.instinfo.instfilters]);
23
+ const [instcollections, setinstcollections] = useState([...authdetailsContext.instinfo.instcollections]);
24
+ const [instcategories, setinstcategories] = useState([...authdetailsContext?.instinfo?.instcategories]);
25
+ const [sortby, setSortby] = useState('Sort by');
26
+
27
+ const [otherfilters, setotherfilters] = useState([
28
+ {
29
+ payloadvalue: 'sortprice',
30
+ name: lang.price,
31
+ filterarray: [
32
+ { name: lang.pricehightolow, value: 'hightolow', isfilterselected: false },
33
+ { name: lang.pricelowtohigh, value: 'lowtohigh', isfilterselected: false },
34
+ ],
35
+ },
36
+ {
37
+ payloadvalue: 'sortdates',
38
+
39
+ name: lang.dates,
40
+ filterarray: [
41
+ { name: lang.recent, value: 'recent', isfilterselected: false },
42
+ { name: lang.oldest, value: 'old', isfilterselected: false },
43
+ ],
44
+ },
45
+ ]);
46
+ useEffect(() => {
47
+ filterupdater();
48
+ }, []);
49
+ useEffect(() => {
50
+ setinstfilters([...authdetailsContext.instinfo.instfilters]);
51
+ setinstcollections([...authdetailsContext.instinfo.instcollections]);
52
+ setinstcategories([...authdetailsContext?.instinfo?.instcategories]);
53
+ }, [authdetailsContext]);
54
+ useEffect(() => {
55
+ if (props.sectionpropertiesprops != undefined && props.sectionpropertiesprops.length != 0) {
56
+ setsectionproperties(props.sectionpropertiesprops);
57
+ }
58
+ }, [props.sectionpropertiesprops]);
59
+ useEffect(() => {
60
+ filterupdater();
61
+ }, [ProductFilterObjContext]);
62
+ const filterupdater = () => {
63
+ if (instfilters.length != 0) {
64
+ var tempinstfilters = [...instfilters];
65
+ tempinstfilters?.forEach(function (instfilteritem, instfilterindex) {
66
+ instfilteritem.productvaluesfilter.forEach(function (valefilteritem, valefilteritemindex) {
67
+ valefilteritem.isfilterselected = false;
68
+ });
69
+ });
70
+ ProductFilterObjContext?.FilterOptions?.forEach(function (filteritem, filterindex) {
71
+ tempinstfilters?.forEach(function (instfilteritem, instfilterindex) {
72
+ instfilteritem?.productvaluesfilter?.forEach(function (valefilteritem, valefilteritemindex) {
73
+ if (filteritem.valueid == valefilteritem.valueid) {
74
+ valefilteritem.isfilterselected = true;
75
+ }
76
+ });
77
+ });
78
+ });
79
+ setinstfilters([...tempinstfilters]);
80
+ }
81
+ if (instcategories.length != 0) {
82
+ var tempInstcategories = [...instcategories];
83
+ tempInstcategories.forEach(function (catitem, catindex) {
84
+ catitem.parentcolletions.forEach(function (parentcolitem, parentcolindex) {
85
+ parentcolitem.collections.forEach(function (colitem, colindex) {
86
+ colitem.isfilterselected = false;
87
+ });
88
+ });
89
+ });
90
+
91
+ ProductFilterObjContext?.collections?.forEach(function (filteritem, filterindex) {
92
+ tempInstcategories.forEach(function (catitem, catindex) {
93
+ catitem.parentcolletions.forEach(function (parentcolitem, parentcolindex) {
94
+ parentcolitem.collections.forEach(function (colitem, colindex) {
95
+ if (colitem.collectionid == filteritem) {
96
+ colitem.isfilterselected = true;
97
+ }
98
+ });
99
+ });
100
+ });
101
+ });
102
+
103
+ setinstcategories([...tempInstcategories]);
104
+ }
105
+ if (instcollections.length != 0) {
106
+ var tempInstcollections = [...instcollections];
107
+ tempInstcollections.forEach(function (instfilteritem, valefilteritemindex) {
108
+ instfilteritem.isfilterselected = false;
109
+ });
110
+ ProductFilterObjContext?.collections?.forEach(function (filteritem, filterindex) {
111
+ tempInstcollections?.forEach(function (instfilteritem, instfilterindex) {
112
+ if (instfilteritem.collectionid == filteritem) {
113
+ instfilteritem.isfilterselected = true;
114
+ }
115
+ });
116
+ });
117
+ setinstcollections([...tempInstcollections]);
118
+ }
119
+ };
120
+ const setfilterfunc = (valueid, valueindex, mainparentindex, type) => {
121
+ var tempfetchproductsfilerobjcontext = { ...ProductFilterObjContext };
122
+ if (type == 'clearfilters') {
123
+ tempfetchproductsfilerobjcontext.FilterOptions = [];
124
+ } else {
125
+ var FilterExists = false;
126
+ tempfetchproductsfilerobjcontext?.FilterOptions?.forEach(function (filteritem, filterindex) {
127
+ if (filteritem.valueid == valueid) {
128
+ FilterExists = true;
129
+ tempfetchproductsfilerobjcontext.FilterOptions.splice(filterindex, 1);
130
+ }
131
+ });
132
+ if (!FilterExists) {
133
+ tempfetchproductsfilerobjcontext.FilterOptions.push({ valueid: valueid });
134
+ }
135
+ }
136
+ if (tempfetchproductsfilerobjcontext.FilterOptions.length == 0) {
137
+ tempfetchproductsfilerobjcontext.isfilter = 0;
138
+ } else {
139
+ tempfetchproductsfilerobjcontext.isfilter = 1;
140
+ }
141
+ tempfetchproductsfilerobjcontext.page = 0;
142
+ setProductFilterObjContext({ ...tempfetchproductsfilerobjcontext });
143
+ routingcountext(StaticPagesLinksContext.GeneralProductsComponent, true, encodeURIComponent(JSON.stringify(tempfetchproductsfilerobjcontext)));
144
+ };
145
+ const setCollectionFilterFunc = (collectionid) => {
146
+ var tempfetchproductsfilerobjcontext = { ...ProductFilterObjContext };
147
+ var CollectionExists = false;
148
+ tempfetchproductsfilerobjcontext?.collections?.forEach(function (filteritem, filterindex) {
149
+ if (filteritem == collectionid) {
150
+ CollectionExists = true;
151
+ tempfetchproductsfilerobjcontext.collections.splice(filterindex, 1);
152
+ }
153
+ });
154
+ if (!CollectionExists) {
155
+ tempfetchproductsfilerobjcontext.collections.push(collectionid);
156
+ }
157
+ tempfetchproductsfilerobjcontext.page = 0;
158
+ setProductFilterObjContext({ ...tempfetchproductsfilerobjcontext });
159
+ routingcountext(StaticPagesLinksContext.GeneralProductsComponent, true, encodeURIComponent(JSON.stringify(tempfetchproductsfilerobjcontext)));
160
+ };
161
+
162
+ const filter_cssstyles = {
163
+ collapsetitle: css({
164
+ fontSize: sectionproperties.filtertitle_fontsize + 'px',
165
+ fontWeight: sectionproperties.filtertitle_fontweight,
166
+ textTransform: sectionproperties.filtertitle_texttransform,
167
+ color: sectionproperties.filtertitle_color,
168
+ ':hover': {
169
+ color: sectionproperties.filtertitle_coloronhover,
170
+ },
171
+ }),
172
+ titlecontainer: css({
173
+ color: sectionproperties.filtertitle_color,
174
+ ':hover .collapsetitle': {
175
+ color: sectionproperties.filtertitle_coloronhover,
176
+ },
177
+ }),
178
+ timeline_text: css({
179
+ fontSize: sectionproperties.timeline_text_fontsize + 'px',
180
+ fontWeight: sectionproperties.timeline_text_fontweight,
181
+ textTransform: sectionproperties.timeline_text_texttransform,
182
+ color: sectionproperties.timeline_text_color,
183
+ ':hover': {
184
+ color: sectionproperties.timeline_text_coloronhover,
185
+ },
186
+ }),
187
+ btnstyles: css({
188
+ color: sectionproperties.generalbtn_textColor,
189
+ fontSize: sectionproperties.generalbtn_fontsize + 'px',
190
+ textTransform: sectionproperties.generalbtn_texttransform,
191
+ width: sectionproperties.generalbtn_width + 'px',
192
+ height: sectionproperties.generalbtn_height + 'px',
193
+ background: sectionproperties.generalbtn_bgColor,
194
+ borderTopLeftRadius: sectionproperties.generalbtn_bordertopleftradius + 'px',
195
+ borderTopRightRadius: sectionproperties.generalbtn_bordertoprightradius + 'px',
196
+ borderBottomRightRadius: sectionproperties.generalbtn_borderbottomrightradius + 'px',
197
+ borderBottomLeftRadius: sectionproperties.generalbtn_borderbottomleftradius + 'px',
198
+ fontWeight: sectionproperties.generalbtn_fontweight,
199
+ transition: '.3s',
200
+ ':hover': {
201
+ background: sectionproperties.generalbtn_bgColoronhover,
202
+ color: sectionproperties.generalbtn_textColoronhover,
203
+ },
204
+ }),
205
+ close_menu_icon_cont: css({
206
+ background: sectionproperties.closeSliderBgColor,
207
+ width: sectionproperties.closeSliderWidth + 'px',
208
+ height: sectionproperties.closeSliderHeight + 'px',
209
+ borderRadius: sectionproperties.closeSlider_borderBottomLeftRadius + 'px',
210
+ ':hover': {
211
+ background: sectionproperties.closeSliderBgColorHover,
212
+ },
213
+ }),
214
+ horizontalfilter_card: css({
215
+ marginBottom: sectionproperties.horizontalfilter_mb + 'px',
216
+ marginTop: sectionproperties.horizontalfilter_mt + 'px',
217
+ background: sectionproperties.horizontalfilter_cardbg,
218
+ border: sectionproperties.horizontalfilter_cardborderwidth + 'px solid ' + sectionproperties.horizontalfilter_cardbordercolor,
219
+ boxShadow: sectionproperties.horizontalfilter_cardboxShadow == 'Show' ? sectionproperties.horizontalfilter_cardboxShadowcolor : 'horizontalfilter_cardboxShadow',
220
+ }),
221
+ btn_item: css({
222
+ width: '20px',
223
+ height: '20px',
224
+ background: sectionproperties.filteritembtn_bgcolor,
225
+ ':hover': {
226
+ background: sectionproperties.filteritembtn_bghover,
227
+ },
228
+ }),
229
+ btn_item_active: css({
230
+ background: sectionproperties.btn_item_activebgcolor,
231
+ }),
232
+ timelineinnercont_active: css({
233
+ fontWeight: sectionproperties.activecat_fontweight,
234
+ color: sectionproperties.activecat_color,
235
+ }),
236
+ categoryName: css({
237
+ color: sectionproperties.filtertitle_color,
238
+ fontWeight: sectionproperties.filterCatFontWeight,
239
+ fontSize: sectionproperties.filterCatFontSize + 'px',
240
+ }),
241
+ pCollectionName: css({
242
+ color: sectionproperties.filtertitle_color,
243
+ fontWeight: sectionproperties.filterPCollFontWeight,
244
+ fontSize: sectionproperties.filterPCollFontSize + 'px',
245
+ }),
246
+ explorebtn: css({
247
+ fontSize: sectionproperties.explorebtnfontsize + 'px',
248
+ fontWeight: 600,
249
+ color: sectionproperties.explorebtncolor,
250
+ transition: '.3s',
251
+ ':hover': {
252
+ color: sectionproperties.explorebtncoloronhover,
253
+ },
254
+ }),
255
+ };
256
+ const CategoriesFilter = () => {
257
+ return (
258
+ <div class="col-lg-12 p-0">
259
+ {instcategories?.map((categoryItem, categoryIndex) => {
260
+ if (categoryItem.isinftiler == 1) {
261
+ return (
262
+ <Accordion allowMultipleExpanded={true} allowZeroExpanded={true}>
263
+ <AccordionItem uuid={categoryIndex}>
264
+ <AccordionItemHeading>
265
+ <AccordionItemButton>
266
+ <div className={filter_cssstyles.titlecontainer + ' row m-0 p-0 mb-1 pl-md-3 pr-md-3 '}>
267
+ <div className="col-lg-10 col-md-10 col-sm-10 p-0 d-flex align-items-center justify-content-start">
268
+ <p className={filter_cssstyles.categoryName + ' collapsetitle text-capitalize m-0 p-0 '}>
269
+ {langdetect == 'en' ? categoryItem.title_en : categoryItem.title_ar}
270
+ </p>
271
+ </div>
272
+ <div className="col-lg-2 col-md-2 col-sm-2 p-0">
273
+ <AccordionItemState>
274
+ {(state) => {
275
+ if (state.expanded == true) {
276
+ return (
277
+ <i className={filter_cssstyles.collapsetitle + ' collapsetitle h-100 d-flex align-items-center justify-content-end '}>
278
+ <FiChevronDown />
279
+ </i>
280
+ );
281
+ } else {
282
+ return (
283
+ <i className={filter_cssstyles.collapsetitle + ' collapsetitle h-100 d-flex align-items-center justify-content-end '}>
284
+ <FiChevronUp />
285
+ </i>
286
+ );
287
+ }
288
+ }}
289
+ </AccordionItemState>
290
+ </div>
291
+ <div className="col-lg-12 p-0">
292
+ <hr className="mt-3 mb-2" />
293
+ </div>
294
+ </div>
295
+ </AccordionItemButton>
296
+ </AccordionItemHeading>
297
+ <AccordionItemPanel className="p-0">
298
+ <div className="row mt-0 mb-2 ml-0 mr-0 d-lg-flex">
299
+ <div class="col-lg-12 mb-3 allcentered">
300
+ <p
301
+ class={filter_cssstyles.explorebtn + ' m-0 p-0 cursor-pointer text-capitalize '}
302
+ style={{ textDecoration: 'underline' }}
303
+ onClick={() => {
304
+ routingcountext(StaticPagesLinksContext.GeneralProductsComponent, true, 'categories/' + categoryItem.categoryid);
305
+ }}
306
+ >
307
+ {langdetect == 'en' ? sectionproperties.explorebtncontenten : sectionproperties.explorebtncontentar}{' '}
308
+ {langdetect == 'en' ? categoryItem.title_en : categoryItem.title_ar}
309
+ </p>
310
+ </div>
311
+ {authdetailsContext?.instinfo?.instcategories[categoryIndex]?.parentcolletions.map((parentcollectionitem, parentcollectionindex) => {
312
+ if (parentcollectionitem.isinftiler == 1) {
313
+ return (
314
+ <div class="col-lg-12">
315
+ <Accordion allowMultipleExpanded={true} allowZeroExpanded={true}>
316
+ <AccordionItem uuid={parentcollectionindex}>
317
+ <AccordionItemHeading>
318
+ <AccordionItemButton>
319
+ <div className={filter_cssstyles.titlecontainer + ' row m-0 p-0 mb-2 pl-md-3 pr-md-3 '}>
320
+ <div className="col-lg-10 col-md-10 col-sm-10 p-0">
321
+ <p
322
+ className={
323
+ langdetect == 'en'
324
+ ? filter_cssstyles.pCollectionName + ' collapsetitle text-capitalize m-0 p-0 '
325
+ : filter_cssstyles.pCollectionName + ' collapsetitle text-capitalize m-0 p-0 text-right'
326
+ }
327
+ >
328
+ {langdetect == 'en' ? parentcollectionitem.title_en : parentcollectionitem.title_ar}
329
+ </p>
330
+ </div>
331
+ <div className="col-lg-2 col-md-2 col-sm-2 p-0">
332
+ <AccordionItemState>
333
+ {(state) => {
334
+ if (state.expanded == true) {
335
+ return (
336
+ <i
337
+ className={
338
+ filter_cssstyles.collapsetitle +
339
+ ' collapsetitle h-100 d-flex align-items-center justify-content-end '
340
+ }
341
+ >
342
+ <FiChevronDown />
343
+ </i>
344
+ );
345
+ } else {
346
+ return (
347
+ <i
348
+ className={
349
+ filter_cssstyles.collapsetitle +
350
+ ' collapsetitle h-100 d-flex align-items-center justify-content-end '
351
+ }
352
+ >
353
+ <FiChevronUp />
354
+ </i>
355
+ );
356
+ }
357
+ }}
358
+ </AccordionItemState>
359
+ </div>
360
+ </div>
361
+ </AccordionItemButton>
362
+ </AccordionItemHeading>
363
+ <AccordionItemPanel className="p-0">
364
+ <div className="row mt-0 mb-2 ml-0 mr-0 d-lg-flex ">
365
+ <div class="col-lg-12 mb-3 allcentered">
366
+ <p
367
+ class={filter_cssstyles.explorebtn + ' m-0 p-0 cursor-pointer text-capitalize '}
368
+ style={{ textDecoration: 'underline' }}
369
+ onClick={() => {
370
+ routingcountext(
371
+ StaticPagesLinksContext.GeneralProductsComponent,
372
+ true,
373
+ 'parentcollections/' + parentcollectionitem.parentcollectionid,
374
+ );
375
+ }}
376
+ >
377
+ {langdetect == 'en' ? sectionproperties.explorebtncontenten : sectionproperties.explorebtncontentar}{' '}
378
+ {langdetect == 'en' ? parentcollectionitem.title_en : parentcollectionitem.title_ar}
379
+ </p>
380
+ </div>
381
+ <div className={'col-lg-12 pl-md-3 pr-md-3'}>
382
+ <div
383
+ className={
384
+ langdetect == 'en'
385
+ ? `${filterstyles.timeline} ${filterstyles.timelinetrans}` + ' p-sm-0 '
386
+ : `${filterstyles.timeline} ${filterstyles.timelinetrans}` + ' p-sm-0 '
387
+ }
388
+ >
389
+ {parentcollectionitem?.collections?.map((collectionitem, collectionindex) => {
390
+ if (collectionitem.isinftiler == 1) {
391
+ return (
392
+ <div
393
+ className={
394
+ `${filterstyles.border_left_line} ${filterstyles.timelineinnercont} ${
395
+ filter_cssstyles.timelineinnercont
396
+ }
397
+ ${collectionitem.isfilterselected ? `${filter_cssstyles.timelineinnercont_active} ${filterstyles.timelineinnercont_active}` : ''}
398
+ ` + ' d-flex align-items-start pb-3 '
399
+ }
400
+ onClick={() => {
401
+ setCollectionFilterFunc(collectionitem.collectionid);
402
+ }}
403
+ >
404
+ <div
405
+ className={
406
+ ` ${collectionitem.isfilterselected ? filter_cssstyles.btn_item_active : ''} ${
407
+ filterstyles.btn_item
408
+ } ${filter_cssstyles.btn_item}` + ' mb-2 d-flex align-items-center '
409
+ }
410
+ >
411
+ <i className="h-100 d-flex align-items-center"></i>
412
+ </div>
413
+ <div className={langdetect == 'en' ? 'ml-3' : 'mr-3 text-right'}>
414
+ <p
415
+ className={`${filterstyles.timeline_text} ${filter_cssstyles.timeline_text}` + ' m-0 p-0 '}
416
+ style={{
417
+ color: collectionitem.isfilterselected ? sectionproperties.activecat_color : '',
418
+ }}
419
+ >
420
+ {langdetect == 'en' ? collectionitem.title_en : collectionitem.title_ar}
421
+ </p>
422
+ </div>
423
+ </div>
424
+ );
425
+ }
426
+ })}
427
+ </div>
428
+ </div>
429
+ </div>
430
+ </AccordionItemPanel>
431
+ </AccordionItem>
432
+ </Accordion>
433
+ </div>
434
+ );
435
+ }
436
+ })}
437
+ </div>
438
+ </AccordionItemPanel>
439
+ </AccordionItem>
440
+ </Accordion>
441
+ );
442
+ }
443
+ })}
444
+ </div>
445
+ );
446
+ };
447
+ const CollectionsFilter = () => {
448
+ return (
449
+ <div class="col-lg-12 p-0">
450
+ <Accordion allowMultipleExpanded={true} allowZeroExpanded={true} preExpanded={[0, 1, 2, 3]}>
451
+ <AccordionItem uuid={0}>
452
+ <AccordionItemHeading>
453
+ <AccordionItemButton>
454
+ <div className={filter_cssstyles.titlecontainer + ' row m-0 p-0 mb-2 pl-md-3 pr-md-3 '}>
455
+ <div className="col-lg-10 col-md-10 col-sm-10 p-0">
456
+ <p className={langdetect == 'en' ? filter_cssstyles.collapsetitle + ' m-0 p-0 ' : filter_cssstyles.collapsetitle + ' m-0 p-0 text-right'}>
457
+ {langdetect == 'en' ? sectionproperties.filtercollectiontitle_en : sectionproperties.filtercollectiontitle_ar}
458
+ </p>
459
+ </div>
460
+ <div className="col-lg-2 col-md-2 col-sm-2 p-0">
461
+ <AccordionItemState>
462
+ {(state) => {
463
+ if (state.expanded == true) {
464
+ return (
465
+ <i className={filter_cssstyles.collapsetitle + ' collapsetitle h-100 d-flex align-items-center justify-content-end '}>
466
+ <FiChevronDown />
467
+ </i>
468
+ );
469
+ } else {
470
+ return (
471
+ <i className={filter_cssstyles.collapsetitle + ' collapsetitle h-100 d-flex align-items-center justify-content-end '}>
472
+ <FiChevronUp />
473
+ </i>
474
+ );
475
+ }
476
+ }}
477
+ </AccordionItemState>
478
+ </div>
479
+ </div>
480
+ </AccordionItemButton>
481
+ </AccordionItemHeading>
482
+ <AccordionItemPanel className="p-0">
483
+ <div className="row mt-0 mb-2 ml-0 mr-0 d-lg-flex pl-md-3 pr-md-3">
484
+ <div className={'col-lg-12'}>
485
+ <div
486
+ className={
487
+ langdetect == 'en'
488
+ ? `${filterstyles.timeline} ${filterstyles.timelinetrans}` + ' p-sm-0 '
489
+ : `${filterstyles.timeline} ${filterstyles.timelinetrans}` + ' p-sm-0 '
490
+ }
491
+ >
492
+ {instcollections.map((item, index) => {
493
+ return (
494
+ <div
495
+ className={
496
+ `${filterstyles.border_left_line} ${filterstyles.timelineinnercont} ${filter_cssstyles.timelineinnercont}
497
+ ${item.isfilterselected ? `${filter_cssstyles.timelineinnercont_active} ${filterstyles.timelineinnercont_active}` : ''}
498
+ ` + ' d-flex align-items-start pb-3 '
499
+ }
500
+ onClick={() => {
501
+ setCollectionFilterFunc(item.collectionid);
502
+ }}
503
+ >
504
+ <div
505
+ className={
506
+ ` ${item.isfilterselected ? filter_cssstyles.btn_item_active : ''} ${filterstyles.btn_item} ${filter_cssstyles.btn_item}` +
507
+ ' mb-2 d-flex align-items-center '
508
+ }
509
+ >
510
+ <i className="h-100 d-flex align-items-center"></i>
511
+ </div>
512
+ <div className={langdetect == 'en' ? 'ml-3' : 'mr-3 text-right'}>
513
+ <p
514
+ className={`${filterstyles.timeline_text} ${filter_cssstyles.timeline_text}` + ' m-0 p-0 '}
515
+ style={{
516
+ color: item.isfilterselected ? sectionproperties.activecat_color : '',
517
+ }}
518
+ >
519
+ {langdetect == 'en' ? item.title_en : item.title_ar}
520
+ </p>
521
+ </div>
522
+ </div>
523
+ );
524
+ })}
525
+ </div>
526
+ </div>
527
+ </div>
528
+ </AccordionItemPanel>
529
+ </AccordionItem>
530
+ <hr className="mt-3 mb-3" />
531
+ </Accordion>
532
+ </div>
533
+ );
534
+ };
535
+ const InstFilters = () => {
536
+ return (
537
+ <Accordion allowMultipleExpanded={true} allowZeroExpanded={true} preExpanded={[0, 1, 2, 3]}>
538
+ {instfilters.map((item, index) => {
539
+ return (
540
+ <>
541
+ <AccordionItem uuid={index}>
542
+ <AccordionItemHeading>
543
+ <AccordionItemButton>
544
+ <div className={filter_cssstyles.titlecontainer + ' row m-0 p-0 mb-2 pl-md-3 pr-md-3 '}>
545
+ <div className="col-lg-10 col-md-10 col-sm-10 p-0">
546
+ <p
547
+ className={
548
+ langdetect == 'en'
549
+ ? filter_cssstyles.collapsetitle + ' collapsetitle m-0 p-0 '
550
+ : filter_cssstyles.collapsetitle + ' collapsetitle m-0 p-0 text-right'
551
+ }
552
+ >
553
+ {langdetect == 'en' ? item.optionname : item.optionname_ar}
554
+ </p>
555
+ </div>
556
+ <div className="col-lg-2 col-md-2 col-sm-2 p-0">
557
+ <AccordionItemState>
558
+ {(state) => {
559
+ if (state.expanded == true) {
560
+ return (
561
+ <i className={filter_cssstyles.collapsetitle + ' collapsetitle h-100 d-flex align-items-center justify-content-end '}>
562
+ <FiChevronDown />
563
+ </i>
564
+ );
565
+ } else {
566
+ return (
567
+ <i className={filter_cssstyles.collapsetitle + ' collapsetitle h-100 d-flex align-items-center justify-content-end '}>
568
+ <FiChevronUp />
569
+ </i>
570
+ );
571
+ }
572
+ }}
573
+ </AccordionItemState>
574
+ </div>
575
+ </div>
576
+ </AccordionItemButton>
577
+ </AccordionItemHeading>
578
+ <AccordionItemPanel className="p-0">
579
+ <div className="row mt-0 mb-2 ml-0 mr-0 d-lg-flex pl-md-3 pr-md-3">
580
+ <div className={'col-lg-12'}>
581
+ <div className={langdetect == 'en' ? `${filterstyles.timeline}` + ' p-sm-0 ' : `${filterstyles.timeline} ${filterstyles.timelinetrans}` + ' p-sm-0 '}>
582
+ {item.productvaluesfilter.map((valueitem, valueindex) => {
583
+ return (
584
+ <div
585
+ className={
586
+ `${filterstyles.border_left_line} ${filterstyles.timelineinnercont} ${filter_cssstyles.timelineinnercont}
587
+ ${valueitem.isfilterselected ? `${filter_cssstyles.timelineinnercont_active} ${filterstyles.timelineinnercont_active}` : ''}
588
+
589
+ ` + ' d-flex align-items-start pb-3 '
590
+ }
591
+ onClick={() => {
592
+ setfilterfunc(valueitem.valueid, valueindex, index, 'assign');
593
+ }}
594
+ >
595
+ <div>
596
+ <div
597
+ className={
598
+ ` ${valueitem.isfilterselected ? filter_cssstyles.btn_item_active : ''} ${filterstyles.btn_item} ${filter_cssstyles.btn_item}` +
599
+ ' mb-2 d-flex align-items-center '
600
+ }
601
+ >
602
+ <i className="h-100 d-flex align-items-center"></i>
603
+ </div>
604
+ </div>
605
+ <div className={langdetect == 'en' ? 'ml-3' : 'mr-3 text-right'}>
606
+ <p
607
+ className={`${filterstyles.timeline_text} ${filter_cssstyles.timeline_text}` + ' m-0 p-0 '}
608
+ style={{
609
+ color: valueitem.isfilterselected ? sectionproperties.activecat_color : '',
610
+ }}
611
+ >
612
+ {langdetect == 'en' ? valueitem.valuename : valueitem.valuename_ar}
613
+ </p>
614
+ </div>
615
+ </div>
616
+ );
617
+ })}
618
+ </div>
619
+ </div>
620
+ </div>
621
+ </AccordionItemPanel>
622
+ </AccordionItem>
623
+ <hr className="mt-3 mb-3" />
624
+ </>
625
+ );
626
+ })}
627
+ </Accordion>
628
+ );
629
+ };
630
+ return (
631
+ <div className="col-lg-12 p-0 w-100 filter mt-md-0 d-md-none" style={{ marginTop: sectionproperties.filtersection_mt + 'px' }}>
632
+ {sectionproperties.filterdirection == 'Horizontal' && (
633
+ <div className={sectionproperties.filterscat_showas == 'vertical' ? ' row m-0 w-100 ' : `${filterstyles.outercontainer}` + ' row m-0 w-100 '}>
634
+ <div className={`${filterstyles.card}` + ' col-lg-2 w-100 '}>
635
+ <div className={`${filterstyles.horizontalfilter_card}` + ' w-100 d-flex align-items-center '}>
636
+ <div className={`${filterstyles.timeline}` + ' w-100'}>
637
+ <Dropdown>
638
+ <Dropdown.Toggle className="d-flex align-items-center w-100 bg-transparent">
639
+ <div className="row m-0 w-100 h-100 d-flex align-items-center">
640
+ <div className="col-lg-11 d-flex align-items-start p-0">
641
+ <p className={`${filter_cssstyles.collapsetitle}` + ' p-0 m-0 '}>
642
+ {langdetect == 'en' ? sectionproperties.filtercollectiontitle_en : sectionproperties.filtercollectiontitle_ar}
643
+ </p>
644
+ </div>
645
+ <i className="fa fa-chevron-down ml-auto"></i>
646
+ </div>
647
+ </Dropdown.Toggle>
648
+ <Dropdown.Menu>
649
+ {instcollections.map((item, index) => {
650
+ return (
651
+ <div
652
+ className={
653
+ `${filterstyles.border_left_line} ${filterstyles.timelineinnercont} ${filter_cssstyles.timelineinnercont} ${
654
+ item.isfilterselected ? `${filter_cssstyles.timelineinnercont_active} ${filterstyles.timelineinnercont_active}` : ''
655
+ } ` + ' d-flex align-items-start pb-3 '
656
+ }
657
+ onClick={() => {
658
+ setCollectionFilterFunc(item.collectionid);
659
+ // setfilterfunc(valueitem.valueid, valueindex, index, 'assign');
660
+ }}
661
+ >
662
+ <div>
663
+ <div
664
+ className={
665
+ ` ${item.isfilterselected ? filter_cssstyles.btn_item_active : ''} ${filterstyles.btn_item} ${filter_cssstyles.btn_item}` +
666
+ ' mb-2 d-flex align-items-center '
667
+ }
668
+ >
669
+ <i className="h-100 d-flex align-items-center"></i>
670
+ </div>
671
+ </div>
672
+ <div className={langdetect == 'en' ? 'ml-3' : 'mr-3 text-right'}>
673
+ <p className={`${filterstyles.timeline_text} ${filter_cssstyles.timeline_text}` + ' m-0 p-0 '}>
674
+ {langdetect == 'en' ? item.title_en : item.title_ar}
675
+ </p>
676
+ </div>
677
+ </div>
678
+ );
679
+ })}
680
+ </Dropdown.Menu>
681
+ </Dropdown>
682
+ </div>
683
+ </div>
684
+ </div>
685
+ {instfilters.map((item, index) => {
686
+ return (
687
+ <div className={`${filterstyles.card}` + ' col-lg-2 w-100 '}>
688
+ <div className={`${filterstyles.horizontalfilter_card}` + ' w-100 d-flex align-items-center '}>
689
+ <div className={`${filterstyles.timeline}` + ' w-100'}>
690
+ <Dropdown>
691
+ <Dropdown.Toggle className="d-flex align-items-center w-100 bg-transparent">
692
+ <div className="row m-0 w-100 h-100 d-flex align-items-center">
693
+ <div className="col-lg-11 d-flex align-items-start p-0">
694
+ <p className={`${filter_cssstyles.collapsetitle}` + ' p-0 m-0 '}>{item.optionname}</p>
695
+ </div>
696
+ <i className="fa fa-chevron-down ml-auto"></i>
697
+ </div>
698
+ </Dropdown.Toggle>
699
+ <Dropdown.Menu>
700
+ {item.productvaluesfilter.map((valueitem, valueindex) => {
701
+ return (
702
+ <div
703
+ className={
704
+ `${filterstyles.border_left_line} ${filterstyles.timelineinnercont} ${filter_cssstyles.timelineinnercont}
705
+ ${valueitem.isfilterselected ? `${filter_cssstyles.timelineinnercont_active} ${filterstyles.timelineinnercont_active}` : ''}
706
+ ` + ' d-flex align-items-start pb-3 '
707
+ }
708
+ onClick={() => {
709
+ setfilterfunc(valueitem.valueid, valueindex, index, 'assign');
710
+ }}
711
+ >
712
+ <div>
713
+ <div
714
+ className={
715
+ ` ${valueitem.isfilterselected ? filter_cssstyles.btn_item_active : ''} ${filterstyles.btn_item} ${filter_cssstyles.btn_item}` +
716
+ ' mb-2 d-flex align-items-center '
717
+ }
718
+ >
719
+ <i className="h-100 d-flex align-items-center"></i>
720
+ </div>
721
+ </div>
722
+ <div className={langdetect == 'en' ? 'ml-3' : 'mr-3 text-right'}>
723
+ <p className={`${filterstyles.timeline_text} ${filter_cssstyles.timeline_text}` + ' m-0 p-0 '}>
724
+ {langdetect == 'en' ? valueitem.valuename : valueitem.valuename_ar}
725
+ </p>
726
+ </div>
727
+ </div>
728
+ );
729
+ })}
730
+ </Dropdown.Menu>
731
+ </Dropdown>
732
+ </div>
733
+ </div>
734
+ </div>
735
+ );
736
+ })}
737
+ </div>
738
+ )}
739
+ {sectionproperties.filterdirection == 'Vertical' && (
740
+ <div
741
+ className={`${filterstyles.filterslider_container}` + ' pb-md-5 '}
742
+ id="filterslider"
743
+ style={{
744
+ background: sectionproperties.filter_backgroundcolor,
745
+ borderRadius: sectionproperties.filter_borderBottomLeftRadius + 'px',
746
+ }}
747
+ >
748
+ <div className={filter_cssstyles.filteraccordion + ' row m-0 w-100 pt-2 pb-3 filter-accordion '}>
749
+ <div className="col-lg-9 col-md-9 col-sm-9 d-none align-items-center d-md-flex">
750
+ <p
751
+ className="m-0 p-0 font-16 font-weight-600"
752
+ style={{
753
+ color: sectionproperties.filter_titlecolor,
754
+ fontSize: sectionproperties.filter_titlefontsize + 'px',
755
+ fontWeight: sectionproperties.filter_titlefontweight,
756
+ textTransform: sectionproperties.filter_titletextransform,
757
+ }}
758
+ >
759
+ {langdetect == 'en' ? 'Filter' : 'فلترة'}
760
+ </p>
761
+ </div>
762
+ <div className="col-lg-3 col-md-3 col-sm-3 d-none d-md-flex align-items-center justify-content-end p-0">
763
+ <div
764
+ className={`${filterstyles.close_menu_icon_cont} ${filter_cssstyles.close_menu_icon_cont}` + ' d-none d-md-flex align-items-center justify-content-center '}
765
+ onClick={() => {
766
+ var element = document.getElementById('filterslider');
767
+ element.classList.remove(filterstyles.filterslider_container_opened);
768
+ }}
769
+ >
770
+ <i className="h-100 d-flex align-items-center justify-content-center">
771
+ <IoMdClose
772
+ size={sectionproperties.closeSlider_fontSize}
773
+ style={{
774
+ color: sectionproperties.closeSlider_color,
775
+ }}
776
+ />
777
+ </i>
778
+ </div>
779
+ </div>
780
+ {sectionproperties.otherfilters == 'Show' && (
781
+ <div class="row m-0 w-100">
782
+ <div class="col-lg-12 d-flex justify-content-start">
783
+ <p
784
+ className="m-0 p-0 font-16 font-weight-600"
785
+ style={{
786
+ color: sectionproperties.filter_titlecolor,
787
+ fontSize: sectionproperties.filter_titlefontsize + 'px',
788
+ fontWeight: sectionproperties.filter_titlefontweight,
789
+ textTransform: sectionproperties.filter_titletextransform,
790
+ }}
791
+ >
792
+ {langdetect == 'en' ? 'Sort By' : 'ترتيب حسب'}
793
+ </p>
794
+ </div>
795
+ <div className="col-lg-12">
796
+ <hr className="mt-2 mb-3" />
797
+ </div>
798
+ {otherfilters.map((item, index) => {
799
+ return (
800
+ <div className="col-lg-12 pl-4 pr-4">
801
+ {/* <div class="dropdowncontainer mr-2 mt-sm-3">
802
+ {/* checked={checked}
803
+ <input class="dropdown" type="checkbox" id="dropdown" name="dropdown" hidden />
804
+ <label
805
+ // onClick={() => {
806
+ // setChecked(!checked);
807
+ // }}
808
+ className={' d-flex justify-content-center align-items-center for-dropdown'}
809
+ for="dropdown"
810
+ style={{ cursor: 'pointer' }}
811
+ >
812
+ {sortby}
813
+ {/* <i className="bx bx-chevron-down ml-2" style={{ fontSize: '20px' }}></i>
814
+ </label>
815
+ <div class="dropdownmenu">
816
+ {item.filterarray.map((valueitem, valueindex) => {
817
+ var ischecked = false;
818
+ if (item.payloadvalue == 'sortprice') {
819
+ if (valueitem.value == ProductFilterObjContext.sortprice) {
820
+ ischecked = true;
821
+ }
822
+ } else if (item.payloadvalue == 'sortdates') {
823
+ if (valueitem.value == ProductFilterObjContext.sortdates) {
824
+ ischecked = true;
825
+ }
826
+ }
827
+ return (
828
+ <p
829
+ class="dropdownlink"
830
+ onClick={() => {
831
+ // setfilterfunc(valueitem.valueid, valueindex, index, 'assign');
832
+ var tempfetchproductsfilerobjcontext = { ...ProductFilterObjContext };
833
+ if (tempfetchproductsfilerobjcontext[item.payloadvalue] == valueitem.value) {
834
+ tempfetchproductsfilerobjcontext[item.payloadvalue] = '';
835
+ } else {
836
+ tempfetchproductsfilerobjcontext[item.payloadvalue] = valueitem.value;
837
+ }
838
+ tempfetchproductsfilerobjcontext.page = 0;
839
+ setProductFilterObjContext({ ...tempfetchproductsfilerobjcontext });
840
+ routingcountext(
841
+ StaticPagesLinksContext.GeneralProductsComponent,
842
+ true,
843
+ encodeURIComponent(JSON.stringify(tempfetchproductsfilerobjcontext)),
844
+ );
845
+ setSortby(valueitem.name);
846
+ }}
847
+ >
848
+ {valueitem.name}
849
+ </p>
850
+ );
851
+ })}
852
+ </div>
853
+ </div> */}
854
+ <Accordion allowMultipleExpanded={true} allowZeroExpanded={true} preExpanded={[0, 1, 2, 3]} style={{ width: '100%' }}>
855
+ <AccordionItem uuid={index}>
856
+ <AccordionItemHeading>
857
+ <AccordionItemButton>
858
+ <div className={filter_cssstyles.titlecontainer + ' row m-0 p-0 mb-2 pl-md-3 pr-md-3 '}>
859
+ <div className="col-lg-10 col-md-10 col-sm-10 p-0">
860
+ <p
861
+ className={
862
+ langdetect == 'en'
863
+ ? filter_cssstyles.collapsetitle + ' m-0 p-0 collapsetitle '
864
+ : filter_cssstyles.collapsetitle + ' collapsetitle m-0 p-0 text-right'
865
+ }
866
+ >
867
+ {item.name}
868
+ </p>
869
+ </div>
870
+ <div className="col-lg-2 col-md-2 col-sm-2 p-0">
871
+ <AccordionItemState>
872
+ {(state) => {
873
+ if (state.expanded == true) {
874
+ return (
875
+ <i
876
+ className={
877
+ filter_cssstyles.collapsetitle + ' collapsetitle h-100 d-flex align-items-center justify-content-end '
878
+ }
879
+ >
880
+ <FiChevronDown />
881
+ </i>
882
+ );
883
+ } else {
884
+ return (
885
+ <i className={filter_cssstyles.collapsetitle + ' h-100 d-flex align-items-center justify-content-end '}>
886
+ <FiChevronUp />
887
+ </i>
888
+ );
889
+ }
890
+ }}
891
+ </AccordionItemState>
892
+ </div>
893
+ </div>
894
+ </AccordionItemButton>
895
+ </AccordionItemHeading>
896
+ <AccordionItemPanel className="p-0">
897
+ <div className="row mt-0 mb-2 ml-0 mr-0 d-lg-flex">
898
+ <div className={'col-lg-12'}>
899
+ <div
900
+ className={
901
+ langdetect == 'en'
902
+ ? `${filterstyles.timeline}` + ' p-sm-0 '
903
+ : `${filterstyles.timeline} ${filterstyles.timelinetrans}` + ' p-sm-0 '
904
+ }
905
+ >
906
+ {item.filterarray.map((valueitem, valueindex) => {
907
+ var ischecked = false;
908
+ if (item.payloadvalue == 'sortprice') {
909
+ if (valueitem.value == ProductFilterObjContext.sortprice) {
910
+ ischecked = true;
911
+ }
912
+ } else if (item.payloadvalue == 'sortdates') {
913
+ if (valueitem.value == ProductFilterObjContext.sortdates) {
914
+ ischecked = true;
915
+ }
916
+ }
917
+ return (
918
+ <div
919
+ className={
920
+ `${filterstyles.border_left_line} ${filterstyles.timelineinnercont} ${filter_cssstyles.timelineinnercont}
921
+ ${ischecked ? `${filter_cssstyles.timelineinnercont_active} ${filterstyles.timelineinnercont_active}` : ''}
922
+
923
+ ` + ' d-flex align-items-start pb-3 '
924
+ }
925
+ onClick={() => {
926
+ // setfilterfunc(valueitem.valueid, valueindex, index, 'assign');
927
+ var tempfetchproductsfilerobjcontext = { ...ProductFilterObjContext };
928
+ if (tempfetchproductsfilerobjcontext[item.payloadvalue] == valueitem.value) {
929
+ tempfetchproductsfilerobjcontext[item.payloadvalue] = '';
930
+ } else {
931
+ tempfetchproductsfilerobjcontext[item.payloadvalue] = valueitem.value;
932
+ }
933
+ tempfetchproductsfilerobjcontext.page = 0;
934
+ setProductFilterObjContext({ ...tempfetchproductsfilerobjcontext });
935
+ routingcountext(
936
+ StaticPagesLinksContext.GeneralProductsComponent,
937
+ true,
938
+ encodeURIComponent(JSON.stringify(tempfetchproductsfilerobjcontext)),
939
+ );
940
+ }}
941
+ >
942
+ <div>
943
+ <div
944
+ className={
945
+ ` ${ischecked ? filter_cssstyles.btn_item_active : ''} ${filterstyles.btn_item} ${
946
+ filter_cssstyles.btn_item
947
+ }` + ' mb-2 d-flex align-items-center '
948
+ }
949
+ >
950
+ <i className="h-100 d-flex align-items-center"></i>
951
+ </div>
952
+ </div>
953
+ <div className={langdetect == 'en' ? 'ml-3' : 'mr-3 text-right'}>
954
+ <p
955
+ className={`${filterstyles.timeline_text} ${filter_cssstyles.timeline_text}` + ' m-0 p-0 '}
956
+ style={{
957
+ color: ischecked ? sectionproperties.activecat_color : '',
958
+ }}
959
+ >
960
+ {valueitem.name}
961
+ </p>
962
+ </div>
963
+ </div>
964
+ );
965
+ })}
966
+ </div>
967
+ </div>
968
+ </div>
969
+ </AccordionItemPanel>
970
+ </AccordionItem>
971
+ </Accordion>
972
+ </div>
973
+ );
974
+ })}
975
+ </div>
976
+ )}
977
+ <div className="col-lg-9 col-md-9 col-sm-9 d-flex align-items-center d-md-none">
978
+ <p
979
+ className="m-0 p-0 font-16 font-weight-600"
980
+ style={{
981
+ color: sectionproperties.filter_titlecolor,
982
+ fontSize: sectionproperties.filter_titlefontsize + 'px',
983
+ fontWeight: sectionproperties.filter_titlefontweight,
984
+ textTransform: sectionproperties.filter_titletextransform,
985
+ }}
986
+ >
987
+ {langdetect == 'en' ? 'Filter' : 'فلترة'}
988
+ </p>
989
+ </div>
990
+ <div className="col-lg-3 col-md-3 col-sm-3 d-flex d-md-none align-items-center justify-content-end p-0">
991
+ <div
992
+ className={`${filterstyles.close_menu_icon_cont} ${filter_cssstyles.close_menu_icon_cont}` + ' d-none d-md-flex align-items-center justify-content-center '}
993
+ onClick={() => {
994
+ var element = document.getElementById('filterslider');
995
+ element.classList.remove(filterstyles.filterslider_container_opened);
996
+ }}
997
+ >
998
+ <i className="h-100 d-flex align-items-center justify-content-center">
999
+ <IoMdClose
1000
+ size={sectionproperties.closeSlider_fontSize}
1001
+ style={{
1002
+ color: sectionproperties.closeSlider_color,
1003
+ }}
1004
+ />
1005
+ </i>
1006
+ </div>
1007
+ </div>
1008
+ <div className="col-lg-12">
1009
+ <hr className="mt-2 mb-3" />
1010
+ </div>
1011
+ <div className={filter_cssstyles.filteraccordion + ' col-lg-12 filter-accordion p-md-0 pl-4 pr-4 '}>
1012
+ {sectionproperties.filterType == 'All' && <div class="row m-0 w-100">{CategoriesFilter()}</div>}
1013
+ {sectionproperties.filterType == 'Collections' && <div class="row m-0 w-100">{CollectionsFilter()}</div>}
1014
+ {InstFilters()}
1015
+ </div>
1016
+ </div>
1017
+ </div>
1018
+ )}
1019
+ <div className="col-lg-12">
1020
+ <Offcanvas
1021
+ show={props?.openFilterSlider}
1022
+ onHide={() => {
1023
+ props.setopenFilterSlider(false);
1024
+ }}
1025
+ placement="end"
1026
+ scroll={true}
1027
+ style={{
1028
+ minWidth: '200px',
1029
+ background: sectionproperties.filter_backgroundcolor,
1030
+ borderRadius: sectionproperties.filter_borderBottomLeftRadius + 'px',
1031
+ }}
1032
+ backdrop={true}
1033
+ >
1034
+ <Offcanvas.Header>
1035
+ <Offcanvas.Title>
1036
+ <div className="row m-0 w-100 mt-2">
1037
+ <div className="col-lg-9 col-md-9 col-sm-9 d-none align-items-center d-md-flex">
1038
+ <p
1039
+ className="m-0 p-0 font-16 font-weight-600"
1040
+ style={{
1041
+ color: sectionproperties.filter_titlecolor,
1042
+ fontSize: sectionproperties.filter_titlefontsize + 'px',
1043
+ fontWeight: sectionproperties.filter_titlefontweight,
1044
+ textTransform: sectionproperties.filter_titletextransform,
1045
+ }}
1046
+ >
1047
+ {langdetect == 'en' ? 'Filter' : 'فلترة'}
1048
+ </p>
1049
+ </div>
1050
+ <div className="col-lg-3 col-md-3 col-sm-3 d-none d-md-flex align-items-center justify-content-end p-0">
1051
+ <div
1052
+ className={`${filterstyles.close_menu_icon_cont} ${filter_cssstyles.close_menu_icon_cont}` + ' d-none d-md-flex align-items-center justify-content-center '}
1053
+ onClick={() => {
1054
+ props.setopenFilterSlider(false);
1055
+ }}
1056
+ >
1057
+ <i className="h-100 d-flex align-items-center justify-content-center">
1058
+ <IoMdClose
1059
+ size={sectionproperties.closeSlider_fontSize}
1060
+ style={{
1061
+ color: sectionproperties.closeSlider_color,
1062
+ }}
1063
+ />
1064
+ </i>
1065
+ </div>
1066
+ </div>
1067
+ <div class="col-lg-12">
1068
+ <hr class="mt-2 mb-2" />
1069
+ </div>
1070
+ </div>
1071
+ </Offcanvas.Title>
1072
+ </Offcanvas.Header>
1073
+ <Offcanvas.Body>
1074
+ <div
1075
+ className={' pb-md-5 '}
1076
+ style={{
1077
+ background: sectionproperties.filter_backgroundcolor,
1078
+ borderRadius: sectionproperties.filter_borderBottomLeftRadius + 'px',
1079
+ }}
1080
+ >
1081
+ <div className={filter_cssstyles.filteraccordion + ' row m-0 w-100 pt-2 pb-3 filter-accordion '}>
1082
+ {sectionproperties.otherfilters == 'Show' &&
1083
+ otherfilters.map((item, index) => {
1084
+ return (
1085
+ <>
1086
+ <Accordion allowMultipleExpanded={true} allowZeroExpanded={true} preExpanded={[0, 1, 2, 3]} style={{ width: '100%' }}>
1087
+ <AccordionItem uuid={index}>
1088
+ <AccordionItemHeading>
1089
+ <AccordionItemButton>
1090
+ <div className={filter_cssstyles.titlecontainer + ' row m-0 p-0 mb-2 pl-md-3 pr-md-3 '}>
1091
+ <div className="col-lg-10 col-md-10 col-sm-10 p-0">
1092
+ <p
1093
+ className={
1094
+ langdetect == 'en'
1095
+ ? filter_cssstyles.collapsetitle + ' m-0 p-0 '
1096
+ : filter_cssstyles.collapsetitle + ' m-0 p-0 text-right'
1097
+ }
1098
+ >
1099
+ {item.name}
1100
+ </p>
1101
+ </div>
1102
+ <div className="col-lg-2 col-md-2 col-sm-2 p-0">
1103
+ <AccordionItemState>
1104
+ {(state) => {
1105
+ if (state.expanded == true) {
1106
+ return (
1107
+ <i className={filter_cssstyles.collapsetitle + ' h-100 d-flex align-items-center justify-content-end '}>
1108
+ <FiChevronDown />
1109
+ </i>
1110
+ );
1111
+ } else {
1112
+ return (
1113
+ <i className={filter_cssstyles.collapsetitle + ' h-100 d-flex align-items-center justify-content-end '}>
1114
+ <FiChevronUp />
1115
+ </i>
1116
+ );
1117
+ }
1118
+ }}
1119
+ </AccordionItemState>
1120
+ </div>
1121
+ </div>
1122
+ </AccordionItemButton>
1123
+ </AccordionItemHeading>
1124
+ <AccordionItemPanel className="p-0">
1125
+ <div className="row mt-0 mb-2 ml-0 mr-0 d-lg-flex">
1126
+ <div className={'col-lg-12'}>
1127
+ <div
1128
+ className={
1129
+ langdetect == 'en'
1130
+ ? `${filterstyles.timeline}` + ' p-sm-0 '
1131
+ : `${filterstyles.timeline} ${filterstyles.timelinetrans}` + ' p-sm-0 '
1132
+ }
1133
+ >
1134
+ {item.filterarray.map((valueitem, valueindex) => {
1135
+ var ischecked = false;
1136
+ if (item.payloadvalue == 'sortprice') {
1137
+ if (valueitem.value == ProductFilterObjContext.sortprice) {
1138
+ ischecked = true;
1139
+ }
1140
+ } else if (item.payloadvalue == 'sortdates') {
1141
+ if (valueitem.value == ProductFilterObjContext.sortdates) {
1142
+ ischecked = true;
1143
+ }
1144
+ }
1145
+ return (
1146
+ <div
1147
+ className={
1148
+ `${filterstyles.border_left_line} ${filterstyles.timelineinnercont} ${filter_cssstyles.timelineinnercont}
1149
+ ${ischecked ? `${filter_cssstyles.timelineinnercont_active} ${filterstyles.timelineinnercont_active}` : ''}
1150
+
1151
+ ` + ' d-flex align-items-start pb-3 '
1152
+ }
1153
+ onClick={() => {
1154
+ // setfilterfunc(valueitem.valueid, valueindex, index, 'assign');
1155
+ var tempfetchproductsfilerobjcontext = { ...ProductFilterObjContext };
1156
+ if (tempfetchproductsfilerobjcontext[item.payloadvalue] == valueitem.value) {
1157
+ tempfetchproductsfilerobjcontext[item.payloadvalue] = '';
1158
+ } else {
1159
+ tempfetchproductsfilerobjcontext[item.payloadvalue] = valueitem.value;
1160
+ }
1161
+ setProductFilterObjContext({ ...tempfetchproductsfilerobjcontext });
1162
+ }}
1163
+ >
1164
+ <div>
1165
+ <div
1166
+ className={
1167
+ ` ${ischecked ? filter_cssstyles.btn_item_active : ''} ${filterstyles.btn_item} ${
1168
+ filter_cssstyles.btn_item
1169
+ }` + ' mb-2 d-flex align-items-center '
1170
+ }
1171
+ >
1172
+ <i className="h-100 d-flex align-items-center"></i>
1173
+ </div>
1174
+ </div>
1175
+ <div className={langdetect == 'en' ? 'ml-3' : 'mr-3 text-right'}>
1176
+ <p
1177
+ className={`${filterstyles.timeline_text} ${filter_cssstyles.timeline_text}` + ' m-0 p-0 '}
1178
+ style={{
1179
+ color: ischecked ? sectionproperties.activecat_color : '',
1180
+ }}
1181
+ >
1182
+ {valueitem.name}
1183
+ </p>
1184
+ </div>
1185
+ </div>
1186
+ );
1187
+ })}
1188
+ </div>
1189
+ </div>
1190
+ </div>
1191
+ </AccordionItemPanel>
1192
+ </AccordionItem>
1193
+ </Accordion>
1194
+ <hr className="mt-3 mb-3" />
1195
+ </>
1196
+ );
1197
+ })}
1198
+ {sectionproperties.otherfilters == 'Show' && (
1199
+ <div className="col-lg-12">
1200
+ <hr className="mt-2 mb-3" />
1201
+ </div>
1202
+ )}
1203
+ <div className={filter_cssstyles.filteraccordion + ' col-lg-12 filter-accordion p-md-0 '}>
1204
+ {sectionproperties.filterType == 'All' && <div class="row m-0 w-100">{CategoriesFilter()}</div>}
1205
+ {sectionproperties.filterType == 'Collections' && <div class="row m-0 w-100">{CollectionsFilter()}</div>}
1206
+ {InstFilters()}
1207
+ {/* <Accordion allowMultipleExpanded={true} allowZeroExpanded={true} preExpanded={[0, 1, 2, 3]}>
1208
+ <AccordionItem uuid={0}>
1209
+ <AccordionItemHeading>
1210
+ <AccordionItemButton>
1211
+ <div className={filter_cssstyles.titlecontainer + ' row m-0 p-0 mb-2 pl-md-3 pr-md-3 '}>
1212
+ <div className="col-lg-10 col-md-10 col-sm-10 p-0">
1213
+ <p className={langdetect == 'en' ? filter_cssstyles.collapsetitle + ' m-0 p-0 ' : filter_cssstyles.collapsetitle + ' m-0 p-0 text-right'}>
1214
+ {langdetect == 'en' ? sectionproperties.filtercollectiontitle_en : sectionproperties.filtercollectiontitle_ar}
1215
+ </p>
1216
+ </div>
1217
+ <div className="col-lg-2 col-md-2 col-sm-2 p-0">
1218
+ <AccordionItemState>
1219
+ {(state) => {
1220
+ if (state.expanded == true) {
1221
+ return (
1222
+ <i className={filter_cssstyles.collapsetitle + ' h-100 d-flex align-items-center justify-content-end '}>
1223
+ <FiChevronDown />
1224
+ </i>
1225
+ );
1226
+ } else {
1227
+ return (
1228
+ <i className={filter_cssstyles.collapsetitle + ' h-100 d-flex align-items-center justify-content-end '}>
1229
+ <FiChevronUp />
1230
+ </i>
1231
+ );
1232
+ }
1233
+ }}
1234
+ </AccordionItemState>
1235
+ </div>
1236
+ </div>
1237
+ </AccordionItemButton>
1238
+ </AccordionItemHeading>
1239
+ <AccordionItemPanel className="p-0">
1240
+ <div className="row mt-0 mb-2 ml-0 mr-0 d-lg-flex">
1241
+ <div className={'col-lg-12'}>
1242
+ <div
1243
+ className={
1244
+ langdetect == 'en'
1245
+ ? `${filterstyles.timeline} ${filterstyles.timelinetrans}` + ' p-sm-0 '
1246
+ : `${filterstyles.timeline} ${filterstyles.timelinetrans}` + ' p-sm-0 '
1247
+ }
1248
+ >
1249
+ {instcollections.map((item, index) => {
1250
+ return (
1251
+ <div
1252
+ className={
1253
+ `${filterstyles.border_left_line} ${filterstyles.timelineinnercont} ${filter_cssstyles.timelineinnercont}
1254
+ ${item.isfilterselected ? `${filter_cssstyles.timelineinnercont_active} ${filterstyles.timelineinnercont_active}` : ''}
1255
+ ` + ' d-flex align-items-start pb-3 '
1256
+ }
1257
+ onClick={() => {
1258
+ setCollectionFilterFunc(item.collectionid);
1259
+ }}
1260
+ >
1261
+ <div
1262
+ className={
1263
+ ` ${item.isfilterselected ? filter_cssstyles.btn_item_active : ''} ${filterstyles.btn_item} ${
1264
+ filter_cssstyles.btn_item
1265
+ }` + ' mb-2 d-flex align-items-center '
1266
+ }
1267
+ >
1268
+ <i className="h-100 d-flex align-items-center"></i>
1269
+ </div>
1270
+ <div className={langdetect == 'en' ? 'ml-3' : 'mr-3 text-right'}>
1271
+ <p
1272
+ className={`${filterstyles.timeline_text} ${filter_cssstyles.timeline_text}` + ' m-0 p-0 '}
1273
+ style={{
1274
+ color: item.isfilterselected ? sectionproperties.activecat_color : '',
1275
+ }}
1276
+ >
1277
+ {langdetect == 'en' ? item.title_en : item.title_ar}
1278
+ </p>
1279
+ </div>
1280
+ </div>
1281
+ );
1282
+ })}
1283
+ </div>
1284
+ </div>
1285
+ </div>
1286
+ </AccordionItemPanel>
1287
+ </AccordionItem>
1288
+ </Accordion>
1289
+ <div class="col-lg-12">
1290
+ <hr className="mt-3 mb-3" />
1291
+ </div>
1292
+ <Accordion allowMultipleExpanded={true} allowZeroExpanded={true} preExpanded={[0, 1, 2, 3]}>
1293
+ {instfilters.map((item, index) => {
1294
+ return (
1295
+ <>
1296
+ <AccordionItem uuid={index}>
1297
+ <AccordionItemHeading>
1298
+ <AccordionItemButton>
1299
+ <div className={filter_cssstyles.titlecontainer + ' row m-0 p-0 mb-2 pl-md-3 pr-md-3 '}>
1300
+ <div className="col-lg-10 col-md-10 col-sm-10 p-0">
1301
+ <p
1302
+ className={
1303
+ langdetect == 'en'
1304
+ ? filter_cssstyles.collapsetitle + ' m-0 p-0 '
1305
+ : filter_cssstyles.collapsetitle + ' m-0 p-0 text-right'
1306
+ }
1307
+ >
1308
+ {langdetect == 'en' ? item.optionname : item.optionname_ar}
1309
+ </p>
1310
+ </div>
1311
+ <div className="col-lg-2 col-md-2 col-sm-2 p-0">
1312
+ <AccordionItemState>
1313
+ {(state) => {
1314
+ if (state.expanded == true) {
1315
+ return (
1316
+ <i className={filter_cssstyles.collapsetitle + ' h-100 d-flex align-items-center justify-content-end '}>
1317
+ <FiChevronDown />
1318
+ </i>
1319
+ );
1320
+ } else {
1321
+ return (
1322
+ <i className={filter_cssstyles.collapsetitle + ' h-100 d-flex align-items-center justify-content-end '}>
1323
+ <FiChevronUp />
1324
+ </i>
1325
+ );
1326
+ }
1327
+ }}
1328
+ </AccordionItemState>
1329
+ </div>
1330
+ </div>
1331
+ </AccordionItemButton>
1332
+ </AccordionItemHeading>
1333
+ <AccordionItemPanel className="p-0">
1334
+ <div className="row mt-0 mb-2 ml-0 mr-0 d-lg-flex">
1335
+ <div className={'col-lg-12'}>
1336
+ <div
1337
+ className={
1338
+ langdetect == 'en'
1339
+ ? `${filterstyles.timeline}` + ' p-sm-0 '
1340
+ : `${filterstyles.timeline} ${filterstyles.timelinetrans}` + ' p-sm-0 '
1341
+ }
1342
+ >
1343
+ {item.productvaluesfilter.map((valueitem, valueindex) => {
1344
+ return (
1345
+ <div
1346
+ className={
1347
+ `${filterstyles.border_left_line} ${filterstyles.timelineinnercont} ${filter_cssstyles.timelineinnercont}
1348
+ ${valueitem.isfilterselected ? `${filter_cssstyles.timelineinnercont_active} ${filterstyles.timelineinnercont_active}` : ''}
1349
+
1350
+ ` + ' d-flex align-items-start pb-3 '
1351
+ }
1352
+ onClick={() => {
1353
+ setfilterfunc(valueitem.valueid, valueindex, index, 'assign');
1354
+ }}
1355
+ >
1356
+ <div>
1357
+ <div
1358
+ className={
1359
+ ` ${valueitem.isfilterselected ? filter_cssstyles.btn_item_active : ''} ${filterstyles.btn_item} ${
1360
+ filter_cssstyles.btn_item
1361
+ }` + ' mb-2 d-flex align-items-center '
1362
+ }
1363
+ >
1364
+ <i className="h-100 d-flex align-items-center"></i>
1365
+ </div>
1366
+ </div>
1367
+ <div className={langdetect == 'en' ? 'ml-3' : 'mr-3 text-right'}>
1368
+ <p
1369
+ className={`${filterstyles.timeline_text} ${filter_cssstyles.timeline_text}` + ' m-0 p-0 '}
1370
+ style={{
1371
+ color: valueitem.isfilterselected ? sectionproperties.activecat_color : '',
1372
+ }}
1373
+ >
1374
+ {langdetect == 'en' ? valueitem.valuename : valueitem.valuename_ar}
1375
+ </p>
1376
+ </div>
1377
+ </div>
1378
+ );
1379
+ })}
1380
+ </div>
1381
+ </div>
1382
+ </div>
1383
+ </AccordionItemPanel>
1384
+ </AccordionItem>
1385
+ <hr className="mt-3 mb-3" />
1386
+ </>
1387
+ );
1388
+ })}
1389
+ </Accordion> */}
1390
+ </div>
1391
+ </div>
1392
+ </div>
1393
+ </Offcanvas.Body>
1394
+ </Offcanvas>
1395
+ </div>
1396
+ </div>
1397
+ );
1398
+ };
1399
+ export default Filter;