contentoh-components-library 21.0.72 → 21.0.73

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 (282) hide show
  1. package/.env.development +20 -5
  2. package/.env.production +18 -3
  3. package/CHANGELOG.md +31 -33
  4. package/dist/assets/images/generalButton/downloadIcon.svg +3 -0
  5. package/dist/assets/images/genericModal/closeWhite.svg +3 -0
  6. package/dist/assets/images/genericModal/errorModal.svg +3 -0
  7. package/dist/assets/images/genericModal/yellowAlert.svg +12 -0
  8. package/dist/assets/images/modalsSVGs/attributesSent.svg +208 -0
  9. package/dist/assets/images/modalsSVGs/descriptionSent.svg +237 -0
  10. package/dist/assets/images/modalsSVGs/providerSent.svg +445 -0
  11. package/dist/assets/images/modalsSVGs/uploadingImages.svg +148 -0
  12. package/dist/components/atoms/AsignationOption/index.js +9 -5
  13. package/dist/components/atoms/AsignationOption/styles.js +1 -1
  14. package/dist/components/{molecules/SignInLogin/SignInLogin.stories.js → atoms/CharCounter/CharCounter.stories.js} +10 -7
  15. package/dist/components/atoms/CharCounter/index.js +22 -0
  16. package/dist/components/{molecules/LogoLoading → atoms/CharCounter}/styles.js +3 -1
  17. package/dist/components/atoms/CheckBox/index.js +4 -2
  18. package/dist/components/atoms/Commentary/Commentary.stories.js +1 -0
  19. package/dist/components/atoms/Commentary/index.js +23 -0
  20. package/dist/components/{organisms/ChangePassword → atoms/Commentary}/styles.js +6 -1
  21. package/dist/components/atoms/GeneralButton/index.js +5 -0
  22. package/dist/components/atoms/GeneralButton/styles.js +4 -2
  23. package/dist/components/atoms/GeneralInput/index.js +72 -25
  24. package/dist/components/atoms/GeneralInput/styles.js +7 -1
  25. package/dist/components/atoms/GenericModal/index.js +4 -2
  26. package/dist/components/atoms/GenericModal/styles.js +1 -1
  27. package/dist/components/atoms/GradientPanel/styles.js +1 -1
  28. package/dist/components/atoms/Input/index.js +26 -0
  29. package/dist/components/atoms/Input/style.js +26 -0
  30. package/dist/components/{organisms/ChangePassword/ChangePassword.stories.js → atoms/InputFormatter/Wysiwyg.stories.js} +9 -7
  31. package/dist/components/atoms/InputFormatter/index.js +184 -0
  32. package/dist/components/atoms/InputFormatter/styles.js +33 -0
  33. package/dist/components/atoms/LabelToInput/index.js +53 -0
  34. package/dist/components/atoms/LabelToInput/style.js +22 -0
  35. package/dist/components/atoms/Loading/index.js +0 -1
  36. package/dist/components/atoms/LogoImage/index.js +0 -1
  37. package/dist/components/atoms/Percent/Percent.stories.js +39 -0
  38. package/dist/components/atoms/Percent/index.js +39 -0
  39. package/dist/components/atoms/Percent/styles.js +20 -0
  40. package/dist/components/atoms/PriorityFlag/index.js +1 -1
  41. package/dist/components/atoms/ProductImage/styles.js +1 -1
  42. package/dist/components/atoms/ProgressBar/index.js +2 -2
  43. package/dist/components/atoms/ProgressBar/styles.js +3 -5
  44. package/dist/components/atoms/ScreenHeader/index.js +1 -1
  45. package/dist/components/atoms/ScreenHeader/styles.js +1 -1
  46. package/dist/components/atoms/Select/index.js +39 -0
  47. package/dist/components/atoms/Select/style.js +32 -0
  48. package/dist/components/atoms/StatusTag/index.js +37 -2
  49. package/dist/components/atoms/StatusTag/styles.js +1 -1
  50. package/dist/components/atoms/ValidationPanel/index.js +5 -3
  51. package/dist/components/molecules/AvatarAndValidation/index.js +17 -7
  52. package/dist/components/molecules/AvatarAndValidation/styles.js +1 -1
  53. package/dist/components/molecules/CarouselImagesLogin/index.js +42 -40
  54. package/dist/components/molecules/FeaturesBar/index.js +1 -1
  55. package/dist/components/molecules/GalleryElement/index.js +80 -21
  56. package/dist/components/molecules/GalleryElement/styles.js +1 -1
  57. package/dist/components/molecules/GalleryHeader/index.js +28 -6
  58. package/dist/components/molecules/GalleryHeader/styles.js +1 -1
  59. package/dist/components/molecules/ImageSelector/index.js +2 -4
  60. package/dist/components/molecules/LoginPasswordStrength/index.js +9 -9
  61. package/dist/components/molecules/LoginPasswordStrength/styles.js +1 -1
  62. package/dist/components/molecules/ProductNameHeader/index.js +1 -2
  63. package/dist/components/molecules/RetailerSelector/RetailerSelector.stories.js +48 -0
  64. package/dist/components/molecules/RetailerSelector/index.js +74 -0
  65. package/dist/components/{atoms/MenuCommercialRetailers → molecules/RetailerSelector}/styles.js +1 -1
  66. package/dist/components/molecules/StatusAsignationInfo/index.js +46 -28
  67. package/dist/components/molecules/StatusAsignationInfo/styles.js +1 -1
  68. package/dist/components/molecules/TableHeader/index.js +12 -5
  69. package/dist/components/molecules/TableHeader/styles.js +1 -1
  70. package/dist/components/molecules/TagAndInput/index.js +24 -2
  71. package/dist/components/molecules/TextAndGradient/TextAndGradient.stories.js +31 -0
  72. package/dist/components/molecules/TextAndGradient/index.js +36 -0
  73. package/dist/components/molecules/TextAndGradient/styles.js +18 -0
  74. package/dist/components/organisms/FullProductNameHeader/index.js +31 -9
  75. package/dist/components/organisms/FullTabsMenu/index.js +18 -5
  76. package/dist/components/organisms/GlobalModal/index.js +73 -0
  77. package/dist/components/organisms/GlobalModal/styles.js +66 -0
  78. package/dist/components/organisms/ImageDataTable/index.js +90 -14
  79. package/dist/components/organisms/InputGroup/index.js +34 -13
  80. package/dist/components/organisms/InputGroup/styles.js +1 -1
  81. package/dist/components/organisms/ProductImageModal/index.js +13 -10
  82. package/dist/components/organisms/ProductImageModal/styles.js +1 -1
  83. package/dist/components/pages/ProviderProductEdition/ProviderProductEdition.stories.js +135 -0
  84. package/dist/components/pages/ProviderProductEdition/index.js +1979 -0
  85. package/dist/components/pages/ProviderProductEdition/styles.js +23 -0
  86. package/dist/components/pages/RetailerProductEdition/RetailerProductEdition.stories.js +91 -347
  87. package/dist/components/pages/RetailerProductEdition/index.js +1610 -60
  88. package/dist/components/pages/RetailerProductEdition/styles.js +1 -1
  89. package/dist/global-files/data.js +213 -53
  90. package/dist/global-files/global-styles.css +1 -0
  91. package/dist/global-files/variables.js +1 -0
  92. package/dist/index.js +30 -290
  93. package/package.json +17 -18
  94. package/src/assets/images/generalButton/downloadIcon.svg +3 -0
  95. package/src/assets/images/genericModal/closeWhite.svg +3 -0
  96. package/src/assets/images/genericModal/errorModal.svg +3 -0
  97. package/src/assets/images/genericModal/yellowAlert.svg +12 -0
  98. package/src/assets/images/modalsSVGs/attributesSent.svg +208 -0
  99. package/src/assets/images/modalsSVGs/descriptionSent.svg +237 -0
  100. package/src/assets/images/modalsSVGs/providerSent.svg +445 -0
  101. package/src/assets/images/modalsSVGs/uploadingImages.svg +148 -0
  102. package/src/components/atoms/AsignationOption/index.js +7 -5
  103. package/src/components/atoms/AsignationOption/styles.js +9 -1
  104. package/src/components/atoms/CharCounter/CharCounter.stories.js +11 -0
  105. package/src/components/atoms/CharCounter/index.js +13 -0
  106. package/src/components/atoms/CharCounter/styles.js +10 -0
  107. package/src/components/atoms/CheckBox/index.js +8 -2
  108. package/src/components/atoms/Commentary/Commentary.stories.js +0 -0
  109. package/src/components/atoms/Commentary/index.js +9 -0
  110. package/src/components/atoms/Commentary/styles.js +16 -0
  111. package/src/components/atoms/GeneralButton/index.js +9 -2
  112. package/src/components/atoms/GeneralButton/styles.js +23 -0
  113. package/src/components/atoms/GeneralInput/index.js +71 -23
  114. package/src/components/atoms/GeneralInput/styles.js +11 -1
  115. package/src/components/atoms/GenericModal/index.js +2 -2
  116. package/src/components/atoms/GenericModal/styles.js +10 -2
  117. package/src/components/atoms/GradientPanel/styles.js +0 -1
  118. package/src/components/atoms/Input/index.js +15 -0
  119. package/src/components/atoms/Input/style.js +31 -0
  120. package/src/components/atoms/InputFormatter/Wysiwyg.stories.js +12 -0
  121. package/src/components/atoms/InputFormatter/index.js +144 -0
  122. package/src/components/atoms/InputFormatter/styles.js +40 -0
  123. package/src/components/atoms/LabelToInput/index.js +26 -0
  124. package/src/components/atoms/LabelToInput/style.js +41 -0
  125. package/src/components/atoms/Loading/index.js +2 -3
  126. package/src/components/atoms/LogoImage/index.js +1 -1
  127. package/src/components/atoms/PriorityFlag/index.js +1 -1
  128. package/src/components/atoms/ProductImage/styles.js +1 -1
  129. package/src/components/atoms/ProgressBar/index.js +2 -2
  130. package/src/components/atoms/ProgressBar/styles.js +54 -3
  131. package/src/components/atoms/ScreenHeader/index.js +7 -3
  132. package/src/components/atoms/ScreenHeader/styles.js +9 -2
  133. package/src/components/atoms/Select/index.js +35 -0
  134. package/src/components/atoms/Select/style.js +76 -0
  135. package/src/components/atoms/StatusTag/index.js +30 -2
  136. package/src/components/atoms/StatusTag/styles.js +15 -3
  137. package/src/components/atoms/ValidationPanel/index.js +4 -3
  138. package/src/components/molecules/AvatarAndValidation/index.js +23 -6
  139. package/src/components/molecules/AvatarAndValidation/styles.js +1 -1
  140. package/src/components/molecules/CarouselImagesLogin/index.js +37 -34
  141. package/src/components/molecules/FeaturesBar/index.js +10 -7
  142. package/src/components/molecules/GalleryElement/index.js +75 -36
  143. package/src/components/molecules/GalleryElement/styles.js +38 -11
  144. package/src/components/molecules/GalleryHeader/index.js +14 -8
  145. package/src/components/molecules/GalleryHeader/styles.js +16 -0
  146. package/src/components/molecules/ImageSelector/index.js +2 -3
  147. package/src/components/molecules/LoginPasswordStrength/index.js +6 -11
  148. package/src/components/molecules/LoginPasswordStrength/styles.js +1 -5
  149. package/src/components/molecules/ProductNameHeader/index.js +1 -2
  150. package/src/components/molecules/RetailerSelector/RetailerSelector.stories.js +35 -0
  151. package/src/components/molecules/RetailerSelector/index.js +63 -0
  152. package/src/components/molecules/RetailerSelector/styles.js +18 -0
  153. package/src/components/molecules/StatusAsignationInfo/index.js +64 -39
  154. package/src/components/molecules/StatusAsignationInfo/styles.js +12 -2
  155. package/src/components/molecules/TableHeader/index.js +16 -3
  156. package/src/components/molecules/TableHeader/styles.js +5 -0
  157. package/src/components/molecules/TagAndInput/index.js +24 -2
  158. package/src/components/organisms/FullProductNameHeader/index.js +38 -8
  159. package/src/components/organisms/FullTabsMenu/index.js +15 -3
  160. package/src/components/organisms/GlobalModal/index.js +68 -0
  161. package/src/components/organisms/GlobalModal/styles.js +113 -0
  162. package/src/components/organisms/ImageDataTable/index.js +89 -11
  163. package/src/components/organisms/InputGroup/index.js +46 -11
  164. package/src/components/organisms/InputGroup/styles.js +3 -0
  165. package/src/components/organisms/ProductImageModal/index.js +19 -12
  166. package/src/components/organisms/ProductImageModal/styles.js +3 -0
  167. package/src/components/pages/ProviderProductEdition/ProviderProductEdition.stories.js +123 -0
  168. package/src/components/pages/ProviderProductEdition/index.js +1493 -0
  169. package/src/components/pages/ProviderProductEdition/styles.js +118 -0
  170. package/src/components/pages/RetailerProductEdition/RetailerProductEdition.stories.js +91 -343
  171. package/src/components/pages/RetailerProductEdition/index.js +1245 -48
  172. package/src/components/pages/RetailerProductEdition/styles.js +67 -4
  173. package/src/global-files/data.js +158 -57
  174. package/src/global-files/global-styles.css +1 -0
  175. package/src/global-files/variables.js +1 -0
  176. package/src/index.js +1 -21
  177. package/dist/assets/images/editField/showPassword.png +0 -0
  178. package/dist/assets/images/sliderToolTip/infoIcon.svg +0 -4
  179. package/dist/assets/images/sliderToolTip/slide1.svg +0 -5
  180. package/dist/assets/images/sliderToolTip/slide2.svg +0 -9
  181. package/dist/assets/images/sliderToolTip/slide3.svg +0 -9
  182. package/dist/assets/images/sliderToolTip/slide4.svg +0 -9
  183. package/dist/assets/images/sliderToolTip/slide5.svg +0 -40
  184. package/dist/assets/images/verticalSideMenuMainPage/closeMenu.svg +0 -4
  185. package/dist/assets/images/verticalSideMenuMainPage/iconFAQS.svg +0 -12
  186. package/dist/assets/images/verticalSideMenuMainPage/iconGroup.svg +0 -3
  187. package/dist/assets/images/verticalSideMenuMainPage/iconLogo.svg +0 -12
  188. package/dist/assets/images/verticalSideMenuMainPage/iconLogoContentoh.svg +0 -15
  189. package/dist/assets/images/verticalSideMenuMainPage/iconProduct.svg +0 -3
  190. package/dist/assets/images/verticalSideMenuMainPage/iconSpeedometer.svg +0 -12
  191. package/dist/assets/images/verticalSideMenuMainPage/iconTask.svg +0 -10
  192. package/dist/assets/images/verticalSideMenuMainPage/openMenu.svg +0 -4
  193. package/dist/components/atoms/ListCommercialRetailers/ListCommercialRetailers.stories.js +0 -36
  194. package/dist/components/atoms/ListCommercialRetailers/index.js +0 -64
  195. package/dist/components/atoms/ListCommercialRetailers/styles.js +0 -20
  196. package/dist/components/atoms/Loading/Loading.stories.js +0 -28
  197. package/dist/components/atoms/MenuCommercialRetailers/MenuCommercialRetailers.stories.js +0 -37
  198. package/dist/components/atoms/MenuCommercialRetailers/index.js +0 -25
  199. package/dist/components/atoms/MenuProductImage/MenuProductImage.stories.js +0 -28
  200. package/dist/components/atoms/MenuProductImage/index.js +0 -88
  201. package/dist/components/atoms/MenuProductImage/styles.js +0 -20
  202. package/dist/components/atoms/SliderToolTip/SliderToolTip.stories.js +0 -47
  203. package/dist/components/atoms/SliderToolTip/index.js +0 -200
  204. package/dist/components/atoms/SliderToolTip/styles.js +0 -24
  205. package/dist/components/atoms/VerticalSideMenuMainPage/VerticalSideMenuMainPage.stories.js +0 -28
  206. package/dist/components/atoms/VerticalSideMenuMainPage/index.js +0 -94
  207. package/dist/components/atoms/VerticalSideMenuMainPage/styles.js +0 -24
  208. package/dist/components/molecules/ApproveRejetPanel/ApproveRejetPanel.stories.js +0 -25
  209. package/dist/components/molecules/ApproveRejetPanel/index.js +0 -49
  210. package/dist/components/molecules/ApproveRejetPanel/styles.js +0 -18
  211. package/dist/components/molecules/EmailResetPasswordLogin/EmailResetPasswordLogin.stories.js +0 -28
  212. package/dist/components/molecules/EmailResetPasswordLogin/index.js +0 -153
  213. package/dist/components/molecules/EmailResetPasswordLogin/styles.js +0 -20
  214. package/dist/components/molecules/LogoLoading/Loading.stories.js +0 -28
  215. package/dist/components/molecules/LogoLoading/index.js +0 -22
  216. package/dist/components/molecules/RegistrationFirstStep/RegistrationFirstStep.stories.js +0 -28
  217. package/dist/components/molecules/RegistrationFirstStep/index.js +0 -308
  218. package/dist/components/molecules/RegistrationFirstStep/styles.js +0 -20
  219. package/dist/components/molecules/RegistrationSecondStep/RegistrationSecondStep.stories.js +0 -28
  220. package/dist/components/molecules/RegistrationSecondStep/index.js +0 -173
  221. package/dist/components/molecules/RegistrationSecondStep/styles.js +0 -20
  222. package/dist/components/molecules/RegistrationThirdStep/RegistrationThirdStep.stories.js +0 -28
  223. package/dist/components/molecules/RegistrationThirdStep/index.js +0 -155
  224. package/dist/components/molecules/RegistrationThirdStep/styles.js +0 -20
  225. package/dist/components/molecules/SignInLogin/index.js +0 -315
  226. package/dist/components/molecules/SignInLogin/styles.js +0 -20
  227. package/dist/components/molecules/SignInLoginCreationApp/SignInLogin.stories.js +0 -28
  228. package/dist/components/molecules/SignInLoginCreationApp/index.js +0 -270
  229. package/dist/components/molecules/SignInLoginCreationApp/styles.js +0 -20
  230. package/dist/components/molecules/VerificationCodeResetPasswordLogin/VerificationCodeResetPasswordLogin.stories.js +0 -28
  231. package/dist/components/molecules/VerificationCodeResetPasswordLogin/index.js +0 -211
  232. package/dist/components/molecules/VerificationCodeResetPasswordLogin/styles.js +0 -20
  233. package/dist/components/molecules/VerificationCodeResetPasswordLogin/utils.js +0 -69
  234. package/dist/components/organisms/ChangePassword/index.js +0 -124
  235. package/src/assets/images/editField/showPassword.png +0 -0
  236. package/src/assets/images/sliderToolTip/infoIcon.svg +0 -4
  237. package/src/assets/images/sliderToolTip/slide1.svg +0 -5
  238. package/src/assets/images/sliderToolTip/slide2.svg +0 -9
  239. package/src/assets/images/sliderToolTip/slide3.svg +0 -9
  240. package/src/assets/images/sliderToolTip/slide4.svg +0 -9
  241. package/src/assets/images/sliderToolTip/slide5.svg +0 -40
  242. package/src/assets/images/verticalSideMenuMainPage/closeMenu.svg +0 -4
  243. package/src/assets/images/verticalSideMenuMainPage/iconFAQS.svg +0 -12
  244. package/src/assets/images/verticalSideMenuMainPage/iconGroup.svg +0 -3
  245. package/src/assets/images/verticalSideMenuMainPage/iconLogo.svg +0 -12
  246. package/src/assets/images/verticalSideMenuMainPage/iconLogoContentoh.svg +0 -15
  247. package/src/assets/images/verticalSideMenuMainPage/iconProduct.svg +0 -3
  248. package/src/assets/images/verticalSideMenuMainPage/iconSpeedometer.svg +0 -12
  249. package/src/assets/images/verticalSideMenuMainPage/iconTask.svg +0 -10
  250. package/src/assets/images/verticalSideMenuMainPage/openMenu.svg +0 -4
  251. package/src/components/atoms/Loading/Loading.stories.js +0 -10
  252. package/src/components/atoms/SliderToolTip/SliderToolTip.stories.js +0 -23
  253. package/src/components/atoms/SliderToolTip/index.js +0 -182
  254. package/src/components/atoms/SliderToolTip/styles.js +0 -168
  255. package/src/components/atoms/VerticalSideMenuMainPage/VerticalSideMenuMainPage.stories.js +0 -12
  256. package/src/components/atoms/VerticalSideMenuMainPage/index.js +0 -51
  257. package/src/components/atoms/VerticalSideMenuMainPage/styles.js +0 -44
  258. package/src/components/molecules/EmailResetPasswordLogin/EmailResetPasswordLogin.stories.js +0 -11
  259. package/src/components/molecules/EmailResetPasswordLogin/index.js +0 -85
  260. package/src/components/molecules/EmailResetPasswordLogin/styles.js +0 -23
  261. package/src/components/molecules/LogoLoading/Loading.stories.js +0 -10
  262. package/src/components/molecules/LogoLoading/index.js +0 -12
  263. package/src/components/molecules/LogoLoading/styles.js +0 -16
  264. package/src/components/molecules/RegistrationFirstStep/RegistrationFirstStep.stories.js +0 -11
  265. package/src/components/molecules/RegistrationFirstStep/index.js +0 -227
  266. package/src/components/molecules/RegistrationFirstStep/styles.js +0 -87
  267. package/src/components/molecules/RegistrationSecondStep/RegistrationSecondStep.stories.js +0 -11
  268. package/src/components/molecules/RegistrationSecondStep/index.js +0 -136
  269. package/src/components/molecules/RegistrationSecondStep/styles.js +0 -64
  270. package/src/components/molecules/RegistrationThirdStep/RegistrationThirdStep.stories.js +0 -11
  271. package/src/components/molecules/RegistrationThirdStep/index.js +0 -130
  272. package/src/components/molecules/RegistrationThirdStep/styles.js +0 -44
  273. package/src/components/molecules/SignInLogin/SignInLogin.stories.js +0 -11
  274. package/src/components/molecules/SignInLogin/index.js +0 -226
  275. package/src/components/molecules/SignInLogin/styles.js +0 -120
  276. package/src/components/molecules/VerificationCodeResetPasswordLogin/VerificationCodeResetPasswordLogin.stories.js +0 -11
  277. package/src/components/molecules/VerificationCodeResetPasswordLogin/index.js +0 -171
  278. package/src/components/molecules/VerificationCodeResetPasswordLogin/styles.js +0 -54
  279. package/src/components/molecules/VerificationCodeResetPasswordLogin/utils.js +0 -54
  280. package/src/components/organisms/ChangePassword/ChangePassword.stories.js +0 -11
  281. package/src/components/organisms/ChangePassword/index.js +0 -77
  282. package/src/components/organisms/ChangePassword/styles.js +0 -13
@@ -0,0 +1,63 @@
1
+ import { Container } from "./styles";
2
+ import { Avatar } from "../../atoms/Avatar";
3
+ import { useEffect, useState } from "react";
4
+ import { AsignationOption } from "../../atoms/AsignationOption";
5
+
6
+ export const RetailerSelector = ({
7
+ retailers,
8
+ activeRetailer,
9
+ setActiveRetailer,
10
+ }) => {
11
+ const [retailersPanel, setRetailersPanel] = useState(false);
12
+
13
+ const closeRetailersPanel = (e) => {
14
+ if (!e.target.closest("#retailers-assignation") && retailersPanel) {
15
+ document.removeEventListener("click", closeRetailersPanel, false);
16
+ setRetailersPanel(false);
17
+ }
18
+ };
19
+
20
+ useEffect(() => {
21
+ if (retailersPanel) {
22
+ document.addEventListener("click", closeRetailersPanel, false);
23
+ }
24
+ }, [retailersPanel]);
25
+
26
+ return (
27
+ <Container id="retailers-assignation">
28
+ <Avatar
29
+ image={activeRetailer?.image}
30
+ altText={activeRetailer?.name}
31
+ imageType={"medium-image"}
32
+ onClick={() => {
33
+ retailers?.length > 1 && setRetailersPanel(!retailersPanel);
34
+ if (retailersPanel)
35
+ document.removeEventListener("click", closeRetailersPanel, false);
36
+ }}
37
+ />
38
+ {retailersPanel && (
39
+ <div className="retailers-panel">
40
+ {retailers.map((retailer, index) => (
41
+ <AsignationOption
42
+ key={`${index}-${retailer?.name}`}
43
+ profileImage={retailer?.image}
44
+ imageType={"medium-image"}
45
+ asignationType={null}
46
+ name={retailer?.name}
47
+ team={retailer?.team}
48
+ onClick={() => {
49
+ setActiveRetailer(retailer);
50
+ document.removeEventListener(
51
+ "click",
52
+ closeRetailersPanel,
53
+ false
54
+ );
55
+ setRetailersPanel(false);
56
+ }}
57
+ />
58
+ ))}
59
+ </div>
60
+ )}
61
+ </Container>
62
+ );
63
+ };
@@ -0,0 +1,18 @@
1
+ import styled from "styled-components";
2
+ import { GlobalColors } from "../../../global-files/variables";
3
+
4
+ export const Container = styled.div`
5
+ position: relative;
6
+ .retailers-panel {
7
+ background: ${GlobalColors.s2};
8
+ border: 1px solid ${GlobalColors.s3};
9
+ box-sizing: border-box;
10
+ box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.25);
11
+ border-radius: 4px;
12
+ padding: 10px;
13
+ position: absolute;
14
+ top: calc(100% + 10px);
15
+ right: 0;
16
+ z-index: 10;
17
+ }
18
+ `;
@@ -5,20 +5,24 @@ import { StatusTag } from "../../atoms/StatusTag/index";
5
5
  import { Button } from "../../atoms/GeneralButton";
6
6
  import { useEffect, useState } from "react";
7
7
  import { AsignationOption } from "../../atoms/AsignationOption/index";
8
+ import { getProfilePicture } from "../../../global-files/data";
8
9
 
9
10
  export const StatusAsignationInfo = ({
10
11
  status = "-",
11
- src,
12
12
  imagesSection,
13
13
  setImageLayout,
14
- asignationsList,
15
14
  percent = 0,
16
- saveImages,
17
- deleteImages,
15
+ assignationsImages,
16
+ setAssignation,
17
+ isRetailer,
18
+ downloadImages,
19
+ askToDeleteImages,
18
20
  id = "default-id",
21
+ onClickSave,
19
22
  }) => {
20
23
  const [showAsignationPanel, setShowAsignationPanel] = useState(false);
21
- const [layout, setLayout] = useState(true);
24
+ const [layout, setLayout] = useState(false);
25
+ const [assignationType, setAssignationType] = useState("facilitator");
22
26
 
23
27
  const closeAsignations = (e) => {
24
28
  if (!e.target.closest("#default-id") && showAsignationPanel) {
@@ -35,18 +39,24 @@ export const StatusAsignationInfo = ({
35
39
 
36
40
  return (
37
41
  <Container id={id}>
42
+ {["AP", "AC", "RC"].includes(status) && (
43
+ <Button
44
+ buttonType={"circular-button save-button"}
45
+ onClick={onClickSave}
46
+ />
47
+ )}
38
48
  {imagesSection && (
39
49
  <div className="images-buttons">
40
50
  <Button
41
- buttonType={"circular-button save-button"}
51
+ buttonType={"circular-button delete-button"}
42
52
  onClick={() => {
43
- saveImages && saveImages();
53
+ askToDeleteImages && askToDeleteImages();
44
54
  }}
45
55
  />
46
56
  <Button
47
- buttonType={"circular-button delete-button"}
57
+ buttonType={"circular-button download-button"}
48
58
  onClick={() => {
49
- deleteImages && deleteImages();
59
+ downloadImages();
50
60
  }}
51
61
  />
52
62
  <Button
@@ -58,15 +68,20 @@ export const StatusAsignationInfo = ({
58
68
  />
59
69
  </div>
60
70
  )}
61
- <StatusTag statusType={status} ovalForm={true} />
62
- <Avatar
63
- imageType={"small-image"}
64
- image={src}
65
- altText="user profile image"
66
- onClick={() => {
67
- setShowAsignationPanel(true);
68
- }}
69
- />
71
+ <div className="assignations-container">
72
+ {assignationsImages?.assignations?.map((assignation, index) => (
73
+ <Avatar
74
+ key={index + "-" + assignation.id}
75
+ imageType={"small-image"}
76
+ image={getProfilePicture(assignation.id, 20, 20)}
77
+ altText="user profile image"
78
+ onClick={() => {
79
+ setShowAsignationPanel(true);
80
+ setAssignationType(assignation?.collaboratorType);
81
+ }}
82
+ />
83
+ ))}
84
+ </div>
70
85
  <ScreenHeader
71
86
  text={"Asig."}
72
87
  color={"#969696"}
@@ -86,31 +101,41 @@ export const StatusAsignationInfo = ({
86
101
  </div>
87
102
  </div>
88
103
  <div className="asignations-list">
89
- {asignationsList !== undefined ? (
90
- asignationsList.map((asigantion, index) => (
91
- <AsignationOption
92
- profileImage={asignation.image}
93
- asignationType={asignation.asignationType}
94
- name={asignation.name}
95
- team={asigantion.team}
96
- />
97
- ))
104
+ {assignationsImages?.collaborators !== undefined ? (
105
+ assignationsImages?.collaborators[assignationType]?.map(
106
+ (asignation, index) => (
107
+ <AsignationOption
108
+ key={index + "-" + asignation.name}
109
+ profileImage={getProfilePicture(
110
+ asignation?.id_user,
111
+ 40,
112
+ 40
113
+ )}
114
+ onClick={() => {
115
+ setAssignation(assignationType, asignation?.id_user);
116
+ }}
117
+ name={asignation.name}
118
+ />
119
+ )
120
+ )
98
121
  ) : (
99
122
  <p className="no-asignations">Sin personas para asignar</p>
100
123
  )}
101
124
  </div>
102
- <div className="default-asignations-list">
103
- <AsignationOption
104
- asignationType={"provider"}
105
- name={"Solicitar a"}
106
- team={"Proveedor"}
107
- />
108
- <AsignationOption
109
- asignationType={"team"}
110
- name={"Solicitar a"}
111
- team={"Content-oh!"}
112
- />
113
- </div>
125
+ {isRetailer === 1 && (
126
+ <div className="default-asignations-list">
127
+ <AsignationOption
128
+ asignationType={"provider"}
129
+ name={"Solicitar a"}
130
+ team={"Proveedor"}
131
+ />
132
+ <AsignationOption
133
+ asignationType={"team"}
134
+ name={"Solicitar a"}
135
+ team={"Content-oh!"}
136
+ />
137
+ </div>
138
+ )}
114
139
  </div>
115
140
  )}
116
141
  </Container>
@@ -16,16 +16,22 @@ export const Container = styled.div`
16
16
  }
17
17
  }
18
18
 
19
+ .assignations-container {
20
+ display: flex;
21
+ cursor: pointer;
22
+ }
23
+
19
24
  .asignation-panel {
20
25
  background: ${GlobalColors.s2};
21
26
  border: 1px solid ${GlobalColors.s3};
22
27
  box-sizing: border-box;
23
28
  box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.25);
24
29
  border-radius: 4px;
25
- padding: 10px;
30
+ padding: 10px 8px;
26
31
  position: absolute;
27
32
  top: calc(100% + 10px);
28
33
  right: 0;
34
+ z-index: 10;
29
35
 
30
36
  .asignation-header {
31
37
  display: flex;
@@ -53,7 +59,6 @@ export const Container = styled.div`
53
59
 
54
60
  .asignations-list {
55
61
  min-height: 40px;
56
- border-bottom: 1px solid ${GlobalColors.s3};
57
62
 
58
63
  .no-asignations {
59
64
  padding: 5px;
@@ -66,7 +71,12 @@ export const Container = styled.div`
66
71
 
67
72
  & + * {
68
73
  margin-top: 10px;
74
+ border-top: 1px solid ${GlobalColors.s3};
69
75
  }
70
76
  }
77
+
78
+ .default-asignations-list {
79
+ padding-top: 10px;
80
+ }
71
81
  }
72
82
  `;
@@ -3,15 +3,28 @@ import { ScreenHeader } from "../../atoms/ScreenHeader";
3
3
  import { StatusAsignationInfo } from "../StatusAsignationInfo";
4
4
  import { GlobalColors } from "../../../global-files/variables";
5
5
 
6
- export const TableHeader = ({ headerInfo, activeImage }) => {
6
+ export const TableHeader = ({
7
+ imagesStatus,
8
+ activeImage,
9
+ assignationsImages,
10
+ setAssignation,
11
+ isRetailer,
12
+ onClickSave,
13
+ }) => {
7
14
  return (
8
15
  <Container>
9
16
  <ScreenHeader
10
- text={activeImage?.imageName}
17
+ text={activeImage?.name || "-"}
11
18
  color={GlobalColors.s5}
12
19
  headerType={"input-name-header"}
13
20
  />
14
- <StatusAsignationInfo status={headerInfo?.status} src={headerInfo?.src} />
21
+ <StatusAsignationInfo
22
+ status={imagesStatus}
23
+ assignationsImages={assignationsImages}
24
+ setAssignation={setAssignation}
25
+ isRetailer={isRetailer}
26
+ onClickSave={onClickSave}
27
+ />
15
28
  </Container>
16
29
  );
17
30
  };
@@ -7,6 +7,11 @@ export const Container = styled.div`
7
7
  padding-bottom: 5px;
8
8
  border-bottom: 1px solid ${GlobalColors.s2};
9
9
 
10
+ .input-name-header {
11
+ overflow: auto;
12
+ max-width: 40%;
13
+ white-space: nowrap;
14
+ }
10
15
  .status-asignation-info {
11
16
  display: flex;
12
17
  align-items: center;
@@ -8,7 +8,18 @@ export const TagAndInput = ({
8
8
  value,
9
9
  inputPlaceHolder,
10
10
  inputId,
11
- required,
11
+ updatedDescriptions,
12
+ setUpdatedDescriptions,
13
+ updatedDatasheets,
14
+ setUpdatedDatasheets,
15
+ articleId,
16
+ version,
17
+ index,
18
+ isRequired,
19
+ dinamicHeight,
20
+ inputCols,
21
+ inputRows,
22
+ maxChar,
12
23
  }) => {
13
24
  return (
14
25
  <Container
@@ -21,8 +32,19 @@ export const TagAndInput = ({
21
32
  inputId={inputId}
22
33
  inputType={inputType}
23
34
  inputValue={value}
35
+ index={index}
36
+ isRequired={isRequired}
24
37
  inputPlaceholder={inputPlaceHolder}
25
- required={required}
38
+ updatedDescriptions={updatedDescriptions}
39
+ setUpdatedDescriptions={setUpdatedDescriptions}
40
+ updatedDatasheets={updatedDatasheets}
41
+ setUpdatedDatasheets={setUpdatedDatasheets}
42
+ articleId={articleId}
43
+ version={version}
44
+ dinamicHeight={dinamicHeight}
45
+ inputCols={inputCols}
46
+ inputRows={inputRows}
47
+ maxChar={maxChar}
26
48
  />
27
49
  </Container>
28
50
  );
@@ -3,22 +3,52 @@ import { ProductNameHeader } from "../../molecules/ProductNameHeader";
3
3
  import { FeaturesBar } from "../../molecules/FeaturesBar";
4
4
  import { AvatarAndValidation } from "../../molecules/AvatarAndValidation";
5
5
 
6
- export const FullProductNameHeader = ({ headerData }) => {
6
+ export const FullProductNameHeader = ({
7
+ headerData,
8
+ percent,
9
+ activeRetailer,
10
+ setActiveRetailer,
11
+ showValidationButtons,
12
+ approve,
13
+ reject,
14
+ }) => {
7
15
  return (
8
16
  <Container>
9
17
  <ProductNameHeader
10
- productName={headerData?.name}
11
- statusType={headerData?.status}
12
- percent={headerData?.percent}
13
- backgroundColor={headerData?.backgroundColor}
14
- priority={headerData?.priority}
15
- date={headerData?.date}
18
+ productName={headerData?.article?.name || headerData?.name}
19
+ statusType={headerData?.version_status || headerData?.status}
20
+ percent={percent?.toFixed(0)}
21
+ priority={headerData?.prio}
22
+ date={new Date(
23
+ headerData?.article?.timestamp || headerData?.timestamp
24
+ ).toLocaleDateString()}
16
25
  />
17
26
  <div className="features-bar-container">
18
- <FeaturesBar features={headerData?.features} />
27
+ <FeaturesBar
28
+ features={[
29
+ {
30
+ feature: "Categoría",
31
+ value: headerData?.article?.category || headerData?.categoryName,
32
+ },
33
+ {
34
+ feature: "Prov",
35
+ value: headerData?.article?.company_name,
36
+ },
37
+ {
38
+ feature: "UPC",
39
+ value: headerData?.article?.upc || headerData?.upc,
40
+ },
41
+ ]}
42
+ />
19
43
  <AvatarAndValidation
44
+ retailers={headerData?.retailers || headerData?.retailersAvailable}
20
45
  avatarData={headerData?.avatarData}
21
46
  validation={headerData?.validation}
47
+ activeRetailer={activeRetailer}
48
+ setActiveRetailer={setActiveRetailer}
49
+ showValidationButtons={showValidationButtons}
50
+ approve={approve}
51
+ reject={reject}
22
52
  />
23
53
  </div>
24
54
  </Container>
@@ -5,10 +5,16 @@ import { useState } from "react";
5
5
 
6
6
  export const FullTabsMenu = ({
7
7
  tabsSections,
8
- status,
9
- profileImage,
8
+ status = "",
9
+ activeTab,
10
10
  setActiveTab,
11
11
  setImageLayout,
12
+ assig,
13
+ setAssignation,
14
+ isRetailer,
15
+ downloadImages,
16
+ askToDeleteImages,
17
+ onClickSave,
12
18
  }) => {
13
19
  const [imagesSection, setImagesSection] = useState(false);
14
20
 
@@ -21,9 +27,15 @@ export const FullTabsMenu = ({
21
27
  />
22
28
  <StatusAsignationInfo
23
29
  status={status}
24
- image={profileImage}
30
+ activeTab={activeTab}
25
31
  setImageLayout={setImageLayout}
26
32
  imagesSection={imagesSection}
33
+ assignationsImages={assig}
34
+ setAssignation={setAssignation}
35
+ isRetailer={isRetailer}
36
+ downloadImages={downloadImages}
37
+ onClickSave={onClickSave}
38
+ askToDeleteImages={askToDeleteImages}
27
39
  />
28
40
  </Container>
29
41
  );
@@ -0,0 +1,68 @@
1
+ import React from "react";
2
+ import ReactImageFallback from "react-image-fallback";
3
+ import {
4
+ MainContainer,
5
+ MessageContainer,
6
+ Header,
7
+ Icon,
8
+ Close,
9
+ Message,
10
+ ContainerButtons,
11
+ FirstButton,
12
+ Button,
13
+ Detail,
14
+ TextArea,
15
+ BoldText,
16
+ } from "./styles";
17
+
18
+ import yellowAlert from "../../../assets/images/genericModal/yellowAlert.svg";
19
+ import closeWhite from "../../../assets/images/genericModal/closeWhite.svg";
20
+
21
+ /*
22
+ props (* required):
23
+ - *close: function to quit pop up e.g close={() => setShow(!show)}
24
+ - button1/button2: name and action button e.g. button1={{ name: 'Cancelar', action: () => console.log('Cancelar') }}
25
+ - img: source image
26
+ - *message: message to show (like title)
27
+ - detail: message detail
28
+ - withoutImg: if the value is "true" the icon will not be displayed, if this attribute is ignored or has the value of "false" the icon will be displayed
29
+ - customComponent: contains a custom component
30
+ */
31
+ export const GlobalModal = (props) => {
32
+ return (
33
+ <MainContainer>
34
+ <MessageContainer height={props.button1 || props.button2}>
35
+ <Header>
36
+ <Icon widthImg={props.widthImg} heightImg={props.heightImg}>
37
+ {!props.withoutImg && (
38
+ <ReactImageFallback
39
+ src={props.img}
40
+ fallbackImage={yellowAlert}
41
+ alt=""
42
+ />
43
+ )}
44
+ </Icon>
45
+ <Close onClick={props.close}>
46
+ <img src={closeWhite} alt="Cerrar" />
47
+ </Close>
48
+ </Header>
49
+ <Message>
50
+ {props.bold && <BoldText>{props.bold}</BoldText>} {props.message}
51
+ </Message>
52
+ {props.detail && <Detail>{`${props.detail} `}</Detail>}
53
+ {props.textArea && <TextArea id="area" />}
54
+ {props.customComponent && props.customComponent}
55
+ <ContainerButtons>
56
+ {props.button1 && (
57
+ <FirstButton onClick={props.button1.action}>
58
+ {props.button1.name}
59
+ </FirstButton>
60
+ )}
61
+ {props.button2 && (
62
+ <Button onClick={props.button2.action}>{props.button2.name}</Button>
63
+ )}
64
+ </ContainerButtons>
65
+ </MessageContainer>
66
+ </MainContainer>
67
+ );
68
+ };
@@ -0,0 +1,113 @@
1
+ import styled from "styled-components";
2
+
3
+ export const MainContainer = styled.div`
4
+ position: fixed;
5
+ left: 0;
6
+ top: 0;
7
+ width: 100vw;
8
+ height: 100vh;
9
+ background: #281f3366;
10
+ z-index: 15;
11
+ display: flex;
12
+ justify-content: center;
13
+ align-items: center;
14
+ `;
15
+
16
+ export const Header = styled.div`
17
+ display: flex;
18
+ width: 100%;
19
+ justify-content: center;
20
+ `;
21
+
22
+ export const MessageContainer = styled.div`
23
+ position: relative;
24
+ padding: 40px 20px;
25
+ box-sizing: border-box;
26
+ width: 600px;
27
+ min-height: ${(props) => (props.height ? "300px" : "190px")};
28
+ background: #281f33;
29
+ border-radius: 39px;
30
+ `;
31
+ export const TextArea = styled.textarea`
32
+ display: block;
33
+ margin-left: auto;
34
+ margin-right: auto;
35
+ position: relative;
36
+ width: 479px;
37
+ height: 84px;
38
+ background: #f0eef2;
39
+ border-radius: 4px;
40
+ color: #817393;
41
+ margin-bottom: 10px;
42
+ `;
43
+
44
+ export const Close = styled.figure`
45
+ position: absolute;
46
+ cursor: pointer;
47
+ right: 45px;
48
+ > img {
49
+ width: 14px;
50
+ height: 14px;
51
+ }
52
+ `;
53
+
54
+ export const Icon = styled.figure`
55
+ margin-bottom: 10px;
56
+ height: ${(props) => props.heightImg && props.heightImg};
57
+ > img {
58
+ width: ${(props) => (props.widthImg ? props.widthImg : "85px")};
59
+ height: ${(props) => (props.heightImg ? props.heightImg : "85px")};
60
+ }
61
+ `;
62
+ export const BoldText = styled.span`
63
+ font-weight: 600;
64
+ `;
65
+
66
+ export const Message = styled.p`
67
+ width: 100%;
68
+ font-family: Raleway;
69
+ font-style: normal;
70
+ font-weight: normal;
71
+ font-size: 24px;
72
+ text-align: center;
73
+ color: #f7f7f7;
74
+ margin: 20px 0px;
75
+ `;
76
+
77
+ export const ContainerButtons = styled.div`
78
+ display: flex;
79
+ justify-content: space-around;
80
+ `;
81
+
82
+ export const FirstButton = styled.p`
83
+ display: flex;
84
+ align-items: center;
85
+ justify-content: center;
86
+ height: 40px;
87
+ padding: 0 40px;
88
+ border: 1px solid #f0eef2;
89
+ box-sizing: border-box;
90
+ border-radius: 30px;
91
+ font-family: Avenir Next;
92
+ font-style: normal;
93
+ font-weight: 500;
94
+ font-size: 18px;
95
+ color: #f0eef2;
96
+ -webkit-user-select: none;
97
+ -moz-user-select: none;
98
+ -ms-user-select: none;
99
+ user-select: none;
100
+ cursor: pointer;
101
+ `;
102
+
103
+ export const Button = styled(FirstButton)`
104
+ border: 0;
105
+ background: #e33aa9;
106
+ cursor: pointer;
107
+ `;
108
+
109
+ export const Detail = styled(Message)`
110
+ font-weight: bold;
111
+ font-size: 18px;
112
+ white-space: normal;
113
+ `;