contentoh-components-library 21.6.55 → 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.
Files changed (112) hide show
  1. package/.claude/launch.json +14 -0
  2. package/.env.test +1 -0
  3. package/dist/ai/prompts/attribute.prompt.js +28 -0
  4. package/dist/ai/prompts/description.prompt.js +33 -0
  5. package/dist/ai/schemas/attribute.schema.js +35 -0
  6. package/dist/ai/schemas/description.schema.js +27 -0
  7. package/dist/components/atoms/AsignationOption/index.js +1 -0
  8. package/dist/components/atoms/AsignationOption/styles.js +1 -1
  9. package/dist/components/atoms/AssetPreview/AssetPreview.stories.js +118 -0
  10. package/dist/components/atoms/AssetPreview/index.js +150 -0
  11. package/dist/components/atoms/AssetPreview/styles.js +28 -0
  12. package/dist/components/atoms/IconFile/index.js +85 -2
  13. package/dist/components/atoms/IconFile/styles.js +1 -1
  14. package/dist/components/atoms/ProductImage/ProductImage.stories.js +70 -2
  15. package/dist/components/atoms/ProductImage/index.js +100 -27
  16. package/dist/components/atoms/ProductImage/styles.js +3 -1
  17. package/dist/components/molecules/EditionActiveImage/index.js +4 -2
  18. package/dist/components/molecules/GalleryAssetElement/GalleryAssetElement.stories.js +147 -0
  19. package/dist/components/molecules/GalleryAssetElement/index.js +178 -0
  20. package/dist/components/molecules/GalleryAssetElement/styles.js +26 -0
  21. package/dist/components/molecules/GalleryElement/index.js +13 -4
  22. package/dist/components/molecules/GalleryHeader/index.js +96 -24
  23. package/dist/components/molecules/GalleryHeader/styles.js +4 -1
  24. package/dist/components/molecules/GalleryTrayTabs/GalleryTrayTabs.stories.js +56 -0
  25. package/dist/components/molecules/GalleryTrayTabs/index.js +60 -0
  26. package/dist/components/molecules/GalleryTrayTabs/styles.js +20 -0
  27. package/dist/components/molecules/ImageSelector/index.js +1 -0
  28. package/dist/components/molecules/RetailerSelector/RetailerSelector.stories.js +23 -2
  29. package/dist/components/molecules/RetailerSelector/index.js +7 -2
  30. package/dist/components/molecules/RetailerSelectorv2/index.js +6 -2
  31. package/dist/components/organisms/DigitalAssetsTray/DigitalAssetsTray.stories.js +235 -0
  32. package/dist/components/organisms/DigitalAssetsTray/index.js +219 -0
  33. package/dist/components/organisms/DigitalAssetsTray/styles.js +22 -0
  34. package/dist/components/organisms/ImagePreviewer/index.js +1 -0
  35. package/dist/components/organisms/ProductImageModal/index.js +3 -2
  36. package/dist/components/pages/CreatorsProductEdition/CreatorsProductEditionView.js +905 -0
  37. package/dist/components/pages/CreatorsProductEdition/constants.js +19 -0
  38. package/dist/components/pages/CreatorsProductEdition/hooks/useCreatorsProductEdition.js +2967 -0
  39. package/dist/components/pages/CreatorsProductEdition/index.js +33 -0
  40. package/dist/components/pages/CreatorsProductEdition/mocks/api.fixtures.js +537 -0
  41. package/dist/components/pages/CreatorsProductEdition/mocks/mockApi.js +251 -0
  42. package/dist/components/pages/CreatorsProductEdition/sections/CommentBox.js +311 -0
  43. package/dist/components/pages/CreatorsProductEdition/sections/ImagePanel.js +421 -0
  44. package/dist/components/pages/CreatorsProductEdition/sections/ImagesSection.js +473 -0
  45. package/dist/components/pages/CreatorsProductEdition/sections/ProductHeader.js +379 -0
  46. package/dist/components/pages/CreatorsProductEdition/sections/ProductMedia.js +138 -0
  47. package/dist/components/pages/CreatorsProductEdition/sections/RetailerMenu.js +162 -0
  48. package/dist/components/pages/CreatorsProductEdition/sections/ServiceActions.js +542 -0
  49. package/dist/components/pages/CreatorsProductEdition/sections/StatusChip.js +50 -0
  50. package/dist/components/pages/CreatorsProductEdition/sections/TabsBar.js +247 -0
  51. package/dist/components/pages/CreatorsProductEdition/sections/VariantsPanel.js +389 -0
  52. package/dist/components/pages/CreatorsProductEdition/sections/tokens.js +90 -0
  53. package/dist/components/pages/CreatorsProductEdition/stories/CreatorsProductEdition.stories.js +168 -0
  54. package/dist/components/pages/CreatorsProductEdition/stories/CreatorsProductEditionAPI.stories.js +74 -0
  55. package/dist/components/pages/CreatorsProductEdition/styles.js +46 -0
  56. package/dist/components/pages/RetailerProductEdition/context/provider-product-edition.context.js +330 -15
  57. package/dist/components/pages/RetailerProductEdition/context/provider-product-edition.reducer.js +12 -2
  58. package/dist/components/pages/RetailerProductEdition/index.js +606 -425
  59. package/dist/components/pages/RetailerProductEdition/stories/ImageEditor.stories.js +1 -0
  60. package/dist/global-files/data.js +16 -3
  61. package/dist/global-files/digital-assets/assetTypes.js +517 -0
  62. package/dist/global-files/digital-assets/assets.actions.js +64 -0
  63. package/dist/global-files/digital-assets/assets.adapter.js +304 -0
  64. package/dist/global-files/digital-assets/assets.mock.js +136 -0
  65. package/dist/global-files/digital-assets/assets.reducer.js +220 -0
  66. package/dist/global-files/digital-assets/uploadAssets.js +202 -0
  67. package/dist/global-files/digital-assets/useDigitalAssets.js +535 -0
  68. package/dist/index.js +142 -90
  69. package/docs/activos-digitales.md +273 -0
  70. package/package.json +1 -1
  71. package/src/components/atoms/AsignationOption/index.js +1 -1
  72. package/src/components/atoms/AsignationOption/styles.js +9 -0
  73. package/src/components/atoms/AssetPreview/AssetPreview.stories.js +78 -0
  74. package/src/components/atoms/AssetPreview/index.js +119 -0
  75. package/src/components/atoms/AssetPreview/styles.js +190 -0
  76. package/src/components/atoms/IconFile/index.js +28 -1
  77. package/src/components/atoms/IconFile/styles.js +8 -0
  78. package/src/components/atoms/ProductImage/ProductImage.stories.js +38 -0
  79. package/src/components/atoms/ProductImage/index.js +95 -20
  80. package/src/components/atoms/ProductImage/styles.js +92 -7
  81. package/src/components/molecules/EditionActiveImage/index.js +2 -2
  82. package/src/components/molecules/GalleryAssetElement/GalleryAssetElement.stories.js +102 -0
  83. package/src/components/molecules/GalleryAssetElement/index.js +162 -0
  84. package/src/components/molecules/GalleryAssetElement/styles.js +163 -0
  85. package/src/components/molecules/GalleryElement/index.js +9 -0
  86. package/src/components/molecules/GalleryHeader/index.js +65 -13
  87. package/src/components/molecules/GalleryHeader/styles.js +2 -1
  88. package/src/components/molecules/GalleryTrayTabs/GalleryTrayTabs.stories.js +32 -0
  89. package/src/components/molecules/GalleryTrayTabs/index.js +41 -0
  90. package/src/components/molecules/GalleryTrayTabs/styles.js +52 -0
  91. package/src/components/molecules/ImageSelector/index.js +1 -0
  92. package/src/components/molecules/RetailerSelector/RetailerSelector.stories.js +15 -1
  93. package/src/components/molecules/RetailerSelector/index.js +8 -1
  94. package/src/components/molecules/RetailerSelectorv2/index.js +7 -1
  95. package/src/components/organisms/DigitalAssetsTray/DigitalAssetsTray.stories.js +164 -0
  96. package/src/components/organisms/DigitalAssetsTray/index.js +193 -0
  97. package/src/components/organisms/DigitalAssetsTray/styles.js +183 -0
  98. package/src/components/organisms/ImagePreviewer/index.js +1 -0
  99. package/src/components/organisms/ProductImageModal/index.js +1 -0
  100. package/src/components/pages/RetailerProductEdition/context/provider-product-edition.context.jsx +201 -0
  101. package/src/components/pages/RetailerProductEdition/context/provider-product-edition.reducer.js +12 -0
  102. package/src/components/pages/RetailerProductEdition/index.js +356 -139
  103. package/src/components/pages/RetailerProductEdition/stories/ImageEditor.stories.js +1 -0
  104. package/src/global-files/data.js +17 -2
  105. package/src/global-files/digital-assets/assetTypes.js +451 -0
  106. package/src/global-files/digital-assets/assets.actions.js +50 -0
  107. package/src/global-files/digital-assets/assets.adapter.js +229 -0
  108. package/src/global-files/digital-assets/assets.mock.js +122 -0
  109. package/src/global-files/digital-assets/assets.reducer.js +197 -0
  110. package/src/global-files/digital-assets/uploadAssets.js +124 -0
  111. package/src/global-files/digital-assets/useDigitalAssets.js +340 -0
  112. package/src/index.js +4 -0
@@ -0,0 +1,905 @@
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.CreatorsProductEditionView = 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 _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
15
+
16
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
17
+
18
+ var _material = require("@mui/material");
19
+
20
+ var _utils = require("../RetailerProductEdition/utils");
21
+
22
+ var _assets = require("../../../global-files/digital-assets/assets.reducer");
23
+
24
+ var _GeneralButton = require("../../atoms/GeneralButton");
25
+
26
+ var _GenericModal = require("../../atoms/GenericModal");
27
+
28
+ var _Loading = require("../../atoms/Loading");
29
+
30
+ var _ScreenHeader = require("../../atoms/ScreenHeader");
31
+
32
+ var _ButtonV = require("../../atoms/ButtonV2");
33
+
34
+ var _GalleryTrayTabs = require("../../molecules/GalleryTrayTabs");
35
+
36
+ var _HeaderTop = require("../../molecules/HeaderTop");
37
+
38
+ var _index = require("../../molecules/TagAndInput/index");
39
+
40
+ var _InputGroup = require("../../organisms/InputGroup");
41
+
42
+ var _ProductImageModal = require("../../organisms/ProductImageModal");
43
+
44
+ var _VersionSelector = require("../../organisms/VersionSelector");
45
+
46
+ var _Modal = require("../../organisms/Modal");
47
+
48
+ var _LinkVariantsModal = require("../../organisms/LinkVariantsModal");
49
+
50
+ var _UnlinkVariantModal = require("../../organisms/UnlinkVariantModal");
51
+
52
+ var _VariantGroupModal = require("../../organisms/VariantGroupModal");
53
+
54
+ var _PropagateChangesModal = require("../../organisms/PropagateChangesModal");
55
+
56
+ var _ChangeStatusModal = _interopRequireDefault(require("../../organisms/ChangeStatusModal"));
57
+
58
+ var _AiProductEdition = require("../../../contexts/AiProductEdition");
59
+
60
+ var _errorModal = _interopRequireDefault(require("../../../assets/images/genericModal/errorModal.svg"));
61
+
62
+ var _useCreatorsProductEdition = require("./hooks/useCreatorsProductEdition");
63
+
64
+ var _constants = require("./constants");
65
+
66
+ var _styles = require("./styles");
67
+
68
+ var _ProductHeader = require("./sections/ProductHeader");
69
+
70
+ var _TabsBar = require("./sections/TabsBar");
71
+
72
+ var _ImagePanel = require("./sections/ImagePanel");
73
+
74
+ var _ImagesSection = require("./sections/ImagesSection");
75
+
76
+ var _VariantsPanel = require("./sections/VariantsPanel");
77
+
78
+ var _CommentBox = require("./sections/CommentBox");
79
+
80
+ var _jsxRuntime = require("react/jsx-runtime");
81
+
82
+ var _excluded = ["attributes"];
83
+
84
+ var CreatorsProductEditionView = function CreatorsProductEditionView(_ref) {
85
+ var _state$errors, _pendingPropagation$k, _family$variants, _variantGroup$members, _variantGroup$group, _state$product, _state$product2, _state$product3, _state$active_retaile, _state$product4, _state$product5, _state$product6, _variantGroup$group2, _location$state, _location$state2, _state$active_retaile2, _state$active_retaile3, _state$images_values$, _state$images_values, _state$images_values$2, _state$product7, _state$active_retaile4, _state$active_percent, _state$active_percent2, _state$active_percent3, _state$active_retaile5, _state$active_retaile6, _state$active_retaile7, _state$product8, _state$services, _state$services$datas, _state$product9, _state$product10, _state$datasheets_inp, _state$datasheets_inp2, _state$product11;
86
+
87
+ var tabsSections = _ref.tabsSections,
88
+ _ref$productSelected = _ref.productSelected,
89
+ productSelected = _ref$productSelected === void 0 ? {} : _ref$productSelected,
90
+ _ref$user = _ref.user,
91
+ user = _ref$user === void 0 ? {} : _ref$user,
92
+ token = _ref.token,
93
+ location = _ref.location,
94
+ _ref$enableDigitalAss = _ref.enableDigitalAssets,
95
+ enableDigitalAssets = _ref$enableDigitalAss === void 0 ? false : _ref$enableDigitalAss;
96
+
97
+ var _useCreatorsProductEd = (0, _useCreatorsProductEdition.useCreatorsProductEdition)({
98
+ tabsSections: tabsSections,
99
+ productSelected: productSelected,
100
+ user: user,
101
+ token: token,
102
+ location: location,
103
+ enableDigitalAssets: enableDigitalAssets
104
+ }),
105
+ isRetailer = _useCreatorsProductEd.isRetailer,
106
+ digitalAssets = _useCreatorsProductEd.digitalAssets,
107
+ currentTray = _useCreatorsProductEd.currentTray,
108
+ assetsLoadedFor = _useCreatorsProductEd.assetsLoadedFor,
109
+ handleOnSetSelectedAssets = _useCreatorsProductEd.handleOnSetSelectedAssets,
110
+ handleOnSetAllAssetsChecked = _useCreatorsProductEd.handleOnSetAllAssetsChecked,
111
+ initializeProduct = _useCreatorsProductEd.initializeProduct,
112
+ loadAuditableData = _useCreatorsProductEd.loadAuditableData,
113
+ loadData = _useCreatorsProductEd.loadData,
114
+ handleOnChangeCurrentImage = _useCreatorsProductEd.handleOnChangeCurrentImage,
115
+ handleOnShowModalGallery = _useCreatorsProductEd.handleOnShowModalGallery,
116
+ handleOnChangeActiveRetailer = _useCreatorsProductEd.handleOnChangeActiveRetailer,
117
+ handleOnChangeActiveTab = _useCreatorsProductEd.handleOnChangeActiveTab,
118
+ handleOnToggleImageLayout = _useCreatorsProductEd.handleOnToggleImageLayout,
119
+ handleOnToggleObservation = _useCreatorsProductEd.handleOnToggleObservation,
120
+ handleOnHideObservation = _useCreatorsProductEd.handleOnHideObservation,
121
+ isAuditorAssigned = _useCreatorsProductEd.isAuditorAssigned,
122
+ isAssignedAs = _useCreatorsProductEd.isAssignedAs,
123
+ isUserAssignedToService = _useCreatorsProductEd.isUserAssignedToService,
124
+ canShowSingleEvaluationButtons = _useCreatorsProductEd.canShowSingleEvaluationButtons,
125
+ canShowBulkEvaluationButtons = _useCreatorsProductEd.canShowBulkEvaluationButtons,
126
+ getStatusByCurrentServiceAndRetailer = _useCreatorsProductEd.getStatusByCurrentServiceAndRetailer,
127
+ handleOnSaveAssets = _useCreatorsProductEd.handleOnSaveAssets,
128
+ handleOnClickSaveImages = _useCreatorsProductEd.handleOnClickSaveImages,
129
+ loadFamily = _useCreatorsProductEd.loadFamily,
130
+ hijosDelProducto = _useCreatorsProductEd.hijosDelProducto,
131
+ esHijoDeOtro = _useCreatorsProductEd.esHijoDeOtro,
132
+ puedeAgruparse = _useCreatorsProductEd.puedeAgruparse,
133
+ handleOnUnlinked = _useCreatorsProductEd.handleOnUnlinked,
134
+ loadVariantGroup = _useCreatorsProductEd.loadVariantGroup,
135
+ handleOnLeaveGroup = _useCreatorsProductEd.handleOnLeaveGroup,
136
+ openFamilyMember = _useCreatorsProductEd.openFamilyMember,
137
+ handleOnLinkedVariants = _useCreatorsProductEd.handleOnLinkedVariants,
138
+ handleOnRestoreInheritance = _useCreatorsProductEd.handleOnRestoreInheritance,
139
+ cambiosDeFichaTecnica = _useCreatorsProductEd.cambiosDeFichaTecnica,
140
+ cambiosDeDescripciones = _useCreatorsProductEd.cambiosDeDescripciones,
141
+ handleOnClickSave = _useCreatorsProductEd.handleOnClickSave,
142
+ handleOnSetUpdatedDescriptions = _useCreatorsProductEd.handleOnSetUpdatedDescriptions,
143
+ handleOnSetUpdatedDatasheets = _useCreatorsProductEd.handleOnSetUpdatedDatasheets,
144
+ handleOnDownloadAssets = _useCreatorsProductEd.handleOnDownloadAssets,
145
+ handleOnAskToDeleteAssets = _useCreatorsProductEd.handleOnAskToDeleteAssets,
146
+ handleOnAskToDeleteImages = _useCreatorsProductEd.handleOnAskToDeleteImages,
147
+ handleOnApproveSingleService = _useCreatorsProductEd.handleOnApproveSingleService,
148
+ handleOnRejectSingleService = _useCreatorsProductEd.handleOnRejectSingleService,
149
+ sendSingleEvaluation = _useCreatorsProductEd.sendSingleEvaluation,
150
+ handleOnApproveAllServices = _useCreatorsProductEd.handleOnApproveAllServices,
151
+ handleOnRejectAllServices = _useCreatorsProductEd.handleOnRejectAllServices,
152
+ sendBulkEvaluation = _useCreatorsProductEd.sendBulkEvaluation,
153
+ handleOnChangeAssignations = _useCreatorsProductEd.handleOnChangeAssignations,
154
+ handleOnSetAssignation = _useCreatorsProductEd.handleOnSetAssignation,
155
+ handleOnSetImages = _useCreatorsProductEd.handleOnSetImages,
156
+ handleOnSetCheckAll = _useCreatorsProductEd.handleOnSetCheckAll,
157
+ handleOnSetSelectedImages = _useCreatorsProductEd.handleOnSetSelectedImages,
158
+ handleOnSubmitComment = _useCreatorsProductEd.handleOnSubmitComment,
159
+ handleOnSendEvaluationToFacilitator = _useCreatorsProductEd.handleOnSendEvaluationToFacilitator,
160
+ isEvaluationFinished = _useCreatorsProductEd.isEvaluationFinished,
161
+ handleOnChangeProductVersion = _useCreatorsProductEd.handleOnChangeProductVersion,
162
+ handleRetryLoad = _useCreatorsProductEd.handleRetryLoad,
163
+ showVersionSelector = _useCreatorsProductEd.showVersionSelector,
164
+ setShowVersionSelector = _useCreatorsProductEd.setShowVersionSelector,
165
+ auditableVersion = _useCreatorsProductEd.auditableVersion,
166
+ setAuditableVersion = _useCreatorsProductEd.setAuditableVersion,
167
+ headerTop = _useCreatorsProductEd.headerTop,
168
+ setHeaderTop = _useCreatorsProductEd.setHeaderTop,
169
+ shotThd = _useCreatorsProductEd.shotThd,
170
+ setShotThd = _useCreatorsProductEd.setShotThd,
171
+ observation = _useCreatorsProductEd.observation,
172
+ setObservation = _useCreatorsProductEd.setObservation,
173
+ showRejectModal = _useCreatorsProductEd.showRejectModal,
174
+ setShowRejectModal = _useCreatorsProductEd.setShowRejectModal,
175
+ isObservationVisible = _useCreatorsProductEd.isObservationVisible,
176
+ setObservationVisible = _useCreatorsProductEd.setObservationVisible,
177
+ imageLayout = _useCreatorsProductEd.imageLayout,
178
+ setImageLayout = _useCreatorsProductEd.setImageLayout,
179
+ crossComment = _useCreatorsProductEd.crossComment,
180
+ setCrossComment = _useCreatorsProductEd.setCrossComment,
181
+ statusArray = _useCreatorsProductEd.statusArray,
182
+ setStatusArray = _useCreatorsProductEd.setStatusArray,
183
+ rejectAll = _useCreatorsProductEd.rejectAll,
184
+ setRejectAll = _useCreatorsProductEd.setRejectAll,
185
+ showLinkVariants = _useCreatorsProductEd.showLinkVariants,
186
+ setShowLinkVariants = _useCreatorsProductEd.setShowLinkVariants,
187
+ family = _useCreatorsProductEd.family,
188
+ setFamily = _useCreatorsProductEd.setFamily,
189
+ showFamily = _useCreatorsProductEd.showFamily,
190
+ setShowFamily = _useCreatorsProductEd.setShowFamily,
191
+ loadingVariant = _useCreatorsProductEd.loadingVariant,
192
+ setLoadingVariant = _useCreatorsProductEd.setLoadingVariant,
193
+ variantGroup = _useCreatorsProductEd.variantGroup,
194
+ setVariantGroup = _useCreatorsProductEd.setVariantGroup,
195
+ showGroup = _useCreatorsProductEd.showGroup,
196
+ setShowGroup = _useCreatorsProductEd.setShowGroup,
197
+ showGroupModal = _useCreatorsProductEd.showGroupModal,
198
+ setShowGroupModal = _useCreatorsProductEd.setShowGroupModal,
199
+ porDesvincular = _useCreatorsProductEd.porDesvincular,
200
+ setPorDesvincular = _useCreatorsProductEd.setPorDesvincular,
201
+ avisoFamilia = _useCreatorsProductEd.avisoFamilia,
202
+ setAvisoFamilia = _useCreatorsProductEd.setAvisoFamilia,
203
+ pendingPropagation = _useCreatorsProductEd.pendingPropagation,
204
+ setPendingPropagation = _useCreatorsProductEd.setPendingPropagation,
205
+ preparandoPropagacion = _useCreatorsProductEd.preparandoPropagacion,
206
+ setPreparandoPropagacion = _useCreatorsProductEd.setPreparandoPropagacion,
207
+ auditServices = _useCreatorsProductEd.auditServices,
208
+ setAuditServices = _useCreatorsProductEd.setAuditServices,
209
+ auditDatasheets = _useCreatorsProductEd.auditDatasheets,
210
+ setAuditDatasheets = _useCreatorsProductEd.setAuditDatasheets,
211
+ auditDescriptions = _useCreatorsProductEd.auditDescriptions,
212
+ setAuditDescriptions = _useCreatorsProductEd.setAuditDescriptions,
213
+ showModal = _useCreatorsProductEd.showModal,
214
+ setShowModal = _useCreatorsProductEd.setShowModal,
215
+ compare = _useCreatorsProductEd.compare,
216
+ setCompare = _useCreatorsProductEd.setCompare,
217
+ openChangeStatusModal = _useCreatorsProductEd.openChangeStatusModal,
218
+ setOpenChangeStatusModal = _useCreatorsProductEd.setOpenChangeStatusModal,
219
+ assetNotices = _useCreatorsProductEd.assetNotices,
220
+ setAssetNotices = _useCreatorsProductEd.setAssetNotices,
221
+ activeTray = _useCreatorsProductEd.activeTray,
222
+ setActiveTray = _useCreatorsProductEd.setActiveTray,
223
+ state = _useCreatorsProductEd.state,
224
+ dispatch = _useCreatorsProductEd.dispatch,
225
+ saveDatasheets = _useCreatorsProductEd.saveDatasheets,
226
+ saveDescriptions = _useCreatorsProductEd.saveDescriptions,
227
+ updateImages = _useCreatorsProductEd.updateImages,
228
+ deleteImages = _useCreatorsProductEd.deleteImages,
229
+ saveAssets = _useCreatorsProductEd.saveAssets,
230
+ registerUploadedAssets = _useCreatorsProductEd.registerUploadedAssets,
231
+ handleOnDownloadImages = _useCreatorsProductEd.handleOnDownloadImages,
232
+ createComment = _useCreatorsProductEd.createComment,
233
+ getRootProps = _useCreatorsProductEd.getRootProps,
234
+ getInputProps = _useCreatorsProductEd.getInputProps,
235
+ isDragActive = _useCreatorsProductEd.isDragActive,
236
+ open = _useCreatorsProductEd.open;
237
+
238
+ var ProductEditionSkeleton = function ProductEditionSkeleton() {
239
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_styles.Container, {
240
+ headerTop: 0,
241
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
242
+ px: 1.5,
243
+ py: 1,
244
+ pb: 0,
245
+ display: "flex",
246
+ alignItems: "center",
247
+ justifyContent: "space-between",
248
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Skeleton, {
249
+ variant: "text",
250
+ width: "min(300px, 60%)",
251
+ height: 40
252
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Stack, {
253
+ direction: "row",
254
+ spacing: 2,
255
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Skeleton, {
256
+ variant: "circular",
257
+ width: 32,
258
+ height: 32
259
+ })
260
+ })]
261
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
262
+ className: "data-container",
263
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
264
+ className: "image-data-panel",
265
+ style: {
266
+ display: "flex",
267
+ flexDirection: "column",
268
+ gap: "20px"
269
+ },
270
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Skeleton, {
271
+ variant: "rounded",
272
+ width: "100%",
273
+ height: 320
274
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Stack, {
275
+ direction: "row",
276
+ spacing: 2,
277
+ justifyContent: "center",
278
+ children: [1, 2, 3, 4].map(function (item) {
279
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Skeleton, {
280
+ variant: "rounded",
281
+ width: 60,
282
+ height: 80
283
+ }, item);
284
+ })
285
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
286
+ mt: 2,
287
+ children: [1, 2, 3, 4].map(function (item) {
288
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
289
+ display: "flex",
290
+ justifyContent: "space-between",
291
+ py: 1,
292
+ borderBottom: "1px solid #f0f0f0",
293
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Skeleton, {
294
+ variant: "text",
295
+ width: "40%"
296
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Skeleton, {
297
+ variant: "text",
298
+ width: "20%"
299
+ })]
300
+ }, item);
301
+ })
302
+ })]
303
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
304
+ className: "product-information",
305
+ style: {
306
+ flex: 1,
307
+ display: "flex",
308
+ flexDirection: "column",
309
+ gap: "14px"
310
+ },
311
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
312
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Skeleton, {
313
+ variant: "text",
314
+ width: "80%",
315
+ height: 50
316
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Stack, {
317
+ direction: "row",
318
+ spacing: 2,
319
+ alignItems: "center",
320
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Skeleton, {
321
+ variant: "rounded",
322
+ width: "30%",
323
+ height: 24
324
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Skeleton, {
325
+ variant: "rounded",
326
+ width: "45%",
327
+ height: 24
328
+ })]
329
+ })]
330
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
331
+ display: "flex",
332
+ gap: 4,
333
+ pb: 1,
334
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Skeleton, {
335
+ variant: "text",
336
+ width: "28%",
337
+ height: 45
338
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Skeleton, {
339
+ variant: "text",
340
+ width: "28%",
341
+ height: 45
342
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Skeleton, {
343
+ variant: "text",
344
+ width: "28%",
345
+ height: 45
346
+ })]
347
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
348
+ display: "flex",
349
+ flexDirection: "column",
350
+ gap: 4,
351
+ children: [1, 2, 3].map(function (item) {
352
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
353
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
354
+ display: "flex",
355
+ justifyContent: "space-between",
356
+ alignItems: "center",
357
+ mb: 1,
358
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Skeleton, {
359
+ variant: "text",
360
+ width: "30%",
361
+ height: 24
362
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Skeleton, {
363
+ variant: "rounded",
364
+ width: "min(175px, 35%)",
365
+ height: 25,
366
+ sx: {
367
+ borderRadius: "7.5px"
368
+ }
369
+ })]
370
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Skeleton, {
371
+ variant: "rounded",
372
+ width: "100%",
373
+ height: 70
374
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
375
+ display: "flex",
376
+ justifyContent: "flex-end",
377
+ mt: 0.5,
378
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Skeleton, {
379
+ variant: "text",
380
+ width: 60
381
+ })
382
+ })]
383
+ }, item);
384
+ })
385
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
386
+ mt: "auto",
387
+ pt: 4,
388
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Skeleton, {
389
+ variant: "rounded",
390
+ width: "100%",
391
+ height: 120
392
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
393
+ display: "flex",
394
+ justifyContent: "flex-end",
395
+ gap: 2,
396
+ mt: 2,
397
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Skeleton, {
398
+ variant: "rounded",
399
+ width: "min(180px, 45%)",
400
+ height: 45,
401
+ sx: {
402
+ borderRadius: "24px"
403
+ }
404
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Skeleton, {
405
+ variant: "rounded",
406
+ width: "min(180px, 45%)",
407
+ height: 45,
408
+ sx: {
409
+ borderRadius: "24px"
410
+ }
411
+ })]
412
+ })]
413
+ })]
414
+ })]
415
+ })]
416
+ });
417
+ }; // Si la carga falló y no tenemos servicios, mostramos un estado de error con
418
+ // opción de reintentar en vez de quedarnos colgados en el skeleton.
419
+
420
+
421
+ if (!state.loading && ((_state$errors = state.errors) === null || _state$errors === void 0 ? void 0 : _state$errors.length) > 0 && !state.services) return /*#__PURE__*/(0, _jsxRuntime.jsx)(_styles.Container, {
422
+ headerTop: 0,
423
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
424
+ display: "flex",
425
+ flexDirection: "column",
426
+ alignItems: "center",
427
+ justifyContent: "center",
428
+ gap: 2,
429
+ sx: {
430
+ minHeight: "60vh",
431
+ textAlign: "center",
432
+ padding: "40px"
433
+ },
434
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("img", {
435
+ src: _errorModal.default,
436
+ alt: "error",
437
+ width: 64,
438
+ height: 64
439
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ScreenHeader.ScreenHeader, {
440
+ text: "No pudimos cargar el producto",
441
+ headerType: "input-name-header"
442
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
443
+ style: {
444
+ color: "#666",
445
+ maxWidth: 420
446
+ },
447
+ children: state.errors[0] || "Ocurrió un error al cargar la información del producto."
448
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GeneralButton.Button, {
449
+ buttonType: "general-button-default",
450
+ label: "Reintentar",
451
+ onClick: handleRetryLoad
452
+ })]
453
+ })
454
+ });
455
+ /*
456
+ `images_values` entra al guard junto a `services` y `product`.
457
+ React 17 no agrupa los dispatch que van después de un `await`: cada uno
458
+ re-renderiza al instante. En `loadData` el orden es SET_SERVICES →
459
+ …_INPUTS → SET_IMAGES_VALUES, así que había renders intermedios con
460
+ `services` ya puesto —el guard los dejaba pasar— y el resto todavía en null.
461
+ El cuerpo de abajo lee `datasheets_inputs[1]`, `descriptions_inputs[0]` y
462
+ `images_values.values` sin protección, y tumbaba la pantalla entera.
463
+ Se comprueba `images_values` y no cada uno: es el ÚLTIMO que `loadData`
464
+ despacha, así que si ya está, los anteriores también.
465
+ */
466
+
467
+ if (state.loading || !state.services || !state.product || !state.images_values) return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
468
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ProductEditionSkeleton, {})
469
+ });
470
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_AiProductEdition.AiProductEditionProvider, {
471
+ isCreatorsEdition: true,
472
+ user: user,
473
+ token: token,
474
+ state: state,
475
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_styles.Container, {
476
+ headerTop: headerTop,
477
+ children: [pendingPropagation && /*#__PURE__*/(0, _jsxRuntime.jsx)(_PropagateChangesModal.PropagateChangesModal, {
478
+ changedAttributes: pendingPropagation.cambios,
479
+ kind: (_pendingPropagation$k = pendingPropagation.kind) !== null && _pendingPropagation$k !== void 0 ? _pendingPropagation$k : "datasheet",
480
+ variants: esHijoDeOtro ? [] : ((_family$variants = family === null || family === void 0 ? void 0 : family.variants) !== null && _family$variants !== void 0 ? _family$variants : []).filter(function (v) {
481
+ return !v.isCurrent;
482
+ }),
483
+ groupMembers: ((_variantGroup$members = variantGroup === null || variantGroup === void 0 ? void 0 : variantGroup.members) !== null && _variantGroup$members !== void 0 ? _variantGroup$members : []).filter(function (m) {
484
+ return !m.isCurrent;
485
+ }),
486
+ groupCode: (_variantGroup$group = variantGroup === null || variantGroup === void 0 ? void 0 : variantGroup.group) !== null && _variantGroup$group !== void 0 ? _variantGroup$group : null,
487
+ saving: state.saving,
488
+ onCancel: function onCancel() {
489
+ return setPendingPropagation(null);
490
+ },
491
+ onConfirm: function onConfirm(propagation) {
492
+ var esDescripcion = pendingPropagation.kind === "description";
493
+ setPendingPropagation(null);
494
+
495
+ if (!propagation) {
496
+ if (esDescripcion) saveDescriptions(token);else saveDatasheets(token);
497
+ return;
498
+ }
499
+ /*
500
+ El diálogo habla de «atributos» porque es el mismo componente
501
+ para las dos pestañas. Al guardar hay que ponerlo en la lista
502
+ que corresponde: el servidor recibe `attributes` o
503
+ `descriptions`, nunca una por la otra.
504
+ */
505
+
506
+
507
+ var attributes = propagation.attributes,
508
+ destinos = (0, _objectWithoutProperties2.default)(propagation, _excluded);
509
+
510
+ if (esDescripcion) {
511
+ saveDescriptions(token, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, destinos), {}, {
512
+ descriptions: attributes
513
+ }));
514
+ } else {
515
+ saveDatasheets(token, propagation);
516
+ }
517
+ }
518
+ }), showLinkVariants && /*#__PURE__*/(0, _jsxRuntime.jsx)(_LinkVariantsModal.LinkVariantsModal, {
519
+ articleId: (_state$product = state.product) === null || _state$product === void 0 ? void 0 : _state$product.id_article,
520
+ articleName: (_state$product2 = state.product) === null || _state$product2 === void 0 ? void 0 : _state$product2.name,
521
+ articleUpc: (_state$product3 = state.product) === null || _state$product3 === void 0 ? void 0 : _state$product3.upc,
522
+ activeRetailerId: (_state$active_retaile = state.active_retailer) === null || _state$active_retaile === void 0 ? void 0 : _state$active_retaile.id_retailer,
523
+ token: token,
524
+ onClose: function onClose() {
525
+ return setShowLinkVariants(false);
526
+ },
527
+ onLinked: handleOnLinkedVariants
528
+ }), showGroupModal && /*#__PURE__*/(0, _jsxRuntime.jsx)(_VariantGroupModal.VariantGroupModal, {
529
+ articleId: (_state$product4 = state.product) === null || _state$product4 === void 0 ? void 0 : _state$product4.id_article,
530
+ articleName: (_state$product5 = state.product) === null || _state$product5 === void 0 ? void 0 : _state$product5.name,
531
+ articleUpc: (_state$product6 = state.product) === null || _state$product6 === void 0 ? void 0 : _state$product6.upc,
532
+ currentGroup: (_variantGroup$group2 = variantGroup === null || variantGroup === void 0 ? void 0 : variantGroup.group) !== null && _variantGroup$group2 !== void 0 ? _variantGroup$group2 : null,
533
+ token: token,
534
+ onClose: function onClose() {
535
+ return setShowGroupModal(false);
536
+ },
537
+ onSaved: function onSaved(result) {
538
+ setVariantGroup(result);
539
+ setShowGroup(true);
540
+ }
541
+ }), porDesvincular && /*#__PURE__*/(0, _jsxRuntime.jsx)(_UnlinkVariantModal.UnlinkVariantModal, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, porDesvincular), {}, {
542
+ token: token,
543
+ onClose: function onClose() {
544
+ return setPorDesvincular(null);
545
+ },
546
+ onUnlinked: handleOnUnlinked
547
+ })), showRejectModal && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Modal.Modal, {
548
+ title: rejectAll ? "Agregar mensaje para rechazar todo" : "Agregar mensaje de rechazo",
549
+ show: showRejectModal,
550
+ customComponent: /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.TagAndInput, {
551
+ inputType: "textarea",
552
+ inputId: "modal-message-box",
553
+ index: 0,
554
+ color: "white"
555
+ }),
556
+ buttons: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ButtonV.ButtonV2, {
557
+ type: "white",
558
+ label: "Cancelar",
559
+ size: 12,
560
+ onClick: function onClick() {
561
+ setShowRejectModal(false);
562
+ }
563
+ }, "btn-Cancelar"), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ButtonV.ButtonV2, {
564
+ type: "pink",
565
+ label: "Aceptar",
566
+ size: 12,
567
+ onClick: /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
568
+ var elements, isMessageEmpty, container, existingAlert, alert, fullMessage;
569
+ return _regenerator.default.wrap(function _callee$(_context) {
570
+ while (1) {
571
+ switch (_context.prev = _context.next) {
572
+ case 0:
573
+ elements = document.querySelectorAll("#modal-message-box .ql-container .ql-editor > p");
574
+
575
+ if (!(!elements || elements.length === 0)) {
576
+ _context.next = 4;
577
+ break;
578
+ }
579
+
580
+ console.error("Elemento no encontrado");
581
+ return _context.abrupt("return");
582
+
583
+ case 4:
584
+ isMessageEmpty = Array.from(elements).every(function (el) {
585
+ var body = el.innerHTML;
586
+ return !body || body.replace(/<.*?\/?>/gm, "").trim() === "";
587
+ });
588
+
589
+ if (!isMessageEmpty) {
590
+ _context.next = 10;
591
+ break;
592
+ }
593
+
594
+ container = document.querySelector(".container-customComponent");
595
+ existingAlert = container.querySelector(".alert-error");
596
+
597
+ if (!existingAlert) {
598
+ alert = document.createElement("div");
599
+ alert.className = "alert-error";
600
+ alert.style.cssText = "\n color: #d32f2f;\n background-color: #ffebee;\n border: 1px solid #ef5350;\n border-radius: 4px;\n padding: 12px 16px;\n margin-top: 10px;\n font-size: 14px;\n display: flex;\n align-items: center;\n gap: 8px;\n font-family: 'Roboto', sans-serif;\n text-align: center;\n ";
601
+ alert.innerHTML = "<span>El mensaje no puede estar vac\xEDo.</span>";
602
+ container.appendChild(alert);
603
+ }
604
+
605
+ return _context.abrupt("return");
606
+
607
+ case 10:
608
+ fullMessage = Array.from(elements).map(function (element) {
609
+ return element.innerHTML;
610
+ }).join("").replace(/<br\s*\/?>/gi, "\n");
611
+ _context.next = 13;
612
+ return createComment(fullMessage, token);
613
+
614
+ case 13:
615
+ rejectAll ? sendBulkEvaluation("R") : sendSingleEvaluation("R");
616
+ setShowRejectModal(false);
617
+
618
+ case 15:
619
+ case "end":
620
+ return _context.stop();
621
+ }
622
+ }
623
+ }, _callee);
624
+ }))
625
+ }, "btn-Aceptar")]
626
+ }), state.modal.show && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GenericModal.GenericModal, {
627
+ componentsArray: [state.modal.image && /*#__PURE__*/(0, _jsxRuntime.jsx)("img", {
628
+ src: state.modal.image,
629
+ alt: "modal icon"
630
+ }, "1"), state.modal.title && /*#__PURE__*/(0, _jsxRuntime.jsx)(_ScreenHeader.ScreenHeader, {
631
+ headerType: "retailer-name-header",
632
+ text: state.modal.title,
633
+ color: "white"
634
+ }, "2"), state.modal.message && /*#__PURE__*/(0, _jsxRuntime.jsx)(_ScreenHeader.ScreenHeader, {
635
+ headerType: "retailer-name-header",
636
+ text: state.modal.message,
637
+ color: "white"
638
+ }, "3"), state.modal.buttons && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
639
+ style: {
640
+ marginTop: "16px"
641
+ },
642
+ children: state.modal.buttons.map(function (button, index) {
643
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_GeneralButton.Button, {
644
+ buttonType: button.buttonType,
645
+ label: button.text,
646
+ onClick: button.action
647
+ }, index);
648
+ })
649
+ }, "4")].filter(Boolean),
650
+ onClick: function onClick() {
651
+ return dispatch({
652
+ type: "SET_MODAL",
653
+ payload: {
654
+ show: false,
655
+ title: "",
656
+ message: "",
657
+ image: null
658
+ }
659
+ });
660
+ }
661
+ }), showModal && /*#__PURE__*/(0, _jsxRuntime.jsx)(_ProductImageModal.ProductImageModal, {
662
+ images: state.images_values,
663
+ setShowModal: setShowModal,
664
+ approveRejectButtons: canShowSingleEvaluationButtons(),
665
+ sendToFacilitator: handleOnSendEvaluationToFacilitator
666
+ }), showVersionSelector && /*#__PURE__*/(0, _jsxRuntime.jsx)(_VersionSelector.VersionSelector, {
667
+ modalId: "version-selector",
668
+ articleId: state.product.id_article,
669
+ setVersion: handleOnChangeProductVersion,
670
+ companyName: state.product.company,
671
+ currentVersion: state.product.version,
672
+ setShowVersionSelector: setShowVersionSelector,
673
+ jwt: token
674
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_HeaderTop.HeaderTop, {
675
+ setHeaderTop: setHeaderTop,
676
+ auditableVersion: auditableVersion,
677
+ setCompare: setCompare,
678
+ isAuditor: [1, 6].includes(user.id_role),
679
+ withChat: location === null || location === void 0 ? void 0 : (_location$state = location.state) === null || _location$state === void 0 ? void 0 : _location$state.withChat,
680
+ chatType: location === null || location === void 0 ? void 0 : (_location$state2 = location.state) === null || _location$state2 === void 0 ? void 0 : _location$state2.chatType,
681
+ productSelected: state.product,
682
+ token: token,
683
+ activeRetailer: {
684
+ id: (_state$active_retaile2 = state.active_retailer) === null || _state$active_retaile2 === void 0 ? void 0 : _state$active_retaile2.id_retailer,
685
+ name: (_state$active_retaile3 = state.active_retailer) === null || _state$active_retaile3 === void 0 ? void 0 : _state$active_retaile3.retailer
686
+ }
687
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
688
+ className: "data-container",
689
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
690
+ className: "image-data-panel",
691
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ImagePanel.ImagePanel
692
+ /*
693
+ `images_values` puede ser null en pleno render: React 17 no
694
+ agrupa los dispatch que van después de un `await` y hay un render
695
+ con `services` puesto y las imágenes todavía no (ver el guard de
696
+ arriba). Por eso las interrogaciones.
697
+ */
698
+ , {
699
+ imagesArray: state.images_values || [],
700
+ activeImage: (_state$images_values$ = (_state$images_values = state.images_values) === null || _state$images_values === void 0 ? void 0 : (_state$images_values$2 = _state$images_values.values) === null || _state$images_values$2 === void 0 ? void 0 : _state$images_values$2[state.current_image]) !== null && _state$images_values$ !== void 0 ? _state$images_values$ : {},
701
+ currentIndex: state.current_image,
702
+ setActiveImage: handleOnChangeCurrentImage,
703
+ setShowModal: handleOnShowModalGallery // datos de la imagen
704
+ ,
705
+ lists: state.images_values || [],
706
+ assignationsImages: state.collaborator_assignations["Imágenes"],
707
+ imagesStatus: ((_state$product7 = state.product) === null || _state$product7 === void 0 ? void 0 : _state$product7.images_status) || "-",
708
+ retailerSelected: (_state$active_retaile4 = state.active_retailer) === null || _state$active_retaile4 === void 0 ? void 0 : _state$active_retaile4.id_retailer,
709
+ isRetailer: isRetailer,
710
+ version: state.product.version,
711
+ shotThd: shotThd,
712
+ setShowVersionSelector: setShowVersionSelector,
713
+ setImages: handleOnChangeCurrentImage,
714
+ setAssignation: handleOnChangeAssignations,
715
+ onClickSave: handleOnClickSaveImages,
716
+ showSaveButton: isAuditorAssigned() || isUserAssignedToService()
717
+ })
718
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
719
+ className: "product-information",
720
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_VariantsPanel.VariantsPanel, {
721
+ product: state.product,
722
+ esHijoDeOtro: esHijoDeOtro,
723
+ hijosDelProducto: hijosDelProducto,
724
+ family: family,
725
+ showFamily: showFamily,
726
+ setShowFamily: setShowFamily,
727
+ loadFamily: loadFamily,
728
+ loadingVariant: loadingVariant,
729
+ avisoFamilia: avisoFamilia,
730
+ openFamilyMember: openFamilyMember,
731
+ setPorDesvincular: setPorDesvincular,
732
+ setShowLinkVariants: setShowLinkVariants,
733
+ puedeAgruparse: puedeAgruparse,
734
+ variantGroup: variantGroup,
735
+ showGroup: showGroup,
736
+ setShowGroup: setShowGroup,
737
+ setShowGroupModal: setShowGroupModal,
738
+ handleOnLeaveGroup: handleOnLeaveGroup
739
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ProductHeader.ProductHeader // states
740
+ , {
741
+ headerData: state.product,
742
+ productObservation: observation,
743
+ percent: (_state$active_percent = (_state$active_percent2 = state.active_percentage) === null || _state$active_percent2 === void 0 ? void 0 : (_state$active_percent3 = _state$active_percent2.percentagesGeneral) === null || _state$active_percent3 === void 0 ? void 0 : _state$active_percent3.required) !== null && _state$active_percent !== void 0 ? _state$active_percent : 0,
744
+ activeRetailer: {
745
+ id: (_state$active_retaile5 = state.active_retailer) === null || _state$active_retaile5 === void 0 ? void 0 : _state$active_retaile5.id_retailer,
746
+ name: (_state$active_retaile6 = state.active_retailer) === null || _state$active_retaile6 === void 0 ? void 0 : _state$active_retaile6.retailer,
747
+ image: (_state$active_retaile7 = state.active_retailer) === null || _state$active_retaile7 === void 0 ? void 0 : _state$active_retaile7.image
748
+ },
749
+ servicesData: state.services_data ? state.services_data : null,
750
+ isObservationVisible: isObservationVisible // actions
751
+ ,
752
+ setActiveRetailer: handleOnChangeActiveRetailer,
753
+ approve: handleOnApproveSingleService,
754
+ approveAll: handleOnApproveAllServices,
755
+ reject: handleOnRejectSingleService,
756
+ rejectAll: handleOnRejectAllServices,
757
+ toggleObservation: handleOnToggleObservation,
758
+ hideObservation: handleOnHideObservation // sendToFacilitator={handleOnSendEvaluationToFacilitator} // No se usa?
759
+ // validations
760
+ ,
761
+ showApproveRejectAll: canShowBulkEvaluationButtons() || isAuditorAssigned() || isUserAssignedToService(),
762
+ showValidationButtons: canShowSingleEvaluationButtons() && (isAuditorAssigned() || isUserAssignedToService())
763
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_TabsBar.TabsBar, {
764
+ tabsSections: tabsSections,
765
+ imageLayout: imageLayout,
766
+ status: getStatusByCurrentServiceAndRetailer(),
767
+ activeTab: state.active_tab,
768
+ isRetailer: isRetailer,
769
+ assig: state.collaborator_assignations[state.active_tab],
770
+ version: state.product.version,
771
+ updatedDescriptions: state.updated_descriptions_inputs,
772
+ updatedDatasheets: state.updated_datasheets_inputs,
773
+ updatedImages: state.updated_images_values,
774
+ images: state.services.images // setters
775
+ ,
776
+ setActiveTab: handleOnChangeActiveTab,
777
+ setImageLayout: handleOnToggleImageLayout,
778
+ setUpdatedDescriptions: handleOnSetUpdatedDescriptions,
779
+ setUpdatedDatasheets: handleOnSetUpdatedDatasheets,
780
+ setAssignation: handleOnSetAssignation // No se usa?
781
+ ,
782
+ setImages: handleOnSetImages // No se usa?
783
+ ,
784
+ setShowVersionSelector: setShowVersionSelector // actions
785
+ // El botón actúa sobre la bandeja visible: en activos descargaba
786
+ // las imágenes del producto, que no es lo que el usuario pidió.
787
+ ,
788
+ downloadImages: currentTray === _GalleryTrayTabs.TRAYS.ASSETS ? handleOnDownloadAssets : handleOnDownloadImages,
789
+ askToDeleteImages: handleOnAskToDeleteImages,
790
+ showSaveButton: isAuditorAssigned() || isUserAssignedToService(),
791
+ onClickSave: handleOnClickSave // validations
792
+ ,
793
+ canAssign: ![7, 8].includes(user.id_role)
794
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
795
+ className: "services-information-container",
796
+ id: "services-information-container",
797
+ children: state.saving ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Loading.Loading, {}) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
798
+ children: [state.active_tab === "Descripción" && (((_state$product8 = state.product) === null || _state$product8 === void 0 ? void 0 : _state$product8.description_status) !== "NS" ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_InputGroup.InputGroup, {
799
+ activeSection: state.active_tab,
800
+ inputGroup: state.descriptions_inputs[0],
801
+ updatedDescriptions: state.updated_descriptions_inputs
802
+ /* El parentesco es del producto, no del servicio: los
803
+ dos endpoints lo devuelven igual. */
804
+ ,
805
+ variant: (_state$services = state.services) === null || _state$services === void 0 ? void 0 : (_state$services$datas = _state$services.datasheets) === null || _state$services$datas === void 0 ? void 0 : _state$services$datas.variant,
806
+ onRestoreInheritance: handleOnRestoreInheritance,
807
+ articleId: (_state$product9 = state.product) === null || _state$product9 === void 0 ? void 0 : _state$product9.id_article,
808
+ version: state.product.version,
809
+ auditInputGroup: auditDescriptions[0],
810
+ setUpdatedDescriptions: handleOnSetUpdatedDescriptions,
811
+ dinamicHeight: true,
812
+ compare: compare
813
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_ScreenHeader.ScreenHeader, {
814
+ text: "No cuentas con este servicio",
815
+ headerType: "input-name-header"
816
+ })), state.active_tab === "Ficha técnica" && (((_state$product10 = state.product) === null || _state$product10 === void 0 ? void 0 : _state$product10.datasheet_status) !== "NS" ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
817
+ children: (_state$datasheets_inp = state.datasheets_inputs[0]) === null || _state$datasheets_inp === void 0 ? void 0 : (_state$datasheets_inp2 = _state$datasheets_inp.data) === null || _state$datasheets_inp2 === void 0 ? void 0 : _state$datasheets_inp2.map(function (dataGroup, index) {
818
+ var _state$services2, _state$services2$data;
819
+
820
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_InputGroup.InputGroup, {
821
+ articleId: state.product.id_article,
822
+ version: state.version,
823
+ activeSection: state.active_tab,
824
+ inputGroup: dataGroup,
825
+ dataInputs: state.datasheets_inputs[1],
826
+ variant: (_state$services2 = state.services) === null || _state$services2 === void 0 ? void 0 : (_state$services2$data = _state$services2.datasheets) === null || _state$services2$data === void 0 ? void 0 : _state$services2$data.variant,
827
+ onRestoreInheritance: handleOnRestoreInheritance,
828
+ auditInputs: auditDatasheets[1],
829
+ updatedDatasheets: state.updated_datasheets_inputs,
830
+ setUpdatedDatasheets: handleOnSetUpdatedDatasheets,
831
+ compare: compare
832
+ }, index + "-" + state.active_retailer.retailer);
833
+ })
834
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_ScreenHeader.ScreenHeader, {
835
+ text: "No cuentas con este servicio",
836
+ headerType: "input-name-header"
837
+ })), state.active_tab === "Imágenes" && (((_state$product11 = state.product) === null || _state$product11 === void 0 ? void 0 : _state$product11.images_status) !== "NS" ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_ImagesSection.ImagesSection, {
838
+ imagesValues: state.images_values,
839
+ selectedImages: state.selected_images,
840
+ imageLayout: imageLayout,
841
+ enableDigitalAssets: enableDigitalAssets,
842
+ currentTray: currentTray,
843
+ setActiveTray: setActiveTray,
844
+ digitalAssets: digitalAssets,
845
+ unsavedAssets: (0, _assets.countUnsavedAssets)(state),
846
+ selectedAssets: state.selected_assets,
847
+ setSelectedAssets: handleOnSetSelectedAssets,
848
+ setAllAssetsChecked: handleOnSetAllAssetsChecked,
849
+ canEdit: isAuditorAssigned() || isUserAssignedToService(),
850
+ setCheckAll: handleOnSetCheckAll,
851
+ setSelectedImages: handleOnSetSelectedImages,
852
+ onChangeCurrentImage: handleOnChangeCurrentImage,
853
+ onUpdateImage: function onUpdateImage(item) {
854
+ return dispatch({
855
+ type: "UPDATE_IMAGE_VALUE",
856
+ payload: item
857
+ });
858
+ },
859
+ onSelectImage: function onSelectImage(item) {
860
+ return dispatch({
861
+ type: "SET_SELECTED_IMAGE",
862
+ payload: item
863
+ });
864
+ },
865
+ getRootProps: getRootProps,
866
+ getInputProps: getInputProps,
867
+ isDragActive: isDragActive,
868
+ openFilePicker: open
869
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_ScreenHeader.ScreenHeader, {
870
+ text: "No cuentas con este servicio",
871
+ headerType: "input-name-header"
872
+ }))]
873
+ })
874
+ }), (isUserAssignedToService(state.active_tab) || isAuditorAssigned()) && state.product["".concat((0, _utils.getConceptByTab)(state.active_tab), "_status")] !== "NS" && /*#__PURE__*/(0, _jsxRuntime.jsx)(_CommentBox.CommentBox, {
875
+ comment: state.comment,
876
+ crossComment: crossComment,
877
+ createComment: createComment,
878
+ token: token,
879
+ dispatch: dispatch,
880
+ showChangeStatus: _constants.allowedAccountsToViewChangeStatus.includes(user === null || user === void 0 ? void 0 : user.email),
881
+ onOpenChangeStatus: function onOpenChangeStatus() {
882
+ return setOpenChangeStatusModal(true);
883
+ },
884
+ showSendEvaluation: [7, 8].includes(user.id_role) // Solo para los roles 7 y 8, como en la vista original: para
885
+ // el rol 6, `isEvaluationFinished` usa un `srv` que no existe
886
+ // (defecto heredado) y tumbaría la pantalla.
887
+ ,
888
+ canSendEvaluation: [7, 8].includes(user.id_role) && isEvaluationFinished(user.id_role, state.active_tab, statusArray) && state.missing_required_fields[state.active_tab] === 0,
889
+ onSendEvaluation: handleOnSendEvaluationToFacilitator
890
+ })]
891
+ })]
892
+ })]
893
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChangeStatusModal.default, {
894
+ state: state,
895
+ open: openChangeStatusModal,
896
+ onClose: function onClose() {
897
+ setOpenChangeStatusModal(false);
898
+ },
899
+ reloadData: loadData,
900
+ token: token
901
+ })]
902
+ });
903
+ };
904
+
905
+ exports.CreatorsProductEditionView = CreatorsProductEditionView;