contentoh-components-library 21.5.3 → 21.5.4

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 (294) hide show
  1. package/dist/components/organisms/InputGroup/index.js +1 -1
  2. package/dist/components/organisms/Table/styles.js +1 -1
  3. package/dist/components/pages/MultipleEdition/saveData.js +9 -19
  4. package/dist/components/pages/MultipleEdition/styles.js +1 -1
  5. package/dist/components/pages/MultipleEdition/utils.js +86 -153
  6. package/package.json +4 -1
  7. package/src/assets/images/Icons/addv2.svg +8 -0
  8. package/src/assets/images/Icons/beenhere.svg +9 -0
  9. package/src/assets/images/Icons/checkv2.svg +8 -0
  10. package/src/assets/images/Icons/close-magenta.svg +9 -0
  11. package/src/assets/images/Icons/close.svg +8 -0
  12. package/src/assets/images/Icons/closeCircle.svg +8 -0
  13. package/src/assets/images/Icons/delete-forever-red.svg +9 -0
  14. package/src/assets/images/Icons/delete-forever-white.svg +10 -0
  15. package/src/assets/images/Icons/edit.svg +8 -0
  16. package/src/assets/images/Icons/fullscreen.svg +3 -0
  17. package/src/assets/images/Icons/infoNR.svg +8 -0
  18. package/src/assets/images/Icons/options.svg +3 -0
  19. package/src/assets/images/Icons/save-white-gray.svg +9 -0
  20. package/src/assets/images/Icons/save-white.svg +9 -0
  21. package/src/assets/images/Icons/save.svg +8 -0
  22. package/src/assets/images/Icons/search.svg +3 -0
  23. package/src/assets/images/Icons/settings.svg +8 -0
  24. package/src/assets/images/Icons/trash.svg +8 -0
  25. package/src/assets/images/Icons/undo.svg +8 -0
  26. package/src/assets/images/Icons/upload-file-white.svg +4 -0
  27. package/src/assets/images/Icons/upload-file.svg +10 -0
  28. package/src/assets/images/Icons/upload_file.svg +10 -0
  29. package/src/assets/images/Icons/warningv2.svg +3 -0
  30. package/src/assets/images/checkBox/checkrosa.svg +3 -0
  31. package/src/assets/images/checkBox/checkverde.svg +3 -0
  32. package/src/assets/images/flagsv2/highPriority.svg +3 -0
  33. package/src/assets/images/flagsv2/lowPriority.svg +3 -0
  34. package/src/assets/images/flagsv2/mediumPriority.svg +3 -0
  35. package/src/assets/images/flagsv2/noPriority.svg +3 -0
  36. package/src/assets/images/generalButton/closeIconWhite.svg +4 -0
  37. package/src/assets/images/generalButton/closeIconv2.svg +4 -0
  38. package/src/assets/images/generalButton/saveIconpink.svg +3 -0
  39. package/src/components/atoms/Avatar/index.js +8 -2
  40. package/src/components/atoms/ButtonV2/ButtonV2.stories.js +1 -0
  41. package/src/components/atoms/ButtonV2/index.js +1 -0
  42. package/src/components/atoms/ButtonV2/styles.js +16 -0
  43. package/src/components/atoms/CharsMissing/Wysiwyg.stories.js +12 -0
  44. package/src/components/atoms/CharsMissing/index.js +60 -0
  45. package/src/components/atoms/CharsMissing/styles.js +44 -0
  46. package/src/components/atoms/CheckBox/CheckBox.stories.js +5 -0
  47. package/src/components/atoms/CheckBox/index.js +5 -1
  48. package/src/components/atoms/CheckBox/styles.js +9 -3
  49. package/src/components/atoms/CustomChip/CustomChip.stories.js +16 -0
  50. package/src/components/atoms/CustomChip/index.js +34 -0
  51. package/src/components/atoms/CustomChip/styles.js +6 -0
  52. package/src/components/atoms/FeatureTagv2/FeatureTagv2.stories.js +16 -0
  53. package/src/components/atoms/FeatureTagv2/index.js +10 -0
  54. package/src/components/atoms/FeatureTagv2/styles.js +56 -0
  55. package/src/components/atoms/GeneralButton/styles.js +46 -0
  56. package/src/components/atoms/GeneralInput/index.js +3 -0
  57. package/src/components/atoms/GeneralInput/styles.js +19 -1
  58. package/src/components/atoms/GeneralInputv2/GeneralInputv2.stories.js +33 -0
  59. package/src/components/atoms/GeneralInputv2/index.js +155 -0
  60. package/src/components/atoms/GeneralInputv2/styles.js +67 -0
  61. package/src/components/atoms/InputFormatter/index.js +2 -1
  62. package/src/components/atoms/InputFormatter/styles.js +9 -4
  63. package/src/components/atoms/InputFormatterv2/Wysiwyg.stories.js +12 -0
  64. package/src/components/atoms/InputFormatterv2/index.js +148 -0
  65. package/src/components/atoms/InputFormatterv2/styles.js +39 -0
  66. package/src/components/atoms/InputImages/InputImages.stories.js +19 -0
  67. package/src/components/atoms/InputImages/index.js +25 -0
  68. package/src/components/atoms/InputImages/styles.js +17 -0
  69. package/src/components/atoms/Multiselect/Multiselect.stories.js +364 -0
  70. package/src/components/atoms/Multiselect/index.js +351 -0
  71. package/src/components/atoms/Multiselect/styles.js +33 -0
  72. package/src/components/atoms/NumberMandatory/NumberMandatory.stories.js +19 -0
  73. package/src/components/atoms/NumberMandatory/index.js +16 -0
  74. package/src/components/atoms/NumberMandatory/styles.js +11 -0
  75. package/src/components/atoms/ObservationFlag/ObservationFlag.stories.js +20 -0
  76. package/src/components/atoms/ObservationFlag/index.js +167 -0
  77. package/src/components/atoms/ObservationFlag/styles.js +104 -0
  78. package/src/components/atoms/PriorityFlagv2/PriorityFlagv2.stories.js +20 -0
  79. package/src/components/atoms/PriorityFlagv2/index.js +20 -0
  80. package/src/components/atoms/PriorityFlagv2/styles.js +6 -0
  81. package/src/components/atoms/ProductImage/index.js +24 -11
  82. package/src/components/atoms/ProductImage/styles.js +7 -0
  83. package/src/components/atoms/ProductImagev2/ProductImagev2.stories.js +28 -0
  84. package/src/components/atoms/ProductImagev2/index.js +16 -0
  85. package/src/components/atoms/ProductImagev2/styles.js +62 -0
  86. package/src/components/atoms/Progress/Progress.stories.js +25 -0
  87. package/src/components/atoms/Progress/index.js +74 -0
  88. package/src/components/atoms/Progress/styles.js +98 -0
  89. package/src/components/atoms/ScreenHeaderv2/ScreenHeaderv2.stories.js +53 -0
  90. package/src/components/atoms/ScreenHeaderv2/index.js +134 -0
  91. package/src/components/atoms/ScreenHeaderv2/styles.js +103 -0
  92. package/src/components/atoms/Selectv2/VersionSelect.js +27 -0
  93. package/src/components/atoms/Selectv2/index.js +35 -0
  94. package/src/components/atoms/Selectv2/style.js +93 -0
  95. package/src/components/atoms/SliderToolTip/styles.js +1 -1
  96. package/src/components/atoms/TabSection/index.js +1 -1
  97. package/src/components/atoms/TabSection/styles.js +0 -3
  98. package/src/components/atoms/TabSectionv2/TabSection.stories.js +25 -0
  99. package/src/components/atoms/TabSectionv2/index.js +9 -0
  100. package/src/components/atoms/TabSectionv2/styles.js +20 -0
  101. package/src/components/atoms/TooltipLight/Tooltip.stories.js +20 -0
  102. package/src/components/atoms/TooltipLight/index.js +46 -0
  103. package/src/components/atoms/TooltipLight/styles.js +65 -0
  104. package/src/components/atoms/WordsMissing/Wysiwyg.stories.js +12 -0
  105. package/src/components/atoms/WordsMissing/index.js +60 -0
  106. package/src/components/atoms/WordsMissing/styles.js +10 -0
  107. package/src/components/molecules/AddGroup/AddGroup.stories.js +15 -0
  108. package/src/components/molecules/AddGroup/index.js +84 -0
  109. package/src/components/molecules/AddGroup/styles.js +141 -0
  110. package/src/components/molecules/AsignationInfo/AsignationInfo.stories.js +17 -0
  111. package/src/components/molecules/AsignationInfo/index.js +108 -0
  112. package/src/components/molecules/AsignationInfo/styles.js +86 -0
  113. package/src/components/molecules/BoxAttribute/index.js +32 -25
  114. package/src/components/molecules/BoxAttribute/styles.js +1 -1
  115. package/src/components/molecules/BoxButtons/index.js +23 -22
  116. package/src/components/molecules/CarouselImagesLogin/index.js +1 -1
  117. package/src/components/molecules/EditionActiveImagev2/EditionActiveImagev2.stories.js +12 -0
  118. package/src/components/molecules/EditionActiveImagev2/index.js +15 -0
  119. package/src/components/molecules/EditionActiveImagev2/styles.js +7 -0
  120. package/src/components/molecules/EditionTabs/EditionTabs.stories.js +12 -0
  121. package/src/components/molecules/EditionTabs/index.js +33 -0
  122. package/src/components/molecules/EditionTabs/styles.js +24 -0
  123. package/src/components/molecules/FeaturesBarv2/FeaturesBarv2.stories.js +20 -0
  124. package/src/components/molecules/FeaturesBarv2/index.js +32 -0
  125. package/src/components/molecules/FeaturesBarv2/styles.js +17 -0
  126. package/src/components/molecules/GalleryElement/index.js +76 -1
  127. package/src/components/molecules/GalleryElementv2/GalleryElementv2.stories.js +30 -0
  128. package/src/components/molecules/GalleryElementv2/index.js +142 -0
  129. package/src/components/molecules/GalleryElementv2/styles.js +119 -0
  130. package/src/components/molecules/GalleryHeader/index.js +1 -0
  131. package/src/components/molecules/GalleryHeaderv2/GalleryHeaderv2.stories.js +10 -0
  132. package/src/components/molecules/GalleryHeaderv2/index.js +25 -0
  133. package/src/components/molecules/GalleryHeaderv2/styles.js +47 -0
  134. package/src/components/molecules/GroupSelect/GroupSelect.stories.js +35 -0
  135. package/src/components/molecules/GroupSelect/SelectItem.js +105 -0
  136. package/src/components/molecules/GroupSelect/index.js +190 -0
  137. package/src/components/molecules/GroupSelect/styles.js +124 -0
  138. package/src/components/molecules/HeaderTop/index.js +52 -6
  139. package/src/components/molecules/HeaderTopv2/HeaderTopv2.stories.js +10 -0
  140. package/src/components/molecules/HeaderTopv2/index.js +100 -0
  141. package/src/components/molecules/HeaderTopv2/styles.js +33 -0
  142. package/src/components/molecules/ImageSelectorv2/ImageSelectorv2.stories.js +46 -0
  143. package/src/components/molecules/ImageSelectorv2/index.js +22 -0
  144. package/src/components/molecules/ImageSelectorv2/styles.js +15 -0
  145. package/src/components/molecules/Phase/Phase.stories.js +107 -0
  146. package/src/components/molecules/Phase/index.js +391 -0
  147. package/src/components/molecules/Phase/styles.js +97 -0
  148. package/src/components/molecules/ProductNameHeader/index.js +19 -1
  149. package/src/components/molecules/ProductNameHeaderv2/ProductNameHeaderv2.stories.js +37 -0
  150. package/src/components/molecules/ProductNameHeaderv2/index.js +12 -0
  151. package/src/components/molecules/ProductNameHeaderv2/styles.js +10 -0
  152. package/src/components/molecules/ProductSkuStatus/ProductSkuStatus.stories.js +37 -0
  153. package/src/components/molecules/ProductSkuStatus/index.js +26 -0
  154. package/src/components/molecules/ProductSkuStatus/styles.js +7 -0
  155. package/src/components/molecules/RetailerSelectorv2/RetailerSelectorv2.stories.js +35 -0
  156. package/src/components/molecules/RetailerSelectorv2/index.js +80 -0
  157. package/src/components/molecules/RetailerSelectorv2/styles.js +21 -0
  158. package/src/components/molecules/ServiceDataValidator/ServiceDataValidator.stories.js +90 -0
  159. package/src/components/molecules/ServiceDataValidator/index.js +49 -0
  160. package/src/components/molecules/ServiceDataValidator/styles.js +36 -0
  161. package/src/components/molecules/SignInLogin/index.js +11 -11
  162. package/src/components/molecules/StatusAsignationInfo/FinancedCompanies.js +501 -63
  163. package/src/components/molecules/StatusAsignationInfo/index.js +1 -1
  164. package/src/components/molecules/StatusRetailer/StatusAsignationInfo.stories.js +17 -0
  165. package/src/components/molecules/StatusRetailer/index.js +55 -0
  166. package/src/components/molecules/StatusRetailer/styles.js +85 -0
  167. package/src/components/molecules/StripeCardSelector/CardSelector.stories.js +1 -2
  168. package/src/components/molecules/TabsMenuv2/TabsMenuv2.stories.js +19 -0
  169. package/src/components/molecules/TabsMenuv2/index.js +112 -0
  170. package/src/components/molecules/TabsMenuv2/styles.js +19 -0
  171. package/src/components/molecules/TagAndInput/index.js +8 -6
  172. package/src/components/molecules/TagAndInputv2/TagAndInputv2.stories.js +24 -0
  173. package/src/components/molecules/TagAndInputv2/index.js +86 -0
  174. package/src/components/molecules/TagAndInputv2/styles.js +35 -0
  175. package/src/components/molecules/Validation/Validation.stories.js +12 -0
  176. package/src/components/molecules/Validation/index.js +77 -0
  177. package/src/components/molecules/Validation/styles.js +19 -0
  178. package/src/components/molecules/VersionItemv2/VersionItemv2.stories.js +14 -0
  179. package/src/components/molecules/VersionItemv2/index.js +59 -0
  180. package/src/components/molecules/VersionItemv2/styles.js +47 -0
  181. package/src/components/organisms/BarButtons/BarButtons.stories.js +13 -0
  182. package/src/components/organisms/BarButtons/index.js +150 -0
  183. package/src/components/organisms/BarButtons/styles.js +54 -0
  184. package/src/components/organisms/Chat/Chat.stories.js +27 -7
  185. package/src/components/organisms/Chat/ContainerItems/index.js +18 -2
  186. package/src/components/organisms/Chat/ContainerItems/styles.js +14 -2
  187. package/src/components/organisms/Chat/ContentChat/index.js +88 -12
  188. package/src/components/organisms/Chat/Footer/index.js +11 -0
  189. package/src/components/organisms/Chat/index.js +46 -4
  190. package/src/components/organisms/Chat/styles.js +4 -0
  191. package/src/components/organisms/Chatv2/ChatLists/ChatLists.stories.js +65 -0
  192. package/src/components/organisms/Chatv2/ChatLists/Rotoplas.jpeg +0 -0
  193. package/src/components/organisms/Chatv2/ChatLists/THD.png +0 -0
  194. package/src/components/organisms/Chatv2/ChatLists/index.js +141 -0
  195. package/src/components/organisms/Chatv2/ChatLists/styles.js +162 -0
  196. package/src/components/organisms/Chatv2/Chatv2.stories.js +184 -0
  197. package/src/components/organisms/Chatv2/ContainerItems/ContainerItems.stories.js +142 -0
  198. package/src/components/organisms/Chatv2/ContainerItems/index.js +538 -0
  199. package/src/components/organisms/Chatv2/ContainerItems/styles.js +360 -0
  200. package/src/components/organisms/Chatv2/ContentChat/ContentChat.stories.js +102 -0
  201. package/src/components/organisms/Chatv2/ContentChat/Rotoplas.jpeg +0 -0
  202. package/src/components/organisms/Chatv2/ContentChat/THD.png +0 -0
  203. package/src/components/organisms/Chatv2/ContentChat/index.js +1016 -0
  204. package/src/components/organisms/Chatv2/ContentChat/styles.js +44 -0
  205. package/src/components/organisms/Chatv2/Footer/Footer.stories.js +22 -0
  206. package/src/components/organisms/Chatv2/Footer/index.js +668 -0
  207. package/src/components/organisms/Chatv2/Footer/styles.js +290 -0
  208. package/src/components/organisms/Chatv2/Header/Header.stories.js +66 -0
  209. package/src/components/organisms/Chatv2/Header/index.js +93 -0
  210. package/src/components/organisms/Chatv2/Header/styles.js +49 -0
  211. package/src/components/organisms/Chatv2/index.js +281 -0
  212. package/src/components/organisms/Chatv2/styles.js +85 -0
  213. package/src/components/organisms/CompleteServices/CompleteServices.stories.js +91 -0
  214. package/src/components/organisms/CompleteServices/index.js +82 -0
  215. package/src/components/organisms/CompleteServices/styles.js +35 -0
  216. package/src/components/organisms/DashboardMetric/index.js +6 -3
  217. package/src/components/organisms/DragAndDropPhases/DragAndDropPhases.stories.js +13 -0
  218. package/src/components/organisms/DragAndDropPhases/index.js +336 -0
  219. package/src/components/organisms/DragAndDropPhases/styles.js +107 -0
  220. package/src/components/organisms/DragPrueba/DragPrueba.stories.js +12 -0
  221. package/src/components/organisms/DragPrueba/index.js +57 -0
  222. package/src/components/organisms/DragPrueba/styles.js +8 -0
  223. package/src/components/organisms/EditGroup/EditGroup.stories.js +20 -0
  224. package/src/components/organisms/EditGroup/index.js +321 -0
  225. package/src/components/organisms/EditGroup/styles.js +207 -0
  226. package/src/components/organisms/FullProductNameHeader/index.js +13 -1
  227. package/src/components/organisms/FullProductNamev2/FullProductNamev2.stories.js +28 -0
  228. package/src/components/organisms/FullProductNamev2/index.js +101 -0
  229. package/src/components/organisms/FullProductNamev2/styles.js +49 -0
  230. package/src/components/organisms/FullTabsMenuv2/FullTabsMenuv2.stories.js +22 -0
  231. package/src/components/organisms/FullTabsMenuv2/index.js +142 -0
  232. package/src/components/organisms/FullTabsMenuv2/styles.js +47 -0
  233. package/src/components/organisms/GridProducts/GridProducts.stories.js +682 -107
  234. package/src/components/organisms/ImageDataTablev2/ImageDataTablev2.stories.js +24 -0
  235. package/src/components/organisms/ImageDataTablev2/index.js +124 -0
  236. package/src/components/organisms/ImageDataTablev2/styles.js +18 -0
  237. package/src/components/organisms/ImagePreviewerv2/ImagePreviewerv2.stories.js +38 -0
  238. package/src/components/organisms/ImagePreviewerv2/index.js +22 -0
  239. package/src/components/organisms/ImagePreviewerv2/styles.js +7 -0
  240. package/src/components/organisms/ImageUploader/ImageUploader.stories.js +15 -0
  241. package/src/components/organisms/ImageUploader/index.js +62 -0
  242. package/src/components/organisms/ImageUploader/styles.js +29 -0
  243. package/src/components/organisms/ImageVisor/ImageVisor.stories.js +15 -0
  244. package/src/components/organisms/ImageVisor/index.js +143 -0
  245. package/src/components/organisms/ImageVisor/styles.js +106 -0
  246. package/src/components/organisms/InputGroup/index.js +292 -144
  247. package/src/components/organisms/InputGroup/styles.js +31 -0
  248. package/src/components/organisms/InputGroupv2/InputGroupv2.stories.js +31 -0
  249. package/src/components/organisms/InputGroupv2/index.js +296 -0
  250. package/src/components/organisms/InputGroupv2/styles.js +90 -0
  251. package/src/components/organisms/MandatoryBar/MandatoryBar.stories.js +18 -0
  252. package/src/components/organisms/MandatoryBar/index.js +31 -0
  253. package/src/components/organisms/MandatoryBar/styles.js +12 -0
  254. package/src/components/organisms/Modal/Modal.stories.js +2 -1
  255. package/src/components/organisms/Modal/index.js +9 -2
  256. package/src/components/organisms/Modal/styles.js +8 -1
  257. package/src/components/organisms/OrderDetail/utils/Table/utils.js +6 -16
  258. package/src/components/organisms/ProductImageModalv2/ProductImageModalv2.stories.js +90 -0
  259. package/src/components/organisms/ProductImageModalv2/index.js +105 -0
  260. package/src/components/organisms/ProductImageModalv2/styles.js +71 -0
  261. package/src/components/organisms/RenameImagesBar/RenameImagesBar.stories.js +18 -0
  262. package/src/components/organisms/RenameImagesBar/index.js +30 -0
  263. package/src/components/organisms/RenameImagesBar/styles.js +12 -0
  264. package/src/components/organisms/Table/Table.stories.js +609 -0
  265. package/src/components/organisms/Table/index.js +84 -0
  266. package/src/components/organisms/Table/styles.js +114 -0
  267. package/src/components/organisms/VersionSelectorv2/VersionSelectorv2.stories.js +15 -0
  268. package/src/components/organisms/VersionSelectorv2/index.js +105 -0
  269. package/src/components/organisms/VersionSelectorv2/styles.js +45 -0
  270. package/src/components/pages/Dashboard/Dashboard.stories.js +33 -38
  271. package/src/components/pages/Dashboard/index.js +36 -7
  272. package/src/components/pages/MultipleEdition/MultipleEdition.stories.js +17 -0
  273. package/src/components/pages/MultipleEdition/components/ImageUploader.js +62 -0
  274. package/src/components/pages/MultipleEdition/components/ImageUploaderStyles.js +29 -0
  275. package/src/components/pages/MultipleEdition/components/ImageVisor.js +143 -0
  276. package/src/components/pages/MultipleEdition/components/styles.js +106 -0
  277. package/src/components/pages/MultipleEdition/index.js +248 -0
  278. package/src/components/pages/MultipleEdition/saveData.js +92 -0
  279. package/src/components/pages/MultipleEdition/styles.js +201 -0
  280. package/src/components/pages/MultipleEdition/utils.js +1073 -0
  281. package/src/components/pages/ProductEditionv2/ProductEditionv2.stories.js +213 -0
  282. package/src/components/pages/ProductEditionv2/index.js +1758 -0
  283. package/src/components/pages/ProductEditionv2/styles.js +154 -0
  284. package/src/components/pages/ProviderProductEdition/ProviderProductEdition.stories.js +56 -60
  285. package/src/components/pages/ProviderProductEdition/index.js +148 -133
  286. package/src/components/pages/ProviderProductEdition/styles.js +5 -1
  287. package/src/components/pages/RetailerProductEdition/RetailerProductEdition.stories.js +4 -0
  288. package/src/components/pages/RetailerProductEdition/generateThumnail.js +21 -0
  289. package/src/components/pages/RetailerProductEdition/index.js +293 -300
  290. package/src/components/pages/RetailerProductEdition/styles.js +4 -0
  291. package/src/components/pages/RetailerProductEdition/utils.js +37 -0
  292. package/src/global-files/data.js +6 -10
  293. package/src/global-files/variables.js +6 -0
  294. package/src/index.js +12 -0
@@ -0,0 +1,391 @@
1
+ import React, { useState, useEffect } from "react";
2
+ import { Container, ContainerIcon } from "./styles";
3
+ import { Button, Menu, MenuItem } from "@mui/material";
4
+ import Select from "@mui/material/Select";
5
+ import axios from "axios";
6
+
7
+ //Componentes
8
+ import { Modal } from "../../organisms/Modal";
9
+ import { CustomChip } from "../../atoms/CustomChip";
10
+ import { ButtonV2 } from "../../atoms/ButtonV2";
11
+
12
+ //svg
13
+ import options from "../../../assets/images/Icons/options.svg";
14
+ import { AddGroup } from "../AddGroup";
15
+
16
+ export const Phase = ({
17
+ key,
18
+ id,
19
+ phaseId,
20
+ phases,
21
+ phaseName,
22
+ nextPhase,
23
+ groups,
24
+ onDeletePhase,
25
+ token,
26
+ showMenu=true,
27
+ showButtonChip=true,
28
+ }) => {
29
+ const [selectedValue, setSelectedValue] = useState([]);
30
+ const [chips, setChips] = useState([]);
31
+ const [groupsSelected, setGroupsSelected] = useState([]);
32
+ const [anchorEl, setAnchorEl] = React.useState(null);
33
+ const [nextPhaseState, setNextPhaseState] = useState("");
34
+ const [tempChips, setTempChips] = useState([]);
35
+ const open = Boolean(anchorEl);
36
+ const [modalData, setModalData] = useState({
37
+ show: false,
38
+ title: "Actualización completa",
39
+ message: "",
40
+ icon: "success",
41
+ });
42
+
43
+ const ITEM_HEIGHT = 48;
44
+ const ITEM_PADDING_TOP = 8;
45
+ const MenuProps = {
46
+ PaperProps: {
47
+ style: {
48
+ maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,
49
+ width: 250,
50
+ },
51
+ },
52
+ };
53
+
54
+ const loadData = async() => {
55
+ const activeGroups = groups.filter((group) => group.groupActive === 1);
56
+ const initialChips = activeGroups.map((group) => ({
57
+ id: group.groupId,
58
+ label: group.groupName,
59
+ }));
60
+ setChips(initialChips);
61
+
62
+ const nextPhaseObject = phases.find((phase) => phase.phaseId === nextPhase);
63
+ if (nextPhaseObject) {
64
+ setNextPhaseState(nextPhaseObject.phaseName);
65
+ }
66
+ };
67
+
68
+ useEffect(() => {
69
+ loadData();
70
+ }, [groups]);
71
+
72
+ useEffect(() => {
73
+ loadData();
74
+ }, [nextPhase, phases]);
75
+
76
+ useEffect(() => {
77
+ handleGroupSelect();
78
+ }, [groupsSelected]);
79
+
80
+
81
+ useEffect(() => {
82
+ handleNextPhaseSelect();
83
+ }, [selectedValue]);
84
+
85
+ //agregar fase
86
+ const onAdd = async (phaseId) => {
87
+ if (selectedValue && !groupsSelected.includes(selectedValue)) {
88
+ const updatedGroups = groups.map((group) =>
89
+ group.groupName === selectedValue ? { ...group, groupActive: 1 } : group
90
+ );
91
+ setTempChips((prevChips) => [
92
+ ...prevChips,
93
+ { id: phaseId, label: selectedValue },
94
+ ]);
95
+
96
+ setGroupsSelected((prevGroups) => [...prevGroups, selectedValue]);
97
+ setSelectedValue("");
98
+ loadData();
99
+ }
100
+ };
101
+
102
+ //agregar grupo a fase
103
+ const addGroup = async (phaseId, groups) => {
104
+ try {
105
+ const response = await axios.post(
106
+ `${process.env.REACT_APP_PHASES_ENDPOINT}/update`,
107
+ {
108
+ retailerGroupsIds: groups,
109
+ phaseId,
110
+ },
111
+ {
112
+ headers: {
113
+ Authorization: token,
114
+ },
115
+ }
116
+ );
117
+ console.log(response.data.body)
118
+ loadData();
119
+ } catch (error) {
120
+ console.error("Error al agregar grupo a fase:", error);
121
+ }
122
+ };
123
+
124
+ //actualiza siguiente fase
125
+ const updateNextPhase = async (phaseId, newNextPhase) => {
126
+ try {
127
+ console.log("fase y grupos", { phaseId, newNextPhase });
128
+ const response = await axios.post(
129
+ `${process.env.REACT_APP_PHASES_ENDPOINT}/update`,
130
+ {
131
+ nextPhaseId: newNextPhase,
132
+ phaseId,
133
+ },
134
+ {
135
+ headers: {
136
+ Authorization: token,
137
+ },
138
+ }
139
+ );
140
+ console.log(response.data.body);
141
+ } catch (error) {
142
+ console.error("Error al actualizar grupo de fase:", error);
143
+ }
144
+ };
145
+
146
+ const handleGroupSelect = async () => {
147
+ for (const groupId of groupsSelected) {
148
+ const matchingGroup = groups.find((group) => group.groupId === groupId);
149
+ if (matchingGroup) {
150
+ if (!tempChips.find((chip) => chip.key === matchingGroup.groupId)) {
151
+ setTempChips((prevChips) => [
152
+ ...prevChips,
153
+ { id: matchingGroup.groupId, label: matchingGroup.groupName },
154
+ ]);
155
+ }
156
+ await addGroup(phaseId, [groupId]);
157
+ }
158
+ }
159
+ };
160
+
161
+
162
+ const handleNextPhaseSelect = () => {
163
+ if (selectedValue.length > 0) {
164
+ const Id = selectedValue[0];
165
+ const matchingPhase = phases.find((phase) => phase.phaseId === Id);
166
+ if (matchingPhase) {
167
+ checkAvailablePhase(phaseId, matchingPhase.phaseId);
168
+ }
169
+ }
170
+ };
171
+
172
+
173
+ //checa si llega una fase que se tiene en otro lado
174
+ const checkAvailablePhase = (phaseId, newNextPhase) => {
175
+ const isNextPhaseUsed = phases.some(phase => phase.nextPhaseIfApproved === newNextPhase);
176
+
177
+ if (isNextPhaseUsed) {
178
+ setModalData({
179
+ show: true,
180
+ className: "modal-next-phase",
181
+ message: `La fase ${newNextPhase} ya está siendo utilizada como siguiente fase en otra fase.`,
182
+ icon: "info",
183
+ customComponent: (
184
+ <div className="container-input-name">
185
+ <p>La fase anterior se borrará</p>
186
+ <p>¿Estás seguro?</p>
187
+ </div>
188
+ ),
189
+ buttons: [
190
+ <ButtonV2
191
+ key="btn-Cancelar"
192
+ type="white"
193
+ label="Cancelar"
194
+ size={12}
195
+ onClick={() => {
196
+ setModalData((prev) => ({ ...prev, show: false }))
197
+ }}
198
+ />,
199
+ <ButtonV2
200
+ key="btn-Aceptar"
201
+ type="pink"
202
+ label="Aceptar"
203
+ size={12}
204
+ onClick={() => {
205
+ setModalData((prev) => ({ ...prev, show: false }));
206
+ }}
207
+ />,
208
+ ],
209
+ })
210
+ } else {
211
+ // Si la fase no está siendo utilizada, se actualizar la siguiente fase
212
+ updateNextPhase(phaseId, newNextPhase);
213
+ }
214
+ };
215
+
216
+ //eliminar chip
217
+ const handleChipDelete = async(phaseId, chipToRemove) => {
218
+ setGroupsSelected((prevGroups) =>
219
+ prevGroups.filter((chip) => chip.id !== chipToRemove.id)
220
+ );
221
+ setChips((prevChips) =>
222
+ prevChips.filter((chip) => chip.id !== chipToRemove.id)
223
+ );
224
+ setTempChips((prevChips) =>
225
+ prevChips.filter((chip) => chip.id !== chipToRemove.id)
226
+ );
227
+ await deleteGroup(phaseId, chipToRemove.id);
228
+ };
229
+
230
+ //eliminar grupo de fase
231
+ const deleteGroup = async (phaseId, groupId) => {
232
+ try {
233
+ const response = await axios.post(
234
+ `${process.env.REACT_APP_PHASES_ENDPOINT}/delete`,
235
+ {
236
+ deleteGroupOfPhase: {
237
+ phaseId,
238
+ groupId,
239
+ },
240
+ },
241
+ {
242
+ headers: {
243
+ Authorization: token,
244
+ },
245
+ }
246
+ );
247
+ console.log("grupo eliminado correctamente");
248
+ loadData();
249
+ setTempChips((prevChips) =>
250
+ prevChips.filter((chip) => chip.id !== groupId)
251
+ );
252
+ } catch (error) {
253
+ console.error("Error al eliminar grupo de fase:", error);
254
+ }
255
+ };
256
+
257
+ const handleClick = (event) => {
258
+ setAnchorEl(event.currentTarget);
259
+ };
260
+ const handleClose = () => {
261
+ setAnchorEl(null);
262
+ };
263
+
264
+ return (
265
+ <Container>
266
+ <div key={key} className="header-phase">
267
+ <h2>
268
+ Fase {id} - {phaseName}
269
+ </h2>
270
+ <div className="text-button-container">
271
+ <div className="phase-sel">
272
+ <p className="text-phase">Siguiente Fase </p>
273
+ <Select
274
+ value={
275
+ selectedValue.length > 0
276
+ ? selectedValue[0]
277
+ : nextPhaseState
278
+ ? nextPhaseState
279
+ : ""
280
+ }
281
+ placeholder={`Fase`}
282
+ onChange={(e) => {
283
+ const selectedPhase = phases.find(
284
+ (phase) => phase.phaseName === e.target.value
285
+ );
286
+ setSelectedValue(selectedPhase ? [selectedPhase.phaseId] : []);
287
+ }}
288
+ sx={{
289
+ minWidth: "100px",
290
+ height: "24px",
291
+ background: "#F7F7FC",
292
+ borderRadius: "5px",
293
+ fontSize: "12px",
294
+ }}
295
+ MenuProps={{
296
+ PaperProps: {
297
+ style: {
298
+ background: "#F7F7FC",
299
+ },
300
+ },
301
+ }}
302
+ >
303
+ {phases.map((phase) => (
304
+ <MenuItem
305
+ key={phase.phaseId}
306
+ value={phase.phaseName}
307
+ sx={{
308
+ fontSize: "12px",
309
+ color: "#262626",
310
+ minHeight: "auto",
311
+ }}
312
+ >
313
+ {phase.phaseName}
314
+ </MenuItem>
315
+ ))}
316
+ </Select>
317
+ {showMenu && (
318
+ <>
319
+ <Button
320
+ id="basic-button"
321
+ aria-controls={open ? "basic-menu" : undefined}
322
+ aria-haspopup="true"
323
+ aria-expanded={open ? "true" : undefined}
324
+ onClick={(e) => handleClick(e)}
325
+ >
326
+ <img src={options} alt="" />
327
+ </Button>
328
+ <Menu
329
+ id="basic-menu"
330
+ anchorEl={anchorEl}
331
+ open={open}
332
+ onClose={handleClose}
333
+ MenuListProps={{
334
+ "aria-labelledby": "basic-button",
335
+ }}
336
+ sx={{
337
+ ul: {
338
+ paddingTop: "0px",
339
+ paddingBottom: "0px",
340
+ },
341
+ }}
342
+ >
343
+ <MenuItem
344
+ onClick={() => onDeletePhase(id)}
345
+ sx={{
346
+ fontSize: "12px",
347
+ color: "#262626",
348
+ minHeight: "auto",
349
+ }}
350
+ >
351
+ Eliminar Fase
352
+ </MenuItem>
353
+ </Menu>
354
+ </>
355
+ )}
356
+ </div>
357
+ </div>
358
+ </div>
359
+ <div className="attributes-container">
360
+ {chips.map((chip) => (
361
+ <CustomChip
362
+ key={chip.id}
363
+ label={chip.label}
364
+ onDelete={() => handleChipDelete(phaseId, chip)}
365
+ showDelete={showButtonChip}
366
+ />
367
+ ))}
368
+ {showButtonChip && <AddGroup
369
+ id={`add-group-select-${phaseId}`}
370
+ items={groups
371
+ .filter((group) => group.groupActive === 0)
372
+ .map((group) => ({
373
+ value: group.groupId,
374
+ label: group.groupName,
375
+ }))}
376
+ defaultOption="Todos los grupos"
377
+ placeholder="Buscar grupo"
378
+ onChange={(selectedItems) => {
379
+ setGroupsSelected(selectedItems);
380
+ }}
381
+ />}
382
+ </div>
383
+ <Modal
384
+ {...modalData}
385
+ onClickBtnDefault={() =>
386
+ setModalData((prev) => ({ ...prev, show: false }))
387
+ }
388
+ />
389
+ </Container>
390
+ );
391
+ };
@@ -0,0 +1,97 @@
1
+ import styled from "styled-components";
2
+ import { FontFamily, GlobalColors } from "../../../global-files/variables";
3
+
4
+ export const Container = styled.div`
5
+ display: flex;
6
+ flex-direction:column;
7
+ gap:10px;
8
+ align-items: center;
9
+ border-radius:10px;
10
+ border:1px solid ${GlobalColors.gray_light};
11
+ padding:10px 15px;
12
+ font-family:${FontFamily.Roboto}, sans-serif;
13
+ font-size:17px;
14
+
15
+ .header-phase{
16
+ display:flex;
17
+ justify-content: space-between;
18
+ width: 100%;
19
+ padding-bottom: 5px;
20
+ border-bottom: 1px solid ${GlobalColors.gray_light};
21
+
22
+ h2{
23
+ font-family:${FontFamily.Roboto}, sans-serif;
24
+ font-size:17px;
25
+ }
26
+ p{
27
+ font-family:${FontFamily.Roboto}, sans-serif;
28
+ font-size:12px;
29
+ }
30
+ }
31
+ .attributes-container{
32
+ display: flex;
33
+ align-self: flex-start;
34
+ flex-wrap: wrap;
35
+ gap: 10px;
36
+ }
37
+ .phase-sel{
38
+ display: flex;
39
+ align-items: center;
40
+ gap: 10px;
41
+ }
42
+ .button-circle{
43
+ width:30px;
44
+ height:30px;
45
+ padding:2px;
46
+ border-radius:100%;
47
+ min-width:30px;
48
+ border: 1px solid ${GlobalColors.magenta_s2};
49
+ }
50
+ .button-circle:hover {
51
+ border: 1px solid ${GlobalColors.magenta_s2};
52
+ }
53
+ .text-phase{
54
+ font-family:${FontFamily.Roboto}, sans-serif;
55
+ font-size:12px;
56
+ color:${GlobalColors.gray};
57
+ }
58
+ .text-button-container {
59
+ display: flex;
60
+ gap: 10px;
61
+ align-items: center;
62
+ button{
63
+ min-width: 5px;
64
+ cursor: pointer;
65
+ }
66
+ }
67
+ .modal-next-phase .contentModal {
68
+ max-width: 250px;
69
+ .container-input-name p{
70
+ text-align:center;
71
+ }
72
+ }
73
+ `;
74
+
75
+ export const ContainerIcon = styled.div`
76
+ cursor: pointer;
77
+ @font-face {
78
+ font-family: "Material Symbols Outlined";
79
+ font-style: normal;
80
+ font-weight: 100 700;
81
+ src: url(https://fonts.gstatic.com/s/materialsymbolsoutlined/v68/kJEhBvYX7BgnkSrUwT8OhrdQw4oELdPIeeII9v6oFsLjBuVY.woff2)
82
+ format("woff2");
83
+ }
84
+ .iconos-out {
85
+ font-family: "Material Symbols Outlined";
86
+ font-size: 20px;
87
+ //line-height: 1;
88
+ margin-top: 10px;
89
+ }
90
+ .iconos-out {
91
+ font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 48;
92
+ color: #B64545;
93
+ }
94
+ .iconos-grises {
95
+ font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 48;
96
+ color: ${GlobalColors.magenta_s2};
97
+ }`;
@@ -3,6 +3,7 @@ import { ScreenHeader } from "../../atoms/ScreenHeader/index";
3
3
  import { Status } from "../../atoms/Status/index";
4
4
  import { ProgressBar } from "../../atoms/ProgressBar/index";
5
5
  import { PriorityFlag } from "../../atoms/PriorityFlag/index";
6
+ import { ObservationFlag } from "../../atoms/ObservationFlag/index";
6
7
 
7
8
  export const ProductNameHeader = ({
8
9
  productName,
@@ -10,7 +11,15 @@ export const ProductNameHeader = ({
10
11
  priority,
11
12
  date,
12
13
  percentRequired,
14
+ productObservation,
15
+ dataProduct,
16
+ isObservationVisible,
17
+ toggleObservation,
18
+ // handleClickOutside,
19
+ hideObservation
13
20
  }) => {
21
+ const typeFlag =
22
+ productObservation !== null && productObservation !== "" ? "high" : "low";
14
23
  return (
15
24
  <Container>
16
25
  <ScreenHeader headerType={"product-name-header"} text={productName} />
@@ -20,7 +29,16 @@ export const ProductNameHeader = ({
20
29
  progressBarType={statusType}
21
30
  percentRequired={percentRequired}
22
31
  />
23
- <PriorityFlag priority={priority} />
32
+ {/* <PriorityFlag priority={priority} /> */}
33
+ <ObservationFlag
34
+ observation={typeFlag}
35
+ contentObservation={productObservation}
36
+ dataProduct={dataProduct}
37
+ isObservationVisible ={isObservationVisible}
38
+ toggleObservation = {toggleObservation}
39
+ // handleClickOutside = {handleClickOutside}
40
+ hideObservation={hideObservation}
41
+ />
24
42
  <ScreenHeader headerType={"date-header"} text={date} />
25
43
  </Container>
26
44
  );
@@ -0,0 +1,37 @@
1
+ import { ProductNameHeaderv2 } from "./index";
2
+ import { GlobalStatus, GlobalColors } from "../../../global-files/variables";
3
+
4
+ export default {
5
+ title: "Components/molecules/ProductNameHeaderv2",
6
+ component: ProductNameHeaderv2,
7
+ argTypes: {
8
+ statusType: {
9
+ options: Object.values(GlobalStatus),
10
+ control: { type: "select" },
11
+ },
12
+ percent: {
13
+ control: { type: "range", min: 0, max: 100, step: 1 },
14
+ },
15
+ backgroundColor: {
16
+ options: Object.keys(GlobalColors),
17
+ control: { type: "select" },
18
+ },
19
+ priority: {
20
+ options: ["no priority", "low", "medium", "high"],
21
+ control: { type: "select" },
22
+ },
23
+ },
24
+ };
25
+
26
+ const Template = (args) => <ProductNameHeaderv2 {...args} />;
27
+
28
+ export const ProductNameHeaderv2Default = Template.bind({});
29
+
30
+ ProductNameHeaderv2Default.args = {
31
+ productName: "Nombre del producto",
32
+ statusType: "AP",
33
+ percent: 10,
34
+ backgroundColor: "s2",
35
+ priority: "no priority",
36
+ date: new Date().toLocaleDateString(),
37
+ };
@@ -0,0 +1,12 @@
1
+ import { Container } from "./styles";
2
+ import { ScreenHeaderv2 } from "../../atoms/ScreenHeaderv2";
3
+
4
+ export const ProductNameHeaderv2 = ({
5
+ productName
6
+ }) => {
7
+ return (
8
+ <Container>
9
+ <ScreenHeaderv2 headerType={"product-name-header"} text={productName} />
10
+ </Container>
11
+ );
12
+ };
@@ -0,0 +1,10 @@
1
+ import styled from "styled-components";
2
+
3
+ export const Container = styled.div`
4
+ display: flex;
5
+ align-items: center;
6
+
7
+ * + * {
8
+ margin-left: 10px;
9
+ }
10
+ `;
@@ -0,0 +1,37 @@
1
+ import { ProductSkuStatus } from "./index";
2
+ import { GlobalStatus, GlobalColors } from "../../../global-files/variables";
3
+
4
+ export default {
5
+ title: "Components/molecules/ProductSkuStatus",
6
+ component: ProductSkuStatus,
7
+ argTypes: {
8
+ statusType: {
9
+ options: Object.values(GlobalStatus),
10
+ control: { type: "select" },
11
+ },
12
+ percent: {
13
+ control: { type: "range", min: 0, max: 100, step: 1 },
14
+ },
15
+ backgroundColor: {
16
+ options: Object.keys(GlobalColors),
17
+ control: { type: "select" },
18
+ },
19
+ priority: {
20
+ options: ["no priority", "low", "medium", "high"],
21
+ control: { type: "select" },
22
+ },
23
+ },
24
+ };
25
+
26
+ const Template = (args) => <ProductSkuStatus {...args} />;
27
+
28
+ export const ProductSkuStatusDefault = Template.bind({});
29
+
30
+ ProductSkuStatusDefault.args = {
31
+ statusType: "AP",
32
+ percent: 84,
33
+ backgroundColor: "s2",
34
+ priority: "no priority",
35
+ percentRequired:100,
36
+ // date: new Date().toLocaleDateString(),
37
+ };
@@ -0,0 +1,26 @@
1
+ import { Container } from "./styles";
2
+ import { Status } from "../../atoms/Status/index";
3
+ import { Progress } from "../../atoms/Progress";
4
+
5
+ export const ProductSkuStatus = ({
6
+ statusType,
7
+ percentRequired,
8
+ version,
9
+ setShowVersionSelector,
10
+ showShield
11
+ }) => {
12
+ return (
13
+ <Container>
14
+ {statusType && <Status statusType={statusType} />}
15
+ <Progress
16
+ percent={percentRequired}
17
+ progressBarType={statusType}
18
+ percentRequired={percentRequired}
19
+ version={version}
20
+ setShowVersionSelector={setShowVersionSelector}
21
+ showShield={showShield}
22
+ />
23
+
24
+ </Container>
25
+ );
26
+ };
@@ -0,0 +1,7 @@
1
+ import styled from "styled-components";
2
+
3
+ export const Container = styled.div`
4
+ display: flex;
5
+ align-items: center;
6
+ gap:10px;
7
+ `;
@@ -0,0 +1,35 @@
1
+ import { RetailerSelectorv2 } from "./index";
2
+
3
+ export default {
4
+ title: "Components/molecules/RetailerSelectorv2",
5
+ component: RetailerSelectorv2,
6
+ };
7
+
8
+ const Template = (args) => <RetailerSelectorv2 {...args} />;
9
+
10
+ export const RetailerSelectorDefault = Template.bind({});
11
+ RetailerSelectorDefault.args = {
12
+ retailers: [
13
+ {
14
+ id: 2,
15
+ name: "Walmart Mercancías Generales",
16
+ country: "México",
17
+ id_region: 1,
18
+ active: 1,
19
+ },
20
+ {
21
+ id: 3,
22
+ name: "Sam´s Club",
23
+ country: "México",
24
+ id_region: 1,
25
+ active: 1,
26
+ },
27
+ {
28
+ id: 14,
29
+ name: "Maskota y Petsy",
30
+ country: "México",
31
+ id_region: 1,
32
+ active: 1,
33
+ },
34
+ ],
35
+ };