@crystaldesign/diva-backoffice 26.7.8-rc.2 → 26.7.8

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 (17) hide show
  1. package/build/esm/index.js +365 -132
  2. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/ActionBar/index.d.ts +1 -2
  3. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/ActionBar/index.d.ts.map +1 -1
  4. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/ApprovalWorkspace/index.d.ts +2 -1
  5. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/ApprovalWorkspace/index.d.ts.map +1 -1
  6. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/ImagePanel/index.d.ts +2 -1
  7. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/ImagePanel/index.d.ts.map +1 -1
  8. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/MetadataPanel/index.d.ts.map +1 -1
  9. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/SessionOverview/index.d.ts.map +1 -1
  10. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/SideBySideViewer/index.d.ts +4 -1
  11. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/SideBySideViewer/index.d.ts.map +1 -1
  12. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/hooks/useRenderApproveSession.d.ts +6 -0
  13. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/hooks/useRenderApproveSession.d.ts.map +1 -1
  14. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/index.d.ts.map +1 -1
  15. package/build/types/backoffice/src/ui/TableRenderJobs/constants.d.ts +1 -0
  16. package/build/types/backoffice/src/ui/TableRenderJobs/constants.d.ts.map +1 -1
  17. package/package.json +9 -9
@@ -53258,7 +53258,7 @@ var contentAr = "contentAr-iUuog";
53258
53258
  var image$1 = "image-UQwwt";
53259
53259
  var imageLoaded = "imageLoaded--oFrG";
53260
53260
  var imageClickable = "imageClickable-9AVC0";
53261
- var css_248z$m = ".root-bbDdW {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-width: 0;\n background: #fafafa;\n border: 1px solid #f0f0f0;\n border-radius: 4px;\n overflow: hidden;\n}\n\n.header--owh8 {\n padding: 6px 12px;\n border-bottom: 1px solid #f0f0f0;\n background: #fff;\n}\n\n.content-q2m1c {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 320px;\n position: relative;\n}\n\n.contentImage-vn5YC {\n padding: 12px;\n}\n\n.contentAr-iUuog {\n padding: 0;\n background: #fff;\n}\n\n.image-UQwwt {\n max-width: 100%;\n max-height: 100%;\n -o-object-fit: contain;\n object-fit: contain;\n display: none;\n cursor: default;\n}\n\n.imageLoaded--oFrG {\n display: block;\n}\n\n.imageClickable-9AVC0 {\n cursor: zoom-in;\n}\n\n/* Dark mode */\n.darkmode .root-bbDdW {\n background: #1f1f1f;\n border-color: #303030;\n}\n\n.darkmode .header--owh8 {\n background: #141414;\n border-bottom-color: #303030;\n}\n\n.darkmode .contentAr-iUuog {\n background: #141414;\n}\n";
53261
+ var css_248z$m = ".root-bbDdW {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-width: 0;\n background: #fafafa;\n border: 1px solid #f0f0f0;\n border-radius: 4px;\n overflow: hidden;\n}\n\n.header--owh8 {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n padding: 6px 12px;\n border-bottom: 1px solid #f0f0f0;\n background: #fff;\n}\n\n.content-q2m1c {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 320px;\n position: relative;\n}\n\n.contentImage-vn5YC {\n padding: 12px;\n}\n\n.contentAr-iUuog {\n padding: 0;\n background: #fff;\n}\n\n.image-UQwwt {\n max-width: 100%;\n max-height: 100%;\n -o-object-fit: contain;\n object-fit: contain;\n display: none;\n cursor: default;\n}\n\n.imageLoaded--oFrG {\n display: block;\n}\n\n.imageClickable-9AVC0 {\n cursor: zoom-in;\n}\n\n/* Dark mode */\n.darkmode .root-bbDdW {\n background: #1f1f1f;\n border-color: #303030;\n}\n\n.darkmode .header--owh8 {\n background: #141414;\n border-bottom-color: #303030;\n}\n\n.darkmode .contentAr-iUuog {\n background: #141414;\n}\n";
53262
53262
  styleInject(css_248z$m);
53263
53263
 
53264
53264
  function isAr$1(media) {
@@ -53270,7 +53270,8 @@ function ImagePanel(_ref) {
53270
53270
  media = _ref.media,
53271
53271
  loading = _ref.loading,
53272
53272
  alt = _ref.alt,
53273
- onOpenFullscreen = _ref.onOpenFullscreen;
53273
+ onOpenFullscreen = _ref.onOpenFullscreen,
53274
+ headerActions = _ref.headerActions;
53274
53275
  var _useDivaCore = useDivaCore(),
53275
53276
  actions = _useDivaCore.actions;
53276
53277
  var _useTranslation = useTranslation(),
@@ -53310,15 +53311,15 @@ function ImagePanel(_ref) {
53310
53311
  };
53311
53312
  return /*#__PURE__*/jsxs("div", {
53312
53313
  className: root$8,
53313
- children: [/*#__PURE__*/jsx("div", {
53314
+ children: [/*#__PURE__*/jsxs("div", {
53314
53315
  className: header$1,
53315
- children: /*#__PURE__*/jsxs(Typography.Text, {
53316
+ children: [/*#__PURE__*/jsxs(Typography.Text, {
53316
53317
  strong: true,
53317
53318
  children: [title, showAr && /*#__PURE__*/jsxs(Typography.Text, {
53318
53319
  type: "secondary",
53319
53320
  children: [" ", t('backoffice.renderapprove.viewer.arSuffix')]
53320
53321
  })]
53321
- })
53322
+ }), headerActions]
53322
53323
  }), /*#__PURE__*/jsxs("div", {
53323
53324
  className: classNames(content$1, showAr ? contentAr : contentImage),
53324
53325
  children: [showAr && (media === null || media === void 0 ? void 0 : media.url) &&
@@ -53448,12 +53449,44 @@ function SideBySideViewer(_ref) {
53448
53449
  readonlyDecision = _ref.readonlyDecision,
53449
53450
  onOpenFullscreenLeft = _ref.onOpenFullscreenLeft,
53450
53451
  onOpenFullscreenRight = _ref.onOpenFullscreenRight,
53451
- onLeftSwiperInit = _ref.onLeftSwiperInit;
53452
+ onLeftSwiperInit = _ref.onLeftSwiperInit,
53453
+ onUpload = _ref.onUpload,
53454
+ onSetReadyForProduction = _ref.onSetReadyForProduction,
53455
+ actionsDisabled = _ref.actionsDisabled;
53452
53456
  var _useTranslation = useTranslation(),
53453
53457
  t = _useTranslation.t;
53454
53458
  var showOverlay = readonlyDecision === 'approve' || readonlyDecision === 'reject' || readonlyDecision === 'changedReadyForRenderer';
53455
53459
  var isApproved = readonlyDecision === 'approve';
53456
53460
  var isChangedReadyForRenderer = readonlyDecision === 'changedReadyForRenderer';
53461
+ var resultHeaderActions = !showOverlay && (onSetReadyForProduction || onUpload) ? /*#__PURE__*/jsxs(Space, {
53462
+ size: 8,
53463
+ children: [onSetReadyForProduction && /*#__PURE__*/jsx(Tooltip$1, {
53464
+ title: t('backoffice.renderapprove.tooltips.readyForProduction', {
53465
+ defaultValue: 'Status auf "Bereit zur Produktion" setzen'
53466
+ }),
53467
+ children: /*#__PURE__*/jsx(Button, {
53468
+ size: "small",
53469
+ onClick: onSetReadyForProduction,
53470
+ disabled: actionsDisabled,
53471
+ children: t('backoffice.renderapprove.actions.readyForProduction', {
53472
+ defaultValue: 'Bereit zur Produktion'
53473
+ })
53474
+ })
53475
+ }), onUpload && /*#__PURE__*/jsx(Tooltip$1, {
53476
+ title: t('backoffice.renderapprove.tooltips.upload', {
53477
+ defaultValue: 'Externes Bild hochladen'
53478
+ }),
53479
+ children: /*#__PURE__*/jsx(Button, {
53480
+ size: "small",
53481
+ icon: /*#__PURE__*/jsx(UploadOutlined, {}),
53482
+ onClick: onUpload,
53483
+ disabled: actionsDisabled,
53484
+ children: t('backoffice.renderapprove.actions.upload', {
53485
+ defaultValue: 'Hochladen'
53486
+ })
53487
+ })
53488
+ })]
53489
+ }) : undefined;
53457
53490
 
53458
53491
  // If we have multiple slides (preview + product media), render the swiper;
53459
53492
  // otherwise fall back to the plain single-image panel to avoid an empty
@@ -53481,7 +53514,8 @@ function SideBySideViewer(_ref) {
53481
53514
  media: images.right,
53482
53515
  loading: loading,
53483
53516
  alt: t('backoffice.renderapprove.viewer.resultAlt'),
53484
- onOpenFullscreen: showOverlay ? undefined : onOpenFullscreenRight
53517
+ onOpenFullscreen: showOverlay ? undefined : onOpenFullscreenRight,
53518
+ headerActions: resultHeaderActions
53485
53519
  })]
53486
53520
  }), showOverlay && /*#__PURE__*/jsx("div", {
53487
53521
  className: classNames(decisionOverlay, isApproved ? overlayApproved : isChangedReadyForRenderer ? overlayChangedReadyForRenderer : overlayRejected),
@@ -53602,8 +53636,7 @@ function ActionBar(_ref) {
53602
53636
  onApprove = _ref.onApprove,
53603
53637
  onReject = _ref.onReject,
53604
53638
  onPrev = _ref.onPrev,
53605
- onNext = _ref.onNext,
53606
- onUpload = _ref.onUpload;
53639
+ onNext = _ref.onNext;
53607
53640
  var _useTranslation = useTranslation(),
53608
53641
  t = _useTranslation.t;
53609
53642
  var blocked = disabled || busy;
@@ -53639,18 +53672,6 @@ function ActionBar(_ref) {
53639
53672
  disabled: actionsBlocked,
53640
53673
  children: "".concat(t('backoffice.renderapprove.actions.approve'), " (Enter)")
53641
53674
  })
53642
- }), onUpload && /*#__PURE__*/jsx(Tooltip$1, {
53643
- title: t('backoffice.renderapprove.tooltips.upload', {
53644
- defaultValue: 'Externes Bild hochladen'
53645
- }),
53646
- children: /*#__PURE__*/jsx(Button, {
53647
- icon: /*#__PURE__*/jsx(UploadOutlined, {}),
53648
- onClick: onUpload,
53649
- disabled: blocked,
53650
- children: t('backoffice.renderapprove.actions.upload', {
53651
- defaultValue: 'Hochladen'
53652
- })
53653
- })
53654
53675
  })]
53655
53676
  }), /*#__PURE__*/jsx("div", {
53656
53677
  className: legendContainer,
@@ -53681,7 +53702,8 @@ function ApprovalWorkspace(_ref) {
53681
53702
  onReject = _ref.onReject,
53682
53703
  onPrev = _ref.onPrev,
53683
53704
  onNext = _ref.onNext,
53684
- onUpload = _ref.onUpload;
53705
+ onUpload = _ref.onUpload,
53706
+ onSetReadyForProduction = _ref.onSetReadyForProduction;
53685
53707
  return /*#__PURE__*/jsxs(Fragment, {
53686
53708
  children: [/*#__PURE__*/jsx(SideBySideViewer, {
53687
53709
  images: images,
@@ -53689,7 +53711,10 @@ function ApprovalWorkspace(_ref) {
53689
53711
  readonlyDecision: readonlyDecision,
53690
53712
  onOpenFullscreenLeft: onOpenFullscreenLeft,
53691
53713
  onOpenFullscreenRight: onOpenFullscreenRight,
53692
- onLeftSwiperInit: onLeftSwiperInit
53714
+ onLeftSwiperInit: onLeftSwiperInit,
53715
+ onUpload: onUpload,
53716
+ onSetReadyForProduction: onSetReadyForProduction,
53717
+ actionsDisabled: actionDisabled || busy || readOnly
53693
53718
  }), /*#__PURE__*/jsx(ActionBar, {
53694
53719
  disabled: actionDisabled,
53695
53720
  busy: busy,
@@ -53699,8 +53724,7 @@ function ApprovalWorkspace(_ref) {
53699
53724
  onApprove: onApprove,
53700
53725
  onReject: onReject,
53701
53726
  onPrev: onPrev,
53702
- onNext: onNext,
53703
- onUpload: onUpload
53727
+ onNext: onNext
53704
53728
  })]
53705
53729
  });
53706
53730
  }
@@ -54088,6 +54112,7 @@ function ImageSelectionWorkspace(_ref) {
54088
54112
  var RENDER_JOB_STATE = {
54089
54113
  paymentClarified: 2,
54090
54114
  readyForProduction: 3,
54115
+ readyForRenderer: 5,
54091
54116
  inChecking: 7,
54092
54117
  approved: 8,
54093
54118
  rejected: 9,
@@ -54197,6 +54222,7 @@ var dotRejected = "dotRejected-9TFUi";
54197
54222
  var dotOpen = "dotOpen-eHbi0";
54198
54223
  var dotFinished = "dotFinished-Id6hR";
54199
54224
  var dotPayment = "dotPayment-Fzk7U";
54225
+ var dotReadyForProduction = "dotReadyForProduction-yIYkt";
54200
54226
  var tileNum = "tileNum-9DGoc";
54201
54227
  var tileLabel = "tileLabel-nG0xD";
54202
54228
  var toolbar$1 = "toolbar-jJDio";
@@ -54216,27 +54242,47 @@ var infoLabel = "infoLabel-JfxNQ";
54216
54242
  var reason = "reason-wzttm";
54217
54243
  var sku = "sku-7EODQ";
54218
54244
  var statusTrigger = "statusTrigger-oGuEq";
54245
+ var statusTriggerLocked = "statusTriggerLocked-5u8lc";
54246
+ var statusIcon = "statusIcon-rpMzy";
54219
54247
  var menuDot = "menuDot-ybea1";
54220
54248
  var footer = "footer-HdZwL";
54221
- var css_248z$f = ".container-PmByk {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n gap: 14px;\n overflow: auto;\n padding: 16px 20px;\n}\n\n.header-ESR-S {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.title-g5pl0 {\n font-size: 16px;\n font-weight: 600;\n}\n\n.subtitle-wYnId {\n color: #8c8c8c;\n font-size: 13px;\n}\n\n.tiles-4NW82 {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.tile-vHlQ9 {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 6px 12px;\n border: 1px solid #f0f0f0;\n border-radius: 8px;\n background: #fff;\n cursor: pointer;\n font: inherit;\n color: inherit;\n transition: border-color 0.15s, background 0.15s;\n}\n\n.tile-vHlQ9:hover {\n border-color: #1677ff;\n}\n\n.tile-vHlQ9.focus-visible-am0Va {\n outline: 2px solid #1677ff;\n outline-offset: 2px;\n}\n\n.tile-vHlQ9:focus-visible {\n outline: 2px solid #1677ff;\n outline-offset: 2px;\n}\n\n.tileActive-Kl6AW {\n border-color: #1677ff;\n background: #e6f4ff;\n}\n\n.clearFilter-KsvRj {\n align-self: center;\n border: none;\n background: none;\n color: #1677ff;\n cursor: pointer;\n font: inherit;\n font-size: 12px;\n padding: 0 4px;\n}\n\n.clearFilter-KsvRj:hover {\n text-decoration: underline;\n}\n\n.dot-x41U9 {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n flex: none;\n}\n\n.dotApproved-jidKD {\n background: #52c41a;\n}\n\n.dotRejected-9TFUi {\n background: #ff4d4f;\n}\n\n.dotOpen-eHbi0 {\n background: #faad14;\n}\n\n.dotFinished-Id6hR {\n background: #722ed1;\n}\n\n.dotPayment-Fzk7U {\n background: #13c2c2;\n}\n\n.tileNum-9DGoc {\n font-size: 16px;\n font-weight: 600;\n font-feature-settings: \"tnum\";\n font-variant-numeric: tabular-nums;\n}\n\n.tileLabel-nG0xD {\n color: #8c8c8c;\n font-size: 12px;\n}\n\n.toolbar-jJDio {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.selInfo-r4QBF {\n color: #8c8c8c;\n font-size: 13px;\n}\n\n.spacer-g69QI {\n flex: 1;\n}\n\n.thumb-Wd6Zw {\n width: 74px;\n height: 54px;\n border-radius: 6px;\n overflow: hidden;\n border: 1px solid #f0f0f0;\n background: #fafafa;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n cursor: pointer;\n}\n\n.thumbStatic-kc-Qn {\n cursor: default;\n}\n\n.thumbImg-ViR1y {\n width: 100%;\n height: 100%;\n -o-object-fit: cover;\n object-fit: cover;\n display: block;\n}\n\n.thumbPlaceholder-gp0b2 {\n color: #bfbfbf;\n font-size: 18px;\n}\n\n.badge-bYA4m {\n position: absolute;\n left: 4px;\n bottom: 4px;\n background: rgba(0, 0, 0, 0.6);\n color: #fff;\n font-size: 10px;\n font-weight: 600;\n line-height: 1;\n padding: 2px 5px;\n border-radius: 3px;\n}\n\n.videoBadge--DvZy {\n position: absolute;\n color: #fff;\n font-size: 22px;\n filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.5));\n}\n\n.prodName-t5Dom {\n font-weight: 600;\n}\n\n.info--EMmi {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.infoLines-HenMK {\n display: flex;\n flex-direction: column;\n gap: 2px;\n margin-top: 2px;\n}\n\n.infoLine-EyUqw {\n font-size: 12px;\n color: #8c8c8c;\n}\n\n.infoLabel-JfxNQ {\n color: #bfbfbf;\n}\n\n.reason-wzttm {\n margin-top: 4px;\n max-width: 220px;\n font-size: 12px;\n color: #8c8c8c;\n white-space: normal;\n}\n\n.prodSub-cZZSl {\n color: #8c8c8c;\n font-size: 12px;\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n margin-top: 2px;\n}\n\n.sku-7EODQ {\n font-family: monospace;\n}\n\n.statusTrigger-oGuEq {\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n.menuDot-ybea1 {\n display: inline-block;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n margin-right: 8px;\n vertical-align: middle;\n}\n\n.footer-HdZwL {\n display: flex;\n justify-content: space-between;\n gap: 8px;\n flex-wrap: wrap;\n padding-top: 4px;\n}\n\n/* Dark mode */\n.darkmode .tile-vHlQ9 {\n background: #1f1f1f;\n border-color: #434343;\n}\n\n.darkmode .tileActive-Kl6AW {\n border-color: #3c89e8;\n background: rgba(60, 137, 232, 0.16);\n}\n\n.darkmode .thumb-Wd6Zw {\n background: #262626;\n border-color: #434343;\n}\n\n.darkmode .subtitle-wYnId,\n.darkmode .tileLabel-nG0xD,\n.darkmode .selInfo-r4QBF,\n.darkmode .prodSub-cZZSl,\n.darkmode .infoLine-EyUqw,\n.darkmode .reason-wzttm {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.darkmode .infoLabel-JfxNQ {\n color: rgba(255, 255, 255, 0.35);\n}\n";
54249
+ var css_248z$f = ".container-PmByk {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n gap: 14px;\n overflow: auto;\n padding: 16px 20px;\n}\n\n.header-ESR-S {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.title-g5pl0 {\n font-size: 16px;\n font-weight: 600;\n}\n\n.subtitle-wYnId {\n color: #8c8c8c;\n font-size: 13px;\n}\n\n.tiles-4NW82 {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.tile-vHlQ9 {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 6px 12px;\n border: 1px solid #f0f0f0;\n border-radius: 8px;\n background: #fff;\n cursor: pointer;\n font: inherit;\n color: inherit;\n transition: border-color 0.15s, background 0.15s;\n}\n\n.tile-vHlQ9:hover {\n border-color: #1677ff;\n}\n\n.tile-vHlQ9.focus-visible-am0Va {\n outline: 2px solid #1677ff;\n outline-offset: 2px;\n}\n\n.tile-vHlQ9:focus-visible {\n outline: 2px solid #1677ff;\n outline-offset: 2px;\n}\n\n.tileActive-Kl6AW {\n border-color: #1677ff;\n background: #e6f4ff;\n}\n\n.clearFilter-KsvRj {\n align-self: center;\n border: none;\n background: none;\n color: #1677ff;\n cursor: pointer;\n font: inherit;\n font-size: 12px;\n padding: 0 4px;\n}\n\n.clearFilter-KsvRj:hover {\n text-decoration: underline;\n}\n\n.dot-x41U9 {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n flex: none;\n}\n\n.dotApproved-jidKD {\n background: #52c41a;\n}\n\n.dotRejected-9TFUi {\n background: #ff4d4f;\n}\n\n.dotOpen-eHbi0 {\n background: #faad14;\n}\n\n.dotFinished-Id6hR {\n background: #722ed1;\n}\n\n.dotPayment-Fzk7U {\n background: #13c2c2;\n}\n\n.dotReadyForProduction-yIYkt {\n background: #1677ff;\n}\n\n.tileNum-9DGoc {\n font-size: 16px;\n font-weight: 600;\n font-feature-settings: \"tnum\";\n font-variant-numeric: tabular-nums;\n}\n\n.tileLabel-nG0xD {\n color: #8c8c8c;\n font-size: 12px;\n}\n\n.toolbar-jJDio {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.selInfo-r4QBF {\n color: #8c8c8c;\n font-size: 13px;\n}\n\n.spacer-g69QI {\n flex: 1;\n}\n\n.thumb-Wd6Zw {\n width: 74px;\n height: 54px;\n border-radius: 6px;\n overflow: hidden;\n border: 1px solid #f0f0f0;\n background: #fafafa;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n cursor: pointer;\n}\n\n.thumbStatic-kc-Qn {\n cursor: default;\n}\n\n.thumbImg-ViR1y {\n width: 100%;\n height: 100%;\n -o-object-fit: cover;\n object-fit: cover;\n display: block;\n}\n\n.thumbPlaceholder-gp0b2 {\n color: #bfbfbf;\n font-size: 18px;\n}\n\n.badge-bYA4m {\n position: absolute;\n left: 4px;\n bottom: 4px;\n background: rgba(0, 0, 0, 0.6);\n color: #fff;\n font-size: 10px;\n font-weight: 600;\n line-height: 1;\n padding: 2px 5px;\n border-radius: 3px;\n}\n\n.videoBadge--DvZy {\n position: absolute;\n color: #fff;\n font-size: 22px;\n filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.5));\n}\n\n.prodName-t5Dom {\n font-weight: 600;\n}\n\n.info--EMmi {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.infoLines-HenMK {\n display: flex;\n flex-direction: column;\n gap: 2px;\n margin-top: 2px;\n}\n\n.infoLine-EyUqw {\n font-size: 12px;\n color: #8c8c8c;\n}\n\n.infoLabel-JfxNQ {\n color: #bfbfbf;\n}\n\n.reason-wzttm {\n margin-top: 4px;\n max-width: 220px;\n font-size: 12px;\n color: #8c8c8c;\n white-space: normal;\n}\n\n.prodSub-cZZSl {\n color: #8c8c8c;\n font-size: 12px;\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n margin-top: 2px;\n}\n\n.sku-7EODQ {\n font-family: monospace;\n}\n\n.statusTrigger-oGuEq {\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n.statusTriggerLocked-5u8lc {\n cursor: default;\n}\n\n.statusIcon-rpMzy {\n font-size: 10px;\n color: #8c8c8c;\n}\n\n.menuDot-ybea1 {\n display: inline-block;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n margin-right: 8px;\n vertical-align: middle;\n}\n\n.footer-HdZwL {\n display: flex;\n justify-content: space-between;\n gap: 8px;\n flex-wrap: wrap;\n padding-top: 4px;\n}\n\n/* Dark mode */\n.darkmode .tile-vHlQ9 {\n background: #1f1f1f;\n border-color: #434343;\n}\n\n.darkmode .tileActive-Kl6AW {\n border-color: #3c89e8;\n background: rgba(60, 137, 232, 0.16);\n}\n\n.darkmode .thumb-Wd6Zw {\n background: #262626;\n border-color: #434343;\n}\n\n.darkmode .subtitle-wYnId,\n.darkmode .tileLabel-nG0xD,\n.darkmode .selInfo-r4QBF,\n.darkmode .prodSub-cZZSl,\n.darkmode .infoLine-EyUqw,\n.darkmode .reason-wzttm {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.darkmode .infoLabel-JfxNQ {\n color: rgba(255, 255, 255, 0.35);\n}\n";
54222
54250
  styleInject(css_248z$f);
54223
54251
 
54224
54252
  var PAYMENT_CLARIFIED = RENDER_JOB_STATE.paymentClarified,
54253
+ READY_FOR_PRODUCTION = RENDER_JOB_STATE.readyForProduction,
54254
+ READY_FOR_RENDERER = RENDER_JOB_STATE.readyForRenderer,
54225
54255
  APPROVED = RENDER_JOB_STATE.approved,
54226
54256
  REJECTED = RENDER_JOB_STATE.rejected,
54227
54257
  INCHECKING = RENDER_JOB_STATE.inChecking,
54228
54258
  FINISHED = RENDER_JOB_STATE.finished;
54229
- /** Focused set of allowed target states per current state (frontend mirror; backend stays authoritative). */
54259
+
54260
+ /**
54261
+ * The backend silently coerces a PATCH to `readyForProduction` (3) into
54262
+ * `readyForRenderer` (5) for AI-engine jobs (see `RenderJobService.updateStateOfJob`) -
54263
+ * so a job sent back via the in-session "Bereit zur Produktion" action can persist as
54264
+ * either state depending on engine. Both are treated as the same locked bucket here.
54265
+ */
54266
+ function isReadyForRenderPipeline(state) {
54267
+ return state === READY_FOR_PRODUCTION || state === READY_FOR_RENDERER;
54268
+ }
54269
+ /**
54270
+ * Focused set of allowed target states per current state (frontend mirror; backend stays authoritative).
54271
+ * `readyForProduction` rows (reset via the in-session "Bereit zur Produktion" action) are locked - no
54272
+ * transitions are offered, so the status can no longer be changed from the overview.
54273
+ */
54230
54274
  function transitionsFor(state) {
54231
54275
  if (state === APPROVED) return [FINISHED, REJECTED, INCHECKING];
54232
54276
  if (state === REJECTED) return [APPROVED, PAYMENT_CLARIFIED, INCHECKING];
54233
54277
  if (state === FINISHED) return [APPROVED, REJECTED, INCHECKING];
54278
+ if (isReadyForRenderPipeline(state)) return [];
54234
54279
  return [APPROVED, REJECTED];
54235
54280
  }
54236
54281
  function statusKey(state) {
54237
54282
  if (state === APPROVED) return 'approved';
54238
54283
  if (state === REJECTED) return 'rejected';
54239
54284
  if (state === FINISHED) return 'finished';
54285
+ if (isReadyForRenderPipeline(state)) return 'readyForProduction';
54240
54286
  return 'open';
54241
54287
  }
54242
54288
  function extFromUrl(url) {
@@ -54257,7 +54303,7 @@ function Thumb(_ref) {
54257
54303
  // AR (3D model) and video sources are not raster images, so never feed their
54258
54304
  // url to an <img> (that renders as a broken/"corrupt" image). Only a genuine
54259
54305
  // poster (thumbnailUrl) is shown as an image; otherwise a clean placeholder
54260
- // icon plus the type badge is used.
54306
+ // icon plus the type badge is used
54261
54307
  var rasterUrl = isAr || isVideo ? (_media$thumbnailUrl = media === null || media === void 0 ? void 0 : media.thumbnailUrl) !== null && _media$thumbnailUrl !== void 0 ? _media$thumbnailUrl : null : (_ref2 = (_media$thumbnailUrl2 = media === null || media === void 0 ? void 0 : media.thumbnailUrl) !== null && _media$thumbnailUrl2 !== void 0 ? _media$thumbnailUrl2 : media === null || media === void 0 ? void 0 : media.url) !== null && _ref2 !== void 0 ? _ref2 : null;
54262
54308
  var openable = !!media && typeof media.url === 'string' && media.url.length > 0;
54263
54309
  var inner;
@@ -54400,13 +54446,14 @@ function SessionOverview(_ref3) {
54400
54446
  }, [items]);
54401
54447
  var counts = useMemo(function () {
54402
54448
  return items.reduce(function (acc, it) {
54403
- if (it.state === APPROVED) acc.approved += 1;else if (it.state === REJECTED) acc.rejected += 1;else if (it.state === FINISHED) acc.finished += 1;else acc.open += 1;
54449
+ if (it.state === APPROVED) acc.approved += 1;else if (it.state === REJECTED) acc.rejected += 1;else if (it.state === FINISHED) acc.finished += 1;else if (isReadyForRenderPipeline(it.state)) acc.readyForProduction += 1;else acc.open += 1;
54404
54450
  return acc;
54405
54451
  }, {
54406
54452
  approved: 0,
54407
54453
  rejected: 0,
54408
54454
  finished: 0,
54409
- open: 0
54455
+ open: 0,
54456
+ readyForProduction: 0
54410
54457
  });
54411
54458
  }, [items]);
54412
54459
  var statusLabel = function statusLabel(state) {
@@ -54420,6 +54467,12 @@ function SessionOverview(_ref3) {
54420
54467
  if (state === PAYMENT_CLARIFIED) return t('backoffice.renderapprove.overview.statusPaymentClarified', {
54421
54468
  defaultValue: 'Bezahlung geklärt'
54422
54469
  });
54470
+ if (state === READY_FOR_PRODUCTION) return t('backoffice.renderapprove.actions.readyForProduction', {
54471
+ defaultValue: 'Bereit zur Produktion'
54472
+ });
54473
+ if (state === READY_FOR_RENDERER) return t('backoffice.renderapprove.overview.statusReadyForRenderer', {
54474
+ defaultValue: 'Bereit für Renderer'
54475
+ });
54423
54476
  return t('backoffice.renderapprove.overview.statusOpen', {
54424
54477
  defaultValue: 'Offen'
54425
54478
  });
@@ -54446,6 +54499,7 @@ function SessionOverview(_ref3) {
54446
54499
  if (state === REJECTED) return dotRejected;
54447
54500
  if (state === FINISHED) return dotFinished;
54448
54501
  if (state === PAYMENT_CLARIFIED) return dotPayment;
54502
+ if (isReadyForRenderPipeline(state)) return dotReadyForProduction;
54449
54503
  return dotOpen;
54450
54504
  };
54451
54505
  var statusTagColor = function statusTagColor(state) {
@@ -54453,6 +54507,7 @@ function SessionOverview(_ref3) {
54453
54507
  if (state === REJECTED) return 'error';
54454
54508
  if (state === FINISHED) return 'purple';
54455
54509
  if (state === PAYMENT_CLARIFIED) return 'cyan';
54510
+ if (isReadyForRenderPipeline(state)) return 'blue';
54456
54511
  return 'gold';
54457
54512
  };
54458
54513
  var runSingle = /*#__PURE__*/function () {
@@ -54724,8 +54779,21 @@ function SessionOverview(_ref3) {
54724
54779
  },
54725
54780
  children: statusLabel(r.state)
54726
54781
  });
54782
+ var targets = transitionsFor(r.state);
54783
+ // `readyForProduction` rows (reset via the in-session action) have no
54784
+ // targets - render a locked, non-interactive tag instead of a dropdown.
54785
+ if (targets.length === 0) {
54786
+ return /*#__PURE__*/jsx("div", {
54787
+ children: /*#__PURE__*/jsxs("span", {
54788
+ className: "".concat(statusTrigger, " ").concat(statusTriggerLocked),
54789
+ children: [tag, /*#__PURE__*/jsx(LockOutlined, {
54790
+ className: statusIcon
54791
+ })]
54792
+ })
54793
+ });
54794
+ }
54727
54795
  var menu = {
54728
- items: transitionsFor(r.state).map(function (target) {
54796
+ items: targets.map(function (target) {
54729
54797
  return {
54730
54798
  key: String(target),
54731
54799
  label: /*#__PURE__*/jsxs("span", {
@@ -54815,9 +54883,10 @@ function SessionOverview(_ref3) {
54815
54883
  var statusFilter = _ref9.statusFilter,
54816
54884
  dotClass = _ref9.dotClass,
54817
54885
  value = _ref9.value,
54818
- label = _ref9.label;
54886
+ label = _ref9.label,
54887
+ tooltip = _ref9.tooltip;
54819
54888
  var active = filter === statusFilter;
54820
- return /*#__PURE__*/jsxs("button", {
54889
+ var button = /*#__PURE__*/jsxs("button", {
54821
54890
  type: "button",
54822
54891
  className: "".concat(tile, " ").concat(active ? tileActive : ''),
54823
54892
  "aria-pressed": active,
@@ -54836,6 +54905,10 @@ function SessionOverview(_ref3) {
54836
54905
  children: label
54837
54906
  })]
54838
54907
  });
54908
+ return tooltip ? /*#__PURE__*/jsx(Tooltip$1, {
54909
+ title: tooltip,
54910
+ children: button
54911
+ }) : button;
54839
54912
  };
54840
54913
  var detailItems = detailsJob ? [{
54841
54914
  key: 'product',
@@ -54940,6 +55013,16 @@ function SessionOverview(_ref3) {
54940
55013
  label: t('backoffice.renderapprove.overview.statusFinished', {
54941
55014
  defaultValue: 'Übernommen'
54942
55015
  })
55016
+ }), /*#__PURE__*/jsx(StatTile, {
55017
+ statusFilter: "readyForProduction",
55018
+ dotClass: dotReadyForProduction,
55019
+ value: counts.readyForProduction,
55020
+ label: t('backoffice.renderapprove.overview.readyForProductionTileLabel', {
55021
+ defaultValue: 'Bereit zur Produktion / für Renderer'
55022
+ }),
55023
+ tooltip: t('backoffice.renderapprove.overview.readyForProductionTooltip', {
55024
+ defaultValue: 'Zurück in die Produktion geschickt - je nach Renderart als "Bereit zur Produktion" oder (KI-Jobs) "Bereit für Renderer" markiert.'
55025
+ })
54943
55026
  }), filter && /*#__PURE__*/jsx("button", {
54944
55027
  type: "button",
54945
55028
  className: clearFilter,
@@ -55291,6 +55374,9 @@ function buildSecondarySections(job, fileSize, mediaType, fallback) {
55291
55374
  }, {
55292
55375
  labelKey: 'backoffice.renderapprove.metadata.fields.organization',
55293
55376
  value: formatString((_job$organizationName = job === null || job === void 0 ? void 0 : job.organizationName) !== null && _job$organizationName !== void 0 ? _job$organizationName : job === null || job === void 0 ? void 0 : job.organization, fallback)
55377
+ }, {
55378
+ labelKey: 'backoffice.renderapprove.metadata.fields.viewpoint',
55379
+ value: formatString(job === null || job === void 0 ? void 0 : job.viewPoint, fallback)
55294
55380
  }, {
55295
55381
  labelKey: 'backoffice.renderapprove.metadata.fields.scene',
55296
55382
  value: formatString((_job$renderScene_disp = job === null || job === void 0 ? void 0 : job.renderScene_displayText) !== null && _job$renderScene_disp !== void 0 ? _job$renderScene_disp : job === null || job === void 0 ? void 0 : job.renderScene, fallback)
@@ -56984,6 +57070,23 @@ function useRenderApproveSession(_ref) {
56984
57070
  var next = findNextNavigableIndex(ids, safeIndex + 1, nextDecisions, skipProcessedJobs);
56985
57071
  setCurrentIndex(next !== null && next !== void 0 ? next : total);
56986
57072
  }, [currentId, decisions, ids, isCurrentReadOnly, isEmpty, safeIndex, skipProcessedJobs, total]);
57073
+
57074
+ // Keeps the in-session decision map in sync with status changes made directly
57075
+ // from the finish-screen overview (which persists to the backend independently
57076
+ // of approve/reject/changedReadyForRenderer). Without this, `openCount` /
57077
+ // `resumeOpenItems` would keep using the stale in-session decision - e.g. a job
57078
+ // reset back to "in Abnahme" from the overview would still count as processed.
57079
+ var setDecisionForId = useCallback(function (id, decision) {
57080
+ setDecisions(function (prev) {
57081
+ if (decision === undefined) {
57082
+ if (!(id in prev)) return prev;
57083
+ var next = _objectSpread$i({}, prev);
57084
+ delete next[id];
57085
+ return next;
57086
+ }
57087
+ return _objectSpread$i(_objectSpread$i({}, prev), {}, _defineProperty({}, id, decision));
57088
+ });
57089
+ }, []);
56987
57090
  var resumeOpenItems = useCallback(function () {
56988
57091
  setSkipProcessedJobsState(true);
56989
57092
  setCurrentIndex(typeof firstOpenIndex === 'number' ? firstOpenIndex : 0);
@@ -57074,6 +57177,7 @@ function useRenderApproveSession(_ref) {
57074
57177
  reject: reject,
57075
57178
  skip: skip,
57076
57179
  markChangedReadyForRenderer: markChangedReadyForRenderer,
57180
+ setDecisionForId: setDecisionForId,
57077
57181
  resumeOpenItems: resumeOpenItems,
57078
57182
  cancelPending: cancelPending,
57079
57183
  flushPending: flushPending
@@ -58258,7 +58362,7 @@ function focusBackConfirmButton(button) {
58258
58362
  ok === null || ok === void 0 || ok.focus();
58259
58363
  }
58260
58364
  function RenderApprove() {
58261
- var _data$job, _data$job2, _data$images$right2, _data$images$right3, _data$images$leftSlid, _data$job3, _data$job4, _data$job5, _imageFullscreen$name;
58365
+ var _data$job, _data$job2, _data$images$right2, _data$images$right3, _data$images$leftSlid, _data$job3, _data$job4, _data$job5, _data$job6, _imageFullscreen$name;
58262
58366
  var store = useStore();
58263
58367
  var navigate = useNavigate();
58264
58368
  var _useTranslation = useTranslation(),
@@ -58298,31 +58402,39 @@ function RenderApprove() {
58298
58402
  setPromptRestarting = _useState14[1];
58299
58403
  var _useState15 = useState(false),
58300
58404
  _useState16 = _slicedToArray(_useState15, 2),
58301
- uploadOpen = _useState16[0],
58302
- setUploadOpen = _useState16[1];
58405
+ readyForProductionBusy = _useState16[0],
58406
+ setReadyForProductionBusy = _useState16[1];
58303
58407
  var _useState17 = useState(false),
58304
58408
  _useState18 = _slicedToArray(_useState17, 2),
58305
- selectionUploadOpen = _useState18[0],
58306
- setSelectionUploadOpen = _useState18[1];
58307
- var _useUploadRenderImage = useUploadRenderImage(),
58308
- uploadRenderImage = _useUploadRenderImage.upload;
58309
- var _useState19 = useState(0),
58409
+ readyForProductionConfirmOpen = _useState18[0],
58410
+ setReadyForProductionConfirmOpen = _useState18[1];
58411
+ var _useState19 = useState(false),
58310
58412
  _useState20 = _slicedToArray(_useState19, 2),
58311
- dataRefreshKey = _useState20[0],
58312
- setDataRefreshKey = _useState20[1];
58313
- var data = useRenderJobData(session.currentId, dataRefreshKey);
58413
+ uploadOpen = _useState20[0],
58414
+ setUploadOpen = _useState20[1];
58314
58415
  var _useState21 = useState(false),
58315
58416
  _useState22 = _slicedToArray(_useState21, 2),
58316
- overviewReady = _useState22[0],
58317
- setOverviewReady = _useState22[1];
58318
- var _useState23 = useState(null),
58417
+ selectionUploadOpen = _useState22[0],
58418
+ setSelectionUploadOpen = _useState22[1];
58419
+ var _useUploadRenderImage = useUploadRenderImage(),
58420
+ uploadRenderImage = _useUploadRenderImage.upload;
58421
+ var _useState23 = useState(0),
58319
58422
  _useState24 = _slicedToArray(_useState23, 2),
58320
- overviewRejectId = _useState24[0],
58321
- setOverviewRejectId = _useState24[1];
58423
+ dataRefreshKey = _useState24[0],
58424
+ setDataRefreshKey = _useState24[1];
58425
+ var data = useRenderJobData(session.currentId, dataRefreshKey);
58322
58426
  var _useState25 = useState(false),
58323
58427
  _useState26 = _slicedToArray(_useState25, 2),
58324
- overviewRejectBusy = _useState26[0],
58325
- setOverviewRejectBusy = _useState26[1];
58428
+ overviewReady = _useState26[0],
58429
+ setOverviewReady = _useState26[1];
58430
+ var _useState27 = useState(null),
58431
+ _useState28 = _slicedToArray(_useState27, 2),
58432
+ overviewRejectId = _useState28[0],
58433
+ setOverviewRejectId = _useState28[1];
58434
+ var _useState29 = useState(false),
58435
+ _useState30 = _slicedToArray(_useState29, 2),
58436
+ overviewRejectBusy = _useState30[0],
58437
+ setOverviewRejectBusy = _useState30[1];
58326
58438
  var overview = useSessionOverviewData(session.ids, overviewReady);
58327
58439
  var leftSwiperRef = useRef(null);
58328
58440
  var isAiJob = typeof ((_data$job = data.job) === null || _data$job === void 0 ? void 0 : _data$job.engine) === 'string' && data.job.engine.trim().toLowerCase() === 'ai';
@@ -58391,24 +58503,108 @@ function RenderApprove() {
58391
58503
  openFullscreen('left');
58392
58504
  }
58393
58505
  };
58394
- var overlayOpen = rejectOpen || fullscreenSide !== null || imageFullscreen !== null || backConfirmOpen || overviewRejectId !== null;
58395
- var promptFlowBlocked = overlayOpen || session.isUpdating || session.isCurrentReadOnly || data.loading || !data.job || session.isFinished || promptRestarting;
58396
- var onPromptRestart = /*#__PURE__*/function () {
58397
- var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(nextPrompt) {
58398
- var prompt, _message;
58506
+ var overlayOpen = rejectOpen || fullscreenSide !== null || imageFullscreen !== null || backConfirmOpen || overviewRejectId !== null || readyForProductionConfirmOpen;
58507
+ var promptFlowBlocked = overlayOpen || session.isUpdating || session.isCurrentReadOnly || data.loading || !data.job || session.isFinished || promptRestarting || readyForProductionBusy;
58508
+ var performSetReadyForProduction = /*#__PURE__*/function () {
58509
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
58399
58510
  return _regeneratorRuntime.wrap(function _callee$(_context) {
58400
58511
  while (1) switch (_context.prev = _context.next) {
58401
58512
  case 0:
58402
- if (!(promptFlowBlocked || !isAiJob || !data.job)) {
58513
+ if (data.job) {
58403
58514
  _context.next = 2;
58404
58515
  break;
58405
58516
  }
58406
58517
  return _context.abrupt("return");
58518
+ case 2:
58519
+ setReadyForProductionBusy(true);
58520
+ _context.prev = 3;
58521
+ _context.next = 6;
58522
+ return updateState(data.job._id, RENDER_JOB_STATE.readyForProduction, 'set ready for production');
58523
+ case 6:
58524
+ message.success(t('backoffice.renderapprove.messages.readyForProductionSuccess', {
58525
+ defaultValue: 'Status wurde auf "Bereit zur Produktion" gesetzt.'
58526
+ }));
58527
+ if (!showImageSelector) {
58528
+ session.markChangedReadyForRenderer();
58529
+ }
58530
+ _context.next = 13;
58531
+ break;
58532
+ case 10:
58533
+ _context.prev = 10;
58534
+ _context.t0 = _context["catch"](3);
58535
+ message.error(t('backoffice.renderapprove.messages.readyForProductionFailed', {
58536
+ defaultValue: 'Status konnte nicht geändert werden.'
58537
+ }));
58538
+ case 13:
58539
+ _context.prev = 13;
58540
+ setReadyForProductionBusy(false);
58541
+ return _context.finish(13);
58542
+ case 16:
58543
+ case "end":
58544
+ return _context.stop();
58545
+ }
58546
+ }, _callee, null, [[3, 10, 13, 16]]);
58547
+ }));
58548
+ return function performSetReadyForProduction() {
58549
+ return _ref.apply(this, arguments);
58550
+ };
58551
+ }();
58552
+ var onSetReadyForProduction = function onSetReadyForProduction() {
58553
+ if (promptFlowBlocked || !data.job) return;
58554
+ setReadyForProductionConfirmOpen(true);
58555
+ Modal$2.confirm({
58556
+ title: t('backoffice.renderapprove.readyForProduction.confirmTitle', {
58557
+ defaultValue: 'Bist du sicher?'
58558
+ }),
58559
+ content: t('backoffice.renderapprove.readyForProduction.confirmContent', {
58560
+ defaultValue: 'Der Status wird auf "Bereit zur Produktion" gesetzt.'
58561
+ }),
58562
+ okText: t('backoffice.renderapprove.common.yes'),
58563
+ cancelText: t('backoffice.renderapprove.common.cancel'),
58564
+ onCancel: function onCancel() {
58565
+ setReadyForProductionConfirmOpen(false);
58566
+ },
58567
+ onOk: function () {
58568
+ var _onOk = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
58569
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
58570
+ while (1) switch (_context2.prev = _context2.next) {
58571
+ case 0:
58572
+ _context2.prev = 0;
58573
+ _context2.next = 3;
58574
+ return performSetReadyForProduction();
58575
+ case 3:
58576
+ _context2.prev = 3;
58577
+ setReadyForProductionConfirmOpen(false);
58578
+ return _context2.finish(3);
58579
+ case 6:
58580
+ case "end":
58581
+ return _context2.stop();
58582
+ }
58583
+ }, _callee2, null, [[0,, 3, 6]]);
58584
+ }));
58585
+ function onOk() {
58586
+ return _onOk.apply(this, arguments);
58587
+ }
58588
+ return onOk;
58589
+ }()
58590
+ });
58591
+ };
58592
+ var onPromptRestart = /*#__PURE__*/function () {
58593
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(nextPrompt) {
58594
+ var prompt, _message;
58595
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
58596
+ while (1) switch (_context3.prev = _context3.next) {
58597
+ case 0:
58598
+ if (!(promptFlowBlocked || !isAiJob || !data.job)) {
58599
+ _context3.next = 2;
58600
+ break;
58601
+ }
58602
+ return _context3.abrupt("return");
58407
58603
  case 2:
58408
58604
  prompt = nextPrompt;
58409
58605
  setPromptRestarting(true);
58410
- _context.prev = 4;
58411
- _context.next = 7;
58606
+ _context3.prev = 4;
58607
+ _context3.next = 7;
58412
58608
  return updateRenderJobPatch(data.job._id, [{
58413
58609
  op: 'add',
58414
58610
  path: '/finalPrompt',
@@ -58416,36 +58612,36 @@ function RenderApprove() {
58416
58612
  }]);
58417
58613
  case 7:
58418
58614
  if (showImageSelector) {
58419
- _context.next = 10;
58615
+ _context3.next = 10;
58420
58616
  break;
58421
58617
  }
58422
- _context.next = 10;
58618
+ _context3.next = 10;
58423
58619
  return updateState(data.job._id, RENDER_JOB_STATE.readyForProduction, 'edited prompt');
58424
58620
  case 10:
58425
58621
  message.success(t('backoffice.renderapprove.prompt.restartSuccess'));
58426
58622
  if (!showImageSelector) {
58427
58623
  session.markChangedReadyForRenderer();
58428
58624
  }
58429
- _context.next = 19;
58625
+ _context3.next = 19;
58430
58626
  break;
58431
58627
  case 14:
58432
- _context.prev = 14;
58433
- _context.t0 = _context["catch"](4);
58434
- (_message = _context.t0 === null || _context.t0 === void 0 ? void 0 : _context.t0.message) !== null && _message !== void 0 ? _message : 'Unknown error';
58628
+ _context3.prev = 14;
58629
+ _context3.t0 = _context3["catch"](4);
58630
+ (_message = _context3.t0 === null || _context3.t0 === void 0 ? void 0 : _context3.t0.message) !== null && _message !== void 0 ? _message : 'Unknown error';
58435
58631
  message.error(t('backoffice.renderapprove.prompt.restartFailed'));
58436
- throw _context.t0;
58632
+ throw _context3.t0;
58437
58633
  case 19:
58438
- _context.prev = 19;
58634
+ _context3.prev = 19;
58439
58635
  setPromptRestarting(false);
58440
- return _context.finish(19);
58636
+ return _context3.finish(19);
58441
58637
  case 22:
58442
58638
  case "end":
58443
- return _context.stop();
58639
+ return _context3.stop();
58444
58640
  }
58445
- }, _callee, null, [[4, 14, 19, 22]]);
58641
+ }, _callee3, null, [[4, 14, 19, 22]]);
58446
58642
  }));
58447
58643
  return function onPromptRestart(_x) {
58448
- return _ref.apply(this, arguments);
58644
+ return _ref2.apply(this, arguments);
58449
58645
  };
58450
58646
  }();
58451
58647
 
@@ -58615,23 +58811,23 @@ function RenderApprove() {
58615
58811
  };
58616
58812
  }, [store]);
58617
58813
  var navigateBackToTable = /*#__PURE__*/function () {
58618
- var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
58619
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
58620
- while (1) switch (_context2.prev = _context2.next) {
58814
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
58815
+ return _regeneratorRuntime.wrap(function _callee4$(_context4) {
58816
+ while (1) switch (_context4.prev = _context4.next) {
58621
58817
  case 0:
58622
- _context2.next = 2;
58818
+ _context4.next = 2;
58623
58819
  return session.flushPending();
58624
58820
  case 2:
58625
58821
  setSideMenusOpen(store, true);
58626
58822
  navigate(RENDERJOBS_PATH);
58627
58823
  case 4:
58628
58824
  case "end":
58629
- return _context2.stop();
58825
+ return _context4.stop();
58630
58826
  }
58631
- }, _callee2);
58827
+ }, _callee4);
58632
58828
  }));
58633
58829
  return function navigateBackToTable() {
58634
- return _ref2.apply(this, arguments);
58830
+ return _ref3.apply(this, arguments);
58635
58831
  };
58636
58832
  }();
58637
58833
  var onBackClick = function onBackClick() {
@@ -58647,25 +58843,25 @@ function RenderApprove() {
58647
58843
  setBackConfirmOpen(false);
58648
58844
  },
58649
58845
  onOk: function () {
58650
- var _onOk = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
58651
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
58652
- while (1) switch (_context3.prev = _context3.next) {
58846
+ var _onOk2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {
58847
+ return _regeneratorRuntime.wrap(function _callee5$(_context5) {
58848
+ while (1) switch (_context5.prev = _context5.next) {
58653
58849
  case 0:
58654
- _context3.prev = 0;
58655
- _context3.next = 3;
58850
+ _context5.prev = 0;
58851
+ _context5.next = 3;
58656
58852
  return navigateBackToTable();
58657
58853
  case 3:
58658
- _context3.prev = 3;
58854
+ _context5.prev = 3;
58659
58855
  setBackConfirmOpen(false);
58660
- return _context3.finish(3);
58856
+ return _context5.finish(3);
58661
58857
  case 6:
58662
58858
  case "end":
58663
- return _context3.stop();
58859
+ return _context5.stop();
58664
58860
  }
58665
- }, _callee3, null, [[0,, 3, 6]]);
58861
+ }, _callee5, null, [[0,, 3, 6]]);
58666
58862
  }));
58667
58863
  function onOk() {
58668
- return _onOk.apply(this, arguments);
58864
+ return _onOk2.apply(this, arguments);
58669
58865
  }
58670
58866
  return onOk;
58671
58867
  }()
@@ -58676,16 +58872,16 @@ function RenderApprove() {
58676
58872
  // `renderImages` array (CDN url + MediaItemRef id, in order) is the source of
58677
58873
  // truth the AI generation consumes.
58678
58874
  var persistImageSelection = /*#__PURE__*/function () {
58679
- var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4(renderImages) {
58875
+ var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee6(renderImages) {
58680
58876
  var op;
58681
- return _regeneratorRuntime.wrap(function _callee4$(_context4) {
58682
- while (1) switch (_context4.prev = _context4.next) {
58877
+ return _regeneratorRuntime.wrap(function _callee6$(_context6) {
58878
+ while (1) switch (_context6.prev = _context6.next) {
58683
58879
  case 0:
58684
58880
  if (data.job) {
58685
- _context4.next = 2;
58881
+ _context6.next = 2;
58686
58882
  break;
58687
58883
  }
58688
- return _context4.abrupt("return");
58884
+ return _context6.abrupt("return");
58689
58885
  case 2:
58690
58886
  // Optimistically update the in-memory job so re-renders (and a subsequent
58691
58887
  // upload) use this order instead of snapping back to the last fetched one.
@@ -58693,95 +58889,131 @@ function RenderApprove() {
58693
58889
  // RFC 6902: `add` is rejected when the path already exists (AI jobs often
58694
58890
  // ship with a default renderImages list), so replace when it's present.
58695
58891
  op = data.job.renderImages === undefined ? 'add' : 'replace';
58696
- _context4.prev = 4;
58697
- _context4.next = 7;
58892
+ _context6.prev = 4;
58893
+ _context6.next = 7;
58698
58894
  return updateRenderJobPatch(data.job._id, [{
58699
58895
  op: op,
58700
58896
  path: '/renderImages',
58701
58897
  value: renderImages
58702
58898
  }]);
58703
58899
  case 7:
58704
- _context4.next = 12;
58900
+ _context6.next = 12;
58705
58901
  break;
58706
58902
  case 9:
58707
- _context4.prev = 9;
58708
- _context4.t0 = _context4["catch"](4);
58903
+ _context6.prev = 9;
58904
+ _context6.t0 = _context6["catch"](4);
58709
58905
  message.error(t('backoffice.renderapprove.aiImageSelector.saveFailed', {
58710
58906
  defaultValue: 'Bildauswahl konnte nicht gespeichert werden.'
58711
58907
  }));
58712
58908
  case 12:
58713
58909
  case "end":
58714
- return _context4.stop();
58910
+ return _context6.stop();
58715
58911
  }
58716
- }, _callee4, null, [[4, 9]]);
58912
+ }, _callee6, null, [[4, 9]]);
58717
58913
  }));
58718
58914
  return function persistImageSelection(_x2) {
58719
- return _ref3.apply(this, arguments);
58915
+ return _ref4.apply(this, arguments);
58720
58916
  };
58721
58917
  }();
58722
58918
  var onRejectConfirm = /*#__PURE__*/function () {
58723
- var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5(reason, comment) {
58724
- return _regeneratorRuntime.wrap(function _callee5$(_context5) {
58725
- while (1) switch (_context5.prev = _context5.next) {
58919
+ var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee7(reason, comment) {
58920
+ return _regeneratorRuntime.wrap(function _callee7$(_context7) {
58921
+ while (1) switch (_context7.prev = _context7.next) {
58726
58922
  case 0:
58727
- _context5.next = 2;
58923
+ _context7.next = 2;
58728
58924
  return session.reject(reason, comment);
58729
58925
  case 2:
58730
58926
  setRejectOpen(false);
58731
58927
  case 3:
58732
58928
  case "end":
58733
- return _context5.stop();
58929
+ return _context7.stop();
58734
58930
  }
58735
- }, _callee5);
58931
+ }, _callee7);
58736
58932
  }));
58737
58933
  return function onRejectConfirm(_x3, _x4) {
58738
- return _ref4.apply(this, arguments);
58934
+ return _ref5.apply(this, arguments);
58935
+ };
58936
+ }();
58937
+
58938
+ // Keeps the in-session decision map in sync with status changes made directly
58939
+ // from the finish overview - otherwise `openCount`/"resume open items" would
58940
+ // keep using the stale in-session decision (e.g. a job reset back to "in
58941
+ // Abnahme" from the overview would still count as processed there).
58942
+ var syncSessionDecisionForOverviewState = function syncSessionDecisionForOverviewState(id, targetState) {
58943
+ if (targetState === RENDER_JOB_STATE.inChecking) {
58944
+ session.setDecisionForId(id, undefined);
58945
+ } else if (targetState === RENDER_JOB_STATE.rejected) {
58946
+ session.setDecisionForId(id, 'reject');
58947
+ } else {
58948
+ session.setDecisionForId(id, 'approve');
58949
+ }
58950
+ };
58951
+
58952
+ // Status changes made directly from the finish overview's dropdown/bulk takeover.
58953
+ var handleOverviewApplyState = /*#__PURE__*/function () {
58954
+ var _ref6 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee8(id, targetState, msg) {
58955
+ return _regeneratorRuntime.wrap(function _callee8$(_context8) {
58956
+ while (1) switch (_context8.prev = _context8.next) {
58957
+ case 0:
58958
+ _context8.next = 2;
58959
+ return overview.applyState(id, targetState, msg);
58960
+ case 2:
58961
+ syncSessionDecisionForOverviewState(id, targetState);
58962
+ case 3:
58963
+ case "end":
58964
+ return _context8.stop();
58965
+ }
58966
+ }, _callee8);
58967
+ }));
58968
+ return function handleOverviewApplyState(_x5, _x6, _x7) {
58969
+ return _ref6.apply(this, arguments);
58739
58970
  };
58740
58971
  }();
58741
58972
 
58742
58973
  // Reject flow triggered from the finish overview (a job's status dropdown).
58743
58974
  // Unlike the in-session reject this persists immediately via the overview.
58744
58975
  var handleOverviewReject = /*#__PURE__*/function () {
58745
- var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee6(reason, comment) {
58976
+ var _ref7 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee9(reason, comment) {
58746
58977
  var id, rejectMessage;
58747
- return _regeneratorRuntime.wrap(function _callee6$(_context6) {
58748
- while (1) switch (_context6.prev = _context6.next) {
58978
+ return _regeneratorRuntime.wrap(function _callee9$(_context9) {
58979
+ while (1) switch (_context9.prev = _context9.next) {
58749
58980
  case 0:
58750
58981
  id = overviewRejectId;
58751
58982
  if (id) {
58752
- _context6.next = 3;
58983
+ _context9.next = 3;
58753
58984
  break;
58754
58985
  }
58755
- return _context6.abrupt("return");
58986
+ return _context9.abrupt("return");
58756
58987
  case 3:
58757
58988
  rejectMessage = buildRejectMessage(t(getRejectionReasonLabelKey(reason)), comment);
58758
58989
  setOverviewRejectBusy(true);
58759
- _context6.prev = 5;
58760
- _context6.next = 8;
58990
+ _context9.prev = 5;
58991
+ _context9.next = 8;
58761
58992
  return overview.applyState(id, RENDER_JOB_STATE.rejected, rejectMessage);
58762
58993
  case 8:
58994
+ syncSessionDecisionForOverviewState(id, RENDER_JOB_STATE.rejected);
58763
58995
  message.success(t('backoffice.renderapprove.messages.jobRejected'));
58764
- _context6.next = 14;
58996
+ _context9.next = 15;
58765
58997
  break;
58766
- case 11:
58767
- _context6.prev = 11;
58768
- _context6.t0 = _context6["catch"](5);
58998
+ case 12:
58999
+ _context9.prev = 12;
59000
+ _context9.t0 = _context9["catch"](5);
58769
59001
  message.error(t('backoffice.renderapprove.overview.statusUpdateFailed', {
58770
59002
  defaultValue: 'Status konnte nicht geändert werden.'
58771
59003
  }));
58772
- case 14:
58773
- _context6.prev = 14;
59004
+ case 15:
59005
+ _context9.prev = 15;
58774
59006
  setOverviewRejectBusy(false);
58775
59007
  setOverviewRejectId(null);
58776
- return _context6.finish(14);
58777
- case 18:
59008
+ return _context9.finish(15);
59009
+ case 19:
58778
59010
  case "end":
58779
- return _context6.stop();
59011
+ return _context9.stop();
58780
59012
  }
58781
- }, _callee6, null, [[5, 11, 14, 18]]);
59013
+ }, _callee9, null, [[5, 12, 15, 19]]);
58782
59014
  }));
58783
- return function handleOverviewReject(_x5, _x6) {
58784
- return _ref5.apply(this, arguments);
59015
+ return function handleOverviewReject(_x8, _x9) {
59016
+ return _ref7.apply(this, arguments);
58785
59017
  };
58786
59018
  }();
58787
59019
  if (session.isValidatingSelection) {
@@ -58837,7 +59069,7 @@ function RenderApprove() {
58837
59069
  items: overview.items,
58838
59070
  loading: overview.loading,
58839
59071
  error: overview.error,
58840
- onApplyState: overview.applyState,
59072
+ onApplyState: handleOverviewApplyState,
58841
59073
  onRequestReject: function onRequestReject(id) {
58842
59074
  return setOverviewRejectId(id);
58843
59075
  },
@@ -58906,7 +59138,7 @@ function RenderApprove() {
58906
59138
  leftSwiperRef.current = swiper;
58907
59139
  },
58908
59140
  actionDisabled: data.loading || !data.job,
58909
- busy: session.isUpdating || promptRestarting,
59141
+ busy: session.isUpdating || promptRestarting || readyForProductionBusy,
58910
59142
  readOnly: session.isCurrentReadOnly,
58911
59143
  isFirst: session.isFirst,
58912
59144
  shortcutItems: shortcutItems,
@@ -58918,7 +59150,8 @@ function RenderApprove() {
58918
59150
  onNext: session.goNext,
58919
59151
  onUpload: ((_data$job3 = data.job) === null || _data$job3 === void 0 ? void 0 : _data$job3.state) === RENDER_JOB_STATE.finished ? undefined : function () {
58920
59152
  return setUploadOpen(true);
58921
- }
59153
+ },
59154
+ onSetReadyForProduction: ((_data$job4 = data.job) === null || _data$job4 === void 0 ? void 0 : _data$job4.state) === RENDER_JOB_STATE.finished ? undefined : onSetReadyForProduction
58922
59155
  })
58923
59156
  })]
58924
59157
  }), /*#__PURE__*/jsx(RejectModal, {
@@ -58935,7 +59168,7 @@ function RenderApprove() {
58935
59168
  onConfirm: handleOverviewReject
58936
59169
  }), /*#__PURE__*/jsx(UploadImageModal, {
58937
59170
  open: uploadOpen,
58938
- renderJob: (_data$job4 = data.job) !== null && _data$job4 !== void 0 ? _data$job4 : null,
59171
+ renderJob: (_data$job5 = data.job) !== null && _data$job5 !== void 0 ? _data$job5 : null,
58939
59172
  onClose: function onClose() {
58940
59173
  return setUploadOpen(false);
58941
59174
  },
@@ -58947,7 +59180,7 @@ function RenderApprove() {
58947
59180
  }
58948
59181
  }), /*#__PURE__*/jsx(UploadImageModal, {
58949
59182
  open: selectionUploadOpen,
58950
- renderJob: (_data$job5 = data.job) !== null && _data$job5 !== void 0 ? _data$job5 : null,
59183
+ renderJob: (_data$job6 = data.job) !== null && _data$job6 !== void 0 ? _data$job6 : null,
58951
59184
  uploadOverride: uploadRenderImage,
58952
59185
  skipValidation: true,
58953
59186
  allowedExtensions: ['webp', 'png', 'jpg', 'jpeg'],
@@ -11,8 +11,7 @@ interface Props {
11
11
  onReject?: () => void;
12
12
  onPrev?: () => void;
13
13
  onNext?: () => void;
14
- onUpload?: () => void;
15
14
  }
16
- export default function ActionBar({ disabled, busy, readOnly, isFirst, shortcutItems, onApprove, onReject, onPrev, onNext, onUpload }: Props): React.JSX.Element;
15
+ export default function ActionBar({ disabled, busy, readOnly, isFirst, shortcutItems, onApprove, onReject, onPrev, onNext }: Props): React.JSX.Element;
17
16
  export {};
18
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/ui/TableRenderJobs/components/RenderApprove/components/ActionBar/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAuB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjE,UAAU,KAAK;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0EAA0E;IAC1E,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,KAAK,qBAqC3I"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/ui/TableRenderJobs/components/RenderApprove/components/ActionBar/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,OAAuB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjE,UAAU,KAAK;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0EAA0E;IAC1E,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,qBA8BjI"}
@@ -20,11 +20,12 @@ interface Props {
20
20
  onPrev: () => void;
21
21
  onNext: () => void;
22
22
  onUpload?: () => void;
23
+ onSetReadyForProduction?: () => void;
23
24
  }
24
25
  /**
25
26
  * Abnahme (approval) use case: side-by-side comparison of preview and result
26
27
  * plus the full decision action bar (approve / reject / upload).
27
28
  */
28
- export default function ApprovalWorkspace({ images, loading, readonlyDecision, onOpenFullscreenLeft, onOpenFullscreenRight, onLeftSwiperInit, actionDisabled, busy, readOnly, isFirst, shortcutItems, onApprove, onReject, onPrev, onNext, onUpload, }: Props): React.JSX.Element;
29
+ export default function ApprovalWorkspace({ images, loading, readonlyDecision, onOpenFullscreenLeft, onOpenFullscreenRight, onLeftSwiperInit, actionDisabled, busy, readOnly, isFirst, shortcutItems, onApprove, onReject, onPrev, onNext, onUpload, onSetReadyForProduction, }: Props): React.JSX.Element;
29
30
  export {};
30
31
  //# 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,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,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;CACvB;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,MAAM,EACN,OAAO,EACP,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,GACT,EAAE,KAAK,qBAyBP"}
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,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,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,OAAO,EACP,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,qBA2BP"}
@@ -13,7 +13,8 @@ interface Props {
13
13
  loading?: boolean;
14
14
  alt?: string;
15
15
  onOpenFullscreen?: () => void;
16
+ headerActions?: React.ReactNode;
16
17
  }
17
- export default function ImagePanel({ title, media, loading, alt, onOpenFullscreen }: Props): React.JSX.Element;
18
+ export default function ImagePanel({ title, media, loading, alt, onOpenFullscreen, headerActions }: Props): React.JSX.Element;
18
19
  export {};
19
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;AAGvD,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,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;CAC/B;AAQD,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,EAAE,KAAK,qBAyFzF"}
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;AAGvD,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,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,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,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,aAAa,EAAE,EAAE,KAAK,qBA0FxG"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/ui/TableRenderJobs/components/RenderApprove/components/MetadataPanel/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAM5D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAsC9C,UAAU,KAAK;IACb,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,kFAAkF;IAClF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qFAAqF;IACrF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAgHD,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,GAAG,EACH,QAAQ,EACR,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,UAAU,EACV,QAAQ,GACT,EAAE,KAAK,qBA4VP"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/ui/TableRenderJobs/components/RenderApprove/components/MetadataPanel/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAM5D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAsC9C,UAAU,KAAK;IACb,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,kFAAkF;IAClF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qFAAqF;IACrF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAiHD,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,GAAG,EACH,QAAQ,EACR,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,UAAU,EACV,QAAQ,GACT,EAAE,KAAK,qBA4VP"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/ui/TableRenderJobs/components/RenderApprove/components/SessionOverview/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAW5D,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAyClE,UAAU,KAAK;IACb,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnF,iEAAiE;IACjE,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,8CAA8C;IAC9C,WAAW,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACjD,qDAAqD;IACrD,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAC7D,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;CACrB;AAkFD,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,KAAK,EACL,OAAO,EACP,KAAK,EACL,YAAY,EACZ,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,UAAU,GACX,EAAE,KAAK,qBAyaP"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/ui/TableRenderJobs/components/RenderApprove/components/SessionOverview/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAW5D,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AA8DlE,UAAU,KAAK;IACb,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnF,iEAAiE;IACjE,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,8CAA8C;IAC9C,WAAW,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACjD,qDAAqD;IACrD,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAC7D,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;CACrB;AAwFD,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,KAAK,EACL,OAAO,EACP,KAAK,EACL,YAAY,EACZ,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,UAAU,GACX,EAAE,KAAK,qBAkdP"}
@@ -10,7 +10,10 @@ interface Props {
10
10
  onOpenFullscreenRight?: () => void;
11
11
  /** Forwarded to LeftSlider so keyboard shortcuts can drive the left swiper. */
12
12
  onLeftSwiperInit?: (swiper: SwiperClass) => void;
13
+ onUpload?: () => void;
14
+ onSetReadyForProduction?: () => void;
15
+ actionsDisabled?: boolean;
13
16
  }
14
- export default function SideBySideViewer({ images, loading, readonlyDecision, onOpenFullscreenLeft, onOpenFullscreenRight, onLeftSwiperInit, }: Props): React.JSX.Element;
17
+ export default function SideBySideViewer({ images, loading, readonlyDecision, onOpenFullscreenLeft, onOpenFullscreenRight, onLeftSwiperInit, onUpload, onSetReadyForProduction, actionsDisabled, }: Props): React.JSX.Element;
15
18
  export {};
16
19
  //# 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;AAIpD,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAcxD,UAAU,KAAK;IACb,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,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;CAClD;AAED,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,MAAM,EACN,OAAO,EACP,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,GACjB,EAAE,KAAK,qBAgEP"}
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,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,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,OAAO,EACP,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,QAAQ,EACR,uBAAuB,EACvB,eAAe,GAChB,EAAE,KAAK,qBAoFP"}
@@ -50,6 +50,12 @@ export interface RenderApproveSession {
50
50
  reject: (reason: string, comment?: string) => Promise<void>;
51
51
  skip: () => void;
52
52
  markChangedReadyForRenderer: () => void;
53
+ /**
54
+ * Syncs the in-session decision for a job that was changed directly from the
55
+ * finish-screen overview, so `openCount`/`resumeOpenItems` stay accurate.
56
+ * Pass `undefined` to clear the decision (job becomes "open" again).
57
+ */
58
+ setDecisionForId: (id: string, decision: SessionAction | undefined) => void;
53
59
  /**
54
60
  * Jumps from the finish screen back to the first open item so users can
55
61
  * continue deciding unresolved jobs.
@@ -1 +1 @@
1
- {"version":3,"file":"useRenderApproveSession.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/TableRenderJobs/components/RenderApprove/hooks/useRenderApproveSession.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,yBAAyB,GAAG,MAAM,CAAC;AAmCtF,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,uBAAuB,EAAE,MAAM,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,aAAa,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,aAAa,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB,EAAE,OAAO,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,OAAO,EAAE,cAAc,CAAC;IACxB,+DAA+D;IAC/D,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,oBAAoB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,eAAe,CAAC,EAAE,aAAa,CAAC;IAChC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,2BAA2B,EAAE,MAAM,IAAI,CAAC;IACxC;;;OAGG;IACH,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,YAAY,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACpE;AAED,UAAU,OAAO;IACf,6EAA6E;IAC7E,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACrG;AA+DD,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAGhF;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,EAAE,WAAW,EAAE,EAAE,OAAO,GAAG,oBAAoB,CAiX9F"}
1
+ {"version":3,"file":"useRenderApproveSession.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/TableRenderJobs/components/RenderApprove/hooks/useRenderApproveSession.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,yBAAyB,GAAG,MAAM,CAAC;AAmCtF,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,uBAAuB,EAAE,MAAM,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,aAAa,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,aAAa,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB,EAAE,OAAO,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,OAAO,EAAE,cAAc,CAAC;IACxB,+DAA+D;IAC/D,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,oBAAoB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,eAAe,CAAC,EAAE,aAAa,CAAC;IAChC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,2BAA2B,EAAE,MAAM,IAAI,CAAC;IACxC;;;;OAIG;IACH,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,SAAS,KAAK,IAAI,CAAC;IAC5E;;;OAGG;IACH,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,YAAY,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACpE;AAED,UAAU,OAAO;IACf,6EAA6E;IAC7E,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACrG;AA+DD,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAGhF;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,EAAE,WAAW,EAAE,EAAE,OAAO,GAAG,oBAAoB,CAmY9F"}
@@ -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;AAqD3D,MAAM,CAAC,OAAO,UAAU,aAAa,sBA8hBpC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/TableRenderJobs/components/RenderApprove/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAqD3D,MAAM,CAAC,OAAO,UAAU,aAAa,sBA4mBpC"}
@@ -6,6 +6,7 @@
6
6
  export declare const RENDER_JOB_STATE: {
7
7
  readonly paymentClarified: 2;
8
8
  readonly readyForProduction: 3;
9
+ readonly readyForRenderer: 5;
9
10
  readonly inChecking: 7;
10
11
  readonly approved: 8;
11
12
  readonly rejected: 9;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/TableRenderJobs/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,gBAAgB;;;;;;;CAOnB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;EAQpB,CAAC;AAEX,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGjE;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAYmC,CAAC;AAExD,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,OAAO,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/TableRenderJobs/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;CAQnB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;EAQpB,CAAC;AAEX,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGjE;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAYmC,CAAC;AAExD,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,OAAO,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,eAAe,OAAO,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crystaldesign/diva-backoffice",
3
- "version": "26.7.8-rc.2",
3
+ "version": "26.7.8",
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.7.8-rc.2",
19
- "@crystaldesign/content-item": "26.7.8-rc.2",
20
- "@crystaldesign/diva-core": "26.7.8-rc.2",
21
- "@crystaldesign/diva-utils": "26.7.8-rc.2",
22
- "@crystaldesign/media-upload": "26.7.8-rc.2",
23
- "@crystaldesign/rtf-editor": "26.7.8-rc.2",
24
- "@crystaldesign/spreadsheet": "26.7.8-rc.2",
18
+ "@crystaldesign/content-box": "26.7.8",
19
+ "@crystaldesign/content-item": "26.7.8",
20
+ "@crystaldesign/diva-core": "26.7.8",
21
+ "@crystaldesign/diva-utils": "26.7.8",
22
+ "@crystaldesign/media-upload": "26.7.8",
23
+ "@crystaldesign/rtf-editor": "26.7.8",
24
+ "@crystaldesign/spreadsheet": "26.7.8",
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": "797c80bb3fac0243d8607786c45c92faa62ff4ea"
59
+ "gitHead": "cf3b6823dae2073deeb25c90603b1e3aee7bdfe1"
60
60
  }