@crystaldesign/diva-backoffice 26.9.0-rc.6 → 26.9.0-rc.7
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/build/esm/index.js +345 -259
- package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/ApprovalWorkspace/index.d.ts +1 -2
- package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/ApprovalWorkspace/index.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/FullscreenViewer/index.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/ImagePanel/index.d.ts +2 -2
- package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/ImagePanel/index.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/LeftSlider/index.d.ts +1 -2
- package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/LeftSlider/index.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/SideBySideViewer/index.d.ts +1 -2
- package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/SideBySideViewer/index.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/hooks/useRenderJobData.d.ts +6 -0
- package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/hooks/useRenderJobData.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/index.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/TableRenderJobs/types.d.ts +2 -0
- package/build/types/backoffice/src/ui/TableRenderJobs/types.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/TableRenderJobs/utils.d.ts +14 -0
- package/build/types/backoffice/src/ui/TableRenderJobs/utils.d.ts.map +1 -0
- package/package.json +9 -9
package/build/esm/index.js
CHANGED
|
@@ -54530,6 +54530,30 @@ function SessionHeader(_ref) {
|
|
|
54530
54530
|
});
|
|
54531
54531
|
}
|
|
54532
54532
|
|
|
54533
|
+
/** Mime types of images a browser cannot render in an `<img>` element. */
|
|
54534
|
+
var NON_RENDERABLE_MIME_TYPES = new Set(['image/tiff', 'image/tif']);
|
|
54535
|
+
|
|
54536
|
+
/**
|
|
54537
|
+
* Resolves the url a browser can actually display for a media entry.
|
|
54538
|
+
*
|
|
54539
|
+
* Render jobs with `fileFormat: 'tif'` produce TIFF results, which no browser
|
|
54540
|
+
* renders natively. The storage generates PNG variants for them, so the `big`
|
|
54541
|
+
* variant (falling back to `gal`, then the thumbnail) is displayed instead of
|
|
54542
|
+
* the raw `cdnUrl`. Mirrors the handling in the media item table cells.
|
|
54543
|
+
*
|
|
54544
|
+
* @param media the media entry to resolve, may be undefined while loading
|
|
54545
|
+
* @returns the displayable url, or `null` when no renderable source exists
|
|
54546
|
+
*/
|
|
54547
|
+
function getViewerUrl(media) {
|
|
54548
|
+
var _media$url;
|
|
54549
|
+
if (!media) return null;
|
|
54550
|
+
if (media.mimeType && NON_RENDERABLE_MIME_TYPES.has(media.mimeType.toLowerCase())) {
|
|
54551
|
+
var _ref, _ref2, _ref3, _media$variants$big, _media$variants, _media$variants2, _media$variants3;
|
|
54552
|
+
return (_ref = (_ref2 = (_ref3 = (_media$variants$big = (_media$variants = media.variants) === null || _media$variants === void 0 ? void 0 : _media$variants.big) !== null && _media$variants$big !== void 0 ? _media$variants$big : (_media$variants2 = media.variants) === null || _media$variants2 === void 0 ? void 0 : _media$variants2.gal) !== null && _ref3 !== void 0 ? _ref3 : (_media$variants3 = media.variants) === null || _media$variants3 === void 0 ? void 0 : _media$variants3.std) !== null && _ref2 !== void 0 ? _ref2 : media.thumbnailUrl) !== null && _ref !== void 0 ? _ref : null;
|
|
54553
|
+
}
|
|
54554
|
+
return (_media$url = media.url) !== null && _media$url !== void 0 ? _media$url : null;
|
|
54555
|
+
}
|
|
54556
|
+
|
|
54533
54557
|
var root$8 = "root-bbDdW";
|
|
54534
54558
|
var header$1 = "header--owh8";
|
|
54535
54559
|
var content$1 = "content-q2m1c";
|
|
@@ -54545,10 +54569,8 @@ function isAr$1(media) {
|
|
|
54545
54569
|
return (media === null || media === void 0 ? void 0 : media.mediaType) === 'AR';
|
|
54546
54570
|
}
|
|
54547
54571
|
function ImagePanel(_ref) {
|
|
54548
|
-
var _media$url;
|
|
54549
54572
|
var title = _ref.title,
|
|
54550
54573
|
media = _ref.media,
|
|
54551
|
-
loading = _ref.loading,
|
|
54552
54574
|
alt = _ref.alt,
|
|
54553
54575
|
onOpenFullscreen = _ref.onOpenFullscreen,
|
|
54554
54576
|
headerActions = _ref.headerActions;
|
|
@@ -54560,20 +54582,22 @@ function ImagePanel(_ref) {
|
|
|
54560
54582
|
_useState2 = _slicedToArray(_useState, 2),
|
|
54561
54583
|
status = _useState2[0],
|
|
54562
54584
|
setStatus = _useState2[1];
|
|
54585
|
+
// TIFF results are not renderable in an <img>, so a PNG variant is shown instead.
|
|
54586
|
+
var viewerUrl = getViewerUrl(media);
|
|
54563
54587
|
useEffect(function () {
|
|
54564
54588
|
if (isAr$1(media)) {
|
|
54565
54589
|
void actions.loadModelViewer();
|
|
54566
54590
|
}
|
|
54567
|
-
}, [actions,
|
|
54591
|
+
}, [actions, viewerUrl, media === null || media === void 0 ? void 0 : media.mediaType]);
|
|
54568
54592
|
useEffect(function () {
|
|
54569
|
-
if (typeof
|
|
54593
|
+
if (typeof viewerUrl === 'string' && viewerUrl.length > 0) {
|
|
54570
54594
|
setStatus('loading');
|
|
54571
54595
|
} else {
|
|
54572
54596
|
setStatus('idle');
|
|
54573
54597
|
}
|
|
54574
|
-
}, [
|
|
54575
|
-
var isResolving =
|
|
54576
|
-
var hasNoSource = !isResolving && (
|
|
54598
|
+
}, [viewerUrl]);
|
|
54599
|
+
var isResolving = media === undefined;
|
|
54600
|
+
var hasNoSource = !isResolving && (viewerUrl === null || viewerUrl === '');
|
|
54577
54601
|
var showAr = !isResolving && !hasNoSource && isAr$1(media);
|
|
54578
54602
|
var showImage = !isResolving && !hasNoSource && !showAr;
|
|
54579
54603
|
var showPlaceholder = hasNoSource || showImage && status === 'error';
|
|
@@ -54602,13 +54626,13 @@ function ImagePanel(_ref) {
|
|
|
54602
54626
|
}), headerActions]
|
|
54603
54627
|
}), /*#__PURE__*/jsxs("div", {
|
|
54604
54628
|
className: classNames(content$1, showAr ? contentAr : contentImage),
|
|
54605
|
-
children: [showAr &&
|
|
54629
|
+
children: [showAr && viewerUrl &&
|
|
54606
54630
|
/*#__PURE__*/
|
|
54607
54631
|
// Size is applied inline because model-viewer is a custom element
|
|
54608
54632
|
// and className forwarding can be inconsistent with CSS modules in
|
|
54609
54633
|
// some React/web-component integrations.
|
|
54610
54634
|
jsx("model-viewer", {
|
|
54611
|
-
src:
|
|
54635
|
+
src: viewerUrl,
|
|
54612
54636
|
alt: alt !== null && alt !== void 0 ? alt : title,
|
|
54613
54637
|
"camera-controls": true,
|
|
54614
54638
|
"touch-action": "pan-y",
|
|
@@ -54622,8 +54646,8 @@ function ImagePanel(_ref) {
|
|
|
54622
54646
|
minHeight: 320,
|
|
54623
54647
|
display: 'block'
|
|
54624
54648
|
}
|
|
54625
|
-
},
|
|
54626
|
-
src:
|
|
54649
|
+
}, viewerUrl), showImage && /*#__PURE__*/jsx("img", {
|
|
54650
|
+
src: viewerUrl !== null && viewerUrl !== void 0 ? viewerUrl : undefined,
|
|
54627
54651
|
alt: alt !== null && alt !== void 0 ? alt : title,
|
|
54628
54652
|
onLoad: function onLoad() {
|
|
54629
54653
|
return setStatus('loaded');
|
|
@@ -54660,7 +54684,6 @@ styleInject(css_248z$l);
|
|
|
54660
54684
|
*/
|
|
54661
54685
|
function LeftSlider(_ref) {
|
|
54662
54686
|
var slides = _ref.slides,
|
|
54663
|
-
loading = _ref.loading,
|
|
54664
54687
|
onOpenFullscreenFirst = _ref.onOpenFullscreenFirst,
|
|
54665
54688
|
onSwiperInit = _ref.onSwiperInit;
|
|
54666
54689
|
var _useTranslation = useTranslation(),
|
|
@@ -54699,7 +54722,6 @@ function LeftSlider(_ref) {
|
|
|
54699
54722
|
children: /*#__PURE__*/jsx(ImagePanel, {
|
|
54700
54723
|
title: title,
|
|
54701
54724
|
media: media,
|
|
54702
|
-
loading: loading,
|
|
54703
54725
|
alt: alt,
|
|
54704
54726
|
onOpenFullscreen: isPreview ? onOpenFullscreenFirst : undefined
|
|
54705
54727
|
})
|
|
@@ -54725,7 +54747,6 @@ styleInject(css_248z$k);
|
|
|
54725
54747
|
function SideBySideViewer(_ref) {
|
|
54726
54748
|
var _images$leftSlides;
|
|
54727
54749
|
var images = _ref.images,
|
|
54728
|
-
loading = _ref.loading,
|
|
54729
54750
|
readonlyDecision = _ref.readonlyDecision,
|
|
54730
54751
|
onOpenFullscreenLeft = _ref.onOpenFullscreenLeft,
|
|
54731
54752
|
onOpenFullscreenRight = _ref.onOpenFullscreenRight,
|
|
@@ -54780,19 +54801,16 @@ function SideBySideViewer(_ref) {
|
|
|
54780
54801
|
className: viewerPanels,
|
|
54781
54802
|
children: [useSwiper ? /*#__PURE__*/jsx(LeftSlider, {
|
|
54782
54803
|
slides: slides,
|
|
54783
|
-
loading: loading,
|
|
54784
54804
|
onOpenFullscreenFirst: showOverlay ? undefined : onOpenFullscreenLeft,
|
|
54785
54805
|
onSwiperInit: onLeftSwiperInit
|
|
54786
54806
|
}) : /*#__PURE__*/jsx(ImagePanel, {
|
|
54787
54807
|
title: t('backoffice.renderapprove.viewer.previewTitle'),
|
|
54788
54808
|
media: images.left,
|
|
54789
|
-
loading: loading,
|
|
54790
54809
|
alt: t('backoffice.renderapprove.viewer.previewAlt'),
|
|
54791
54810
|
onOpenFullscreen: showOverlay ? undefined : onOpenFullscreenLeft
|
|
54792
54811
|
}), /*#__PURE__*/jsx(ImagePanel, {
|
|
54793
54812
|
title: t('backoffice.renderapprove.viewer.resultTitle'),
|
|
54794
54813
|
media: images.right,
|
|
54795
|
-
loading: loading,
|
|
54796
54814
|
alt: t('backoffice.renderapprove.viewer.resultAlt'),
|
|
54797
54815
|
onOpenFullscreen: showOverlay ? undefined : onOpenFullscreenRight,
|
|
54798
54816
|
headerActions: resultHeaderActions
|
|
@@ -54968,7 +54986,6 @@ function ActionBar(_ref) {
|
|
|
54968
54986
|
*/
|
|
54969
54987
|
function ApprovalWorkspace(_ref) {
|
|
54970
54988
|
var images = _ref.images,
|
|
54971
|
-
loading = _ref.loading,
|
|
54972
54989
|
readonlyDecision = _ref.readonlyDecision,
|
|
54973
54990
|
onOpenFullscreenLeft = _ref.onOpenFullscreenLeft,
|
|
54974
54991
|
onOpenFullscreenRight = _ref.onOpenFullscreenRight,
|
|
@@ -54987,7 +55004,6 @@ function ApprovalWorkspace(_ref) {
|
|
|
54987
55004
|
return /*#__PURE__*/jsxs(Fragment, {
|
|
54988
55005
|
children: [/*#__PURE__*/jsx(SideBySideViewer, {
|
|
54989
55006
|
images: images,
|
|
54990
|
-
loading: loading,
|
|
54991
55007
|
readonlyDecision: readonlyDecision,
|
|
54992
55008
|
onOpenFullscreenLeft: onOpenFullscreenLeft,
|
|
54993
55009
|
onOpenFullscreenRight: onOpenFullscreenRight,
|
|
@@ -57120,7 +57136,6 @@ function isAr(media) {
|
|
|
57120
57136
|
return (media === null || media === void 0 ? void 0 : media.mediaType) === 'AR';
|
|
57121
57137
|
}
|
|
57122
57138
|
function FullscreenViewer(_ref) {
|
|
57123
|
-
var _media$url;
|
|
57124
57139
|
var open = _ref.open,
|
|
57125
57140
|
media = _ref.media,
|
|
57126
57141
|
title = _ref.title,
|
|
@@ -57130,12 +57145,21 @@ function FullscreenViewer(_ref) {
|
|
|
57130
57145
|
var _useTranslation = useTranslation(),
|
|
57131
57146
|
t = _useTranslation.t;
|
|
57132
57147
|
var ar = isAr(media);
|
|
57148
|
+
// TIFF results are not renderable in an <img>, so a PNG variant is shown instead.
|
|
57149
|
+
var viewerUrl = getViewerUrl(media);
|
|
57150
|
+
var _useState = useState(false),
|
|
57151
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
57152
|
+
failed = _useState2[0],
|
|
57153
|
+
setFailed = _useState2[1];
|
|
57133
57154
|
useEffect(function () {
|
|
57134
57155
|
if (open && ar) {
|
|
57135
57156
|
void actions.loadModelViewer();
|
|
57136
57157
|
}
|
|
57137
57158
|
}, [actions, ar, open]);
|
|
57138
|
-
|
|
57159
|
+
useEffect(function () {
|
|
57160
|
+
setFailed(false);
|
|
57161
|
+
}, [viewerUrl]);
|
|
57162
|
+
var hasSource = typeof viewerUrl === 'string' && viewerUrl.length > 0;
|
|
57139
57163
|
return /*#__PURE__*/jsxs(Modal$2, {
|
|
57140
57164
|
open: open,
|
|
57141
57165
|
onCancel: onClose,
|
|
@@ -57148,15 +57172,15 @@ function FullscreenViewer(_ref) {
|
|
|
57148
57172
|
destroyOnHidden: true,
|
|
57149
57173
|
centered: true,
|
|
57150
57174
|
wrapClassName: fullscreenModal,
|
|
57151
|
-
children: [!hasSource && /*#__PURE__*/jsx(Empty, {
|
|
57175
|
+
children: [(!hasSource || failed) && /*#__PURE__*/jsx(Empty, {
|
|
57152
57176
|
description: t('backoffice.renderapprove.errors.imageNotAvailable'),
|
|
57153
57177
|
image: Empty.PRESENTED_IMAGE_SIMPLE
|
|
57154
|
-
}), hasSource && ar &&
|
|
57178
|
+
}), hasSource && ar && viewerUrl &&
|
|
57155
57179
|
/*#__PURE__*/
|
|
57156
57180
|
// model-viewer is a custom element. Inline sizing keeps rendering
|
|
57157
57181
|
// stable even when className forwarding to web components varies.
|
|
57158
57182
|
jsx("model-viewer", {
|
|
57159
|
-
src:
|
|
57183
|
+
src: viewerUrl,
|
|
57160
57184
|
alt: title !== null && title !== void 0 ? title : t('backoffice.renderapprove.viewer.fullscreenModelAlt'),
|
|
57161
57185
|
"camera-controls": true,
|
|
57162
57186
|
"touch-action": "pan-y",
|
|
@@ -57169,10 +57193,13 @@ function FullscreenViewer(_ref) {
|
|
|
57169
57193
|
height: '100%',
|
|
57170
57194
|
display: 'block'
|
|
57171
57195
|
}
|
|
57172
|
-
},
|
|
57173
|
-
src:
|
|
57196
|
+
}, viewerUrl), hasSource && !ar && !failed && /*#__PURE__*/jsx("img", {
|
|
57197
|
+
src: viewerUrl !== null && viewerUrl !== void 0 ? viewerUrl : undefined,
|
|
57174
57198
|
alt: title !== null && title !== void 0 ? title : t('backoffice.renderapprove.viewer.fullscreenPreviewAlt'),
|
|
57175
|
-
className: image
|
|
57199
|
+
className: image,
|
|
57200
|
+
onError: function onError() {
|
|
57201
|
+
return setFailed(true);
|
|
57202
|
+
}
|
|
57176
57203
|
})]
|
|
57177
57204
|
});
|
|
57178
57205
|
}
|
|
@@ -58484,12 +58511,12 @@ function fetchJson(_x, _x2) {
|
|
|
58484
58511
|
return _fetchJson.apply(this, arguments);
|
|
58485
58512
|
}
|
|
58486
58513
|
function _fetchJson() {
|
|
58487
|
-
_fetchJson = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function
|
|
58514
|
+
_fetchJson = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(url, jwt) {
|
|
58488
58515
|
var response;
|
|
58489
|
-
return _regeneratorRuntime.wrap(function
|
|
58490
|
-
while (1) switch (
|
|
58516
|
+
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
58517
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
58491
58518
|
case 0:
|
|
58492
|
-
|
|
58519
|
+
_context2.next = 2;
|
|
58493
58520
|
return fetch(url, {
|
|
58494
58521
|
headers: _objectSpread$h({
|
|
58495
58522
|
'Content-Type': 'application/json'
|
|
@@ -58498,24 +58525,24 @@ function _fetchJson() {
|
|
|
58498
58525
|
} : {})
|
|
58499
58526
|
});
|
|
58500
58527
|
case 2:
|
|
58501
|
-
response =
|
|
58528
|
+
response = _context2.sent;
|
|
58502
58529
|
if (response.ok) {
|
|
58503
|
-
|
|
58530
|
+
_context2.next = 5;
|
|
58504
58531
|
break;
|
|
58505
58532
|
}
|
|
58506
58533
|
throw new DivaError("Request failed: ".concat(response.status, " ").concat(response.statusText), {
|
|
58507
58534
|
code: 'RENDERAPPROVE_FETCH_FAILED'
|
|
58508
58535
|
});
|
|
58509
58536
|
case 5:
|
|
58510
|
-
|
|
58537
|
+
_context2.next = 7;
|
|
58511
58538
|
return response.json();
|
|
58512
58539
|
case 7:
|
|
58513
|
-
return
|
|
58540
|
+
return _context2.abrupt("return", _context2.sent);
|
|
58514
58541
|
case 8:
|
|
58515
58542
|
case "end":
|
|
58516
|
-
return
|
|
58543
|
+
return _context2.stop();
|
|
58517
58544
|
}
|
|
58518
|
-
},
|
|
58545
|
+
}, _callee2);
|
|
58519
58546
|
}));
|
|
58520
58547
|
return _fetchJson.apply(this, arguments);
|
|
58521
58548
|
}
|
|
@@ -58532,7 +58559,8 @@ function toMedia(item) {
|
|
|
58532
58559
|
fileSize: typeof item.fileSize === 'number' ? item.fileSize : undefined,
|
|
58533
58560
|
id: (_item$_id = item._id) !== null && _item$_id !== void 0 ? _item$_id : item.id,
|
|
58534
58561
|
name: typeof item.name === 'string' ? item.name : undefined,
|
|
58535
|
-
metadata: item.metadata && _typeof(item.metadata) === 'object' ? item.metadata : undefined
|
|
58562
|
+
metadata: item.metadata && _typeof(item.metadata) === 'object' ? item.metadata : undefined,
|
|
58563
|
+
variants: item.variants && _typeof(item.variants) === 'object' ? item.variants : undefined
|
|
58536
58564
|
};
|
|
58537
58565
|
}
|
|
58538
58566
|
var EXCLUDED_FUNCTION_TYPES = new Set(['LOG', 'OPV']);
|
|
@@ -58552,22 +58580,22 @@ function fetchProductMedia(_x3, _x4, _x5, _x6, _x7) {
|
|
|
58552
58580
|
return _fetchProductMedia.apply(this, arguments);
|
|
58553
58581
|
}
|
|
58554
58582
|
function _fetchProductMedia() {
|
|
58555
|
-
_fetchProductMedia = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function
|
|
58583
|
+
_fetchProductMedia = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4(catalogService, baseUrl, jwt, productId, excludeUrl) {
|
|
58556
58584
|
var data, product, media, sorted, seen, result, _iterator2, _step2, _mapped$metadata, item, mapped, ref;
|
|
58557
|
-
return _regeneratorRuntime.wrap(function
|
|
58558
|
-
while (1) switch (
|
|
58585
|
+
return _regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
58586
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
58559
58587
|
case 0:
|
|
58560
|
-
|
|
58588
|
+
_context4.next = 2;
|
|
58561
58589
|
return fetchJson("".concat(catalogService, "/v1/products/").concat(encodeURIComponent(productId), "/list"), jwt);
|
|
58562
58590
|
case 2:
|
|
58563
|
-
data =
|
|
58591
|
+
data = _context4.sent;
|
|
58564
58592
|
product = Array.isArray(data) ? data[0] : undefined;
|
|
58565
58593
|
media = product === null || product === void 0 ? void 0 : product.media;
|
|
58566
58594
|
if (!(!Array.isArray(media) || media.length === 0)) {
|
|
58567
|
-
|
|
58595
|
+
_context4.next = 7;
|
|
58568
58596
|
break;
|
|
58569
58597
|
}
|
|
58570
|
-
return
|
|
58598
|
+
return _context4.abrupt("return", []);
|
|
58571
58599
|
case 7:
|
|
58572
58600
|
sorted = _toConsumableArray(media).sort(function (a, b) {
|
|
58573
58601
|
var pa = typeof (a === null || a === void 0 ? void 0 : a.position) === 'number' ? a.position : Number.MAX_SAFE_INTEGER;
|
|
@@ -58578,38 +58606,38 @@ function _fetchProductMedia() {
|
|
|
58578
58606
|
if (excludeUrl) seen.add(excludeUrl);
|
|
58579
58607
|
result = [];
|
|
58580
58608
|
_iterator2 = _createForOfIteratorHelper$b(sorted);
|
|
58581
|
-
|
|
58609
|
+
_context4.prev = 12;
|
|
58582
58610
|
_iterator2.s();
|
|
58583
58611
|
case 14:
|
|
58584
58612
|
if ((_step2 = _iterator2.n()).done) {
|
|
58585
|
-
|
|
58613
|
+
_context4.next = 32;
|
|
58586
58614
|
break;
|
|
58587
58615
|
}
|
|
58588
58616
|
item = _step2.value;
|
|
58589
58617
|
if (!(item !== null && item !== void 0 && item.functionType && EXCLUDED_FUNCTION_TYPES.has(item.functionType))) {
|
|
58590
|
-
|
|
58618
|
+
_context4.next = 18;
|
|
58591
58619
|
break;
|
|
58592
58620
|
}
|
|
58593
|
-
return
|
|
58621
|
+
return _context4.abrupt("continue", 30);
|
|
58594
58622
|
case 18:
|
|
58595
58623
|
if (!(item !== null && item !== void 0 && item.mediaType && !ALLOWED_MEDIA_TYPES.has(item.mediaType))) {
|
|
58596
|
-
|
|
58624
|
+
_context4.next = 20;
|
|
58597
58625
|
break;
|
|
58598
58626
|
}
|
|
58599
|
-
return
|
|
58627
|
+
return _context4.abrupt("continue", 30);
|
|
58600
58628
|
case 20:
|
|
58601
58629
|
mapped = toMedia(item);
|
|
58602
58630
|
if (!(!mapped || !mapped.url)) {
|
|
58603
|
-
|
|
58631
|
+
_context4.next = 23;
|
|
58604
58632
|
break;
|
|
58605
58633
|
}
|
|
58606
|
-
return
|
|
58634
|
+
return _context4.abrupt("continue", 30);
|
|
58607
58635
|
case 23:
|
|
58608
58636
|
if (!seen.has(mapped.url)) {
|
|
58609
|
-
|
|
58637
|
+
_context4.next = 25;
|
|
58610
58638
|
break;
|
|
58611
58639
|
}
|
|
58612
|
-
return
|
|
58640
|
+
return _context4.abrupt("continue", 30);
|
|
58613
58641
|
case 25:
|
|
58614
58642
|
seen.add(mapped.url);
|
|
58615
58643
|
ref = typeof (item === null || item === void 0 ? void 0 : item.ref) === 'string' ? item.ref : undefined;
|
|
@@ -58626,47 +58654,53 @@ function _fetchProductMedia() {
|
|
|
58626
58654
|
ref: ref
|
|
58627
58655
|
});
|
|
58628
58656
|
case 30:
|
|
58629
|
-
|
|
58657
|
+
_context4.next = 14;
|
|
58630
58658
|
break;
|
|
58631
58659
|
case 32:
|
|
58632
|
-
|
|
58660
|
+
_context4.next = 37;
|
|
58633
58661
|
break;
|
|
58634
58662
|
case 34:
|
|
58635
|
-
|
|
58636
|
-
|
|
58637
|
-
_iterator2.e(
|
|
58663
|
+
_context4.prev = 34;
|
|
58664
|
+
_context4.t0 = _context4["catch"](12);
|
|
58665
|
+
_iterator2.e(_context4.t0);
|
|
58638
58666
|
case 37:
|
|
58639
|
-
|
|
58667
|
+
_context4.prev = 37;
|
|
58640
58668
|
_iterator2.f();
|
|
58641
|
-
return
|
|
58669
|
+
return _context4.finish(37);
|
|
58642
58670
|
case 40:
|
|
58643
|
-
|
|
58671
|
+
_context4.next = 42;
|
|
58644
58672
|
return Promise.all(result.map(/*#__PURE__*/function () {
|
|
58645
|
-
var
|
|
58646
|
-
var media, ref, _yield$Promise$
|
|
58647
|
-
return _regeneratorRuntime.wrap(function
|
|
58648
|
-
while (1) switch (
|
|
58673
|
+
var _ref8 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_ref7) {
|
|
58674
|
+
var media, ref, _yield$Promise$allSet, _yield$Promise$allSet2, mediaItemRes, refRes, _media$variants, _ref9, _item$thumbnailUrl2, _item$variants2, item, _media$metadata, payload, refDoc, _media$metadata2;
|
|
58675
|
+
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
58676
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
58649
58677
|
case 0:
|
|
58650
|
-
media =
|
|
58678
|
+
media = _ref7.media, ref = _ref7.ref;
|
|
58651
58679
|
if (ref) {
|
|
58652
|
-
|
|
58680
|
+
_context3.next = 3;
|
|
58653
58681
|
break;
|
|
58654
58682
|
}
|
|
58655
|
-
return
|
|
58683
|
+
return _context3.abrupt("return");
|
|
58656
58684
|
case 3:
|
|
58657
|
-
|
|
58685
|
+
_context3.next = 5;
|
|
58658
58686
|
return Promise.allSettled([fetchJson("".concat(baseUrl, "/v1/mediaitemref/").concat(encodeURIComponent(ref), "/mediaitem"), jwt), fetchJson("".concat(baseUrl, "/v1/mediaitems/refs?filter=").concat(encodeURIComponent("{_id,eq,'".concat(ref, "'}"))), jwt)]);
|
|
58659
58687
|
case 5:
|
|
58660
|
-
_yield$Promise$
|
|
58661
|
-
_yield$Promise$
|
|
58662
|
-
mediaItemRes = _yield$Promise$
|
|
58663
|
-
refRes = _yield$Promise$
|
|
58688
|
+
_yield$Promise$allSet = _context3.sent;
|
|
58689
|
+
_yield$Promise$allSet2 = _slicedToArray(_yield$Promise$allSet, 2);
|
|
58690
|
+
mediaItemRes = _yield$Promise$allSet2[0];
|
|
58691
|
+
refRes = _yield$Promise$allSet2[1];
|
|
58664
58692
|
if (mediaItemRes.status === 'fulfilled') {
|
|
58665
58693
|
item = mediaItemRes.value;
|
|
58666
58694
|
if (item !== null && item !== void 0 && item.metadata && _typeof(item.metadata) === 'object') {
|
|
58667
58695
|
media.metadata = _objectSpread$h(_objectSpread$h({}, (_media$metadata = media.metadata) !== null && _media$metadata !== void 0 ? _media$metadata : {}), item.metadata);
|
|
58668
58696
|
}
|
|
58669
58697
|
if ((!media.name || media.name.length === 0) && typeof (item === null || item === void 0 ? void 0 : item.name) === 'string') media.name = item.name;
|
|
58698
|
+
// The catalog entry carries no file information, so mime type, variants and
|
|
58699
|
+
// thumbnail come from the MediaItem - `getViewerUrl` needs mime type and
|
|
58700
|
+
// variants to show the PNG stand-in for a TIFF.
|
|
58701
|
+
if (!media.mimeType && typeof (item === null || item === void 0 ? void 0 : item.mimeType) === 'string') media.mimeType = item.mimeType;
|
|
58702
|
+
if (item !== null && item !== void 0 && item.variants && _typeof(item.variants) === 'object') media.variants = _objectSpread$h(_objectSpread$h({}, (_media$variants = media.variants) !== null && _media$variants !== void 0 ? _media$variants : {}), item.variants);
|
|
58703
|
+
if (!media.thumbnailUrl) media.thumbnailUrl = (_ref9 = (_item$thumbnailUrl2 = item === null || item === void 0 ? void 0 : item.thumbnailUrl) !== null && _item$thumbnailUrl2 !== void 0 ? _item$thumbnailUrl2 : item === null || item === void 0 || (_item$variants2 = item.variants) === null || _item$variants2 === void 0 ? void 0 : _item$variants2.gal) !== null && _ref9 !== void 0 ? _ref9 : null;
|
|
58670
58704
|
}
|
|
58671
58705
|
if (refRes.status === 'fulfilled') {
|
|
58672
58706
|
payload = refRes.value;
|
|
@@ -58677,23 +58711,23 @@ function _fetchProductMedia() {
|
|
|
58677
58711
|
}
|
|
58678
58712
|
case 11:
|
|
58679
58713
|
case "end":
|
|
58680
|
-
return
|
|
58714
|
+
return _context3.stop();
|
|
58681
58715
|
}
|
|
58682
|
-
},
|
|
58716
|
+
}, _callee3);
|
|
58683
58717
|
}));
|
|
58684
|
-
return function (
|
|
58685
|
-
return
|
|
58718
|
+
return function (_x15) {
|
|
58719
|
+
return _ref8.apply(this, arguments);
|
|
58686
58720
|
};
|
|
58687
58721
|
}()));
|
|
58688
58722
|
case 42:
|
|
58689
|
-
return
|
|
58723
|
+
return _context4.abrupt("return", result.map(function (r) {
|
|
58690
58724
|
return r.media;
|
|
58691
58725
|
}));
|
|
58692
58726
|
case 43:
|
|
58693
58727
|
case "end":
|
|
58694
|
-
return
|
|
58728
|
+
return _context4.stop();
|
|
58695
58729
|
}
|
|
58696
|
-
},
|
|
58730
|
+
}, _callee4, null, [[12, 34, 37, 40]]);
|
|
58697
58731
|
}));
|
|
58698
58732
|
return _fetchProductMedia.apply(this, arguments);
|
|
58699
58733
|
}
|
|
@@ -58702,58 +58736,184 @@ function resolveMediaItem(_x8, _x9, _x10, _x11) {
|
|
|
58702
58736
|
}
|
|
58703
58737
|
|
|
58704
58738
|
/**
|
|
58705
|
-
*
|
|
58706
|
-
*
|
|
58707
|
-
*
|
|
58739
|
+
* Assembles the left swiper slides. The render job's `renderImages` (AI input
|
|
58740
|
+
* images, ordered) drive the order: each is resolved to the rich product media
|
|
58741
|
+
* when the url matches, to the preview, or to a minimal media otherwise (which
|
|
58742
|
+
* carries the stored MediaItemRef id so uploaded images keep their ref when
|
|
58743
|
+
* re-selected). Product media already represented by a renderImage is not shown
|
|
58744
|
+
* again (dedup by url). The realtime preview leads only when there are no
|
|
58745
|
+
* renderImages; once they exist it comes right after them, and only if it is
|
|
58746
|
+
* not already one of them.
|
|
58708
58747
|
*
|
|
58709
|
-
*
|
|
58710
|
-
*
|
|
58748
|
+
* Called with an empty `productMedia` it yields exactly the prefix of the final
|
|
58749
|
+
* list, so slides are only ever appended - never reordered - once the product
|
|
58750
|
+
* media arrives.
|
|
58711
58751
|
*/
|
|
58712
58752
|
function _resolveMediaItem() {
|
|
58713
|
-
_resolveMediaItem = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function
|
|
58753
|
+
_resolveMediaItem = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5(baseUrl, jwt, mediaItemId, mediaItemRef) {
|
|
58714
58754
|
var item, media, _item, _media;
|
|
58715
|
-
return _regeneratorRuntime.wrap(function
|
|
58716
|
-
while (1) switch (
|
|
58755
|
+
return _regeneratorRuntime.wrap(function _callee5$(_context5) {
|
|
58756
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
58717
58757
|
case 0:
|
|
58718
58758
|
if (!mediaItemRef) {
|
|
58719
|
-
|
|
58759
|
+
_context5.next = 7;
|
|
58720
58760
|
break;
|
|
58721
58761
|
}
|
|
58722
|
-
|
|
58762
|
+
_context5.next = 3;
|
|
58723
58763
|
return fetchJson("".concat(baseUrl, "/v1/mediaitemref/").concat(encodeURIComponent(mediaItemRef), "/mediaitem"), jwt);
|
|
58724
58764
|
case 3:
|
|
58725
|
-
item =
|
|
58765
|
+
item = _context5.sent;
|
|
58726
58766
|
media = toMedia(item);
|
|
58727
58767
|
if (!media) {
|
|
58728
|
-
|
|
58768
|
+
_context5.next = 7;
|
|
58729
58769
|
break;
|
|
58730
58770
|
}
|
|
58731
|
-
return
|
|
58771
|
+
return _context5.abrupt("return", media);
|
|
58732
58772
|
case 7:
|
|
58733
58773
|
if (!mediaItemId) {
|
|
58734
|
-
|
|
58774
|
+
_context5.next = 14;
|
|
58735
58775
|
break;
|
|
58736
58776
|
}
|
|
58737
|
-
|
|
58777
|
+
_context5.next = 10;
|
|
58738
58778
|
return fetchJson("".concat(baseUrl, "/v1/mediaitems/").concat(encodeURIComponent(mediaItemId)), jwt);
|
|
58739
58779
|
case 10:
|
|
58740
|
-
_item =
|
|
58780
|
+
_item = _context5.sent;
|
|
58741
58781
|
_media = toMedia(_item);
|
|
58742
58782
|
if (!_media) {
|
|
58743
|
-
|
|
58783
|
+
_context5.next = 14;
|
|
58744
58784
|
break;
|
|
58745
58785
|
}
|
|
58746
|
-
return
|
|
58786
|
+
return _context5.abrupt("return", _media);
|
|
58747
58787
|
case 14:
|
|
58748
|
-
return
|
|
58788
|
+
return _context5.abrupt("return", null);
|
|
58749
58789
|
case 15:
|
|
58750
58790
|
case "end":
|
|
58751
|
-
return
|
|
58791
|
+
return _context5.stop();
|
|
58752
58792
|
}
|
|
58753
|
-
},
|
|
58793
|
+
}, _callee5);
|
|
58754
58794
|
}));
|
|
58755
58795
|
return _resolveMediaItem.apply(this, arguments);
|
|
58756
58796
|
}
|
|
58797
|
+
function buildLeftSlides(left, renderImages, productMedia) {
|
|
58798
|
+
var renderImageUrls = new Set(renderImages.map(function (image) {
|
|
58799
|
+
return image.url;
|
|
58800
|
+
}));
|
|
58801
|
+
var remainingProduct = productMedia.filter(function (media) {
|
|
58802
|
+
return !(media.url && renderImageUrls.has(media.url));
|
|
58803
|
+
});
|
|
58804
|
+
if (renderImages.length === 0) return [left].concat(_toConsumableArray(remainingProduct));
|
|
58805
|
+
var productByUrl = new Map();
|
|
58806
|
+
var _iterator = _createForOfIteratorHelper$b(productMedia),
|
|
58807
|
+
_step;
|
|
58808
|
+
try {
|
|
58809
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
58810
|
+
var media = _step.value;
|
|
58811
|
+
if (media.url) productByUrl.set(media.url, media);
|
|
58812
|
+
}
|
|
58813
|
+
} catch (err) {
|
|
58814
|
+
_iterator.e(err);
|
|
58815
|
+
} finally {
|
|
58816
|
+
_iterator.f();
|
|
58817
|
+
}
|
|
58818
|
+
var renderImageSlides = renderImages.map(function (_ref5) {
|
|
58819
|
+
var _productByUrl$get;
|
|
58820
|
+
var url = _ref5.url,
|
|
58821
|
+
mediaItemRefId = _ref5.mediaItemRefId;
|
|
58822
|
+
return url === left.url ? left : (_productByUrl$get = productByUrl.get(url)) !== null && _productByUrl$get !== void 0 ? _productByUrl$get : {
|
|
58823
|
+
url: url,
|
|
58824
|
+
mediaType: 'PCT',
|
|
58825
|
+
mediaItemRefId: mediaItemRefId
|
|
58826
|
+
};
|
|
58827
|
+
});
|
|
58828
|
+
var previewAfter = left.url != null && !renderImageUrls.has(left.url) ? [left] : [];
|
|
58829
|
+
return [].concat(_toConsumableArray(renderImageSlides), previewAfter, _toConsumableArray(remainingProduct));
|
|
58830
|
+
}
|
|
58831
|
+
|
|
58832
|
+
/**
|
|
58833
|
+
* Uploaded AI input images are not part of the product media, so their display
|
|
58834
|
+
* name (filename) is resolved from the MediaItemRef (best-effort, per slide).
|
|
58835
|
+
* Returns the input array unchanged when there is nothing to resolve.
|
|
58836
|
+
*/
|
|
58837
|
+
function withResolvedSlideNames(_x12, _x13, _x14) {
|
|
58838
|
+
return _withResolvedSlideNames.apply(this, arguments);
|
|
58839
|
+
}
|
|
58840
|
+
/**
|
|
58841
|
+
* Loads the render job by id together with the left (real-time render) and
|
|
58842
|
+
* right (resolved media item) images. Each id change cancels the previous
|
|
58843
|
+
* fetch via an abort flag so stale responses cannot overwrite newer state.
|
|
58844
|
+
*
|
|
58845
|
+
* Everything is revealed in stages, because a job switch otherwise shows
|
|
58846
|
+
* nothing until the slowest request of the whole chain is done: the preview and
|
|
58847
|
+
* the `renderImages` slides come straight from the job document, the result
|
|
58848
|
+
* image is one further request away, and only the product media (one catalog
|
|
58849
|
+
* call plus two media calls per image) and the slide names arrive late.
|
|
58850
|
+
*
|
|
58851
|
+
* State mutations (approve/reject) live in `useUpdateRenderJobState` so the
|
|
58852
|
+
* session hook can call them without depending on the currently-loaded job.
|
|
58853
|
+
*/
|
|
58854
|
+
function _withResolvedSlideNames() {
|
|
58855
|
+
_withResolvedSlideNames = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee7(baseUrl, jwt, slides) {
|
|
58856
|
+
return _regeneratorRuntime.wrap(function _callee7$(_context7) {
|
|
58857
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
58858
|
+
case 0:
|
|
58859
|
+
if (slides.some(function (slide) {
|
|
58860
|
+
return !slide.name && slide.mediaItemRefId;
|
|
58861
|
+
})) {
|
|
58862
|
+
_context7.next = 2;
|
|
58863
|
+
break;
|
|
58864
|
+
}
|
|
58865
|
+
return _context7.abrupt("return", slides);
|
|
58866
|
+
case 2:
|
|
58867
|
+
return _context7.abrupt("return", Promise.all(slides.map(/*#__PURE__*/function () {
|
|
58868
|
+
var _ref10 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee6(slide) {
|
|
58869
|
+
var item;
|
|
58870
|
+
return _regeneratorRuntime.wrap(function _callee6$(_context6) {
|
|
58871
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
58872
|
+
case 0:
|
|
58873
|
+
if (!(slide.name || !slide.mediaItemRefId)) {
|
|
58874
|
+
_context6.next = 2;
|
|
58875
|
+
break;
|
|
58876
|
+
}
|
|
58877
|
+
return _context6.abrupt("return", slide);
|
|
58878
|
+
case 2:
|
|
58879
|
+
_context6.prev = 2;
|
|
58880
|
+
_context6.next = 5;
|
|
58881
|
+
return fetchJson("".concat(baseUrl, "/v1/mediaitemref/").concat(encodeURIComponent(slide.mediaItemRefId), "/mediaitem"), jwt);
|
|
58882
|
+
case 5:
|
|
58883
|
+
item = _context6.sent;
|
|
58884
|
+
if (!(typeof (item === null || item === void 0 ? void 0 : item.name) === 'string' && item.name.length > 0)) {
|
|
58885
|
+
_context6.next = 8;
|
|
58886
|
+
break;
|
|
58887
|
+
}
|
|
58888
|
+
return _context6.abrupt("return", _objectSpread$h(_objectSpread$h({}, slide), {}, {
|
|
58889
|
+
name: item.name
|
|
58890
|
+
}));
|
|
58891
|
+
case 8:
|
|
58892
|
+
_context6.next = 12;
|
|
58893
|
+
break;
|
|
58894
|
+
case 10:
|
|
58895
|
+
_context6.prev = 10;
|
|
58896
|
+
_context6.t0 = _context6["catch"](2);
|
|
58897
|
+
case 12:
|
|
58898
|
+
return _context6.abrupt("return", slide);
|
|
58899
|
+
case 13:
|
|
58900
|
+
case "end":
|
|
58901
|
+
return _context6.stop();
|
|
58902
|
+
}
|
|
58903
|
+
}, _callee6, null, [[2, 10]]);
|
|
58904
|
+
}));
|
|
58905
|
+
return function (_x16) {
|
|
58906
|
+
return _ref10.apply(this, arguments);
|
|
58907
|
+
};
|
|
58908
|
+
}())));
|
|
58909
|
+
case 3:
|
|
58910
|
+
case "end":
|
|
58911
|
+
return _context7.stop();
|
|
58912
|
+
}
|
|
58913
|
+
}, _callee7);
|
|
58914
|
+
}));
|
|
58915
|
+
return _withResolvedSlideNames.apply(this, arguments);
|
|
58916
|
+
}
|
|
58757
58917
|
function useRenderJobData(id, refreshKey) {
|
|
58758
58918
|
var _root$configurationSt, _root$configurationSt2;
|
|
58759
58919
|
var root = useStore();
|
|
@@ -58795,21 +58955,21 @@ function useRenderJobData(id, refreshKey) {
|
|
|
58795
58955
|
setError(undefined);
|
|
58796
58956
|
setJob(undefined);
|
|
58797
58957
|
setImages({});
|
|
58798
|
-
_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function
|
|
58799
|
-
var _fetchedJob$realTimeR, fetchedJob, left,
|
|
58800
|
-
return _regeneratorRuntime.wrap(function
|
|
58801
|
-
while (1) switch (
|
|
58958
|
+
_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
58959
|
+
var _fetchedJob$realTimeR, fetchedJob, left, renderImages, leftSlides, mediaItemId, mediaItemRef, productId, rightTask, productTask, named, _message, message;
|
|
58960
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
58961
|
+
while (1) switch (_context.prev = _context.next) {
|
|
58802
58962
|
case 0:
|
|
58803
|
-
|
|
58804
|
-
|
|
58963
|
+
_context.prev = 0;
|
|
58964
|
+
_context.next = 3;
|
|
58805
58965
|
return fetchJson("".concat(baseUrl, "/renderjobs/").concat(encodeURIComponent(id)), jwt);
|
|
58806
58966
|
case 3:
|
|
58807
|
-
fetchedJob =
|
|
58967
|
+
fetchedJob = _context.sent;
|
|
58808
58968
|
if (!cancelled) {
|
|
58809
|
-
|
|
58969
|
+
_context.next = 6;
|
|
58810
58970
|
break;
|
|
58811
58971
|
}
|
|
58812
|
-
return
|
|
58972
|
+
return _context.abrupt("return");
|
|
58813
58973
|
case 6:
|
|
58814
58974
|
setJob(fetchedJob);
|
|
58815
58975
|
|
|
@@ -58819,169 +58979,97 @@ function useRenderJobData(id, refreshKey) {
|
|
|
58819
58979
|
mediaType: 'PCT',
|
|
58820
58980
|
isPreview: true
|
|
58821
58981
|
};
|
|
58822
|
-
|
|
58982
|
+
renderImages = Array.isArray(fetchedJob === null || fetchedJob === void 0 ? void 0 : fetchedJob.renderImages) ? fetchedJob.renderImages.filter(function (image) {
|
|
58983
|
+
return typeof (image === null || image === void 0 ? void 0 : image.url) === 'string' && image.url.length > 0;
|
|
58984
|
+
}) : []; // Stage 1: preview and AI input images are known from the job document.
|
|
58985
|
+
leftSlides = buildLeftSlides(left, renderImages, []);
|
|
58823
58986
|
setImages({
|
|
58824
58987
|
left: left,
|
|
58825
|
-
leftSlides:
|
|
58988
|
+
leftSlides: leftSlides,
|
|
58826
58989
|
right: undefined
|
|
58827
58990
|
});
|
|
58828
58991
|
mediaItemId = getMediaItemId(fetchedJob);
|
|
58829
58992
|
mediaItemRef = fetchedJob === null || fetchedJob === void 0 ? void 0 : fetchedJob.mediaItemRef;
|
|
58830
58993
|
productId = fetchedJob === null || fetchedJob === void 0 ? void 0 : fetchedJob.product; // Load right image and product media in parallel so a product fetch
|
|
58831
|
-
// failure cannot block the right panel and vice versa
|
|
58832
|
-
|
|
58833
|
-
|
|
58834
|
-
|
|
58835
|
-
|
|
58836
|
-
|
|
58837
|
-
|
|
58838
|
-
|
|
58839
|
-
|
|
58840
|
-
|
|
58841
|
-
|
|
58842
|
-
|
|
58843
|
-
|
|
58844
|
-
|
|
58845
|
-
|
|
58846
|
-
|
|
58847
|
-
|
|
58848
|
-
right = (_rightResult$value = rightResult.value) !== null && _rightResult$value !== void 0 ? _rightResult$value : {
|
|
58849
|
-
url: null
|
|
58850
|
-
};
|
|
58851
|
-
} else {
|
|
58852
|
-
LOG$5.warn("Could not resolve right image for job ".concat(id, ": ").concat((_rightResult$reason = rightResult.reason) === null || _rightResult$reason === void 0 ? void 0 : _rightResult$reason.message));
|
|
58853
|
-
right = {
|
|
58854
|
-
url: null
|
|
58855
|
-
};
|
|
58856
|
-
}
|
|
58857
|
-
productMedia = [];
|
|
58858
|
-
if (productResult.status === 'fulfilled') {
|
|
58859
|
-
productMedia = productResult.value;
|
|
58860
|
-
} else {
|
|
58861
|
-
LOG$5.warn("Could not load product media for job ".concat(id, ": ").concat((_productResult$reason = productResult.reason) === null || _productResult$reason === void 0 ? void 0 : _productResult$reason.message));
|
|
58862
|
-
}
|
|
58863
|
-
|
|
58864
|
-
// The render job's `renderImages` (AI input images, ordered) drive the
|
|
58865
|
-
// slide order: each is resolved to the rich product media when the url
|
|
58866
|
-
// matches, to the preview, or a minimal media otherwise. Product media
|
|
58867
|
-
// already represented by a renderImage is not shown again (dedup by url).
|
|
58868
|
-
// The realtime preview is shown first only when there are no renderImages;
|
|
58869
|
-
// once renderImages exist it comes right after them, and only if it is
|
|
58870
|
-
// not already one of them.
|
|
58871
|
-
renderImages = Array.isArray(fetchedJob === null || fetchedJob === void 0 ? void 0 : fetchedJob.renderImages) ? fetchedJob.renderImages.filter(function (image) {
|
|
58872
|
-
return typeof (image === null || image === void 0 ? void 0 : image.url) === 'string' && image.url.length > 0;
|
|
58873
|
-
}) : [];
|
|
58874
|
-
productByUrl = new Map();
|
|
58875
|
-
_iterator = _createForOfIteratorHelper$b(productMedia);
|
|
58876
|
-
try {
|
|
58877
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
58878
|
-
m = _step.value;
|
|
58879
|
-
if (m.url) productByUrl.set(m.url, m);
|
|
58880
|
-
}
|
|
58881
|
-
} catch (err) {
|
|
58882
|
-
_iterator.e(err);
|
|
58883
|
-
} finally {
|
|
58884
|
-
_iterator.f();
|
|
58885
|
-
}
|
|
58886
|
-
renderImageSet = new Set(renderImages.map(function (image) {
|
|
58887
|
-
return image.url;
|
|
58888
|
-
}));
|
|
58889
|
-
remainingProduct = productMedia.filter(function (m) {
|
|
58890
|
-
return !(m.url && renderImageSet.has(m.url));
|
|
58994
|
+
// failure cannot block the right panel and vice versa - and publish
|
|
58995
|
+
// each of them on its own, so the result image is never held back by
|
|
58996
|
+
// the (much slower) product media fan-out.
|
|
58997
|
+
rightTask = (mediaItemId || mediaItemRef ? resolveMediaItem(baseUrl, jwt, mediaItemId, mediaItemRef) : Promise.resolve(null))["catch"](function (reason) {
|
|
58998
|
+
LOG$5.warn("Could not resolve right image for job ".concat(id, ": ").concat(reason === null || reason === void 0 ? void 0 : reason.message));
|
|
58999
|
+
return null;
|
|
59000
|
+
}).then(function (right) {
|
|
59001
|
+
if (cancelled) return;
|
|
59002
|
+
// The result image is on screen, so the decision actions are released here.
|
|
59003
|
+
setImages(function (prev) {
|
|
59004
|
+
return _objectSpread$h(_objectSpread$h({}, prev), {}, {
|
|
59005
|
+
right: right !== null && right !== void 0 ? right : {
|
|
59006
|
+
url: null
|
|
59007
|
+
}
|
|
59008
|
+
});
|
|
59009
|
+
});
|
|
59010
|
+
setLoading(false);
|
|
58891
59011
|
});
|
|
58892
|
-
|
|
58893
|
-
|
|
58894
|
-
|
|
58895
|
-
|
|
58896
|
-
|
|
58897
|
-
|
|
58898
|
-
|
|
58899
|
-
|
|
58900
|
-
|
|
58901
|
-
|
|
58902
|
-
mediaType: 'PCT',
|
|
58903
|
-
mediaItemRefId: mediaItemRefId
|
|
58904
|
-
};
|
|
59012
|
+
productTask = (catalogService && typeof productId === 'string' && productId.length > 0 ? fetchProductMedia(catalogService, baseUrl, jwt, productId, left.url) : Promise.resolve([]))["catch"](function (reason) {
|
|
59013
|
+
LOG$5.warn("Could not load product media for job ".concat(id, ": ").concat(reason === null || reason === void 0 ? void 0 : reason.message));
|
|
59014
|
+
return [];
|
|
59015
|
+
}).then(function (productMedia) {
|
|
59016
|
+
if (cancelled || productMedia.length === 0) return;
|
|
59017
|
+
leftSlides = buildLeftSlides(left, renderImages, productMedia);
|
|
59018
|
+
setImages(function (prev) {
|
|
59019
|
+
return _objectSpread$h(_objectSpread$h({}, prev), {}, {
|
|
59020
|
+
leftSlides: leftSlides
|
|
59021
|
+
});
|
|
58905
59022
|
});
|
|
58906
|
-
|
|
58907
|
-
|
|
58908
|
-
|
|
58909
|
-
|
|
58910
|
-
}
|
|
58911
|
-
|
|
58912
|
-
// Uploaded AI input images are not part of the product media, so their
|
|
58913
|
-
// display name (filename) is resolved from the MediaItemRef (best-effort).
|
|
58914
|
-
_context2.next = 35;
|
|
58915
|
-
return Promise.all(leftSlides.map(/*#__PURE__*/function () {
|
|
58916
|
-
var _ref7 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(slide) {
|
|
58917
|
-
var item;
|
|
58918
|
-
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
58919
|
-
while (1) switch (_context.prev = _context.next) {
|
|
58920
|
-
case 0:
|
|
58921
|
-
if (!(slide.name || !slide.mediaItemRefId)) {
|
|
58922
|
-
_context.next = 2;
|
|
58923
|
-
break;
|
|
58924
|
-
}
|
|
58925
|
-
return _context.abrupt("return");
|
|
58926
|
-
case 2:
|
|
58927
|
-
_context.prev = 2;
|
|
58928
|
-
_context.next = 5;
|
|
58929
|
-
return fetchJson("".concat(baseUrl, "/v1/mediaitemref/").concat(encodeURIComponent(slide.mediaItemRefId), "/mediaitem"), jwt);
|
|
58930
|
-
case 5:
|
|
58931
|
-
item = _context.sent;
|
|
58932
|
-
if (typeof (item === null || item === void 0 ? void 0 : item.name) === 'string' && item.name.length > 0) slide.name = item.name;
|
|
58933
|
-
_context.next = 11;
|
|
58934
|
-
break;
|
|
58935
|
-
case 9:
|
|
58936
|
-
_context.prev = 9;
|
|
58937
|
-
_context.t0 = _context["catch"](2);
|
|
58938
|
-
case 11:
|
|
58939
|
-
case "end":
|
|
58940
|
-
return _context.stop();
|
|
58941
|
-
}
|
|
58942
|
-
}, _callee, null, [[2, 9]]);
|
|
58943
|
-
}));
|
|
58944
|
-
return function (_x12) {
|
|
58945
|
-
return _ref7.apply(this, arguments);
|
|
58946
|
-
};
|
|
58947
|
-
}()));
|
|
58948
|
-
case 35:
|
|
59023
|
+
});
|
|
59024
|
+
_context.next = 18;
|
|
59025
|
+
return Promise.all([rightTask, productTask]);
|
|
59026
|
+
case 18:
|
|
58949
59027
|
if (!cancelled) {
|
|
58950
|
-
|
|
59028
|
+
_context.next = 20;
|
|
58951
59029
|
break;
|
|
58952
59030
|
}
|
|
58953
|
-
return
|
|
58954
|
-
case
|
|
58955
|
-
|
|
58956
|
-
|
|
58957
|
-
|
|
58958
|
-
|
|
59031
|
+
return _context.abrupt("return");
|
|
59032
|
+
case 20:
|
|
59033
|
+
_context.next = 22;
|
|
59034
|
+
return withResolvedSlideNames(baseUrl, jwt, leftSlides);
|
|
59035
|
+
case 22:
|
|
59036
|
+
named = _context.sent;
|
|
59037
|
+
if (!(cancelled || named === leftSlides)) {
|
|
59038
|
+
_context.next = 25;
|
|
59039
|
+
break;
|
|
59040
|
+
}
|
|
59041
|
+
return _context.abrupt("return");
|
|
59042
|
+
case 25:
|
|
59043
|
+
setImages(function (prev) {
|
|
59044
|
+
return _objectSpread$h(_objectSpread$h({}, prev), {}, {
|
|
59045
|
+
leftSlides: named
|
|
59046
|
+
});
|
|
58959
59047
|
});
|
|
58960
|
-
|
|
59048
|
+
_context.next = 35;
|
|
58961
59049
|
break;
|
|
58962
|
-
case
|
|
58963
|
-
|
|
58964
|
-
|
|
59050
|
+
case 28:
|
|
59051
|
+
_context.prev = 28;
|
|
59052
|
+
_context.t0 = _context["catch"](0);
|
|
58965
59053
|
if (!cancelled) {
|
|
58966
|
-
|
|
59054
|
+
_context.next = 32;
|
|
58967
59055
|
break;
|
|
58968
59056
|
}
|
|
58969
|
-
return
|
|
58970
|
-
case
|
|
58971
|
-
message = (_message =
|
|
59057
|
+
return _context.abrupt("return");
|
|
59058
|
+
case 32:
|
|
59059
|
+
message = (_message = _context.t0 === null || _context.t0 === void 0 ? void 0 : _context.t0.message) !== null && _message !== void 0 ? _message : 'Unknown error';
|
|
58972
59060
|
LOG$5.error(new DivaError("Failed to load render job ".concat(id, ": ").concat(message), {
|
|
58973
59061
|
code: 'RENDERAPPROVE_LOAD_JOB'
|
|
58974
59062
|
}));
|
|
58975
59063
|
setError(message);
|
|
58976
|
-
case
|
|
58977
|
-
|
|
59064
|
+
case 35:
|
|
59065
|
+
_context.prev = 35;
|
|
58978
59066
|
if (!cancelled) setLoading(false);
|
|
58979
|
-
return
|
|
58980
|
-
case
|
|
59067
|
+
return _context.finish(35);
|
|
59068
|
+
case 38:
|
|
58981
59069
|
case "end":
|
|
58982
|
-
return
|
|
59070
|
+
return _context.stop();
|
|
58983
59071
|
}
|
|
58984
|
-
},
|
|
59072
|
+
}, _callee, null, [[0, 28, 35, 38]]);
|
|
58985
59073
|
}))();
|
|
58986
59074
|
return function () {
|
|
58987
59075
|
cancelled = true;
|
|
@@ -59645,7 +59733,7 @@ function focusBackConfirmButton(button) {
|
|
|
59645
59733
|
ok === null || ok === void 0 || ok.focus();
|
|
59646
59734
|
}
|
|
59647
59735
|
function RenderApprove() {
|
|
59648
|
-
var _data$job, _data$job2, _data$images$
|
|
59736
|
+
var _data$job, _data$job2, _data$images$right, _data$images$right2, _data$images$leftSlid, _data$job3, _data$job4, _data$job5, _data$job6, _imageFullscreen$name;
|
|
59649
59737
|
var store = useStore();
|
|
59650
59738
|
var navigate = useNavigate();
|
|
59651
59739
|
var _useTranslation = useTranslation(),
|
|
@@ -59763,7 +59851,7 @@ function RenderApprove() {
|
|
|
59763
59851
|
var fullscreenMedia = fullscreenSide === 'left' ? data.images.left : fullscreenSide === 'right' ? data.images.right : undefined;
|
|
59764
59852
|
var openFullscreen = function openFullscreen(side) {
|
|
59765
59853
|
var media = side === 'left' ? data.images.left : data.images.right;
|
|
59766
|
-
if (!media
|
|
59854
|
+
if (!getViewerUrl(media)) return;
|
|
59767
59855
|
setFullscreenSide(side);
|
|
59768
59856
|
};
|
|
59769
59857
|
var closeFullscreen = function closeFullscreen() {
|
|
@@ -59773,16 +59861,15 @@ function RenderApprove() {
|
|
|
59773
59861
|
// Space toggle: prefers the result image (right), falls back to the
|
|
59774
59862
|
// preview otherwise. When nothing is available the action is a no-op.
|
|
59775
59863
|
var toggleFullscreen = function toggleFullscreen() {
|
|
59776
|
-
var _data$images$right, _data$images$left;
|
|
59777
59864
|
if (fullscreenSide) {
|
|
59778
59865
|
closeFullscreen();
|
|
59779
59866
|
return;
|
|
59780
59867
|
}
|
|
59781
|
-
if ((
|
|
59868
|
+
if (getViewerUrl(data.images.right)) {
|
|
59782
59869
|
openFullscreen('right');
|
|
59783
59870
|
return;
|
|
59784
59871
|
}
|
|
59785
|
-
if ((
|
|
59872
|
+
if (getViewerUrl(data.images.left)) {
|
|
59786
59873
|
openFullscreen('left');
|
|
59787
59874
|
}
|
|
59788
59875
|
};
|
|
@@ -60379,8 +60466,8 @@ function RenderApprove() {
|
|
|
60379
60466
|
})
|
|
60380
60467
|
}), /*#__PURE__*/jsx(MetadataPanel, {
|
|
60381
60468
|
job: data.job,
|
|
60382
|
-
fileSize: (_data$images$
|
|
60383
|
-
mediaType: (_data$images$
|
|
60469
|
+
fileSize: (_data$images$right = data.images.right) === null || _data$images$right === void 0 ? void 0 : _data$images$right.fileSize,
|
|
60470
|
+
mediaType: (_data$images$right2 = data.images.right) === null || _data$images$right2 === void 0 ? void 0 : _data$images$right2.mediaType,
|
|
60384
60471
|
detailsOpen: detailsOpen,
|
|
60385
60472
|
onDetailsOpenChange: setDetailsOpen,
|
|
60386
60473
|
promptOpen: promptOpen,
|
|
@@ -60409,7 +60496,6 @@ function RenderApprove() {
|
|
|
60409
60496
|
onNext: session.goNext
|
|
60410
60497
|
}) : /*#__PURE__*/jsx(ApprovalWorkspace, {
|
|
60411
60498
|
images: data.images,
|
|
60412
|
-
loading: data.loading,
|
|
60413
60499
|
readonlyDecision: !session.skipProcessedJobs ? session.currentDecision : undefined,
|
|
60414
60500
|
onOpenFullscreenLeft: function onOpenFullscreenLeft() {
|
|
60415
60501
|
return openFullscreen('left');
|
|
@@ -5,7 +5,6 @@ import { SessionAction } from '../../hooks/useRenderApproveSession';
|
|
|
5
5
|
import { RenderApproveImages } from '../../../../types';
|
|
6
6
|
interface Props {
|
|
7
7
|
images: RenderApproveImages;
|
|
8
|
-
loading?: boolean;
|
|
9
8
|
readonlyDecision?: SessionAction;
|
|
10
9
|
onOpenFullscreenLeft: () => void;
|
|
11
10
|
onOpenFullscreenRight: () => void;
|
|
@@ -26,6 +25,6 @@ interface Props {
|
|
|
26
25
|
* Abnahme (approval) use case: side-by-side comparison of preview and result
|
|
27
26
|
* plus the full decision action bar (approve / reject / upload).
|
|
28
27
|
*/
|
|
29
|
-
export default function ApprovalWorkspace({ images,
|
|
28
|
+
export default function ApprovalWorkspace({ images, readonlyDecision, onOpenFullscreenLeft, onOpenFullscreenRight, onLeftSwiperInit, actionDisabled, busy, readOnly, isFirst, shortcutItems, onApprove, onReject, onPrev, onNext, onUpload, onSetReadyForProduction, }: Props): React.JSX.Element;
|
|
30
29
|
export {};
|
|
31
30
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/ui/TableRenderJobs/components/RenderApprove/components/ApprovalWorkspace/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,UAAU,KAAK;IACb,MAAM,EAAE,mBAAmB,CAAC;IAC5B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/ui/TableRenderJobs/components/RenderApprove/components/ApprovalWorkspace/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,UAAU,KAAK;IACb,MAAM,EAAE,mBAAmB,CAAC;IAC5B,gBAAgB,CAAC,EAAE,aAAa,CAAC;IACjC,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAClC,gBAAgB,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IAChD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAC;CACtC;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,MAAM,EACN,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,aAAa,EACb,SAAS,EACT,QAAQ,EACR,MAAM,EACN,MAAM,EACN,QAAQ,EACR,uBAAuB,GACxB,EAAE,KAAK,qBA0BP"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/ui/TableRenderJobs/components/RenderApprove/components/FullscreenViewer/index.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/ui/TableRenderJobs/components/RenderApprove/components/FullscreenViewer/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAGnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAIvD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,GAAG,CAAC;QACZ,UAAU,iBAAiB;YACzB,cAAc,EAAE,GAAG,CAAC;SACrB;KACF;CACF;AAED,UAAU,KAAK;IACb,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAMD,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,qBA6D9E"}
|
|
@@ -9,12 +9,12 @@ declare global {
|
|
|
9
9
|
}
|
|
10
10
|
interface Props {
|
|
11
11
|
title: string;
|
|
12
|
+
/** `undefined` means "not resolved yet" and renders the spinner. */
|
|
12
13
|
media?: RenderApproveMedia;
|
|
13
|
-
loading?: boolean;
|
|
14
14
|
alt?: string;
|
|
15
15
|
onOpenFullscreen?: () => void;
|
|
16
16
|
headerActions?: React.ReactNode;
|
|
17
17
|
}
|
|
18
|
-
export default function ImagePanel({ title, media,
|
|
18
|
+
export default function ImagePanel({ title, media, alt, onOpenFullscreen, headerActions }: Props): React.JSX.Element;
|
|
19
19
|
export {};
|
|
20
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/ui/TableRenderJobs/components/RenderApprove/components/ImagePanel/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/ui/TableRenderJobs/components/RenderApprove/components/ImagePanel/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAIvD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,GAAG,CAAC;QACZ,UAAU,iBAAiB;YACzB,cAAc,EAAE,GAAG,CAAC;SACrB;KACF;CACF;AAED,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACjC;AAQD,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,aAAa,EAAE,EAAE,KAAK,qBA4F/F"}
|
|
@@ -6,7 +6,6 @@ import 'swiper/css/navigation';
|
|
|
6
6
|
import 'swiper/css/pagination';
|
|
7
7
|
interface Props {
|
|
8
8
|
slides: RenderApproveMedia[];
|
|
9
|
-
loading?: boolean;
|
|
10
9
|
/** Fullscreen handler used only for the realtime preview slide. */
|
|
11
10
|
onOpenFullscreenFirst?: () => void;
|
|
12
11
|
/** Receives the Swiper instance so the parent can drive prev/next from keyboard shortcuts. */
|
|
@@ -20,6 +19,6 @@ interface Props {
|
|
|
20
19
|
* Swiper's keyboard module is intentionally disabled because Arrow Left/Right
|
|
21
20
|
* are owned by `useKeyboardShortcuts` for navigating between render jobs.
|
|
22
21
|
*/
|
|
23
|
-
export default function LeftSlider({ slides,
|
|
22
|
+
export default function LeftSlider({ slides, onOpenFullscreenFirst, onSwiperInit }: Props): React.JSX.Element;
|
|
24
23
|
export {};
|
|
25
24
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/ui/TableRenderJobs/components/RenderApprove/components/LeftSlider/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AAKpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGvD,OAAO,YAAY,CAAC;AACpB,OAAO,uBAAuB,CAAC;AAC/B,OAAO,uBAAuB,CAAC;AAE/B,UAAU,KAAK;IACb,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/ui/TableRenderJobs/components/RenderApprove/components/LeftSlider/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AAKpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGvD,OAAO,YAAY,CAAC;AACpB,OAAO,uBAAuB,CAAC;AAC/B,OAAO,uBAAuB,CAAC;AAE/B,UAAU,KAAK;IACb,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,mEAAmE;IACnE,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;IACnC,8FAA8F;IAC9F,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;CAC9C;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,YAAY,EAAE,EAAE,KAAK,qBAsCxF"}
|
|
@@ -4,7 +4,6 @@ import { SessionAction } from '../../hooks/useRenderApproveSession';
|
|
|
4
4
|
import { RenderApproveImages } from '../../../../types';
|
|
5
5
|
interface Props {
|
|
6
6
|
images: RenderApproveImages;
|
|
7
|
-
loading?: boolean;
|
|
8
7
|
readonlyDecision?: SessionAction;
|
|
9
8
|
onOpenFullscreenLeft?: () => void;
|
|
10
9
|
onOpenFullscreenRight?: () => void;
|
|
@@ -14,6 +13,6 @@ interface Props {
|
|
|
14
13
|
onSetReadyForProduction?: () => void;
|
|
15
14
|
actionsDisabled?: boolean;
|
|
16
15
|
}
|
|
17
|
-
export default function SideBySideViewer({ images,
|
|
16
|
+
export default function SideBySideViewer({ images, readonlyDecision, onOpenFullscreenLeft, onOpenFullscreenRight, onLeftSwiperInit, onUpload, onSetReadyForProduction, actionsDisabled, }: Props): React.JSX.Element;
|
|
18
17
|
export {};
|
|
19
18
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/ui/TableRenderJobs/components/RenderApprove/components/SideBySideViewer/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AAMpD,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAcxD,UAAU,KAAK;IACb,MAAM,EAAE,mBAAmB,CAAC;IAC5B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/ui/TableRenderJobs/components/RenderApprove/components/SideBySideViewer/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AAMpD,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAcxD,UAAU,KAAK;IACb,MAAM,EAAE,mBAAmB,CAAC;IAC5B,gBAAgB,CAAC,EAAE,aAAa,CAAC;IACjC,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;IACnC,+EAA+E;IAC/E,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAC;IACrC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,MAAM,EACN,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,QAAQ,EACR,uBAAuB,EACvB,eAAe,GAChB,EAAE,KAAK,qBA6EP"}
|
|
@@ -14,6 +14,12 @@ export declare function resolveMediaItem(baseUrl: string, jwt: string | undefine
|
|
|
14
14
|
* right (resolved media item) images. Each id change cancels the previous
|
|
15
15
|
* fetch via an abort flag so stale responses cannot overwrite newer state.
|
|
16
16
|
*
|
|
17
|
+
* Everything is revealed in stages, because a job switch otherwise shows
|
|
18
|
+
* nothing until the slowest request of the whole chain is done: the preview and
|
|
19
|
+
* the `renderImages` slides come straight from the job document, the result
|
|
20
|
+
* image is one further request away, and only the product media (one catalog
|
|
21
|
+
* call plus two media calls per image) and the slide names arrive late.
|
|
22
|
+
*
|
|
17
23
|
* State mutations (approve/reject) live in `useUpdateRenderJobState` so the
|
|
18
24
|
* session hook can call them without depending on the currently-loaded job.
|
|
19
25
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRenderJobData.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/TableRenderJobs/components/RenderApprove/hooks/useRenderJobData.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIjG,UAAU,sBAAsB;IAC9B,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8JAA8J;IAC9J,iBAAiB,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;CAC1D;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAM7E;
|
|
1
|
+
{"version":3,"file":"useRenderJobData.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/TableRenderJobs/components/RenderApprove/hooks/useRenderJobData.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIjG,UAAU,sBAAsB;IAC9B,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8JAA8J;IAC9J,iBAAiB,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;CAC1D;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAM7E;AA8HD,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAapC;AAoDD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,sBAAsB,CAiHjG"}
|
package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/TableRenderJobs/components/RenderApprove/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/TableRenderJobs/components/RenderApprove/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAsD3D,MAAM,CAAC,OAAO,UAAU,aAAa,sBA2mBpC"}
|
|
@@ -69,6 +69,8 @@ export interface RenderApproveMedia {
|
|
|
69
69
|
name?: string;
|
|
70
70
|
/** Free-form metadata dictionary of the MediaItem / MediaItemRef. */
|
|
71
71
|
metadata?: Record<string, any>;
|
|
72
|
+
/** Storage-generated image variants keyed by size (e.g. `big`, `gal`). For TIFFs these are PNGs. */
|
|
73
|
+
variants?: Record<string, string>;
|
|
72
74
|
/** True for the realtime render preview slide (independent of its position). */
|
|
73
75
|
isPreview?: boolean;
|
|
74
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/TableRenderJobs/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,MAAM,WAAW,4BAA6B,SAAQ,sBAAsB;IAC1E,IAAI,EAAE,iBAAiB,CAAC;CACzB;AACD,MAAM,WAAW,0BAA2B,SAAQ,sBAAsB;IACxE,IAAI,EAAE,eAAe,CAAC;CACvB;AAED,wFAAwF;AACxF,MAAM,WAAW,WAAW;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjE,+GAA+G;IAC/G,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qHAAqH;IACrH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,gHAAgH;IAChH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,gFAAgF;IAChF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,4EAA4E;IAC5E,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAClC,KAAK,CAAC,EAAE,kBAAkB,CAAC;CAC5B"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/TableRenderJobs/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,MAAM,WAAW,4BAA6B,SAAQ,sBAAsB;IAC1E,IAAI,EAAE,iBAAiB,CAAC;CACzB;AACD,MAAM,WAAW,0BAA2B,SAAQ,sBAAsB;IACxE,IAAI,EAAE,eAAe,CAAC;CACvB;AAED,wFAAwF;AACxF,MAAM,WAAW,WAAW;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjE,+GAA+G;IAC/G,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qHAAqH;IACrH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,gHAAgH;IAChH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,oGAAoG;IACpG,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,gFAAgF;IAChF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,4EAA4E;IAC5E,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAClC,KAAK,CAAC,EAAE,kBAAkB,CAAC;CAC5B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { RenderApproveMedia } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Resolves the url a browser can actually display for a media entry.
|
|
4
|
+
*
|
|
5
|
+
* Render jobs with `fileFormat: 'tif'` produce TIFF results, which no browser
|
|
6
|
+
* renders natively. The storage generates PNG variants for them, so the `big`
|
|
7
|
+
* variant (falling back to `gal`, then the thumbnail) is displayed instead of
|
|
8
|
+
* the raw `cdnUrl`. Mirrors the handling in the media item table cells.
|
|
9
|
+
*
|
|
10
|
+
* @param media the media entry to resolve, may be undefined while loading
|
|
11
|
+
* @returns the displayable url, or `null` when no renderable source exists
|
|
12
|
+
*/
|
|
13
|
+
export declare function getViewerUrl(media?: RenderApproveMedia): string | null;
|
|
14
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/TableRenderJobs/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAK7C;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI,CAMtE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crystaldesign/diva-backoffice",
|
|
3
|
-
"version": "26.9.0-rc.
|
|
3
|
+
"version": "26.9.0-rc.7",
|
|
4
4
|
"license": "COMMERCIAL",
|
|
5
5
|
"devDependencies": {
|
|
6
6
|
"@testing-library/jest-dom": "^6.5.0",
|
|
@@ -15,13 +15,13 @@
|
|
|
15
15
|
"dependencies": {
|
|
16
16
|
"@ant-design/icons": "6.1.0",
|
|
17
17
|
"@babel/runtime": "7.24.7",
|
|
18
|
-
"@crystaldesign/content-box": "26.9.0-rc.
|
|
19
|
-
"@crystaldesign/content-item": "26.9.0-rc.
|
|
20
|
-
"@crystaldesign/diva-core": "26.9.0-rc.
|
|
21
|
-
"@crystaldesign/diva-utils": "26.9.0-rc.
|
|
22
|
-
"@crystaldesign/media-upload": "26.9.0-rc.
|
|
23
|
-
"@crystaldesign/rtf-editor": "26.9.0-rc.
|
|
24
|
-
"@crystaldesign/spreadsheet": "26.9.0-rc.
|
|
18
|
+
"@crystaldesign/content-box": "26.9.0-rc.7",
|
|
19
|
+
"@crystaldesign/content-item": "26.9.0-rc.7",
|
|
20
|
+
"@crystaldesign/diva-core": "26.9.0-rc.7",
|
|
21
|
+
"@crystaldesign/diva-utils": "26.9.0-rc.7",
|
|
22
|
+
"@crystaldesign/media-upload": "26.9.0-rc.7",
|
|
23
|
+
"@crystaldesign/rtf-editor": "26.9.0-rc.7",
|
|
24
|
+
"@crystaldesign/spreadsheet": "26.9.0-rc.7",
|
|
25
25
|
"@dnd-kit/core": "^6.1.0",
|
|
26
26
|
"@dnd-kit/sortable": "^8.0.0",
|
|
27
27
|
"@dnd-kit/utilities": "^3.2.2",
|
|
@@ -56,5 +56,5 @@
|
|
|
56
56
|
},
|
|
57
57
|
"module": "build/esm/index.js",
|
|
58
58
|
"types": "./build/types/backoffice/src/index.d.ts",
|
|
59
|
-
"gitHead": "
|
|
59
|
+
"gitHead": "5e002630eb19a7dadd292fd0d7c3fcbc95553751"
|
|
60
60
|
}
|