contentoh-components-library 21.6.56 → 21.6.57
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/dist/components/atoms/AsignationOption/index.js +1 -0
- package/dist/components/atoms/AsignationOption/styles.js +1 -1
- package/dist/components/molecules/GalleryAssetElement/styles.js +1 -1
- package/dist/components/molecules/RetailerSelector/RetailerSelector.stories.js +23 -2
- package/dist/components/molecules/RetailerSelector/index.js +7 -2
- package/dist/components/molecules/RetailerSelectorv2/index.js +6 -2
- package/dist/components/organisms/DigitalAssetsTray/DigitalAssetsTray.stories.js +73 -9
- package/dist/components/organisms/DigitalAssetsTray/index.js +13 -5
- package/dist/components/pages/CreatorsProductEdition/CreatorsProductEditionView.js +905 -0
- package/dist/components/pages/CreatorsProductEdition/constants.js +19 -0
- package/dist/components/pages/CreatorsProductEdition/hooks/useCreatorsProductEdition.js +2967 -0
- package/dist/components/pages/CreatorsProductEdition/index.js +33 -0
- package/dist/components/pages/CreatorsProductEdition/mocks/api.fixtures.js +537 -0
- package/dist/components/pages/CreatorsProductEdition/mocks/mockApi.js +251 -0
- package/dist/components/pages/CreatorsProductEdition/sections/CommentBox.js +311 -0
- package/dist/components/pages/CreatorsProductEdition/sections/ImagePanel.js +421 -0
- package/dist/components/pages/CreatorsProductEdition/sections/ImagesSection.js +473 -0
- package/dist/components/pages/CreatorsProductEdition/sections/ProductHeader.js +379 -0
- package/dist/components/pages/CreatorsProductEdition/sections/ProductMedia.js +138 -0
- package/dist/components/pages/CreatorsProductEdition/sections/RetailerMenu.js +162 -0
- package/dist/components/pages/CreatorsProductEdition/sections/ServiceActions.js +542 -0
- package/dist/components/pages/CreatorsProductEdition/sections/StatusChip.js +50 -0
- package/dist/components/pages/CreatorsProductEdition/sections/TabsBar.js +247 -0
- package/dist/components/pages/CreatorsProductEdition/sections/VariantsPanel.js +389 -0
- package/dist/components/pages/CreatorsProductEdition/sections/tokens.js +90 -0
- package/dist/components/pages/CreatorsProductEdition/stories/CreatorsProductEdition.stories.js +168 -0
- package/dist/components/pages/CreatorsProductEdition/stories/CreatorsProductEditionAPI.stories.js +74 -0
- package/dist/components/pages/CreatorsProductEdition/styles.js +46 -0
- package/dist/global-files/digital-assets/assetTypes.js +49 -12
- package/dist/global-files/digital-assets/uploadAssets.js +39 -16
- package/dist/global-files/digital-assets/useDigitalAssets.js +38 -25
- package/package.json +1 -1
- package/src/components/atoms/AsignationOption/index.js +1 -1
- package/src/components/atoms/AsignationOption/styles.js +9 -0
- package/src/components/molecules/GalleryAssetElement/styles.js +5 -1
- package/src/components/molecules/RetailerSelector/RetailerSelector.stories.js +15 -1
- package/src/components/molecules/RetailerSelector/index.js +8 -1
- package/src/components/molecules/RetailerSelectorv2/index.js +7 -1
- package/src/components/organisms/DigitalAssetsTray/DigitalAssetsTray.stories.js +67 -4
- package/src/components/organisms/DigitalAssetsTray/index.js +8 -4
- package/src/global-files/digital-assets/assetTypes.js +42 -10
- package/src/global-files/digital-assets/uploadAssets.js +38 -23
- package/src/global-files/digital-assets/useDigitalAssets.js +19 -8
|
@@ -0,0 +1,473 @@
|
|
|
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.ImagesSection = void 0;
|
|
9
|
+
|
|
10
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
|
|
11
|
+
|
|
12
|
+
var _material = require("@mui/material");
|
|
13
|
+
|
|
14
|
+
var _GalleryElement = require("../../../molecules/GalleryElement");
|
|
15
|
+
|
|
16
|
+
var _GalleryTrayTabs = require("../../../molecules/GalleryTrayTabs");
|
|
17
|
+
|
|
18
|
+
var _DigitalAssetsTray = require("../../../organisms/DigitalAssetsTray");
|
|
19
|
+
|
|
20
|
+
var _tokens = require("./tokens");
|
|
21
|
+
|
|
22
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
23
|
+
|
|
24
|
+
/*
|
|
25
|
+
Pestaña Imágenes: bandejas (imágenes / activos digitales), cabecera de la
|
|
26
|
+
lista con "seleccionar todo", la galería con su zona para soltar archivos, y
|
|
27
|
+
el estado vacío.
|
|
28
|
+
|
|
29
|
+
Reemplaza a GalleryTrayTabs, GalleryHeader y el marcado de la galería de la
|
|
30
|
+
vista original. Se reutilizan tal cual las tarjetas (`GalleryElement`, con sus
|
|
31
|
+
selects de tipo y empaque) y la bandeja de activos (`DigitalAssetsTray`): son
|
|
32
|
+
componentes grandes con lógica propia y rehacerlos sería reinventarlos.
|
|
33
|
+
|
|
34
|
+
Dos cosas que las tarjetas exigen y que por eso se conservan:
|
|
35
|
+
- Una casilla global con id `check-all-images`. Cada tarjeta la busca por
|
|
36
|
+
id al marcarse; si no existe, marcar una imagen lanza un error.
|
|
37
|
+
- "Seleccionar todo" marca las casillas de las tarjetas directamente en el
|
|
38
|
+
DOM (`[id^='gallery-element-']`), igual que GalleryHeader.
|
|
39
|
+
*/
|
|
40
|
+
// Columnas de la lista, calcadas de GalleryHeader para que queden alineadas con
|
|
41
|
+
// las filas de GalleryElement.
|
|
42
|
+
var LIST_COLUMNS = [{
|
|
43
|
+
label: "Imagen",
|
|
44
|
+
pl: 0
|
|
45
|
+
}, {
|
|
46
|
+
label: "Nombre",
|
|
47
|
+
pl: "1.75rem"
|
|
48
|
+
}, {
|
|
49
|
+
label: "Tamaño",
|
|
50
|
+
pl: "2.75rem"
|
|
51
|
+
}, {
|
|
52
|
+
label: "Formato",
|
|
53
|
+
pl: "4.5rem"
|
|
54
|
+
}, {
|
|
55
|
+
label: "¿Tiene leyenda?",
|
|
56
|
+
ml: "-1rem"
|
|
57
|
+
}, {
|
|
58
|
+
label: "Tipo de toma"
|
|
59
|
+
}]; // La lista es una tabla de columnas fijas: por debajo de este ancho se desplaza
|
|
60
|
+
// de lado dentro de su caja en vez de aplastar las columnas.
|
|
61
|
+
|
|
62
|
+
var LIST_MIN_WIDTH = 760;
|
|
63
|
+
|
|
64
|
+
var TrayTabs = function TrayTabs(_ref) {
|
|
65
|
+
var activeTray = _ref.activeTray,
|
|
66
|
+
setActiveTray = _ref.setActiveTray,
|
|
67
|
+
imagesCount = _ref.imagesCount,
|
|
68
|
+
assetsCount = _ref.assetsCount;
|
|
69
|
+
var trays = [{
|
|
70
|
+
id: _GalleryTrayTabs.TRAYS.IMAGES,
|
|
71
|
+
label: "Imágenes",
|
|
72
|
+
count: imagesCount
|
|
73
|
+
}, {
|
|
74
|
+
id: _GalleryTrayTabs.TRAYS.ASSETS,
|
|
75
|
+
label: "Activos digitales",
|
|
76
|
+
count: assetsCount
|
|
77
|
+
}];
|
|
78
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tabs, {
|
|
79
|
+
value: activeTray,
|
|
80
|
+
onChange: function onChange(_, tray) {
|
|
81
|
+
return setActiveTray === null || setActiveTray === void 0 ? void 0 : setActiveTray(tray);
|
|
82
|
+
},
|
|
83
|
+
variant: "scrollable",
|
|
84
|
+
scrollButtons: false,
|
|
85
|
+
TabIndicatorProps: {
|
|
86
|
+
sx: {
|
|
87
|
+
bgcolor: _tokens.COLORS.color_purple,
|
|
88
|
+
height: 2
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
sx: {
|
|
92
|
+
minHeight: 36,
|
|
93
|
+
pt: 1
|
|
94
|
+
},
|
|
95
|
+
children: trays.map(function (tray) {
|
|
96
|
+
var active = tray.id === activeTray;
|
|
97
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tab, {
|
|
98
|
+
value: tray.id,
|
|
99
|
+
disableRipple: true,
|
|
100
|
+
label: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Stack, {
|
|
101
|
+
direction: "row",
|
|
102
|
+
alignItems: "center",
|
|
103
|
+
gap: "6px",
|
|
104
|
+
children: [tray.label, /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Chip, {
|
|
105
|
+
label: tray.count,
|
|
106
|
+
size: "small",
|
|
107
|
+
sx: {
|
|
108
|
+
height: 18,
|
|
109
|
+
minWidth: 20,
|
|
110
|
+
fontFamily: _tokens.FONTS.Lato,
|
|
111
|
+
fontSize: 11,
|
|
112
|
+
bgcolor: active ? _tokens.COLORS.color_purple : _tokens.COLORS.s2,
|
|
113
|
+
color: active ? _tokens.COLORS.white : _tokens.COLORS.s5,
|
|
114
|
+
"& .MuiChip-label": {
|
|
115
|
+
px: "6px"
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
})]
|
|
119
|
+
}),
|
|
120
|
+
sx: {
|
|
121
|
+
minHeight: 36,
|
|
122
|
+
px: "14px",
|
|
123
|
+
py: "6px",
|
|
124
|
+
textTransform: "none",
|
|
125
|
+
fontFamily: _tokens.FONTS.AvenirNext,
|
|
126
|
+
fontSize: 14,
|
|
127
|
+
letterSpacing: "-0.015em",
|
|
128
|
+
color: _tokens.COLORS.s4,
|
|
129
|
+
"&.Mui-selected": {
|
|
130
|
+
color: _tokens.COLORS.s5,
|
|
131
|
+
fontWeight: 600
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}, tray.id);
|
|
135
|
+
})
|
|
136
|
+
});
|
|
137
|
+
};
|
|
138
|
+
/*
|
|
139
|
+
La casilla global se deriva de la selección real y no de
|
|
140
|
+
`state.all_image_checked`: el reducer nunca pone ese valor en true
|
|
141
|
+
(TOGGLE_CHECK_ALL_IMAGES solo llena `selected_images`). En la vista original no
|
|
142
|
+
se nota porque su casilla no está controlada por React y guarda su estado en
|
|
143
|
+
el DOM; controlada con ese valor, se quedaría siempre desmarcada.
|
|
144
|
+
*/
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
var ListHeader = function ListHeader(_ref2) {
|
|
148
|
+
var selectedCount = _ref2.selectedCount,
|
|
149
|
+
totalCount = _ref2.totalCount,
|
|
150
|
+
setCheckAll = _ref2.setCheckAll,
|
|
151
|
+
setSelectedImages = _ref2.setSelectedImages;
|
|
152
|
+
var allSelected = totalCount > 0 && selectedCount >= totalCount;
|
|
153
|
+
var someSelected = selectedCount > 0 && !allSelected;
|
|
154
|
+
|
|
155
|
+
var toggleAll = function toggleAll(e) {
|
|
156
|
+
var checked = e.target.checked;
|
|
157
|
+
document.querySelectorAll("[id^='gallery-element-']").forEach(function (chk) {
|
|
158
|
+
return chk.checked = checked;
|
|
159
|
+
});
|
|
160
|
+
setCheckAll(checked);
|
|
161
|
+
if (!checked) setSelectedImages([]);
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
|
|
165
|
+
sx: {
|
|
166
|
+
display: "flex",
|
|
167
|
+
alignItems: "center",
|
|
168
|
+
width: "100%",
|
|
169
|
+
py: "10px"
|
|
170
|
+
},
|
|
171
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
|
|
172
|
+
sx: {
|
|
173
|
+
width: "5.25%",
|
|
174
|
+
minWidth: 36
|
|
175
|
+
},
|
|
176
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Checkbox, {
|
|
177
|
+
size: "small",
|
|
178
|
+
checked: allSelected,
|
|
179
|
+
indeterminate: someSelected,
|
|
180
|
+
onChange: toggleAll,
|
|
181
|
+
inputProps: {
|
|
182
|
+
id: "check-all-images",
|
|
183
|
+
"aria-label": "Seleccionar todas las imágenes"
|
|
184
|
+
},
|
|
185
|
+
sx: {
|
|
186
|
+
p: "4px",
|
|
187
|
+
color: _tokens.COLORS.s3,
|
|
188
|
+
"&.Mui-checked, &.MuiCheckbox-indeterminate": {
|
|
189
|
+
color: _tokens.COLORS.magenta_s2
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
})
|
|
193
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
|
|
194
|
+
sx: {
|
|
195
|
+
width: "90%",
|
|
196
|
+
display: "grid",
|
|
197
|
+
gridTemplateColumns: "0.1fr 1fr 1fr 1fr 1fr 1fr"
|
|
198
|
+
},
|
|
199
|
+
children: LIST_COLUMNS.map(function (column) {
|
|
200
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Typography, {
|
|
201
|
+
sx: {
|
|
202
|
+
pl: column.pl,
|
|
203
|
+
ml: column.ml,
|
|
204
|
+
textAlign: "center",
|
|
205
|
+
fontFamily: _tokens.FONTS.AvenirNext,
|
|
206
|
+
fontWeight: 600,
|
|
207
|
+
fontSize: 14,
|
|
208
|
+
lineHeight: "21px",
|
|
209
|
+
letterSpacing: "-0.015em",
|
|
210
|
+
color: _tokens.COLORS.s5
|
|
211
|
+
},
|
|
212
|
+
children: column.label
|
|
213
|
+
}, column.label);
|
|
214
|
+
})
|
|
215
|
+
})]
|
|
216
|
+
});
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
var ImagesSection = function ImagesSection(_ref3) {
|
|
220
|
+
var _imagesValues$values, _imagesValues$inputs, _imagesValues$imageTy, _imagesValues$imagePa, _digitalAssets$assets, _digitalAssets$assets2, _selectedImages$lengt;
|
|
221
|
+
|
|
222
|
+
var imagesValues = _ref3.imagesValues,
|
|
223
|
+
selectedImages = _ref3.selectedImages,
|
|
224
|
+
imageLayout = _ref3.imageLayout,
|
|
225
|
+
enableDigitalAssets = _ref3.enableDigitalAssets,
|
|
226
|
+
currentTray = _ref3.currentTray,
|
|
227
|
+
setActiveTray = _ref3.setActiveTray,
|
|
228
|
+
digitalAssets = _ref3.digitalAssets,
|
|
229
|
+
unsavedAssets = _ref3.unsavedAssets,
|
|
230
|
+
selectedAssets = _ref3.selectedAssets,
|
|
231
|
+
setSelectedAssets = _ref3.setSelectedAssets,
|
|
232
|
+
setAllAssetsChecked = _ref3.setAllAssetsChecked,
|
|
233
|
+
canEdit = _ref3.canEdit,
|
|
234
|
+
setCheckAll = _ref3.setCheckAll,
|
|
235
|
+
setSelectedImages = _ref3.setSelectedImages,
|
|
236
|
+
onChangeCurrentImage = _ref3.onChangeCurrentImage,
|
|
237
|
+
onUpdateImage = _ref3.onUpdateImage,
|
|
238
|
+
onSelectImage = _ref3.onSelectImage,
|
|
239
|
+
getRootProps = _ref3.getRootProps,
|
|
240
|
+
getInputProps = _ref3.getInputProps,
|
|
241
|
+
isDragActive = _ref3.isDragActive,
|
|
242
|
+
openFilePicker = _ref3.openFilePicker;
|
|
243
|
+
var images = (_imagesValues$values = imagesValues === null || imagesValues === void 0 ? void 0 : imagesValues.values) !== null && _imagesValues$values !== void 0 ? _imagesValues$values : [];
|
|
244
|
+
var imageInputs = imagesValues === null || imagesValues === void 0 ? void 0 : (_imagesValues$inputs = imagesValues.inputs) === null || _imagesValues$inputs === void 0 ? void 0 : _imagesValues$inputs.map(function (e) {
|
|
245
|
+
return {
|
|
246
|
+
value: e === null || e === void 0 ? void 0 : e.id,
|
|
247
|
+
name: e === null || e === void 0 ? void 0 : e.name,
|
|
248
|
+
required: e === null || e === void 0 ? void 0 : e.required,
|
|
249
|
+
active: images.some(function (value) {
|
|
250
|
+
return (value === null || value === void 0 ? void 0 : value.image_id) === (e === null || e === void 0 ? void 0 : e.id);
|
|
251
|
+
})
|
|
252
|
+
};
|
|
253
|
+
});
|
|
254
|
+
var imageType = imagesValues === null || imagesValues === void 0 ? void 0 : (_imagesValues$imageTy = imagesValues.imageType) === null || _imagesValues$imageTy === void 0 ? void 0 : _imagesValues$imageTy.map(function (e) {
|
|
255
|
+
return {
|
|
256
|
+
value: e === null || e === void 0 ? void 0 : e.id,
|
|
257
|
+
name: e === null || e === void 0 ? void 0 : e.name
|
|
258
|
+
};
|
|
259
|
+
});
|
|
260
|
+
var imagePackagingType = imagesValues === null || imagesValues === void 0 ? void 0 : (_imagesValues$imagePa = imagesValues.imagePackagingType) === null || _imagesValues$imagePa === void 0 ? void 0 : _imagesValues$imagePa.map(function (e) {
|
|
261
|
+
return {
|
|
262
|
+
value: e === null || e === void 0 ? void 0 : e.id,
|
|
263
|
+
name: e === null || e === void 0 ? void 0 : e.name
|
|
264
|
+
};
|
|
265
|
+
});
|
|
266
|
+
var cards = images.map(function (image, index) {
|
|
267
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_GalleryElement.GalleryElement, {
|
|
268
|
+
id: "gallery-element-" + index,
|
|
269
|
+
index: index + "-" + image.name,
|
|
270
|
+
image: image,
|
|
271
|
+
number: index,
|
|
272
|
+
gridLayout: imageLayout,
|
|
273
|
+
imageType: imageType,
|
|
274
|
+
imagePackagingType: imagePackagingType,
|
|
275
|
+
imageInputs: imageInputs,
|
|
276
|
+
selectedImages: selectedImages,
|
|
277
|
+
setCheckAll: setCheckAll,
|
|
278
|
+
changeImage: onUpdateImage,
|
|
279
|
+
setSelectedImages: onSelectImage,
|
|
280
|
+
updateApprovedInputsImages: function updateApprovedInputsImages(item) {
|
|
281
|
+
return console.log("updateApprovedInputsImages", item);
|
|
282
|
+
},
|
|
283
|
+
onSelect: function onSelect() {
|
|
284
|
+
return onChangeCurrentImage(index);
|
|
285
|
+
}
|
|
286
|
+
}, index);
|
|
287
|
+
});
|
|
288
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
|
|
289
|
+
sx: {
|
|
290
|
+
minWidth: 0
|
|
291
|
+
},
|
|
292
|
+
children: [enableDigitalAssets && /*#__PURE__*/(0, _jsxRuntime.jsx)(TrayTabs, {
|
|
293
|
+
activeTray: currentTray,
|
|
294
|
+
setActiveTray: setActiveTray,
|
|
295
|
+
imagesCount: images.length,
|
|
296
|
+
assetsCount: (_digitalAssets$assets = digitalAssets === null || digitalAssets === void 0 ? void 0 : (_digitalAssets$assets2 = digitalAssets.assets) === null || _digitalAssets$assets2 === void 0 ? void 0 : _digitalAssets$assets2.length) !== null && _digitalAssets$assets !== void 0 ? _digitalAssets$assets : 0
|
|
297
|
+
}), currentTray === _GalleryTrayTabs.TRAYS.ASSETS && /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
|
|
298
|
+
sx: {
|
|
299
|
+
position: "relative",
|
|
300
|
+
minWidth: 0
|
|
301
|
+
},
|
|
302
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_DigitalAssetsTray.DigitalAssetsTray, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, digitalAssets), {}, {
|
|
303
|
+
unsaved: unsavedAssets,
|
|
304
|
+
gridLayout: imageLayout,
|
|
305
|
+
readOnly: !canEdit,
|
|
306
|
+
selectedAssets: selectedAssets,
|
|
307
|
+
setSelectedAssets: setSelectedAssets,
|
|
308
|
+
setCheckAll: setAllAssetsChecked
|
|
309
|
+
}))
|
|
310
|
+
}), currentTray === _GalleryTrayTabs.TRAYS.IMAGES && /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
|
|
311
|
+
sx: {
|
|
312
|
+
overflowX: imageLayout ? "visible" : "auto",
|
|
313
|
+
WebkitOverflowScrolling: "touch"
|
|
314
|
+
},
|
|
315
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
|
|
316
|
+
sx: {
|
|
317
|
+
minWidth: imageLayout || images.length === 0 ? 0 : LIST_MIN_WIDTH
|
|
318
|
+
},
|
|
319
|
+
children: [!imageLayout && images.length > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(ListHeader, {
|
|
320
|
+
selectedCount: (_selectedImages$lengt = selectedImages === null || selectedImages === void 0 ? void 0 : selectedImages.length) !== null && _selectedImages$lengt !== void 0 ? _selectedImages$lengt : 0,
|
|
321
|
+
totalCount: images.length,
|
|
322
|
+
setCheckAll: setCheckAll,
|
|
323
|
+
setSelectedImages: setSelectedImages
|
|
324
|
+
}) :
|
|
325
|
+
/*#__PURE__*/
|
|
326
|
+
|
|
327
|
+
/* Sin cabecera (cuadrícula o sin imágenes) las tarjetas siguen
|
|
328
|
+
buscando `#check-all-images` al marcarse. En la vista original,
|
|
329
|
+
en cuadrícula no existe: marcar una imagen lanza un TypeError y
|
|
330
|
+
la selección no se guarda. Esta casilla oculta lo evita. */
|
|
331
|
+
(0, _jsxRuntime.jsx)("input", {
|
|
332
|
+
type: "checkbox",
|
|
333
|
+
id: "check-all-images",
|
|
334
|
+
hidden: true,
|
|
335
|
+
readOnly: true,
|
|
336
|
+
"aria-hidden": "true"
|
|
337
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
|
|
338
|
+
sx: {
|
|
339
|
+
position: "relative"
|
|
340
|
+
},
|
|
341
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, getRootProps()), {}, {
|
|
342
|
+
sx: (0, _objectSpread2.default)({
|
|
343
|
+
position: "relative",
|
|
344
|
+
minHeight: {
|
|
345
|
+
xs: 160,
|
|
346
|
+
md: 240
|
|
347
|
+
},
|
|
348
|
+
borderRadius: "8px",
|
|
349
|
+
border: "2px dashed transparent",
|
|
350
|
+
transition: "all 0.3s ease"
|
|
351
|
+
}, isDragActive && {
|
|
352
|
+
bgcolor: "rgba(".concat(_tokens.COLORS.rgb_color_pink, ", 0.05)"),
|
|
353
|
+
borderColor: _tokens.COLORS.color_pink
|
|
354
|
+
}),
|
|
355
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("input", (0, _objectSpread2.default)({}, getInputProps())), isDragActive && /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
|
|
356
|
+
sx: {
|
|
357
|
+
position: "absolute",
|
|
358
|
+
inset: 0,
|
|
359
|
+
zIndex: 10,
|
|
360
|
+
display: "flex",
|
|
361
|
+
alignItems: "center",
|
|
362
|
+
justifyContent: "center",
|
|
363
|
+
bgcolor: "rgba(".concat(_tokens.COLORS.rgb_color_pink, ", 0.1)"),
|
|
364
|
+
borderRadius: "8px",
|
|
365
|
+
pointerEvents: "none"
|
|
366
|
+
},
|
|
367
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Typography, {
|
|
368
|
+
sx: {
|
|
369
|
+
fontFamily: _tokens.FONTS.AvenirNext,
|
|
370
|
+
fontSize: {
|
|
371
|
+
xs: 18,
|
|
372
|
+
sm: 24
|
|
373
|
+
},
|
|
374
|
+
fontWeight: 600,
|
|
375
|
+
color: _tokens.COLORS.color_pink,
|
|
376
|
+
textAlign: "center",
|
|
377
|
+
p: 2.5,
|
|
378
|
+
bgcolor: _tokens.COLORS.white,
|
|
379
|
+
borderRadius: "8px",
|
|
380
|
+
boxShadow: "0 4px 12px rgba(0, 0, 0, 0.15)"
|
|
381
|
+
},
|
|
382
|
+
children: "Suelta las im\xE1genes aqu\xED"
|
|
383
|
+
})
|
|
384
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
|
|
385
|
+
component: "aside",
|
|
386
|
+
sx: imageLayout ? {
|
|
387
|
+
display: "grid",
|
|
388
|
+
gridTemplateColumns: {
|
|
389
|
+
xs: "repeat(2, minmax(0, 1fr))",
|
|
390
|
+
sm: "repeat(auto-fill, 179px)"
|
|
391
|
+
},
|
|
392
|
+
justifyContent: "center",
|
|
393
|
+
gap: {
|
|
394
|
+
xs: 1,
|
|
395
|
+
sm: "15px"
|
|
396
|
+
},
|
|
397
|
+
p: {
|
|
398
|
+
xs: "12px 0",
|
|
399
|
+
sm: "20px"
|
|
400
|
+
},
|
|
401
|
+
opacity: isDragActive ? 0.3 : 1,
|
|
402
|
+
pointerEvents: isDragActive ? "none" : "auto",
|
|
403
|
+
// En celular dos tarjetas por fila: las de 179px fijos
|
|
404
|
+
// se estiran a su columna.
|
|
405
|
+
"@media (max-width: 599.95px)": {
|
|
406
|
+
// !important: el estilo propio de la tarjeta (dos
|
|
407
|
+
// clases) le gana a este selector.
|
|
408
|
+
"& > *": {
|
|
409
|
+
width: "100% !important"
|
|
410
|
+
},
|
|
411
|
+
"& img, & video": {
|
|
412
|
+
width: "100% !important",
|
|
413
|
+
height: "auto !important",
|
|
414
|
+
aspectRatio: "1 / 1"
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
} : {
|
|
418
|
+
opacity: isDragActive ? 0.3 : 1
|
|
419
|
+
},
|
|
420
|
+
children: cards
|
|
421
|
+
}), images.length === 0 && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
|
|
422
|
+
sx: {
|
|
423
|
+
position: {
|
|
424
|
+
xs: "static",
|
|
425
|
+
md: "absolute"
|
|
426
|
+
},
|
|
427
|
+
top: "50%",
|
|
428
|
+
left: "50%",
|
|
429
|
+
transform: {
|
|
430
|
+
md: "translate(-50%, -50%)"
|
|
431
|
+
},
|
|
432
|
+
width: {
|
|
433
|
+
xs: "100%",
|
|
434
|
+
md: "80%"
|
|
435
|
+
},
|
|
436
|
+
maxWidth: 500,
|
|
437
|
+
mx: "auto",
|
|
438
|
+
p: {
|
|
439
|
+
xs: "24px 8px",
|
|
440
|
+
md: "40px"
|
|
441
|
+
},
|
|
442
|
+
textAlign: "center",
|
|
443
|
+
boxSizing: "border-box"
|
|
444
|
+
},
|
|
445
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Typography, {
|
|
446
|
+
sx: {
|
|
447
|
+
fontSize: 18,
|
|
448
|
+
color: "#666",
|
|
449
|
+
mb: 2
|
|
450
|
+
},
|
|
451
|
+
children: "Este producto no tiene im\xE1genes"
|
|
452
|
+
}), canEdit && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Typography, {
|
|
453
|
+
sx: {
|
|
454
|
+
fontSize: 14,
|
|
455
|
+
color: "#999",
|
|
456
|
+
mb: 2.5
|
|
457
|
+
},
|
|
458
|
+
children: ["Arrastra las im\xE1genes aqu\xED o", " ", /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Link, {
|
|
459
|
+
component: "button",
|
|
460
|
+
type: "button",
|
|
461
|
+
onClick: openFilePicker,
|
|
462
|
+
children: "haz clic para abrir el explorador de archivos"
|
|
463
|
+
})]
|
|
464
|
+
})]
|
|
465
|
+
})]
|
|
466
|
+
}))
|
|
467
|
+
})]
|
|
468
|
+
})
|
|
469
|
+
})]
|
|
470
|
+
});
|
|
471
|
+
};
|
|
472
|
+
|
|
473
|
+
exports.ImagesSection = ImagesSection;
|