contentoh-components-library 21.2.73 → 21.2.75
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.
- package/.env.development +1 -4
- package/dist/components/atoms/StatusTag/StatusTag.stories.js +48 -0
- package/dist/components/atoms/StatusTag/index.js +58 -0
- package/dist/components/atoms/StatusTag/styles.js +20 -0
- package/dist/components/molecules/CustomSelect/CustomSelect.stories.js +22 -21
- package/dist/components/molecules/CustomSelect/SelectItem.js +1 -10
- package/dist/components/molecules/CustomSelect/index.js +4 -3
- package/dist/components/molecules/HeaderTop/index.js +5 -10
- package/dist/components/molecules/HeaderTop/styles.js +1 -1
- package/dist/components/molecules/SignInLogin/styles.js +1 -1
- package/dist/components/organisms/VersionSelector/index.js +7 -2
- package/dist/components/pages/Dashboard/Dashboard.stories.js +1 -1
- package/dist/components/pages/Dashboard/index.js +2 -3
- package/dist/components/pages/ProviderProductEdition/index.js +13 -9
- package/dist/components/pages/RegistrationLoginFirstStep/RegistrationLoginFirstStep.stories.js +37 -0
- package/dist/components/pages/RegistrationLoginFirstStep/index.js +269 -0
- package/dist/components/pages/RegistrationLoginFirstStep/styles.js +20 -0
- package/dist/global-files/data.js +0 -1
- package/package.json +5 -10
- package/src/components/molecules/CustomSelect/CustomSelect.stories.js +11 -19
- package/src/components/molecules/CustomSelect/SelectItem.js +0 -7
- package/src/components/molecules/CustomSelect/index.js +3 -2
- package/src/components/molecules/HeaderTop/index.js +6 -10
- package/src/components/molecules/HeaderTop/styles.js +0 -4
- package/src/components/molecules/SignInLogin/styles.js +1 -10
- package/src/components/organisms/VersionSelector/index.js +7 -1
- package/src/components/pages/Dashboard/Dashboard.stories.js +1 -1
- package/src/components/pages/Dashboard/index.js +4 -5
- package/src/components/pages/ProviderProductEdition/index.js +1 -0
- package/src/global-files/data.js +0 -1
- package/src/assets/images/chatPopup/Spinner.gif +0 -0
- package/src/assets/images/chatPopup/close.svg +0 -3
- package/src/assets/images/chatPopup/defaultImage.png +0 -0
- package/src/assets/images/chatPopup/defaultProfile.png +0 -0
- package/src/assets/images/chatPopup/doc.svg +0 -1
- package/src/assets/images/chatPopup/document.svg +0 -1
- package/src/assets/images/chatPopup/iconChat.svg +0 -19
- package/src/assets/images/chatPopup/iconPlus.svg +0 -3
- package/src/assets/images/chatPopup/pdf.svg +0 -75
- package/src/assets/images/chatPopup/remove.svg +0 -4
- package/src/assets/images/chatPopup/send.svg +0 -3
- package/src/assets/images/chatPopup/svgIcon.svg +0 -109
- package/src/assets/images/chatPopup/upload_file.svg +0 -3
- package/src/assets/images/chatPopup/xls.svg +0 -53
- package/src/assets/images/customSelect/starIcon.svg +0 -14
- package/src/components/atoms/ChatPopUp/ChatPopUp.stories.js +0 -11
- package/src/components/atoms/ChatPopUp/index.js +0 -541
- package/src/components/atoms/ChatPopUp/styles.js +0 -278
- package/src/components/atoms/ChatPopUp/utils/handlersChat.js +0 -104
- package/src/components/atoms/Tooltip/Tooltip.stories.js +0 -15
- package/src/components/atoms/Tooltip/index.js +0 -35
- package/src/components/atoms/Tooltip/styles.js +0 -5
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.RegistrationLoginFirstStep = void 0;
|
|
9
|
+
|
|
10
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
+
|
|
12
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
|
|
13
|
+
|
|
14
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
15
|
+
|
|
16
|
+
var _styles = require("./styles");
|
|
17
|
+
|
|
18
|
+
var _GradientPanel = require("../../atoms/GradientPanel");
|
|
19
|
+
|
|
20
|
+
var _CarouselImagesLogin = require("../../molecules/CarouselImagesLogin");
|
|
21
|
+
|
|
22
|
+
var _react = require("react");
|
|
23
|
+
|
|
24
|
+
var _LogoImage = require("../../atoms/LogoImage");
|
|
25
|
+
|
|
26
|
+
var _ScreenHeader = require("../../atoms/ScreenHeader");
|
|
27
|
+
|
|
28
|
+
var _variables = require("../../../global-files/variables");
|
|
29
|
+
|
|
30
|
+
var _TagAndInput = require("../../molecules/TagAndInput");
|
|
31
|
+
|
|
32
|
+
var _GeneralButton = require("../../atoms/GeneralButton");
|
|
33
|
+
|
|
34
|
+
var _GeneralInput = require("../../atoms/GeneralInput");
|
|
35
|
+
|
|
36
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
37
|
+
|
|
38
|
+
var RegistrationLoginFirstStep = function RegistrationLoginFirstStep(_ref) {
|
|
39
|
+
var _ref$imageArrayCarous = _ref.imageArrayCarousel,
|
|
40
|
+
imageArrayCarousel = _ref$imageArrayCarous === void 0 ? [] : _ref$imageArrayCarous,
|
|
41
|
+
textCarousel = _ref.textCarousel,
|
|
42
|
+
backogroundColorCarousel = _ref.backogroundColorCarousel;
|
|
43
|
+
|
|
44
|
+
var _useState = (0, _react.useState)(false),
|
|
45
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
46
|
+
emptyName = _useState2[0],
|
|
47
|
+
setEmptyName = _useState2[1];
|
|
48
|
+
|
|
49
|
+
var _useState3 = (0, _react.useState)(false),
|
|
50
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
51
|
+
emptyLastName = _useState4[0],
|
|
52
|
+
setEmptyLastName = _useState4[1];
|
|
53
|
+
|
|
54
|
+
var _useState5 = (0, _react.useState)(false),
|
|
55
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
56
|
+
emptyEmail = _useState6[0],
|
|
57
|
+
setEmptyEmail = _useState6[1];
|
|
58
|
+
|
|
59
|
+
var _useState7 = (0, _react.useState)(false),
|
|
60
|
+
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
|
61
|
+
emptyJob = _useState8[0],
|
|
62
|
+
setEmptyJob = _useState8[1];
|
|
63
|
+
|
|
64
|
+
var _useState9 = (0, _react.useState)(false),
|
|
65
|
+
_useState10 = (0, _slicedToArray2.default)(_useState9, 2),
|
|
66
|
+
emptyPhone = _useState10[0],
|
|
67
|
+
setEmptyPhone = _useState10[1];
|
|
68
|
+
|
|
69
|
+
var _useState11 = (0, _react.useState)(false),
|
|
70
|
+
_useState12 = (0, _slicedToArray2.default)(_useState11, 2),
|
|
71
|
+
invalidEmail = _useState12[0],
|
|
72
|
+
setInvalidEmail = _useState12[1];
|
|
73
|
+
|
|
74
|
+
var validate = /*#__PURE__*/function () {
|
|
75
|
+
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(e) {
|
|
76
|
+
var name, lastName, email, job, phone;
|
|
77
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
78
|
+
while (1) {
|
|
79
|
+
switch (_context.prev = _context.next) {
|
|
80
|
+
case 0:
|
|
81
|
+
e.preventDefault();
|
|
82
|
+
name = document.querySelector("#nameInput").value;
|
|
83
|
+
lastName = document.querySelector("#lastNameInput").value;
|
|
84
|
+
email = document.querySelector("#emailInput").value;
|
|
85
|
+
job = document.querySelector("#jobInput").value;
|
|
86
|
+
phone = document.querySelector("#phoneInput").value;
|
|
87
|
+
name === "" ? setEmptyName(true) : setEmptyName(false);
|
|
88
|
+
lastName === "" ? setEmptyLastName(true) : setEmptyLastName(false);
|
|
89
|
+
email === "" ? setEmptyEmail(true) : setEmptyEmail(false);
|
|
90
|
+
job === "" ? setEmptyJob(true) : setEmptyJob(false);
|
|
91
|
+
phone === "" ? setEmptyPhone(true) : setEmptyPhone(false);
|
|
92
|
+
!/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/.test(email) ? setInvalidEmail(true) : setInvalidEmail(false);
|
|
93
|
+
|
|
94
|
+
case 12:
|
|
95
|
+
case "end":
|
|
96
|
+
return _context.stop();
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}, _callee);
|
|
100
|
+
}));
|
|
101
|
+
|
|
102
|
+
return function validate(_x) {
|
|
103
|
+
return _ref2.apply(this, arguments);
|
|
104
|
+
};
|
|
105
|
+
}();
|
|
106
|
+
|
|
107
|
+
var loginRight = [/*#__PURE__*/(0, _jsxRuntime.jsx)(_LogoImage.LogoImage, {}, "1"), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
108
|
+
className: "credenciales",
|
|
109
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ScreenHeader.ScreenHeader, {
|
|
110
|
+
fontFamily: _variables.FontFamily.AvenirNext,
|
|
111
|
+
color: _variables.GlobalColors.s5,
|
|
112
|
+
text: "Ingresa tus credenciales"
|
|
113
|
+
})
|
|
114
|
+
}, "2"), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
115
|
+
className: "user",
|
|
116
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
117
|
+
className: "name-registration-user",
|
|
118
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_TagAndInput.TagAndInput, {
|
|
119
|
+
inputType: "text",
|
|
120
|
+
inputId: "nameInput",
|
|
121
|
+
label: "Nombre",
|
|
122
|
+
inputPlaceHolder: "Nombre"
|
|
123
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_TagAndInput.TagAndInput, {
|
|
124
|
+
inputType: "text",
|
|
125
|
+
inputId: "lastNameInput",
|
|
126
|
+
label: "Apellido",
|
|
127
|
+
inputPlaceHolder: "Apellido"
|
|
128
|
+
})]
|
|
129
|
+
}), emptyName && /*#__PURE__*/(0, _jsxRuntime.jsx)("label", {
|
|
130
|
+
children: "Ingrese su nombre"
|
|
131
|
+
}), emptyLastName && /*#__PURE__*/(0, _jsxRuntime.jsx)("label", {
|
|
132
|
+
children: "Ingrese sus apellidos"
|
|
133
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_TagAndInput.TagAndInput, {
|
|
134
|
+
inputType: "text",
|
|
135
|
+
inputId: "emailInput",
|
|
136
|
+
label: "Correo electrónico",
|
|
137
|
+
inputPlaceHolder: "username@contentoh.com"
|
|
138
|
+
}), emptyEmail && /*#__PURE__*/(0, _jsxRuntime.jsx)("label", {
|
|
139
|
+
children: "Ingrese su correo"
|
|
140
|
+
}), invalidEmail && !emptyEmail && /*#__PURE__*/(0, _jsxRuntime.jsx)("label", {
|
|
141
|
+
children: "Ingrese un correo v\xE1lido"
|
|
142
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_TagAndInput.TagAndInput, {
|
|
143
|
+
inputType: "text",
|
|
144
|
+
inputId: "jobInput",
|
|
145
|
+
label: "Puesto laboral",
|
|
146
|
+
inputPlaceHolder: "Puesto dentro de la empresa"
|
|
147
|
+
}), emptyJob && /*#__PURE__*/(0, _jsxRuntime.jsx)("label", {
|
|
148
|
+
children: "Ingrese su puesto"
|
|
149
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ScreenHeader.ScreenHeader, {
|
|
150
|
+
text: "Teléfono",
|
|
151
|
+
headerType: "input-name-header"
|
|
152
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
153
|
+
className: "phone-registration-user",
|
|
154
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("select", {
|
|
155
|
+
name: "select",
|
|
156
|
+
className: "phone-options",
|
|
157
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
|
|
158
|
+
children: "+52"
|
|
159
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
|
|
160
|
+
children: "+54"
|
|
161
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
|
|
162
|
+
children: "+57"
|
|
163
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
|
|
164
|
+
children: "+506"
|
|
165
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
|
|
166
|
+
children: "+593"
|
|
167
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
|
|
168
|
+
children: "+503"
|
|
169
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
|
|
170
|
+
children: "+504"
|
|
171
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
|
|
172
|
+
children: "+507"
|
|
173
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
|
|
174
|
+
children: "+51"
|
|
175
|
+
})]
|
|
176
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GeneralInput.GeneralInput, {
|
|
177
|
+
inputId: "phoneInput",
|
|
178
|
+
inputType: "text",
|
|
179
|
+
inputPlaceholder: "Teléfono"
|
|
180
|
+
})]
|
|
181
|
+
}), emptyPhone && /*#__PURE__*/(0, _jsxRuntime.jsx)("label", {
|
|
182
|
+
children: "Ingrese su n\xFAmero de tel\xE9fono"
|
|
183
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ScreenHeader.ScreenHeader, {
|
|
184
|
+
text: "País",
|
|
185
|
+
headerType: "input-name-header"
|
|
186
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("select", {
|
|
187
|
+
name: "select",
|
|
188
|
+
className: "country-options",
|
|
189
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
|
|
190
|
+
value: "value1",
|
|
191
|
+
selected: true,
|
|
192
|
+
children: "Selecciona tu pa\xEDs"
|
|
193
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
|
|
194
|
+
value: "value2",
|
|
195
|
+
children: "Argentina"
|
|
196
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
|
|
197
|
+
value: "value3",
|
|
198
|
+
children: "Colombia"
|
|
199
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
|
|
200
|
+
value: "value2",
|
|
201
|
+
children: "Ecuador"
|
|
202
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
|
|
203
|
+
value: "value3",
|
|
204
|
+
children: "El Salvador"
|
|
205
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
|
|
206
|
+
value: "value2",
|
|
207
|
+
children: "Honduras"
|
|
208
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
|
|
209
|
+
value: "value3",
|
|
210
|
+
children: "M\xE9xico"
|
|
211
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
|
|
212
|
+
value: "value2",
|
|
213
|
+
children: "Panam\xE1"
|
|
214
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("option", {
|
|
215
|
+
value: "value3",
|
|
216
|
+
children: "Per\xFA"
|
|
217
|
+
})]
|
|
218
|
+
}), emptyEmail && /*#__PURE__*/(0, _jsxRuntime.jsx)("label", {
|
|
219
|
+
children: "Seleccione su pa\xEDs"
|
|
220
|
+
})]
|
|
221
|
+
}, "3"), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
222
|
+
className: "button-end",
|
|
223
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_GeneralButton.Button, {
|
|
224
|
+
buttonType: "general-default-button",
|
|
225
|
+
label: "Enviar",
|
|
226
|
+
onClick: function onClick(e) {
|
|
227
|
+
return validate(e);
|
|
228
|
+
}
|
|
229
|
+
})
|
|
230
|
+
}, "4"), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
231
|
+
className: "progress-bar",
|
|
232
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
233
|
+
className: "progress-bar-first-step"
|
|
234
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
235
|
+
className: "progress-bar-registration"
|
|
236
|
+
})]
|
|
237
|
+
}, "5"), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ScreenHeader.ScreenHeader, {
|
|
238
|
+
text: "Paso 1",
|
|
239
|
+
headerType: "date-header",
|
|
240
|
+
color: _variables.GlobalColors.s4
|
|
241
|
+
}, "6"), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
242
|
+
className: "new-login",
|
|
243
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("p", {
|
|
244
|
+
className: "pre-registro",
|
|
245
|
+
children: ["\xBFYa tienes una cuenta?", /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
246
|
+
children: " Inicia Sesi\xF3n"
|
|
247
|
+
})]
|
|
248
|
+
})
|
|
249
|
+
}, "7")];
|
|
250
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_styles.Container, {
|
|
251
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
252
|
+
className: "home-retailer",
|
|
253
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_CarouselImagesLogin.CarouselImagesLogin, {
|
|
254
|
+
panelImg: imageArrayCarousel,
|
|
255
|
+
panelText: textCarousel,
|
|
256
|
+
panelColor: backogroundColorCarousel
|
|
257
|
+
})
|
|
258
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
259
|
+
className: "home-login-retailer",
|
|
260
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_GradientPanel.GradientPanel, {
|
|
261
|
+
componentsArray: loginRight,
|
|
262
|
+
panelType: "home-login",
|
|
263
|
+
panelColor: _variables.GlobalColors.white
|
|
264
|
+
})
|
|
265
|
+
})]
|
|
266
|
+
});
|
|
267
|
+
};
|
|
268
|
+
|
|
269
|
+
exports.RegistrationLoginFirstStep = RegistrationLoginFirstStep;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.Container = void 0;
|
|
9
|
+
|
|
10
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/taggedTemplateLiteral"));
|
|
11
|
+
|
|
12
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
13
|
+
|
|
14
|
+
var _variables = require("../../../global-files/variables");
|
|
15
|
+
|
|
16
|
+
var _templateObject;
|
|
17
|
+
|
|
18
|
+
var Container = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n width: 100%;\n height: 100vh;\n .user {\n .name-registration-user {\n display: flex;\n justify-content: space-between;\n input {\n width: 160px;\n }\n }\n .input-name-header {\n margin-bottom: 4px;\n margin-top: 12px;\n }\n .phone-registration-user {\n display: flex;\n justify-content: space-between;\n .phone-options {\n width: 80px;\n }\n input {\n width: 100%;\n }\n & + * {\n margin-top: 10px;\n }\n }\n .country-options,\n .phone-options {\n width: 100%;\n border: 1px solid ", ";\n font-family: ", ";\n color: ", ";\n font-weight: normal;\n font-size: 12px;\n line-height: 15px;\n padding: 10px;\n outline: none;\n border-radius: 2px;\n resize: none;\n &:focus {\n border: 1px solid ", ";\n }\n }\n }\n .button-end {\n text-align: end;\n .general-default-button {\n width: 160px;\n }\n & + * {\n margin-top: 10px;\n }\n }\n .progress-bar {\n width: 100%;\n height: 8px;\n display: flex;\n justify-content: space-between;\n .progress-bar-first-step {\n width: 33.33%;\n background-color: rgb(196, 196, 196);\n }\n .progress-bar-registration {\n background-color: rgb(226, 226, 226);\n width: 66.66%;\n }\n }\n .date-header {\n .new-login {\n & + * {\n margin-top: 20px;\n }\n }\n }\n .home-login-retailer,\n .home-retailer {\n width: 50%;\n }\n"])), _variables.GlobalColors.s2, _variables.FontFamily.AvenirNext, _variables.GlobalColors.s4, _variables.GlobalColors.magenta_s2);
|
|
19
|
+
|
|
20
|
+
exports.Container = Container;
|
|
@@ -294,7 +294,6 @@ var getNewStatus = function getNewStatus(statusArray) {
|
|
|
294
294
|
if (lookupString.includes("AP")) return "AP";
|
|
295
295
|
if (lookupString.includes("R")) return "R";
|
|
296
296
|
if (lookupString.includes("NA")) return "NA";
|
|
297
|
-
if (lookupString.includes("Ex")) return "EX";
|
|
298
297
|
return new Error("Status not found");
|
|
299
298
|
};
|
|
300
299
|
|
package/package.json
CHANGED
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "contentoh-components-library",
|
|
3
|
-
"version": "21.2.
|
|
3
|
+
"version": "21.2.75",
|
|
4
4
|
"dependencies": {
|
|
5
5
|
"@aws-amplify/auth": "^4.5.3",
|
|
6
6
|
"@aws-amplify/datastore": "^3.11.0",
|
|
7
7
|
"@aws-amplify/ui-react": "^2.17.0",
|
|
8
8
|
"@babel/runtime": "^7.17.2",
|
|
9
|
-
"@emotion/react": "^11.10.4",
|
|
10
|
-
"@emotion/styled": "^11.10.4",
|
|
11
|
-
"@mui/material": "^5.10.8",
|
|
12
|
-
"@mui/styled-engine-sc": "^5.10.6",
|
|
13
9
|
"@storybook/addon-postcss": "^2.0.0",
|
|
14
10
|
"@testing-library/jest-dom": "^5.11.4",
|
|
15
11
|
"@testing-library/react": "^11.1.0",
|
|
@@ -23,7 +19,6 @@
|
|
|
23
19
|
"draft-js": "^0.11.7",
|
|
24
20
|
"file-saver": "^2.0.5",
|
|
25
21
|
"js-base64": "^3.7.2",
|
|
26
|
-
"moment": "^2.29.4",
|
|
27
22
|
"prop-types": "^15.7.2",
|
|
28
23
|
"react": "^17.0.2",
|
|
29
24
|
"react-chartjs-2": "^4.0.1",
|
|
@@ -82,10 +77,10 @@
|
|
|
82
77
|
"devDependencies": {
|
|
83
78
|
"@babel/cli": "^7.17.10",
|
|
84
79
|
"@babel/core": "^7.16.0",
|
|
85
|
-
"@storybook/addon-actions": "^6.5.
|
|
86
|
-
"@storybook/addon-essentials": "^6.5.
|
|
87
|
-
"@storybook/addon-links": "^6.5.
|
|
88
|
-
"@storybook/react": "^6.5.
|
|
80
|
+
"@storybook/addon-actions": "^6.5.7",
|
|
81
|
+
"@storybook/addon-essentials": "^6.5.7",
|
|
82
|
+
"@storybook/addon-links": "^6.5.7",
|
|
83
|
+
"@storybook/react": "^6.5.7",
|
|
89
84
|
"auth": "^0.0.9",
|
|
90
85
|
"auto": "^10.36.5",
|
|
91
86
|
"babel-loader": "^8.2.3",
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { CustomSelect } from "./index";
|
|
2
|
-
import iconStar from "../../../assets/images/customSelect/starIcon.svg";
|
|
3
2
|
|
|
4
3
|
export default {
|
|
5
4
|
title: "Components/molecules/CustomSelect",
|
|
@@ -9,27 +8,20 @@ export default {
|
|
|
9
8
|
const Template = (args) => <CustomSelect {...args} />;
|
|
10
9
|
export const CustomSelectDefault = Template.bind({});
|
|
11
10
|
CustomSelectDefault.args = {
|
|
12
|
-
|
|
11
|
+
selectLabel: "Todos los departamentos",
|
|
13
12
|
defaultOption: "Todos los departamentos",
|
|
14
13
|
options: [
|
|
15
14
|
{
|
|
16
|
-
id:
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
name: "Mis Favoritos",
|
|
15
|
+
id: 1,
|
|
16
|
+
value: "Decoración",
|
|
17
|
+
subOptions: [
|
|
18
|
+
{ id: 1, value: "Espejos" },
|
|
19
|
+
{ id: 2, value: "Persianas" },
|
|
20
|
+
],
|
|
23
21
|
},
|
|
22
|
+
{ id: 2, value: "Eléctrico" },
|
|
23
|
+
{ id: 3, value: "Ferretería" },
|
|
24
|
+
{ id: 4, value: "Herramientas" },
|
|
25
|
+
{ id: 5, value: "Iluminación" },
|
|
24
26
|
],
|
|
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>
|
|
35
27
|
};
|
|
@@ -7,7 +7,6 @@ export const SelecItem = ({
|
|
|
7
7
|
setParameterArray,
|
|
8
8
|
activeFilters,
|
|
9
9
|
setActiveFilters,
|
|
10
|
-
onClickItem,
|
|
11
10
|
}) => {
|
|
12
11
|
const [showSubOptions, setShowSubOptions] = useState(false);
|
|
13
12
|
const [chkGlobal, setChkGlobal] = useState(false);
|
|
@@ -18,9 +17,6 @@ export const SelecItem = ({
|
|
|
18
17
|
id={"main-item-" + option.id}
|
|
19
18
|
label={option.name}
|
|
20
19
|
onChange={(e) => {
|
|
21
|
-
if (onClickItem) {
|
|
22
|
-
onClickItem(e.target.checked, option.id)
|
|
23
|
-
}
|
|
24
20
|
const subOptions = option.subOptions;
|
|
25
21
|
const filtersCopy = { ...activeFilters };
|
|
26
22
|
if (subOptions) {
|
|
@@ -81,9 +77,6 @@ export const SelecItem = ({
|
|
|
81
77
|
activeFilters[option.name][sub.name]
|
|
82
78
|
}
|
|
83
79
|
onChange={(e) => {
|
|
84
|
-
if (onClickItem) {
|
|
85
|
-
onClickItem(e.target.checked, sub.id)
|
|
86
|
-
}
|
|
87
80
|
if (e.target.checked) {
|
|
88
81
|
setParameterArray((current) =>
|
|
89
82
|
[...current, sub.id].sort((a, b) => a - b)
|
|
@@ -2,6 +2,7 @@ import { Container } from "./styles";
|
|
|
2
2
|
import { useEffect, useState } from "react";
|
|
3
3
|
import searchIcon from "../../../assets/images/customSelect/searchIcon.png";
|
|
4
4
|
import { useCloseModal } from "../../../global-files/customHooks";
|
|
5
|
+
import { SelecItem } from "./SelectItem";
|
|
5
6
|
import { Calendar } from "../../organisms/Calendar";
|
|
6
7
|
import { CustomSelectItem } from "../../atoms/CustomSelectItem";
|
|
7
8
|
|
|
@@ -17,7 +18,7 @@ export const CustomSelect = ({
|
|
|
17
18
|
onClickItem,
|
|
18
19
|
icon,
|
|
19
20
|
customOptions,
|
|
20
|
-
|
|
21
|
+
showFilterString,
|
|
21
22
|
}) => {
|
|
22
23
|
const [filters, setFilters] = useState([]);
|
|
23
24
|
const [showList, setShowList] = useCloseModal(customSelectId);
|
|
@@ -150,7 +151,7 @@ export const CustomSelect = ({
|
|
|
150
151
|
)}
|
|
151
152
|
<div className="filters-container">
|
|
152
153
|
{filters?.map((option) =>
|
|
153
|
-
|
|
154
|
+
customSelectId === "dates-select" ? (
|
|
154
155
|
<div
|
|
155
156
|
className="dates-select-item"
|
|
156
157
|
key={customSelectId + option.id}
|
|
@@ -2,7 +2,6 @@ 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 { ChatPopUp } from "../../atoms/ChatPopUp/index";
|
|
6
5
|
|
|
7
6
|
export const HeaderTop = ({ setHeaderTop }) => {
|
|
8
7
|
const headerTop = useRef();
|
|
@@ -14,15 +13,12 @@ export const HeaderTop = ({ setHeaderTop }) => {
|
|
|
14
13
|
return (
|
|
15
14
|
<Container ref={headerTop}>
|
|
16
15
|
<ScreenHeader text="Edición de producto" />
|
|
17
|
-
<
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}}
|
|
24
|
-
/>
|
|
25
|
-
</div>
|
|
16
|
+
<Button
|
|
17
|
+
buttonType="close-button"
|
|
18
|
+
onClick={() => {
|
|
19
|
+
window.location.href = `/products`;
|
|
20
|
+
}}
|
|
21
|
+
/>
|
|
26
22
|
</Container>
|
|
27
23
|
);
|
|
28
24
|
};
|
|
@@ -31,17 +31,13 @@ export const Container = styled.div`
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
.password {
|
|
34
|
+
position: relative;
|
|
34
35
|
& + * {
|
|
35
36
|
margin-top: 20px;
|
|
36
37
|
}
|
|
37
38
|
&:hover {
|
|
38
39
|
border: 1px solid ${GlobalColors.magenta_s2};
|
|
39
40
|
}
|
|
40
|
-
display: flex;
|
|
41
|
-
justify-content: center;
|
|
42
|
-
align-items: center;
|
|
43
|
-
height: 40px;
|
|
44
|
-
position: relative;
|
|
45
41
|
width: 100%;
|
|
46
42
|
border: 1px solid ${GlobalColors.s2};
|
|
47
43
|
.input-container {
|
|
@@ -54,11 +50,6 @@ export const Container = styled.div`
|
|
|
54
50
|
#passwordInput {
|
|
55
51
|
width: 100%;
|
|
56
52
|
background-color: white;
|
|
57
|
-
position: absolute;
|
|
58
|
-
top: 8px;
|
|
59
|
-
left: 0;
|
|
60
|
-
right: 0;
|
|
61
|
-
bottom: 8px;
|
|
62
53
|
box-sizing: border-box;
|
|
63
54
|
border: none;
|
|
64
55
|
}
|
|
@@ -18,13 +18,19 @@ export const VersionSelector = ({
|
|
|
18
18
|
currentVersion,
|
|
19
19
|
setShowCreateVersion,
|
|
20
20
|
setShowVersionSelector,
|
|
21
|
+
jwt,
|
|
21
22
|
}) => {
|
|
22
23
|
const [versions, setVersions] = useState([]);
|
|
23
24
|
|
|
24
25
|
const loadProductVersions = async (articleId) => {
|
|
25
26
|
try {
|
|
26
27
|
const response = await axios.get(
|
|
27
|
-
`${process.env.REACT_APP_VERSIONS_ENDPOINT}?articleId=${articleId}&provider=true
|
|
28
|
+
`${process.env.REACT_APP_VERSIONS_ENDPOINT}?articleId=${articleId}&provider=true`,
|
|
29
|
+
{
|
|
30
|
+
headers: {
|
|
31
|
+
Authorization: jwt,
|
|
32
|
+
},
|
|
33
|
+
}
|
|
28
34
|
);
|
|
29
35
|
|
|
30
36
|
const versionList = JSON.parse(response.data.body).data;
|
|
@@ -41,5 +41,5 @@ DashboardDeafult.args = {
|
|
|
41
41
|
},
|
|
42
42
|
src: "https://content-management-profile-prod.s3.amazonaws.com/id-425/425.png?1666639556174",
|
|
43
43
|
},
|
|
44
|
-
jwt: "
|
|
44
|
+
jwt: "eyJraWQiOiJEV3owZnNieXg2MXNFcVduN3RCXC81bVhod3ZNbFZIOTgwUnZcL3RjT0lKdEk9IiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiIyM2EzZjQ5Ni00ZTM4LTRlMTItOWJmNS03ZjkwYjc3YTJmMzUiLCJjb2duaXRvOmdyb3VwcyI6WyJjb2xhYm9yYWRvcmVzX2NvbnRlbnRvaCJdLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiaXNzIjoiaHR0cHM6XC9cL2NvZ25pdG8taWRwLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tXC91cy1lYXN0LTFfbFN6UVo0WjdSIiwiY29nbml0bzp1c2VybmFtZSI6IjIzYTNmNDk2LTRlMzgtNGUxMi05YmY1LTdmOTBiNzdhMmYzNSIsImF1ZCI6IjUyZDlza2tkY2c4cWpwODhvb2sxdXNlNm1rIiwiZXZlbnRfaWQiOiJiMTRhODNhNS05NDhjLTQyMDgtOTUzNi02NTBiZWFhYjI2MmYiLCJ0b2tlbl91c2UiOiJpZCIsImF1dGhfdGltZSI6MTY2NjYzOTU1NiwibmFtZSI6IkNvbGFib3JhZG9yIiwicGhvbmVfbnVtYmVyIjoiKzUyMTExMSIsImV4cCI6MTY2NjY0MzE1NiwiaWF0IjoxNjY2NjM5NTU2LCJlbWFpbCI6ImxhZGlib2g3ODVAbWkxNjYuY29tIn0.orGhdg1rhoD52Y5hOfr1H2ZWcfx57O_xSu-i8rZaWqQG2FrdeaoNNZ4r207uhaZF-gyuQevMkb02b4GkpMX1WaPRoS6f0OR0zNrOMXiag262G6kog6YuwiAiRasgfpGOhvOMRpwnm9zV3avqaqEI7S1B4VUl688NmwiVd0Zv6U3yuU2uyOc8Sb0wFKaQAcREydK-xNEwDTXzbsAewl3dXMA6lROQDn5ZOumVbAcZVRw1_z8DwGlsLdho_WwXHiDR_fcnFKZAXm1Jf8wJmQgT6EnmRrOIBROLv0e1uaW78nnvLKL7aWUyLr_VUlOb66AiHw0WnDUbVsDKn1nemMF2_Q",
|
|
45
45
|
};
|
|
@@ -239,7 +239,6 @@ export const Dashboard = ({ jwt, user, company }) => {
|
|
|
239
239
|
customSelectId="dates-select"
|
|
240
240
|
parameterArray={datesRange}
|
|
241
241
|
setParameterArray={setDatesRange}
|
|
242
|
-
isSingleSelect
|
|
243
242
|
/>
|
|
244
243
|
<CustomSelect
|
|
245
244
|
showFilterString={true}
|
|
@@ -250,7 +249,7 @@ export const Dashboard = ({ jwt, user, company }) => {
|
|
|
250
249
|
customSelectId="providers-select"
|
|
251
250
|
parameterArray={companyId}
|
|
252
251
|
setParameterArray={setCompanyId}
|
|
253
|
-
defaultOption="Todos los proveedores"
|
|
252
|
+
defaultOption={"Todos los proveedores"}
|
|
254
253
|
/>
|
|
255
254
|
<CustomSelect
|
|
256
255
|
showFilterString={true}
|
|
@@ -261,7 +260,7 @@ export const Dashboard = ({ jwt, user, company }) => {
|
|
|
261
260
|
customSelectId="category-select"
|
|
262
261
|
parameterArray={categoryId}
|
|
263
262
|
setParameterArray={setCategoryId}
|
|
264
|
-
defaultOption="Todas las categorías"
|
|
263
|
+
defaultOption={"Todas las categorías"}
|
|
265
264
|
/>
|
|
266
265
|
<CustomSelect
|
|
267
266
|
showFilterString={true}
|
|
@@ -272,7 +271,7 @@ export const Dashboard = ({ jwt, user, company }) => {
|
|
|
272
271
|
customSelectId="retailers-select"
|
|
273
272
|
parameterArray={retailerId}
|
|
274
273
|
setParameterArray={setRetailerId}
|
|
275
|
-
defaultOption="Todas las cadenas"
|
|
274
|
+
defaultOption={"Todas las cadenas"}
|
|
276
275
|
/>
|
|
277
276
|
{user.is_retailer === 1 && (
|
|
278
277
|
<CustomSelect
|
|
@@ -282,7 +281,7 @@ export const Dashboard = ({ jwt, user, company }) => {
|
|
|
282
281
|
customSelectId="applicants-select"
|
|
283
282
|
parameterArray={applicantsFilter}
|
|
284
283
|
setParameterArray={setApplicantsFilter}
|
|
285
|
-
defaultOption="Todos los solicitantes"
|
|
284
|
+
defaultOption={"Todos los solicitantes"}
|
|
286
285
|
/>
|
|
287
286
|
)}
|
|
288
287
|
</div>
|
|
@@ -939,6 +939,7 @@ export const ProviderProductEdition = ({
|
|
|
939
939
|
);
|
|
940
940
|
});
|
|
941
941
|
const evalResponse = await Promise.all(evaluationArray);
|
|
942
|
+
console.log(evalResponse.map(({ data }) => JSON.parse(data.body)));
|
|
942
943
|
const userType = user.is_retailer === 1 ? "CA" : "P";
|
|
943
944
|
|
|
944
945
|
const productTemp = product;
|
package/src/global-files/data.js
CHANGED
|
@@ -209,6 +209,5 @@ export const getNewStatus = (statusArray) => {
|
|
|
209
209
|
if (lookupString.includes("AP")) return "AP";
|
|
210
210
|
if (lookupString.includes("R")) return "R";
|
|
211
211
|
if (lookupString.includes("NA")) return "NA";
|
|
212
|
-
if (lookupString.includes("Ex")) return "EX";
|
|
213
212
|
return new Error("Status not found");
|
|
214
213
|
};
|
|
Binary file
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14">
|
|
2
|
-
<path id="close_FILL0_wght400_GRAD0_opsz48" d="M6.385,19.308,5.308,18.231l5.923-5.923L5.308,6.385,6.385,5.308l5.923,5.923,5.923-5.923,1.077,1.077-5.923,5.923,5.923,5.923-1.077,1.077-5.923-5.923Z" transform="translate(-5.308 -5.308)" fill="#fff"/>
|
|
3
|
-
</svg>
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 51 65" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round"><use xlink:href="#C" x=".5" y=".5"/><defs><filter id="A" x="-6%" y="-4.6875%" width="116%" height="112.5%"><feGaussianBlur in="SourceAlpha" stdDeviation="1"/><feOffset dx="2" dy="2" result="B"/><feFlood flood-color="#000" flood-opacity=".2"/><feComposite in2="B" operator="in" result="C"/><feMerge><feMergeNode in="C"/><feMergeNode in="SourceGraphic"/></feMerge></filter><filter id="B" x="-27.5%" y="-32.5%" width="160%" height="160%"><feGaussianBlur in="SourceAlpha" stdDeviation="2"/><feOffset dx="1" dy="-1" result="B"/><feFlood flood-color="#000" flood-opacity=".2"/><feComposite in2="B" operator="in" result="C"/><feMerge><feMergeNode in="C"/><feMergeNode in="SourceGraphic"/></feMerge></filter></defs><symbol id="C" overflow="visible"><path d="M50 20L30 0H5a4.99 4.99 0 0 0-5 5v54a4.99 4.99 0 0 0 5 5h40a4.99 4.99 0 0 0 5-5z" fill="#2196f3" stroke="none" filter="url(#A)"/><defs/><g transform="matrix(-1 0 0 -1 50 20)"><path d="M20 20L0 0h15a4.99 4.99 0 0 1 5 5z" fill="#90caf9" stroke="none" filter="url(#B)"/><defs/></g><path d="M10 17.5h17.5V20H10zm0 10h27.5V30H10zm0 10h27.5V40H10zm0 10h27.5V50H10z" stroke="none"/></symbol></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 66 81" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round"><use xlink:href="#A" x=".5" y=".5"/><symbol id="A" overflow="visible"><path d="M44.674 0H0v79.977h65V20.012L44.674 0zM60.93 75.993H4.07V4.007h38.593v18.008h18.291v53.978zm-10.151-40H14.221v-3.984h36.558zm0 9.995H14.221v-3.984h36.558zm0 10.017H14.221v-4.007h36.558zm0 9.994H14.221v-4.007h36.558z" fill="#2a3282" stroke="none"/></symbol></svg>
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="14" height="14" viewBox="0 0 14 14">
|
|
2
|
-
<defs>
|
|
3
|
-
<style>
|
|
4
|
-
.cls-1 {
|
|
5
|
-
fill: #707070;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
.cls-2 {
|
|
9
|
-
clip-path: url(#clip-path);
|
|
10
|
-
}
|
|
11
|
-
</style>
|
|
12
|
-
<clipPath id="clip-path">
|
|
13
|
-
<rect id="Rectángulo_368" data-name="Rectángulo 368" class="cls-1" width="14" height="14" transform="translate(1737 869)"/>
|
|
14
|
-
</clipPath>
|
|
15
|
-
</defs>
|
|
16
|
-
<g id="Enmascarar_grupo_83" data-name="Enmascarar grupo 83" class="cls-2" transform="translate(-1737 -869)">
|
|
17
|
-
<path id="forum_FILL0_wght400_GRAD0_opsz48" class="cls-1" d="M1.4,11.9V2.135a.728.728,0,0,1,.228-.49A.651.651,0,0,1,2.1,1.4h9.082a.675.675,0,0,1,.49.236.714.714,0,0,1,.227.5v6.23a.728.728,0,0,1-.227.49.666.666,0,0,1-.49.245H4.2Zm3.518.7a.678.678,0,0,1-.481-.245.716.716,0,0,1-.236-.49V10.15h8.75V4.2H14.7a.651.651,0,0,1,.472.245.744.744,0,0,1,.227.508v10.43L12.617,12.6ZM10.85,2.45H2.45V9.363L3.763,8.05H10.85Zm-8.4,0v0Z" transform="translate(1735.6 867.609)"/>
|
|
18
|
-
</g>
|
|
19
|
-
</svg>
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
|
|
2
|
-
<path id="Icono_cargar_más" data-name="Icono, cargar más" d="M18,28a9.64,9.64,0,0,1-7.078-2.922A9.64,9.64,0,0,1,8,18a9.64,9.64,0,0,1,2.922-7.078A9.64,9.64,0,0,1,18,8a9.665,9.665,0,0,1,4.656,1.078,11.027,11.027,0,0,1,3.469,2.953V8H28v7.938H20.063V14.063h5.25a9.572,9.572,0,0,0-3.031-3.031A7.888,7.888,0,0,0,18,9.875,8.056,8.056,0,0,0,9.875,18,8.056,8.056,0,0,0,18,26.125a8.2,8.2,0,0,0,4.75-1.484,7.72,7.72,0,0,0,3-3.922h1.937A9.576,9.576,0,0,1,24.094,26,9.947,9.947,0,0,1,18,28Z" transform="translate(-8 -8)" fill="#8a6caa"/>
|
|
3
|
-
</svg>
|