contentoh-components-library 21.2.83 → 21.2.85

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 (177) hide show
  1. package/.env.development +6 -1
  2. package/dist/assets/fonts/Roboto/Roboto-Medium.ttf +0 -0
  3. package/dist/assets/fonts/Roboto/Roboto-Regular.ttf +0 -0
  4. package/dist/assets/images/chatPopup/Spinner.gif +0 -0
  5. package/dist/assets/images/chatPopup/close.svg +3 -0
  6. package/dist/assets/images/chatPopup/defaultImage.png +0 -0
  7. package/dist/assets/images/chatPopup/defaultProfile.png +0 -0
  8. package/dist/assets/images/chatPopup/doc.svg +1 -0
  9. package/dist/assets/images/chatPopup/document.svg +1 -0
  10. package/dist/assets/images/chatPopup/iconChat.svg +19 -0
  11. package/dist/assets/images/chatPopup/iconPlus.svg +3 -0
  12. package/dist/assets/images/chatPopup/pdf.svg +75 -0
  13. package/dist/assets/images/chatPopup/remove.svg +4 -0
  14. package/dist/assets/images/chatPopup/send.svg +3 -0
  15. package/dist/assets/images/chatPopup/svgIcon.svg +109 -0
  16. package/dist/assets/images/chatPopup/upload_file.svg +3 -0
  17. package/dist/assets/images/chatPopup/xls.svg +53 -0
  18. package/dist/assets/images/defaultImages/Spinner.gif +0 -0
  19. package/dist/assets/images/defaultImages/notFound.svg +124 -0
  20. package/dist/components/atoms/ButtonFileChooser/ButtonFileChooser.stories.js +72 -0
  21. package/dist/components/atoms/ButtonFileChooser/index.js +116 -0
  22. package/dist/components/atoms/ButtonFileChooser/styles.js +20 -0
  23. package/dist/components/atoms/ButtonV2/ButtonV2.stories.js +66 -0
  24. package/dist/components/atoms/ButtonV2/index.js +109 -0
  25. package/dist/components/atoms/ButtonV2/styles.js +53 -0
  26. package/dist/components/atoms/CustomIcon/CustomIcon.stories.js +50 -0
  27. package/dist/components/atoms/CustomIcon/index.js +38 -0
  28. package/dist/components/atoms/CustomIcon/styles.js +33 -0
  29. package/dist/components/atoms/IconFile/IconFile.stories.js +48 -0
  30. package/dist/components/atoms/IconFile/index.js +251 -0
  31. package/dist/components/atoms/IconFile/styles.js +23 -0
  32. package/dist/components/atoms/Image/Image.stories.js +63 -0
  33. package/dist/components/atoms/Image/index.js +72 -0
  34. package/dist/components/atoms/Image/styles.js +40 -0
  35. package/dist/components/atoms/ImageLink/ImageLink.stories.js +63 -0
  36. package/dist/components/atoms/ImageLink/index.js +75 -0
  37. package/dist/components/atoms/ImageLink/styles.js +40 -0
  38. package/dist/components/atoms/ImagePreview/ImagePreview.stories.js +70 -0
  39. package/dist/components/atoms/ImagePreview/index.js +220 -0
  40. package/dist/components/atoms/ImagePreview/styles.js +44 -0
  41. package/dist/components/atoms/InputText/InputText.stories.js +62 -0
  42. package/dist/components/atoms/InputText/index.js +64 -0
  43. package/dist/components/atoms/InputText/styles.js +32 -0
  44. package/dist/components/atoms/NotFound/NotFound.stories.js +36 -0
  45. package/dist/components/atoms/NotFound/index.js +73 -0
  46. package/dist/components/atoms/NotFound/styles.js +20 -0
  47. package/dist/components/atoms/Tooltip/Tooltip.stories.js +66 -0
  48. package/dist/components/atoms/Tooltip/index.js +70 -0
  49. package/dist/components/atoms/Tooltip/styles.js +20 -0
  50. package/dist/components/molecules/ButtonDownloadFile/DownloadFile.stories.js +66 -0
  51. package/dist/components/molecules/ButtonDownloadFile/index.js +179 -0
  52. package/dist/components/molecules/ButtonDownloadFile/styles.js +23 -0
  53. package/dist/components/molecules/CustomSelect/CustomSelect.stories.js +21 -22
  54. package/dist/components/molecules/CustomSelect/SelectItem.js +10 -1
  55. package/dist/components/molecules/HeaderTop/index.js +12 -5
  56. package/dist/components/molecules/HeaderTop/styles.js +1 -1
  57. package/dist/components/molecules/ImageTooltip/ImageTooltip.stories.js +72 -0
  58. package/dist/components/molecules/ImageTooltip/index.js +84 -0
  59. package/dist/components/molecules/ImageTooltip/styles.js +33 -0
  60. package/dist/components/organisms/Chat/Chat.stories.js +215 -0
  61. package/dist/components/organisms/Chat/ChatLists/ChatLists.stories.js +83 -0
  62. package/dist/components/organisms/Chat/ChatLists/index.js +158 -0
  63. package/dist/components/organisms/Chat/ChatLists/styles.js +29 -0
  64. package/dist/components/organisms/Chat/ContainerItems/ContainerItems.stories.js +176 -0
  65. package/dist/components/organisms/Chat/ContainerItems/index.js +570 -0
  66. package/dist/components/organisms/Chat/ContainerItems/styles.js +20 -0
  67. package/dist/components/organisms/Chat/ContentChat/ContentChat.stories.js +142 -0
  68. package/dist/components/organisms/Chat/ContentChat/index.js +1422 -0
  69. package/dist/components/organisms/Chat/ContentChat/styles.js +20 -0
  70. package/dist/components/organisms/Chat/Footer/Footer.stories.js +43 -0
  71. package/dist/components/organisms/Chat/Footer/index.js +983 -0
  72. package/dist/components/organisms/Chat/Footer/styles.js +32 -0
  73. package/dist/components/organisms/Chat/Header/Header.stories.js +96 -0
  74. package/dist/components/organisms/Chat/Header/index.js +84 -0
  75. package/dist/components/organisms/Chat/Header/styles.js +20 -0
  76. package/dist/components/organisms/Chat/index.js +325 -0
  77. package/dist/components/organisms/Chat/styles.js +29 -0
  78. package/dist/components/organisms/Modal/Modal.stories.js +66 -0
  79. package/dist/components/organisms/Modal/index.js +95 -0
  80. package/dist/components/organisms/Modal/styles.js +20 -0
  81. package/dist/components/pages/ProviderProductEdition/index.js +3 -2
  82. package/dist/components/pages/RetailerProductEdition/index.js +4 -7
  83. package/dist/global-files/fonts.css +18 -0
  84. package/dist/global-files/handle_http.js +383 -0
  85. package/dist/global-files/utils.js +472 -0
  86. package/dist/global-files/variables.js +3 -1
  87. package/package.json +13 -1
  88. package/src/assets/fonts/Roboto/Roboto-Medium.ttf +0 -0
  89. package/src/assets/fonts/Roboto/Roboto-Regular.ttf +0 -0
  90. package/src/assets/images/chatPopup/Spinner.gif +0 -0
  91. package/src/assets/images/chatPopup/close.svg +3 -0
  92. package/src/assets/images/chatPopup/defaultImage.png +0 -0
  93. package/src/assets/images/chatPopup/defaultProfile.png +0 -0
  94. package/src/assets/images/chatPopup/doc.svg +1 -0
  95. package/src/assets/images/chatPopup/document.svg +1 -0
  96. package/src/assets/images/chatPopup/iconChat.svg +19 -0
  97. package/src/assets/images/chatPopup/iconPlus.svg +3 -0
  98. package/src/assets/images/chatPopup/pdf.svg +75 -0
  99. package/src/assets/images/chatPopup/remove.svg +4 -0
  100. package/src/assets/images/chatPopup/send.svg +3 -0
  101. package/src/assets/images/chatPopup/svgIcon.svg +109 -0
  102. package/src/assets/images/chatPopup/upload_file.svg +3 -0
  103. package/src/assets/images/chatPopup/xls.svg +53 -0
  104. package/src/assets/images/customSelect/starIcon.svg +14 -0
  105. package/src/assets/images/defaultImages/Spinner.gif +0 -0
  106. package/src/assets/images/defaultImages/notFound.svg +124 -0
  107. package/src/components/atoms/ButtonFileChooser/ButtonFileChooser.stories.js +47 -0
  108. package/src/components/atoms/ButtonFileChooser/index.js +70 -0
  109. package/src/components/atoms/ButtonFileChooser/styles.js +4 -0
  110. package/src/components/atoms/ButtonV2/ButtonV2.stories.js +50 -0
  111. package/src/components/atoms/ButtonV2/index.js +74 -0
  112. package/src/components/atoms/ButtonV2/styles.js +187 -0
  113. package/src/components/atoms/CustomIcon/CustomIcon.stories.js +36 -0
  114. package/src/components/atoms/CustomIcon/index.js +41 -0
  115. package/src/components/atoms/CustomIcon/styles.js +85 -0
  116. package/src/components/atoms/IconFile/IconFile.stories.js +35 -0
  117. package/src/components/atoms/IconFile/index.js +120 -0
  118. package/src/components/atoms/IconFile/styles.js +67 -0
  119. package/src/components/atoms/Image/Image.stories.js +43 -0
  120. package/src/components/atoms/Image/index.js +54 -0
  121. package/src/components/atoms/Image/styles.js +25 -0
  122. package/src/components/atoms/ImageLink/ImageLink.stories.js +43 -0
  123. package/src/components/atoms/ImageLink/index.js +58 -0
  124. package/src/components/atoms/ImageLink/styles.js +30 -0
  125. package/src/components/atoms/ImagePreview/ImagePreview.stories.js +52 -0
  126. package/src/components/atoms/ImagePreview/index.js +192 -0
  127. package/src/components/atoms/ImagePreview/styles.js +77 -0
  128. package/src/components/atoms/InputText/InputText.stories.js +40 -0
  129. package/src/components/atoms/InputText/index.js +63 -0
  130. package/src/components/atoms/InputText/styles.js +89 -0
  131. package/src/components/atoms/NotFound/NotFound.stories.js +19 -0
  132. package/src/components/atoms/NotFound/index.js +53 -0
  133. package/src/components/atoms/NotFound/styles.js +55 -0
  134. package/src/components/atoms/Tooltip/Tooltip.stories.js +51 -0
  135. package/src/components/atoms/Tooltip/index.js +59 -0
  136. package/src/components/atoms/Tooltip/styles.js +42 -0
  137. package/src/components/molecules/ButtonDownloadFile/DownloadFile.stories.js +54 -0
  138. package/src/components/molecules/ButtonDownloadFile/index.js +113 -0
  139. package/src/components/molecules/ButtonDownloadFile/styles.js +66 -0
  140. package/src/components/molecules/CustomSelect/CustomSelect.stories.js +20 -12
  141. package/src/components/molecules/CustomSelect/SelectItem.js +7 -0
  142. package/src/components/molecules/HeaderTop/index.js +11 -6
  143. package/src/components/molecules/HeaderTop/styles.js +4 -0
  144. package/src/components/molecules/ImageTooltip/ImageTooltip.stories.js +46 -0
  145. package/src/components/molecules/ImageTooltip/index.js +64 -0
  146. package/src/components/molecules/ImageTooltip/styles.js +18 -0
  147. package/src/components/organisms/Chat/Chat.stories.js +199 -0
  148. package/src/components/organisms/Chat/ChatLists/ChatLists.stories.js +65 -0
  149. package/src/components/organisms/Chat/ChatLists/Rotoplas.jpeg +0 -0
  150. package/src/components/organisms/Chat/ChatLists/THD.png +0 -0
  151. package/src/components/organisms/Chat/ChatLists/index.js +141 -0
  152. package/src/components/organisms/Chat/ChatLists/styles.js +162 -0
  153. package/src/components/organisms/Chat/ContainerItems/ContainerItems.stories.js +142 -0
  154. package/src/components/organisms/Chat/ContainerItems/index.js +551 -0
  155. package/src/components/organisms/Chat/ContainerItems/styles.js +336 -0
  156. package/src/components/organisms/Chat/ContentChat/ContentChat.stories.js +102 -0
  157. package/src/components/organisms/Chat/ContentChat/Rotoplas.jpeg +0 -0
  158. package/src/components/organisms/Chat/ContentChat/THD.png +0 -0
  159. package/src/components/organisms/Chat/ContentChat/index.js +900 -0
  160. package/src/components/organisms/Chat/ContentChat/styles.js +41 -0
  161. package/src/components/organisms/Chat/Footer/Footer.stories.js +22 -0
  162. package/src/components/organisms/Chat/Footer/index.js +669 -0
  163. package/src/components/organisms/Chat/Footer/styles.js +286 -0
  164. package/src/components/organisms/Chat/Header/Header.stories.js +66 -0
  165. package/src/components/organisms/Chat/Header/index.js +94 -0
  166. package/src/components/organisms/Chat/Header/styles.js +49 -0
  167. package/src/components/organisms/Chat/index.js +295 -0
  168. package/src/components/organisms/Chat/styles.js +42 -0
  169. package/src/components/organisms/Modal/Modal.stories.js +55 -0
  170. package/src/components/organisms/Modal/index.js +97 -0
  171. package/src/components/organisms/Modal/styles.js +103 -0
  172. package/src/components/pages/ProviderProductEdition/index.js +6 -7
  173. package/src/components/pages/RetailerProductEdition/index.js +5 -4
  174. package/src/global-files/fonts.css +18 -0
  175. package/src/global-files/handle_http.js +231 -0
  176. package/src/global-files/utils.js +300 -0
  177. package/src/global-files/variables.js +2 -0
@@ -0,0 +1,53 @@
1
+ import { Container } from "./styles";
2
+ import ButtonV2 from "../ButtonV2";
3
+ import Modal from "../../organisms/Modal";
4
+ import { FontAwesomeIcon as Icon } from "@fortawesome/react-fontawesome";
5
+ import { faCircleInfo as iconInfo } from "@fortawesome/free-solid-svg-icons";
6
+ import imgNotFountDefault from "../../../assets/images/defaultImages/notFound.svg";
7
+ import PropTypes from "prop-types";
8
+ import { useState, useEffect } from "react";
9
+
10
+ export default function NotFound(props) {
11
+ const {
12
+ className, // string
13
+ code, // string
14
+ message, // string
15
+ details, // string
16
+ } = props;
17
+ const [showModal, setShowModal] = useState(false);
18
+
19
+ return (
20
+ <>
21
+ <Container className={className}>
22
+ <img src={imgNotFountDefault} alt={"imagen not found"} />
23
+
24
+ <div className="divInfo">
25
+ {/* icono info */}
26
+ <ButtonV2
27
+ className={"btnInfo"}
28
+ type={"pink"}
29
+ transparent
30
+ icon={iconInfo}
31
+ size={16}
32
+ onClick={() => {
33
+ setShowModal(true);
34
+ }}
35
+ />
36
+
37
+ <label className="label-error">
38
+ Codigo de error
39
+ <label> {code ? code : 404} </label>
40
+ </label>
41
+ </div>
42
+
43
+ <Modal
44
+ show={showModal}
45
+ title={message ? message : "Error NO especificado"}
46
+ message={details ? details : "Reporta esto a TI"}
47
+ icon={"info"}
48
+ onClickBtnDefault={(event) => setShowModal(false)}
49
+ />
50
+ </Container>
51
+ </>
52
+ );
53
+ }
@@ -0,0 +1,55 @@
1
+ import styled from "styled-components";
2
+ import { GlobalColors, FontFamily } from "../../../global-files/variables";
3
+
4
+ export const Container = styled.div`
5
+ width: 100%;
6
+ height: 100%;
7
+ min-width: min-content;
8
+ min-height: min-content;
9
+ display: flex;
10
+ flex-direction: column;
11
+ justify-content: center;
12
+ align-items: center;
13
+ gap: 6px;
14
+ padding: 20px 10px;
15
+ overflow: auto;
16
+ //border: 1px solid red;
17
+
18
+ img {
19
+ width: 80%;
20
+ min-width: 35px;
21
+ max-width: 480px;
22
+ max-height: 90%;
23
+ object-fit: contain;
24
+ //border: 1px solid blue;
25
+ }
26
+
27
+ .divInfo {
28
+ display: flex;
29
+ flex-direction: row;
30
+ flex-wrap: wrap;
31
+ gap: 7px;
32
+ align-items: center;
33
+
34
+ .btnInfo {
35
+ padding: 0px;
36
+ }
37
+
38
+ .label-error {
39
+ display: flex;
40
+ flex-direction: row;
41
+ flex-wrap: wrap;
42
+ align-items: center;
43
+ gap: 3px;
44
+ font-family: ${FontFamily.RobotoRegular}, sans-serif;
45
+ font-size: 13px;
46
+ color: #262626;
47
+
48
+ label {
49
+ font-family: ${FontFamily.RobotoMedium}, sans-serif;
50
+ font-size: 15px;
51
+ color: #e33aa9;
52
+ }
53
+ }
54
+ }
55
+ `;
@@ -0,0 +1,51 @@
1
+ import Tooltip from "./index";
2
+
3
+ export default {
4
+ title: "Components/atoms/Tooltip",
5
+ component: Tooltip,
6
+ argTypes: {
7
+ position: {
8
+ options: [
9
+ undefined,
10
+ "topStart",
11
+ "topEnd",
12
+ "topCenter",
13
+ "rightStart",
14
+ "rightEnd",
15
+ "rightCenter",
16
+ "bottomStart",
17
+ "bottomEnd",
18
+ "bottomCenter",
19
+ "leftStart",
20
+ "leftEnd",
21
+ "leftCenter",
22
+ ],
23
+ control: { type: "select" },
24
+ },
25
+ addArrow: {
26
+ options: [undefined, false, true],
27
+ control: { type: "select" },
28
+ },
29
+ transitionType: {
30
+ options: [undefined, "grow", "fade", "zoom"],
31
+ control: { type: "select" },
32
+ },
33
+ followCursor: {
34
+ options: [undefined, false, true],
35
+ control: { type: "select" },
36
+ },
37
+ },
38
+ };
39
+
40
+ const Template = (args) => <Tooltip {...args} />;
41
+
42
+ export const TooltipDefault = Template.bind({});
43
+ TooltipDefault.args = {
44
+ componentTooltip: <p> hola soy tooltip de prueba en storybook </p>,
45
+ children: <button> abrir tooltip </button>,
46
+ classNameTooltip: "container-tooltip",
47
+ position: undefined,
48
+ addArrow: undefined,
49
+ transitionType: undefined,
50
+ followCursor: undefined,
51
+ };
@@ -0,0 +1,59 @@
1
+ import { useEffect, useRef, useState } from "react";
2
+ import { Fade, Grow, Popper, Tooltip as TooltipMUI, Zoom } from "@mui/material";
3
+ import { Container } from "./styles";
4
+ import React from "react";
5
+
6
+ export default function Tooltip(props) {
7
+ const {
8
+ componentTooltip, // (jsx) componente que aparecera en el tooltip
9
+ children, // (jsx) componente interno que va dentro de la etiqueta <Tooltip>
10
+ className, // (string) clase del container trigger
11
+ classNameTooltip, // (string) clase del contenedor tooltip
12
+ position, // (string) posicion del contenedor tooltip (values en object positions)
13
+ addArrow, // (boolean) add flecha en la parte posterior del tooltip?
14
+ transitionType, // (string) -> 'grow' (default) | 'fade' | 'zoom'
15
+ followCursor, // (boolean) true -> el tooltip se movera junto al cursor
16
+ } = props;
17
+ const positions = {
18
+ topStart: "top-start",
19
+ topEnd: "top-end",
20
+ topCenter: "top",
21
+
22
+ rightStart: "right-start",
23
+ rightEnd: "right-end",
24
+ rightCenter: "right",
25
+
26
+ bottomStart: "bottom-start",
27
+ bottomEnd: "bottom-end",
28
+ bottomCenter: "bottom",
29
+
30
+ leftStart: "left-start",
31
+ leftEnd: "left-end",
32
+ leftCenter: "left",
33
+ };
34
+
35
+ return (
36
+ <TooltipMUI
37
+ {...props}
38
+ placement={positions[position] ?? positions.topCenter}
39
+ arrow={addArrow || addArrow === undefined ? true : false}
40
+ componentsProps={{
41
+ tooltip: { className: classNameTooltip },
42
+ popper: { disablePortal: true },
43
+ transition: { timeout: 300 },
44
+ }}
45
+ TransitionComponent={
46
+ transitionType === "grow"
47
+ ? Grow
48
+ : transitionType === "fade"
49
+ ? Fade
50
+ : Zoom
51
+ }
52
+ enterDelay={300}
53
+ followCursor={followCursor ?? false}
54
+ title={componentTooltip}
55
+ >
56
+ <Container className={className}> {children} </Container>
57
+ </TooltipMUI>
58
+ );
59
+ }
@@ -0,0 +1,42 @@
1
+ import { FontFamily } from "../../../global-files/variables";
2
+ import styled from "styled-components";
3
+
4
+ export const Container = styled.div`
5
+ width: fit-content;
6
+ //margin: 100px 0px 0px 100px; modo dev
7
+ //border: 1px solid red; modo dev
8
+
9
+ + .MuiTooltip-popper {
10
+ background-color: transparent;
11
+
12
+ .MuiTooltip-tooltip {
13
+ --background: white;
14
+ box-shadow: 0px 0px 10px 1px gray;
15
+ background-color: var(--background);
16
+ padding: 10px;
17
+ border-radius: 7px;
18
+ max-width: 60vw;
19
+ font-family: ${FontFamily.RobotoMedium}, sans-serif;
20
+ font-size: 12px;
21
+ text-align: left;
22
+ color: #262626;
23
+
24
+ .MuiTooltip-arrow {
25
+ color: var(--background);
26
+ }
27
+ }
28
+
29
+ &[data-popper-placement*="bottom"] .MuiTooltip-tooltip {
30
+ margin-top: 10px;
31
+ }
32
+ &[data-popper-placement*="top"] .MuiTooltip-tooltip {
33
+ margin-bottom: 10px;
34
+ }
35
+ &[data-popper-placement*="left"] .MuiTooltip-tooltip {
36
+ margin-right: 10px;
37
+ }
38
+ &[data-popper-placement*="right"] .MuiTooltip-tooltip {
39
+ margin-left: 10px;
40
+ }
41
+ }
42
+ `;
@@ -0,0 +1,54 @@
1
+ import ButtonDownloadFile from "./index";
2
+ export default {
3
+ title: "Components/molecules/ButtonDownloadFile",
4
+ component: ButtonDownloadFile,
5
+ argTypes: {
6
+ type: {
7
+ options: [
8
+ undefined,
9
+ "white",
10
+ "whiteS2",
11
+ "pink",
12
+ "gray",
13
+ "purple",
14
+ "black",
15
+ ],
16
+ control: { type: "select" },
17
+ },
18
+ borderType: {
19
+ options: [undefined, "rectangle", "circle"],
20
+ control: { type: "select" },
21
+ },
22
+ },
23
+ };
24
+
25
+ const Template = (args) => <ButtonDownloadFile {...args} />;
26
+
27
+ export const DownloadFileOk = Template.bind({});
28
+ DownloadFileOk.args = {
29
+ type: undefined,
30
+ transparent: false,
31
+ borderType: undefined,
32
+ size: "70",
33
+ onDownload: (error) => {
34
+ error &&
35
+ alert("mensaje: " + error.message + "\nDetalles: " + error.details);
36
+ },
37
+ url: `https://content-management-images.s3.amazonaws.com/84300/1/chat/acuse RFC-8b2eb177-5bfc-4266-9b26-4e7297880594-9e2e5853-4697-442a-8ff7-3b7a1ede0856.pdf`,
38
+ };
39
+
40
+ export const DownloadFileError = Template.bind({});
41
+ DownloadFileError.args = {
42
+ id: "",
43
+ key: "",
44
+ color: undefined,
45
+ background: undefined,
46
+ borderType: "circle",
47
+ size: "70",
48
+ width: "100px",
49
+ onDownload: (error) => {
50
+ error &&
51
+ alert("mensaje: " + error.message + "\nDetalles: " + error.details);
52
+ },
53
+ url: `https://content-management-images.s3.amazonaws.com/84300/1/chat/noExiste.pdf`,
54
+ };
@@ -0,0 +1,113 @@
1
+ import { Container } from "./styles";
2
+ import { FontAwesomeIcon as Icon } from "@fortawesome/react-fontawesome";
3
+ import { faArrowDown as IconDownload } from "@fortawesome/free-solid-svg-icons";
4
+ import { useState } from "react";
5
+ import PropTypes from "prop-types";
6
+ import ButtonV2 from "../../atoms/ButtonV2";
7
+ import IconFile from "../../atoms/IconFile";
8
+ import axios from "axios";
9
+ import { getFileExtension } from "../../../global-files/utils";
10
+
11
+ export default function ButtonDownloadFile(props) {
12
+ const {
13
+ id,
14
+ key,
15
+ className,
16
+ type, // white | pink | gray | purple (white -> predeterminado)
17
+ transparent, // boolean
18
+ size, // number ... default (13)
19
+ borderType, // rectangle || circle || (cualquier otro valor -> no borde)
20
+ url, // src del file
21
+ onDownload, // ( {message , details} ) => {}
22
+ } = props;
23
+ const [showDownload, setShowDownload] = useState(false);
24
+ const [loading, setLoading] = useState(false);
25
+
26
+ const getSrc = () => {
27
+ const temp = url.split("/");
28
+ return temp[temp.length - 1];
29
+ };
30
+
31
+ const getFile = async () => {
32
+ try {
33
+ setLoading(true);
34
+ const responseFile = await axios({
35
+ url: url,
36
+ method: "GET",
37
+ responseType: "blob",
38
+ });
39
+ if (responseFile.status != 200) {
40
+ setLoading(false);
41
+ onDownload &&
42
+ onDownload({
43
+ message: "No se pudo descargar el archivo",
44
+ details: responseFile.statusText,
45
+ });
46
+ return;
47
+ }
48
+ const newUrl = window.URL.createObjectURL(new Blob([responseFile.data]));
49
+ const link = document.createElement("a");
50
+ link.href = newUrl;
51
+ link.setAttribute("download", getSrc());
52
+ link.style.display = "none";
53
+ document.body.appendChild(link);
54
+ setLoading(false);
55
+ link.click();
56
+ document.body.removeChild(link);
57
+ } catch (err) {
58
+ setLoading(false);
59
+ onDownload &&
60
+ onDownload({
61
+ message: "No se pudo descargar el archivo",
62
+ details: err.message,
63
+ });
64
+ }
65
+ };
66
+
67
+ return (
68
+ <>
69
+ <Container
70
+ id={id}
71
+ key={key}
72
+ className={className}
73
+ borderType={borderType}
74
+ onMouseEnter={(event) => {
75
+ if (!showDownload) {
76
+ setShowDownload(true);
77
+ //console.log("showDownload");
78
+ }
79
+ }}
80
+ onMouseLeave={(event) => {
81
+ if (!loading) {
82
+ setShowDownload(false);
83
+ //console.log("showIconFile");
84
+ }
85
+ }}
86
+ >
87
+ {showDownload ? (
88
+ <ButtonV2
89
+ className={"buttonDownload"}
90
+ type={type}
91
+ transparent={transparent}
92
+ size={size}
93
+ borderType={borderType}
94
+ icon={IconDownload}
95
+ isLoading={loading}
96
+ onClick={async (event) => {
97
+ getFile();
98
+ }}
99
+ />
100
+ ) : (
101
+ <IconFile
102
+ className="iconFile"
103
+ type={type}
104
+ transparent={transparent}
105
+ size={size}
106
+ borderType={borderType}
107
+ ext={getFileExtension(getSrc())}
108
+ />
109
+ )}
110
+ </Container>
111
+ </>
112
+ );
113
+ }
@@ -0,0 +1,66 @@
1
+ import styled from "styled-components";
2
+ import { GlobalColors, FontFamily } from "../../../global-files/variables";
3
+
4
+ export const Container = styled.div`
5
+ width: fit-content;
6
+ height: fit-content;
7
+ min-width: min-content;
8
+ min-height: min-content;
9
+ overflow: hidden;
10
+ display: grid;
11
+ place-items: center;
12
+ border-radius: ${({ borderType }) => {
13
+ return borderType?.toLowerCase() === "rectangle"
14
+ ? "10%"
15
+ : borderType?.toLowerCase() === "circle"
16
+ ? "50%"
17
+ : "none";
18
+ }};
19
+
20
+ .buttonDownload {
21
+ width: 100%;
22
+ height: 100%;
23
+ .button {
24
+ // tipos de botones fill
25
+ &.fill {
26
+ &.white:hover {
27
+ background-color: white;
28
+ }
29
+ &.whiteS2:hover {
30
+ background-color: white;
31
+ }
32
+ &.pink:hover {
33
+ background-color: #e33aa9;
34
+ }
35
+ &.gray:hover {
36
+ background-color: #e8e5e5;
37
+ }
38
+ &.purple:hover {
39
+ background-color: #f7f7fc;
40
+ }
41
+ }
42
+
43
+ // tipos de botones transparent
44
+ &.transparent {
45
+ &.white:hover {
46
+ color: white;
47
+ }
48
+ &.pink:hover {
49
+ color: #e33aa9;
50
+ }
51
+ &.gray:hover {
52
+ .icon,
53
+ .iconLoading {
54
+ color: #7b7979;
55
+ }
56
+ }
57
+ &.purple:hover {
58
+ color: #8a6caa;
59
+ }
60
+ &.black:hover {
61
+ color: #262626;
62
+ }
63
+ }
64
+ }
65
+ }
66
+ `;
@@ -1,4 +1,5 @@
1
1
  import { CustomSelect } from "./index";
2
+ import iconStar from "../../../assets/images/customSelect/starIcon.svg";
2
3
 
3
4
  export default {
4
5
  title: "Components/molecules/CustomSelect",
@@ -8,20 +9,27 @@ export default {
8
9
  const Template = (args) => <CustomSelect {...args} />;
9
10
  export const CustomSelectDefault = Template.bind({});
10
11
  CustomSelectDefault.args = {
11
- selectLabel: "Todos los departamentos",
12
+ // selectLabel: "Todos los departamentos",
12
13
  defaultOption: "Todos los departamentos",
13
14
  options: [
14
- {
15
- id: 1,
16
- value: "Decoración",
17
- subOptions: [
18
- { id: 1, value: "Espejos" },
19
- { id: 2, value: "Persianas" },
20
- ],
15
+ {
16
+ id: 47,
17
+ name: "Enero 2023",
18
+ isSelected: true,
19
+ },
20
+ {
21
+ id: 49,
22
+ name: "Mis Favoritos",
21
23
  },
22
- { id: 2, value: "Eléctrico" },
23
- { id: 3, value: "Ferretería" },
24
- { id: 4, value: "Herramientas" },
25
- { id: 5, value: "Iluminación" },
26
24
  ],
25
+ onClickItem: (v, id) => {
26
+ if (v) {
27
+ console.log("Agregar a la lista", id);
28
+ } else {
29
+ console.log("Eliminar a la lista", id);
30
+ }
31
+ },
32
+ icon: iconStar,
33
+ showSearchBar: true,
34
+ customOptions: <p>Esto es un customOptions</p>
27
35
  };
@@ -7,6 +7,7 @@ export const SelecItem = ({
7
7
  setParameterArray,
8
8
  activeFilters,
9
9
  setActiveFilters,
10
+ onClickItem,
10
11
  }) => {
11
12
  const [showSubOptions, setShowSubOptions] = useState(false);
12
13
  const [chkGlobal, setChkGlobal] = useState(false);
@@ -17,6 +18,9 @@ export const SelecItem = ({
17
18
  id={"main-item-" + option.id}
18
19
  label={option.name}
19
20
  onChange={(e) => {
21
+ if (onClickItem) {
22
+ onClickItem(e.target.checked, option.id)
23
+ }
20
24
  const subOptions = option.subOptions;
21
25
  const filtersCopy = { ...activeFilters };
22
26
  if (subOptions) {
@@ -77,6 +81,9 @@ export const SelecItem = ({
77
81
  activeFilters[option.name][sub.name]
78
82
  }
79
83
  onChange={(e) => {
84
+ if (onClickItem) {
85
+ onClickItem(e.target.checked, sub.id)
86
+ }
80
87
  if (e.target.checked) {
81
88
  setParameterArray((current) =>
82
89
  [...current, sub.id].sort((a, b) => a - b)
@@ -2,6 +2,7 @@ import { Container } from "./styles";
2
2
  import { ScreenHeader } from "../../atoms/ScreenHeader/index";
3
3
  import { Button } from "../../atoms/GeneralButton/index";
4
4
  import { useEffect, useRef } from "react";
5
+ import Chat from "../../organisms/Chat";
5
6
 
6
7
  export const HeaderTop = ({ setHeaderTop }) => {
7
8
  const headerTop = useRef();
@@ -13,12 +14,16 @@ export const HeaderTop = ({ setHeaderTop }) => {
13
14
  return (
14
15
  <Container ref={headerTop}>
15
16
  <ScreenHeader text="Edición de producto" />
16
- <Button
17
- buttonType="close-button"
18
- onClick={() => {
19
- window.location.href = `/products`;
20
- }}
21
- />
17
+ <div className="buttons-top">
18
+ {/* <Chat /> */}
19
+
20
+ <Button
21
+ buttonType="close-button"
22
+ onClick={() => {
23
+ window.location.href = `/products`;
24
+ }}
25
+ />
26
+ </div>
22
27
  </Container>
23
28
  );
24
29
  };
@@ -3,4 +3,8 @@ import styled from "styled-components";
3
3
  export const Container = styled.div`
4
4
  display: flex;
5
5
  justify-content: space-between;
6
+ .buttons-top {
7
+ display: flex;
8
+ align-items: center;
9
+ }
6
10
  `;
@@ -0,0 +1,46 @@
1
+ import ImageTooltip from "./index";
2
+
3
+ export default {
4
+ title: "Components/molecules/ImageTooltip",
5
+ component: ImageTooltip,
6
+ argTypes: {},
7
+ };
8
+
9
+ const Template = (args) => <ImageTooltip {...args} />;
10
+
11
+ const keyS3_test =
12
+ "84300/1/chat/playa-213f791b-d890-48e1-be19-28bf5a95d517.jpeg";
13
+ const srcTest = `https://content-management-images.s3.amazonaws.com/${keyS3_test}`;
14
+ export const ImageTooltipTest = Template.bind({});
15
+ ImageTooltipTest.args = {
16
+ width: "200px",
17
+ sizeLoading: "50",
18
+ colorLoading: "#bbbbbb",
19
+ src: "bn",
20
+ componentDefault: <label> test error </label>,
21
+ componentTooltip: <label> mensaje del tooltip test </label>,
22
+ };
23
+
24
+ const keyS3_OK =
25
+ "84300/1/chat/f6579ed5-16e5-48d8-ace5-6be8e8e68f53-38896acf-9179-4686-9088-9784df624ab8.png";
26
+ const srcOK = `https://content-management-images.s3.amazonaws.com/${keyS3_OK}`;
27
+ export const ImageTooltipOK = Template.bind({});
28
+ ImageTooltipOK.args = {
29
+ width: "250px",
30
+ sizeLoading: "40",
31
+ src: srcOK,
32
+ componentDefault: <label> img no cargada </label>,
33
+ componentTooltip: <label> mensaje del tooltip OK </label>,
34
+ };
35
+
36
+ const keyS3_ERROR =
37
+ "84300/1/chat/21dba1da-3c60-42c4-97bd-033664808256-fb19ff57-b91c-4ef2-ba2a-d857b55fb33b.svg";
38
+ const srcERROR = `https://content-management-images.s3.amazonaws.com/${keyS3_ERROR}`;
39
+ export const ImageTooltipERROR = Template.bind({});
40
+ ImageTooltipERROR.args = {
41
+ width: "300px",
42
+ sizeLoading: "60",
43
+ src: srcERROR,
44
+ componentDefault: <label> ERROR al cargar </label>,
45
+ componentTooltip: <label> mensaje del tooltip ERROR </label>,
46
+ };