@crystaldesign/diva-backoffice 26.11.0-beta.25 → 26.11.0-beta.26

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 (22) hide show
  1. package/build/esm/index.js +510 -258
  2. package/build/types/backoffice/src/tests/unit/ui/TableRenderJobs/inputImagesModalUtils.test.d.ts +2 -0
  3. package/build/types/backoffice/src/tests/unit/ui/TableRenderJobs/inputImagesModalUtils.test.d.ts.map +1 -0
  4. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/ApprovalWorkspace/index.d.ts +3 -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 +3 -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/InputImagesModal/index.d.ts +23 -0
  9. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/InputImagesModal/index.d.ts.map +1 -0
  10. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/InputImagesModal/utils.d.ts +10 -0
  11. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/InputImagesModal/utils.d.ts.map +1 -0
  12. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/LeftSlider/index.d.ts.map +1 -1
  13. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/MetadataPanel/index.d.ts.map +1 -1
  14. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/ReferenceImageTag/index.d.ts +4 -0
  15. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/ReferenceImageTag/index.d.ts.map +1 -0
  16. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/SideBySideViewer/index.d.ts +3 -1
  17. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/SideBySideViewer/index.d.ts.map +1 -1
  18. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/hooks/useRenderJobData.d.ts.map +1 -1
  19. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/index.d.ts.map +1 -1
  20. package/build/types/backoffice/src/ui/TableRenderJobs/types.d.ts +2 -0
  21. package/build/types/backoffice/src/ui/TableRenderJobs/types.d.ts.map +1 -1
  22. package/package.json +10 -10
@@ -153,6 +153,7 @@ import Select$1 from 'antd/es/select';
153
153
  import Form$3 from 'antd/es/form';
154
154
  import { MediaDetailCard } from '@crystaldesign/assetmanager';
155
155
  import ArrowLeftOutlined from '@ant-design/icons/ArrowLeftOutlined';
156
+ import PictureOutlined from '@ant-design/icons/PictureOutlined';
156
157
  import { Navigation as Navigation$1, Pagination, Mousewheel } from 'swiper/modules';
157
158
  import { Swiper, SwiperSlide } from 'swiper/react';
158
159
  import 'swiper/css';
@@ -165,7 +166,6 @@ import { useSensors, useSensor, PointerSensor, KeyboardSensor, DndContext, close
165
166
  import { useSortable, sortableKeyboardCoordinates, SortableContext, verticalListSortingStrategy, arrayMove } from '@dnd-kit/sortable';
166
167
  import { CSS } from '@dnd-kit/utilities';
167
168
  import DownOutlined$2 from '@ant-design/icons/DownOutlined';
168
- import PictureOutlined from '@ant-design/icons/PictureOutlined';
169
169
  import PlayCircleOutlined from '@ant-design/icons/PlayCircleOutlined';
170
170
  import FileTextOutlined from '@ant-design/icons/FileTextOutlined';
171
171
  import UndoOutlined from '@ant-design/icons/UndoOutlined';
@@ -14906,8 +14906,8 @@ var navMinified = "nav-minified-tSt-a";
14906
14906
  var navOverlay = "nav-overlay-rKJNC";
14907
14907
  var navSettings = "nav-settings-82cjv";
14908
14908
  var menuLabel = "menu-label-4dXQk";
14909
- var css_248z$$ = ".nav-minify-button-ZX7dm {\n color: rgba(255, 255, 255, 0.65);\n background: #001529;\n cursor: pointer;\n padding: 10px;\n height: 40px;\n}\n\n.nav-minify-button-ZX7dm:hover {\n color: #fff;\n background-color: rgba(0, 0, 0, 0.06);\n}\n\n.nav-minify-button-ZX7dm .anticon {\n float: right;\n}\n\n.nav-container-JCR24 {\n display: flex;\n min-width: 30px;\n overflow: visible;\n z-index: 10001;\n}\n\n.nav-container-JCR24 .ant-layout-sider-children {\n display: flex;\n flex-direction: column;\n}\n\n.nav-minified-tSt-a {\n flex: 0 0 30px !important;\n max-width: 30px !important;\n min-width: 30px !important;\n width: 30px !important;\n}\n\n.nav-minified-tSt-a {\n /* position: absolute !important; */\n height: 100%;\n z-index: 1;\n}\n\n.nav-overlay-rKJNC {\n max-width: 200px !important;\n min-width: 200px !important;\n width: 200px !important;\n}\n\n.nav-minified-tSt-a .ant-menu-root {\n display: none;\n}\n\n.nav-overlay-rKJNC .ant-menu-root {\n display: inline !important;\n display: initial !important;\n}\n\n.nav-settings-82cjv {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin: auto 18px 55px;\n}\n\n.nav-container-JCR24 .ant-menu-title-content {\n overflow: visible;\n}\n\n.menu-label-4dXQk {\n display: flex;\n}\n\n.ant-menu .ant-menu-item .menu-label-4dXQk .anticon {\n margin-left: auto;\n margin-right: -6px;\n font-size: 10px;\n}\n\n.menu-label-4dXQk span:first-child {\n width: 120px;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n";
14910
- styleInject(css_248z$$);
14909
+ var css_248z$10 = ".nav-minify-button-ZX7dm {\n color: rgba(255, 255, 255, 0.65);\n background: #001529;\n cursor: pointer;\n padding: 10px;\n height: 40px;\n}\n\n.nav-minify-button-ZX7dm:hover {\n color: #fff;\n background-color: rgba(0, 0, 0, 0.06);\n}\n\n.nav-minify-button-ZX7dm .anticon {\n float: right;\n}\n\n.nav-container-JCR24 {\n display: flex;\n min-width: 30px;\n overflow: visible;\n z-index: 10001;\n}\n\n.nav-container-JCR24 .ant-layout-sider-children {\n display: flex;\n flex-direction: column;\n}\n\n.nav-minified-tSt-a {\n flex: 0 0 30px !important;\n max-width: 30px !important;\n min-width: 30px !important;\n width: 30px !important;\n}\n\n.nav-minified-tSt-a {\n /* position: absolute !important; */\n height: 100%;\n z-index: 1;\n}\n\n.nav-overlay-rKJNC {\n max-width: 200px !important;\n min-width: 200px !important;\n width: 200px !important;\n}\n\n.nav-minified-tSt-a .ant-menu-root {\n display: none;\n}\n\n.nav-overlay-rKJNC .ant-menu-root {\n display: inline !important;\n display: initial !important;\n}\n\n.nav-settings-82cjv {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin: auto 18px 55px;\n}\n\n.nav-container-JCR24 .ant-menu-title-content {\n overflow: visible;\n}\n\n.menu-label-4dXQk {\n display: flex;\n}\n\n.ant-menu .ant-menu-item .menu-label-4dXQk .anticon {\n margin-left: auto;\n margin-right: -6px;\n font-size: 10px;\n}\n\n.menu-label-4dXQk span:first-child {\n width: 120px;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n";
14910
+ styleInject(css_248z$10);
14911
14911
 
14912
14912
  function MenuLabel (_ref) {
14913
14913
  var disabled = _ref.disabled,
@@ -20276,8 +20276,8 @@ var Result = function Result(_ref) {
20276
20276
 
20277
20277
  var success = "success-tRJ7j";
20278
20278
  var error = "error-MtAFB";
20279
- var css_248z$_ = ".success-tRJ7j {\n color: #fff !important;\n background-color: #449d44 !important;\n border-color: #398439 !important;\n}\n\n.error-MtAFB {\n color: #fff !important;\n background-color: #c9302c !important;\n border-color: #ac2925 !important;\n}\n";
20280
- styleInject(css_248z$_);
20279
+ var css_248z$$ = ".success-tRJ7j {\n color: #fff !important;\n background-color: #449d44 !important;\n border-color: #398439 !important;\n}\n\n.error-MtAFB {\n color: #fff !important;\n background-color: #c9302c !important;\n border-color: #ac2925 !important;\n}\n";
20280
+ styleInject(css_248z$$);
20281
20281
 
20282
20282
  var azureIcon = "data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2048%2048%22%20width%3D%2248px%22%20height%3D%2248px%22%3E%20%3ClinearGradient%20id%3D%22k8yl7~hDat~FaoWq8WjN6a%22%20x1%3D%22-1254.397%22%20x2%3D%22-1261.911%22%20y1%3D%22877.268%22%20y2%3D%22899.466%22%20gradientTransform%3D%22translate%281981.75%20-1362.063%29%20scale%281.5625%29%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23114a8b%22%2F%3E%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%230669bc%22%2F%3E%20%3C%2FlinearGradient%3E%20%3Cpath%20fill%3D%22url%28%23k8yl7~hDat~FaoWq8WjN6a%29%22%20d%3D%22M17.634%2C6h11.305L17.203%2C40.773c-0.247%2C0.733-0.934%2C1.226-1.708%2C1.226H6.697%20c-0.994%2C0-1.8-0.806-1.8-1.8c0-0.196%2C0.032-0.39%2C0.094-0.576L15.926%2C7.227C16.173%2C6.494%2C16.86%2C6%2C17.634%2C6L17.634%2C6z%22%2F%3E%20%3Cpath%20fill%3D%22%230078d4%22%20d%3D%22M34.062%2C29.324H16.135c-0.458-0.001-0.83%2C0.371-0.831%2C0.829c0%2C0.231%2C0.095%2C0.451%2C0.264%2C0.608%20l11.52%2C10.752C27.423%2C41.826%2C27.865%2C42%2C28.324%2C42h10.151L34.062%2C29.324z%22%2F%3E%20%3ClinearGradient%20id%3D%22k8yl7~hDat~FaoWq8WjN6b%22%20x1%3D%22-1252.05%22%20x2%3D%22-1253.788%22%20y1%3D%22887.612%22%20y2%3D%22888.2%22%20gradientTransform%3D%22translate%281981.75%20-1362.063%29%20scale%281.5625%29%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%3Cstop%20offset%3D%220%22%20stop-opacity%3D%22.3%22%2F%3E%20%20%3Cstop%20offset%3D%22.071%22%20stop-opacity%3D%22.2%22%2F%3E%20%20%3Cstop%20offset%3D%22.321%22%20stop-opacity%3D%22.1%22%2F%3E%20%20%3Cstop%20offset%3D%22.623%22%20stop-opacity%3D%22.05%22%2F%3E%20%20%3Cstop%20offset%3D%221%22%20stop-opacity%3D%220%22%2F%3E%20%3C%2FlinearGradient%3E%20%3Cpath%20fill%3D%22url%28%23k8yl7~hDat~FaoWq8WjN6b%29%22%20d%3D%22M17.634%2C6c-0.783-0.003-1.476%2C0.504-1.712%2C1.25L5.005%2C39.595%20c-0.335%2C0.934%2C0.151%2C1.964%2C1.085%2C2.299C6.286%2C41.964%2C6.493%2C42%2C6.702%2C42h9.026c0.684-0.122%2C1.25-0.603%2C1.481-1.259l2.177-6.416%20l7.776%2C7.253c0.326%2C0.27%2C0.735%2C0.419%2C1.158%2C0.422h10.114l-4.436-12.676l-12.931%2C0.003L28.98%2C6H17.634z%22%2F%3E%20%3ClinearGradient%20id%3D%22k8yl7~hDat~FaoWq8WjN6c%22%20x1%3D%22-1252.952%22%20x2%3D%22-1244.704%22%20y1%3D%22876.6%22%20y2%3D%22898.575%22%20gradientTransform%3D%22translate%281981.75%20-1362.063%29%20scale%281.5625%29%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%20%20%3Cstop%20offset%3D%220%22%20stop-color%3D%22%233ccbf4%22%2F%3E%20%20%3Cstop%20offset%3D%221%22%20stop-color%3D%22%232892df%22%2F%3E%20%3C%2FlinearGradient%3E%20%3Cpath%20fill%3D%22url%28%23k8yl7~hDat~FaoWq8WjN6c%29%22%20d%3D%22M32.074%2C7.225C31.827%2C6.493%2C31.141%2C6%2C30.368%2C6h-12.6c0.772%2C0%2C1.459%2C0.493%2C1.705%2C1.224%20l10.935%2C32.399c0.318%2C0.942-0.188%2C1.963-1.13%2C2.281C29.093%2C41.968%2C28.899%2C42%2C28.703%2C42h12.6c0.994%2C0%2C1.8-0.806%2C1.8-1.801%20c0-0.196-0.032-0.39-0.095-0.575L32.074%2C7.225z%22%2F%3E%3C%2Fsvg%3E";
20283
20283
 
@@ -20341,8 +20341,8 @@ var CustomButton$1 = observer(CustomButton);
20341
20341
 
20342
20342
  var wrapper$8 = "wrapper-GVe2h";
20343
20343
  var buttonGroup = "button-group-GYt-T";
20344
- var css_248z$Z = ".wrapper-GVe2h {\n display: flex;\n flex-direction: row;\n gap: 12px;\n}\n\n.button-group-GYt-T {\n display: flex;\n flex-direction: row;\n gap: 12px;\n margin: 0 12px;\n}\n";
20345
- styleInject(css_248z$Z);
20344
+ var css_248z$_ = ".wrapper-GVe2h {\n display: flex;\n flex-direction: row;\n gap: 12px;\n}\n\n.button-group-GYt-T {\n display: flex;\n flex-direction: row;\n gap: 12px;\n margin: 0 12px;\n}\n";
20345
+ styleInject(css_248z$_);
20346
20346
 
20347
20347
  function ownKeys$1U(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
20348
20348
  function _objectSpread$1U(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1U(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1U(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -20645,8 +20645,8 @@ function parseReturnData(options, selectMapping) {
20645
20645
  }
20646
20646
 
20647
20647
  var wrapper$7 = "wrapper-4xyke";
20648
- var css_248z$Y = ".wrapper-4xyke {\n display: flex;\n flex-direction: column;\n min-height: 50px;\n justify-content: flex-end;\n font-size: 12px;\n}\n";
20649
- styleInject(css_248z$Y);
20648
+ var css_248z$Z = ".wrapper-4xyke {\n display: flex;\n flex-direction: column;\n min-height: 50px;\n justify-content: flex-end;\n font-size: 12px;\n}\n";
20649
+ styleInject(css_248z$Z);
20650
20650
 
20651
20651
  var _excluded$b = ["apiInterface", "selectMapping", "apiMapping", "onChange", "value", "search", "options", "autoSelectFirst", "title", "sharedState"];
20652
20652
  function ownKeys$1T(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -21532,8 +21532,8 @@ var customSelectContentWrapper = "custom-select-content-wrapper-v98Ms";
21532
21532
  var customSelectOptionContent = "custom-select-option-content-LIbzl";
21533
21533
  var customSelectAvatar = "custom-select-avatar-DPCn1";
21534
21534
  var customSelectOptionText = "custom-select-option-text-crPF-";
21535
- var css_248z$X = ".custom-select-container-rPcLx {\n display: flex;\n gap: 8px;\n height: 32px;\n}\n\n.custom-select-ESUJX {\n width: 300px;\n}\n\n.custom-select-content-wrapper-v98Ms {\n display: flex;\n align-items: center;\n height: 22px;\n}\n\n.custom-select-option-content-LIbzl {\n display: flex;\n align-items: center;\n gap: 8px;\n max-width: 100%;\n height: 100%;\n}\n\n.custom-select-option-content-LIbzl .custom-select-avatar-DPCn1 {\n flex-shrink: 0;\n}\n\n.custom-select-option-content-LIbzl .custom-select-option-text-crPF- {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n";
21536
- styleInject(css_248z$X);
21535
+ var css_248z$Y = ".custom-select-container-rPcLx {\n display: flex;\n gap: 8px;\n height: 32px;\n}\n\n.custom-select-ESUJX {\n width: 300px;\n}\n\n.custom-select-content-wrapper-v98Ms {\n display: flex;\n align-items: center;\n height: 22px;\n}\n\n.custom-select-option-content-LIbzl {\n display: flex;\n align-items: center;\n gap: 8px;\n max-width: 100%;\n height: 100%;\n}\n\n.custom-select-option-content-LIbzl .custom-select-avatar-DPCn1 {\n flex-shrink: 0;\n}\n\n.custom-select-option-content-LIbzl .custom-select-option-text-crPF- {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n";
21536
+ styleInject(css_248z$Y);
21537
21537
 
21538
21538
  var Selector$1 = function Selector(_ref) {
21539
21539
  var items = _ref.items,
@@ -22476,8 +22476,8 @@ function useSelectData (_ref) {
22476
22476
 
22477
22477
  var selectWithCopy = "select-with-copy-r6iEI";
22478
22478
  var selectGrow = "select-grow-Zr2r9";
22479
- var css_248z$W = ".select-with-copy-r6iEI {\n display: flex;\n align-items: center;\n gap: 8px;\n width: 100%;\n}\n\n.select-with-copy-r6iEI > .select-grow-Zr2r9 {\n flex: 1;\n min-width: 0;\n}\n\n.darkmode .ant-select-selection-search-input {\n color: #fff;\n}\n";
22480
- styleInject(css_248z$W);
22479
+ var css_248z$X = ".select-with-copy-r6iEI {\n display: flex;\n align-items: center;\n gap: 8px;\n width: 100%;\n}\n\n.select-with-copy-r6iEI > .select-grow-Zr2r9 {\n flex: 1;\n min-width: 0;\n}\n\n.darkmode .ant-select-selection-search-input {\n color: #fff;\n}\n";
22480
+ styleInject(css_248z$X);
22481
22481
 
22482
22482
  function selectedToClipboardText(selected) {
22483
22483
  if (!(selected !== null && selected !== void 0 && selected.length)) return '';
@@ -22644,8 +22644,8 @@ var Selector = observer(SelectWrapper);
22644
22644
  var wrapper$6 = "wrapper-WStAk";
22645
22645
  var headerWrapper = "header-wrapper-gWQuH";
22646
22646
  var buttonsWrapper$1 = "buttons-wrapper-7ebR9";
22647
- var css_248z$V = ".wrapper-WStAk {\n display: flex;\n flex-direction: column;\n}\n.header-wrapper-gWQuH {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-left: 64px;\n}\n\n.buttons-wrapper-7ebR9 {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-grow: 1;\n}\n";
22648
- styleInject(css_248z$V);
22647
+ var css_248z$W = ".wrapper-WStAk {\n display: flex;\n flex-direction: column;\n}\n.header-wrapper-gWQuH {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-left: 64px;\n}\n\n.buttons-wrapper-7ebR9 {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-grow: 1;\n}\n";
22648
+ styleInject(css_248z$W);
22649
22649
 
22650
22650
  function ownKeys$1Q(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
22651
22651
  function _objectSpread$1Q(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1Q(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1Q(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -23266,8 +23266,8 @@ var Text$9 = observer(Text$8);
23266
23266
 
23267
23267
  var root$e = "root-Eiuo1";
23268
23268
  var popoverContent = "popoverContent-uExP4";
23269
- var css_248z$U = ".root-Eiuo1 {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.popoverContent-uExP4 {\n display: flex;\n flex-direction: column;\n gap: 8px;\n min-width: 140px;\n}\n";
23270
- styleInject(css_248z$U);
23269
+ var css_248z$V = ".root-Eiuo1 {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.popoverContent-uExP4 {\n display: flex;\n flex-direction: column;\n gap: 8px;\n min-width: 140px;\n}\n";
23270
+ styleInject(css_248z$V);
23271
23271
 
23272
23272
  var CustomColorPicker = function CustomColorPicker(_ref) {
23273
23273
  var item = _ref.item,
@@ -25184,8 +25184,8 @@ var parentScroll = "parent-scroll-GmaL9";
25184
25184
  var parent = "parent-NZJ3S";
25185
25185
  var container$8 = "container--O28P";
25186
25186
  var infiniteScrollContainer = "infiniteScrollContainer-8G1wc";
25187
- var css_248z$T = ".permission-Button-XctsZ {\n position: relative;\n top: 25px;\n left: -30px;\n float: right;\n height: 20px;\n z-index: 1000;\n}\n.select-lzft- {\n width: 100%;\n}\n.loadingOption-qCkRw {\n margin-top: 11px;\n padding-left: 500px;\n}\n.scroller-lrdk9 {\n overflow: auto;\n flex: 1;\n min-height: 0;\n}\n\n.skeleton--xCI0 {\n padding-left: 25px;\n padding-bottom: 10px;\n}\n.filterField-1kU1O {\n display: flex;\n gap: 10px;\n}\n.filterField-1kU1O button {\n height: 32px;\n}\n.filterField-1kU1O div {\n height: 32px;\n}\n\n.parent-scroll-GmaL9 {\n overflow: hidden;\n padding: 24px;\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n.parent-NZJ3S {\n overflow: auto;\n padding: 24px;\n height: 100%;\n}\n\n.container--O28P {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n}\n\n.infiniteScrollContainer-8G1wc {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n}\n\n.infiniteScrollContainer-8G1wc .infinite-scroll-component__outerdiv {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n}\n\n.infiniteScrollContainer-8G1wc .infinite-scroll-component {\n flex: 1 !important;\n min-height: 0 !important;\n height: auto !important;\n display: flex !important;\n flex-direction: column !important;\n}\n";
25188
- styleInject(css_248z$T);
25187
+ var css_248z$U = ".permission-Button-XctsZ {\n position: relative;\n top: 25px;\n left: -30px;\n float: right;\n height: 20px;\n z-index: 1000;\n}\n.select-lzft- {\n width: 100%;\n}\n.loadingOption-qCkRw {\n margin-top: 11px;\n padding-left: 500px;\n}\n.scroller-lrdk9 {\n overflow: auto;\n flex: 1;\n min-height: 0;\n}\n\n.skeleton--xCI0 {\n padding-left: 25px;\n padding-bottom: 10px;\n}\n.filterField-1kU1O {\n display: flex;\n gap: 10px;\n}\n.filterField-1kU1O button {\n height: 32px;\n}\n.filterField-1kU1O div {\n height: 32px;\n}\n\n.parent-scroll-GmaL9 {\n overflow: hidden;\n padding: 24px;\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n.parent-NZJ3S {\n overflow: auto;\n padding: 24px;\n height: 100%;\n}\n\n.container--O28P {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n}\n\n.infiniteScrollContainer-8G1wc {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n}\n\n.infiniteScrollContainer-8G1wc .infinite-scroll-component__outerdiv {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n}\n\n.infiniteScrollContainer-8G1wc .infinite-scroll-component {\n flex: 1 !important;\n min-height: 0 !important;\n height: auto !important;\n display: flex !important;\n flex-direction: column !important;\n}\n";
25188
+ styleInject(css_248z$U);
25189
25189
 
25190
25190
  function ownKeys$1J(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
25191
25191
  function _objectSpread$1J(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1J(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1J(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -26439,8 +26439,8 @@ var newscroller = "newscroller-INKeD";
26439
26439
  var antCollapseHeader = "ant-collapse-header--6FgU";
26440
26440
  var itemTitle = "item-title--BTvC";
26441
26441
  var itemDesc = "item-desc-DBiiF";
26442
- var css_248z$S = ".diva-component-DIVA_BACKOFFICE_NEW .title-cl-ZAj2y {\n color: black;\n}\n.diva-component-DIVA_BACKOFFICE_NEW .description-m3mNY {\n color: grey;\n flex: 1 1 100%;\n margin-left: 25px;\n margin-top: -25px;\n}\n.diva-component-DIVA_BACKOFFICE_NEW .item-group-xWnj- {\n /* border-bottom: 1px solid black; */\n margin-bottom: 40px;\n}\n.diva-component-DIVA_BACKOFFICE_NEW .delete-item-otdSr {\n cursor: pointer;\n position: relative;\n float: right;\n top: 13px;\n margin-right: 20px;\n}\n\n.diva-component-DIVA_BACKOFFICE_NEW .newscroller-INKeD {\n overflow: auto;\n height: 400px;\n}\n\n.diva-component-DIVA_BACKOFFICE_NEW .ant-collapse-header--6FgU div {\n flex-wrap: wrap !important;\n}\n.diva-component-DIVA_BACKOFFICE_NEW a .item-title--BTvC {\n padding: 0 0 0 30px;\n color: rgba(0, 0, 0, 0.85);\n}\n.diva-component-DIVA_BACKOFFICE_NEW .item-desc-DBiiF {\n padding: 0 0 0 30px;\n color: rgba(0, 0, 0, 0.45);\n}\n";
26443
- styleInject(css_248z$S);
26442
+ var css_248z$T = ".diva-component-DIVA_BACKOFFICE_NEW .title-cl-ZAj2y {\n color: black;\n}\n.diva-component-DIVA_BACKOFFICE_NEW .description-m3mNY {\n color: grey;\n flex: 1 1 100%;\n margin-left: 25px;\n margin-top: -25px;\n}\n.diva-component-DIVA_BACKOFFICE_NEW .item-group-xWnj- {\n /* border-bottom: 1px solid black; */\n margin-bottom: 40px;\n}\n.diva-component-DIVA_BACKOFFICE_NEW .delete-item-otdSr {\n cursor: pointer;\n position: relative;\n float: right;\n top: 13px;\n margin-right: 20px;\n}\n\n.diva-component-DIVA_BACKOFFICE_NEW .newscroller-INKeD {\n overflow: auto;\n height: 400px;\n}\n\n.diva-component-DIVA_BACKOFFICE_NEW .ant-collapse-header--6FgU div {\n flex-wrap: wrap !important;\n}\n.diva-component-DIVA_BACKOFFICE_NEW a .item-title--BTvC {\n padding: 0 0 0 30px;\n color: rgba(0, 0, 0, 0.85);\n}\n.diva-component-DIVA_BACKOFFICE_NEW .item-desc-DBiiF {\n padding: 0 0 0 30px;\n color: rgba(0, 0, 0, 0.45);\n}\n";
26443
+ styleInject(css_248z$T);
26444
26444
 
26445
26445
  function ownKeys$1G(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
26446
26446
  function _objectSpread$1G(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1G(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1G(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -27854,8 +27854,8 @@ var jsoneditor = "jsoneditor-WMs15";
27854
27854
  var preview = "preview-9wK81";
27855
27855
  var previewButton = "preview-button-vupuG";
27856
27856
  var editButton = "edit-button-m6r3M";
27857
- var css_248z$R = ".jsoneditor-WMs15 .jsoneditor-menu .jsoneditor-transform {\n display: none;\n}\n.jsoneditor-WMs15 .jsoneditor-menu .jsoneditor-repair {\n display: none;\n}\n.jsoneditor-WMs15 .jsoneditor-menu .jsoneditor-poweredBy {\n display: none;\n}\n.jsoneditor-WMs15 .preview-9wK81 {\n background-color: #f19e34;\n}\n\n.jsoneditor-WMs15 .preview-button-vupuG {\n background-image: url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22iso-8859-1%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 19.0.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 viewBox%3D%220 0 502 502%22 style%3D%22enable-background%3Anew 0 0 502 502%3B%22 xml%3Aspace%3D%22preserve%22 fill%3D%22%23fff%22%3E%3Cg%3E%09%3Cg%3E%09%09%3Cg%3E%09%09%09%3Cpath d%3D%22M478.482%2C448.601l-101.6-101.599c8.089-15.262%2C12.339-32.29%2C12.339-49.717c0-35.689-18.182-69.164-47.804-88.743V92.53%09%09%09%09c0-2.652-1.054-5.196-2.929-7.071l-82.529-82.53C254.083%2C1.054%2C251.54%2C0%2C248.888%2C0H24.371c-5.522%2C0-10%2C4.477-10%2C10v427.735%09%09%09%09c0%2C5.523%2C4.478%2C10%2C10%2C10h307.046c5.522%2C0%2C10-4.477%2C10-10v-37.722l92.825%2C92.825c5.908%2C5.908%2C13.764%2C9.162%2C22.119%2C9.162%09%09%09%09c8.356%2C0%2C16.212-3.254%2C22.12-9.162C490.678%2C480.642%2C490.678%2C460.797%2C478.482%2C448.601z M307.276%2C82.53h-48.387V34.143%09%09%09%09l24.193%2C24.193L307.276%2C82.53z M321.417%2C396.377v31.358H34.371V20h204.517v72.53c0%2C5.523%2C4.478%2C10%2C10%2C10h72.529v95.662%09%09%09%09l0.009%2C0.014c-12.214-4.741-25.275-7.215-38.499-7.215c-58.61%2C0-106.294%2C47.683-106.294%2C106.293s47.684%2C106.293%2C106.294%2C106.293%09%09%09%09c13.224%2C0%2C26.285-2.474%2C38.499-7.215L321.417%2C396.377z M328.948%2C370.291c-0.848%2C0.536-1.706%2C1.057-2.574%2C1.563%09%09%09%09c-13.131%2C7.67-28.154%2C11.724-43.446%2C11.724c-47.583%2C0-86.294-38.711-86.294-86.293c0-47.582%2C38.711-86.293%2C86.294-86.293%09%09%09%09c15.291%2C0%2C30.315%2C4.054%2C43.447%2C11.724c26.428%2C15.435%2C42.846%2C44.008%2C42.846%2C74.569c0%2C16.35-4.595%2C32.264-13.289%2C46.022%09%09%09%09C349.097%2C354.125%2C339.766%2C363.455%2C328.948%2C370.291z M464.339%2C478.696c-2.131%2C2.131-4.964%2C3.304-7.978%2C3.304%09%09%09%09c-3.014%2C0-5.847-1.173-7.977-3.304l-98.706-98.706l-0.008-0.001c5.856-4.74%2C11.221-10.104%2C15.961-15.96l0.001%2C0.008%09%09%09%09l98.707%2C98.707C468.737%2C467.142%2C468.737%2C474.298%2C464.339%2C478.696z%22%2F%3E%09%09%09%3Cpath d%3D%22M246.838%2C238.403c-20.641%2C12.674-32.964%2C34.686-32.964%2C58.882c0%2C5.523%2C4.478%2C10%2C10%2C10c5.522%2C0%2C10-4.477%2C10-10%09%09%09%09c0-17.19%2C8.759-32.83%2C23.429-41.838c4.707-2.89%2C6.179-9.048%2C3.289-13.754C257.702%2C236.986%2C251.544%2C235.513%2C246.838%2C238.403z%22%2F%3E%09%09%09%3Cpath d%3D%22M317.708%2C237.624c-10.52-6.145-22.547-9.392-34.781-9.392c-5.522%2C0-10%2C4.477-10%2C10s4.478%2C10%2C10%2C10%09%09%09%09c8.693%2C0%2C17.232%2C2.304%2C24.693%2C6.662c1.586%2C0.926%2C3.321%2C1.367%2C5.034%2C1.367c3.438%2C0%2C6.785-1.775%2C8.645-4.958%09%09%09%09C324.085%2C246.533%2C322.477%2C240.409%2C317.708%2C237.624z%22%2F%3E%09%09%3C%2Fg%3E%09%3C%2Fg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E\");\n background-size: 20px;\n background-repeat: no-repeat;\n background-position: center;\n}\n.jsoneditor-WMs15 .preview-button-vupuG:hover {\n border: 0;\n}\n.jsoneditor-WMs15 .preview-button-vupuG:disabled {\n opacity: 0.3;\n}\n\n.jsoneditor-WMs15 .edit-button-m6r3M {\n background-image: url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22iso-8859-1%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 16.0.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Capa_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 width%3D%22494.936px%22 height%3D%22494.936px%22 viewBox%3D%220 0 494.936 494.936%22 style%3D%22enable-background%3Anew 0 0 494.936 494.936%3B%22%09 xml%3Aspace%3D%22preserve%22 fill%3D%22%23fff%22%3E%3Cg%3E%09%3Cg%3E%09%09%3Cpath d%3D%22M389.844%2C182.85c-6.743%2C0-12.21%2C5.467-12.21%2C12.21v222.968c0%2C23.562-19.174%2C42.735-42.736%2C42.735H67.157%09%09%09c-23.562%2C0-42.736-19.174-42.736-42.735V150.285c0-23.562%2C19.174-42.735%2C42.736-42.735h267.741c6.743%2C0%2C12.21-5.467%2C12.21-12.21%09%09%09s-5.467-12.21-12.21-12.21H67.157C30.126%2C83.13%2C0%2C113.255%2C0%2C150.285v267.743c0%2C37.029%2C30.126%2C67.155%2C67.157%2C67.155h267.741%09%09%09c37.03%2C0%2C67.156-30.126%2C67.156-67.155V195.061C402.054%2C188.318%2C396.587%2C182.85%2C389.844%2C182.85z%22%2F%3E%09%09%3Cpath d%3D%22M483.876%2C20.791c-14.72-14.72-38.669-14.714-53.377%2C0L221.352%2C229.944c-0.28%2C0.28-3.434%2C3.559-4.251%2C5.396l-28.963%2C65.069%09%09%09c-2.057%2C4.619-1.056%2C10.027%2C2.521%2C13.6c2.337%2C2.336%2C5.461%2C3.576%2C8.639%2C3.576c1.675%2C0%2C3.362-0.346%2C4.96-1.057l65.07-28.963%09%09%09c1.83-0.815%2C5.114-3.97%2C5.396-4.25L483.876%2C74.169c7.131-7.131%2C11.06-16.61%2C11.06-26.692%09%09%09C494.936%2C37.396%2C491.007%2C27.915%2C483.876%2C20.791z M466.61%2C56.897L257.457%2C266.05c-0.035%2C0.036-0.055%2C0.078-0.089%2C0.107%09%09%09l-33.989%2C15.131L238.51%2C247.3c0.03-0.036%2C0.071-0.055%2C0.107-0.09L447.765%2C38.058c5.038-5.039%2C13.819-5.033%2C18.846%2C0.005%09%09%09c2.518%2C2.51%2C3.905%2C5.855%2C3.905%2C9.414C470.516%2C51.036%2C469.127%2C54.38%2C466.61%2C56.897z%22%2F%3E%09%3C%2Fg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E\");\n}\n";
27858
- styleInject(css_248z$R);
27857
+ var css_248z$S = ".jsoneditor-WMs15 .jsoneditor-menu .jsoneditor-transform {\n display: none;\n}\n.jsoneditor-WMs15 .jsoneditor-menu .jsoneditor-repair {\n display: none;\n}\n.jsoneditor-WMs15 .jsoneditor-menu .jsoneditor-poweredBy {\n display: none;\n}\n.jsoneditor-WMs15 .preview-9wK81 {\n background-color: #f19e34;\n}\n\n.jsoneditor-WMs15 .preview-button-vupuG {\n background-image: url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22iso-8859-1%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 19.0.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3Csvg version%3D%221.1%22 id%3D%22Layer_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 viewBox%3D%220 0 502 502%22 style%3D%22enable-background%3Anew 0 0 502 502%3B%22 xml%3Aspace%3D%22preserve%22 fill%3D%22%23fff%22%3E%3Cg%3E%09%3Cg%3E%09%09%3Cg%3E%09%09%09%3Cpath d%3D%22M478.482%2C448.601l-101.6-101.599c8.089-15.262%2C12.339-32.29%2C12.339-49.717c0-35.689-18.182-69.164-47.804-88.743V92.53%09%09%09%09c0-2.652-1.054-5.196-2.929-7.071l-82.529-82.53C254.083%2C1.054%2C251.54%2C0%2C248.888%2C0H24.371c-5.522%2C0-10%2C4.477-10%2C10v427.735%09%09%09%09c0%2C5.523%2C4.478%2C10%2C10%2C10h307.046c5.522%2C0%2C10-4.477%2C10-10v-37.722l92.825%2C92.825c5.908%2C5.908%2C13.764%2C9.162%2C22.119%2C9.162%09%09%09%09c8.356%2C0%2C16.212-3.254%2C22.12-9.162C490.678%2C480.642%2C490.678%2C460.797%2C478.482%2C448.601z M307.276%2C82.53h-48.387V34.143%09%09%09%09l24.193%2C24.193L307.276%2C82.53z M321.417%2C396.377v31.358H34.371V20h204.517v72.53c0%2C5.523%2C4.478%2C10%2C10%2C10h72.529v95.662%09%09%09%09l0.009%2C0.014c-12.214-4.741-25.275-7.215-38.499-7.215c-58.61%2C0-106.294%2C47.683-106.294%2C106.293s47.684%2C106.293%2C106.294%2C106.293%09%09%09%09c13.224%2C0%2C26.285-2.474%2C38.499-7.215L321.417%2C396.377z M328.948%2C370.291c-0.848%2C0.536-1.706%2C1.057-2.574%2C1.563%09%09%09%09c-13.131%2C7.67-28.154%2C11.724-43.446%2C11.724c-47.583%2C0-86.294-38.711-86.294-86.293c0-47.582%2C38.711-86.293%2C86.294-86.293%09%09%09%09c15.291%2C0%2C30.315%2C4.054%2C43.447%2C11.724c26.428%2C15.435%2C42.846%2C44.008%2C42.846%2C74.569c0%2C16.35-4.595%2C32.264-13.289%2C46.022%09%09%09%09C349.097%2C354.125%2C339.766%2C363.455%2C328.948%2C370.291z M464.339%2C478.696c-2.131%2C2.131-4.964%2C3.304-7.978%2C3.304%09%09%09%09c-3.014%2C0-5.847-1.173-7.977-3.304l-98.706-98.706l-0.008-0.001c5.856-4.74%2C11.221-10.104%2C15.961-15.96l0.001%2C0.008%09%09%09%09l98.707%2C98.707C468.737%2C467.142%2C468.737%2C474.298%2C464.339%2C478.696z%22%2F%3E%09%09%09%3Cpath d%3D%22M246.838%2C238.403c-20.641%2C12.674-32.964%2C34.686-32.964%2C58.882c0%2C5.523%2C4.478%2C10%2C10%2C10c5.522%2C0%2C10-4.477%2C10-10%09%09%09%09c0-17.19%2C8.759-32.83%2C23.429-41.838c4.707-2.89%2C6.179-9.048%2C3.289-13.754C257.702%2C236.986%2C251.544%2C235.513%2C246.838%2C238.403z%22%2F%3E%09%09%09%3Cpath d%3D%22M317.708%2C237.624c-10.52-6.145-22.547-9.392-34.781-9.392c-5.522%2C0-10%2C4.477-10%2C10s4.478%2C10%2C10%2C10%09%09%09%09c8.693%2C0%2C17.232%2C2.304%2C24.693%2C6.662c1.586%2C0.926%2C3.321%2C1.367%2C5.034%2C1.367c3.438%2C0%2C6.785-1.775%2C8.645-4.958%09%09%09%09C324.085%2C246.533%2C322.477%2C240.409%2C317.708%2C237.624z%22%2F%3E%09%09%3C%2Fg%3E%09%3C%2Fg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E\");\n background-size: 20px;\n background-repeat: no-repeat;\n background-position: center;\n}\n.jsoneditor-WMs15 .preview-button-vupuG:hover {\n border: 0;\n}\n.jsoneditor-WMs15 .preview-button-vupuG:disabled {\n opacity: 0.3;\n}\n\n.jsoneditor-WMs15 .edit-button-m6r3M {\n background-image: url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22iso-8859-1%22%3F%3E%3C!-- Generator%3A Adobe Illustrator 16.0.0%2C SVG Export Plug-In . SVG Version%3A 6.00 Build 0) --%3E%3C!DOCTYPE svg PUBLIC %22-%2F%2FW3C%2F%2FDTD SVG 1.1%2F%2FEN%22 %22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%3Csvg version%3D%221.1%22 id%3D%22Capa_1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 x%3D%220px%22 y%3D%220px%22%09 width%3D%22494.936px%22 height%3D%22494.936px%22 viewBox%3D%220 0 494.936 494.936%22 style%3D%22enable-background%3Anew 0 0 494.936 494.936%3B%22%09 xml%3Aspace%3D%22preserve%22 fill%3D%22%23fff%22%3E%3Cg%3E%09%3Cg%3E%09%09%3Cpath d%3D%22M389.844%2C182.85c-6.743%2C0-12.21%2C5.467-12.21%2C12.21v222.968c0%2C23.562-19.174%2C42.735-42.736%2C42.735H67.157%09%09%09c-23.562%2C0-42.736-19.174-42.736-42.735V150.285c0-23.562%2C19.174-42.735%2C42.736-42.735h267.741c6.743%2C0%2C12.21-5.467%2C12.21-12.21%09%09%09s-5.467-12.21-12.21-12.21H67.157C30.126%2C83.13%2C0%2C113.255%2C0%2C150.285v267.743c0%2C37.029%2C30.126%2C67.155%2C67.157%2C67.155h267.741%09%09%09c37.03%2C0%2C67.156-30.126%2C67.156-67.155V195.061C402.054%2C188.318%2C396.587%2C182.85%2C389.844%2C182.85z%22%2F%3E%09%09%3Cpath d%3D%22M483.876%2C20.791c-14.72-14.72-38.669-14.714-53.377%2C0L221.352%2C229.944c-0.28%2C0.28-3.434%2C3.559-4.251%2C5.396l-28.963%2C65.069%09%09%09c-2.057%2C4.619-1.056%2C10.027%2C2.521%2C13.6c2.337%2C2.336%2C5.461%2C3.576%2C8.639%2C3.576c1.675%2C0%2C3.362-0.346%2C4.96-1.057l65.07-28.963%09%09%09c1.83-0.815%2C5.114-3.97%2C5.396-4.25L483.876%2C74.169c7.131-7.131%2C11.06-16.61%2C11.06-26.692%09%09%09C494.936%2C37.396%2C491.007%2C27.915%2C483.876%2C20.791z M466.61%2C56.897L257.457%2C266.05c-0.035%2C0.036-0.055%2C0.078-0.089%2C0.107%09%09%09l-33.989%2C15.131L238.51%2C247.3c0.03-0.036%2C0.071-0.055%2C0.107-0.09L447.765%2C38.058c5.038-5.039%2C13.819-5.033%2C18.846%2C0.005%09%09%09c2.518%2C2.51%2C3.905%2C5.855%2C3.905%2C9.414C470.516%2C51.036%2C469.127%2C54.38%2C466.61%2C56.897z%22%2F%3E%09%3C%2Fg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3Cg%3E%3C%2Fg%3E%3C%2Fsvg%3E\");\n}\n";
27858
+ styleInject(css_248z$S);
27859
27859
 
27860
27860
  var JsonEditor = function JsonEditor(_ref, ref) {
27861
27861
  var id = _ref.id,
@@ -28634,13 +28634,13 @@ function reducer(state, action) {
28634
28634
 
28635
28635
  var grid$1 = "grid-sGemi";
28636
28636
  var textWrapper = "text-wrapper-xsPXE";
28637
- var css_248z$Q = ".grid-sGemi {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\n grid-auto-rows: min-content;\n grid-gap: 10px;\n}\n\n.text-wrapper-xsPXE {\n display: flex;\n justify-content: space-around;\n align-items: center;\n}\n";
28638
- styleInject(css_248z$Q);
28637
+ var css_248z$R = ".grid-sGemi {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\n grid-auto-rows: min-content;\n grid-gap: 10px;\n}\n\n.text-wrapper-xsPXE {\n display: flex;\n justify-content: space-around;\n align-items: center;\n}\n";
28638
+ styleInject(css_248z$R);
28639
28639
 
28640
28640
  var wrapper$5 = "wrapper-p-gR3";
28641
28641
  var container$7 = "container-DoZqe";
28642
- var css_248z$P = ".wrapper-p-gR3 {\n background: #ececec;\n}\n\n.container-DoZqe {\n display: flex;\n justify-content: space-between;\n}\n";
28643
- styleInject(css_248z$P);
28642
+ var css_248z$Q = ".wrapper-p-gR3 {\n background: #ececec;\n}\n\n.container-DoZqe {\n display: flex;\n justify-content: space-between;\n}\n";
28643
+ styleInject(css_248z$Q);
28644
28644
 
28645
28645
  var ToolTipInfo = function ToolTipInfo(props) {
28646
28646
  var _useTranslation = useTranslation(),
@@ -28935,8 +28935,8 @@ var useMediaUpload = function useMediaUpload(_ref) {
28935
28935
  var small = "small-NY1-k";
28936
28936
  var medium = "medium---QcO";
28937
28937
  var big = "big--E39S";
28938
- var css_248z$O = ".diva-component-DIVA_BACKOFFICE_NEW .ant-upload-wrapper {\n width: 100%;\n height: 100%;\n}\n\n.diva-component-DIVA_BACKOFFICE_NEW .ant-spin-nested-loading {\n width: 100%;\n height: 100%;\n}\n.diva-component-DIVA_BACKOFFICE_NEW .ant-table-wrapper, .diva-component-DIVA_BACKOFFICE_NEW .ant-table {\n height: inherit;\n overflow: auto;\n}\n\n.diva-component-DIVA_BACKOFFICE_NEW .ant-drawer-body .ant-spin-nested-loading {\n width: 100%;\n height: 80%;\n}\n\n.diva-component-DIVA_BACKOFFICE_NEW .ant-spin-container {\n width: 100%;\n height: 100%;\n}\n\n.diva-component-DIVA_BACKOFFICE_NEW .andt-table .ant-spin-container {\n display: flex;\n flex-direction: column;\n}\n\n.diva-component-DIVA_BACKOFFICE_NEW .ant-space-item .andt-table .ant-spin-container {\n height: calc(60vh - 90px);\n}\n\n.diva-component-DIVA_BACKOFFICE_NEW .andt-table .ant-table-container {\n height: calc(100% - 80px);\n}\n.diva-component-DIVA_BACKOFFICE_NEW .ant-upload-list {\n width: 100%;\n height: 100%;\n}\n\n.diva-component-DIVA_BACKOFFICE_NEW .ant-upload-list-item-container {\n width: 100% !important;\n height: 100% !important;\n}\n\n.diva-component-DIVA_BACKOFFICE_NEW .ant-upload-select {\n width: 100% !important;\n height: 100% !important;\n}\n\n.diva-component-DIVA_BACKOFFICE_NEW .small-NY1-k {\n width: 104px;\n height: 104px;\n}\n\n.diva-component-DIVA_BACKOFFICE_NEW .medium---QcO {\n width: 200px;\n height: 200px;\n}\n\n.diva-component-DIVA_BACKOFFICE_NEW .big--E39S {\n width: 400px;\n height: 400px;\n}\n";
28939
- styleInject(css_248z$O);
28938
+ var css_248z$P = ".diva-component-DIVA_BACKOFFICE_NEW .ant-upload-wrapper {\n width: 100%;\n height: 100%;\n}\n\n.diva-component-DIVA_BACKOFFICE_NEW .ant-spin-nested-loading {\n width: 100%;\n height: 100%;\n}\n.diva-component-DIVA_BACKOFFICE_NEW .ant-table-wrapper, .diva-component-DIVA_BACKOFFICE_NEW .ant-table {\n height: inherit;\n overflow: auto;\n}\n\n.diva-component-DIVA_BACKOFFICE_NEW .ant-drawer-body .ant-spin-nested-loading {\n width: 100%;\n height: 80%;\n}\n\n.diva-component-DIVA_BACKOFFICE_NEW .ant-spin-container {\n width: 100%;\n height: 100%;\n}\n\n.diva-component-DIVA_BACKOFFICE_NEW .andt-table .ant-spin-container {\n display: flex;\n flex-direction: column;\n}\n\n.diva-component-DIVA_BACKOFFICE_NEW .ant-space-item .andt-table .ant-spin-container {\n height: calc(60vh - 90px);\n}\n\n.diva-component-DIVA_BACKOFFICE_NEW .andt-table .ant-table-container {\n height: calc(100% - 80px);\n}\n.diva-component-DIVA_BACKOFFICE_NEW .ant-upload-list {\n width: 100%;\n height: 100%;\n}\n\n.diva-component-DIVA_BACKOFFICE_NEW .ant-upload-list-item-container {\n width: 100% !important;\n height: 100% !important;\n}\n\n.diva-component-DIVA_BACKOFFICE_NEW .ant-upload-select {\n width: 100% !important;\n height: 100% !important;\n}\n\n.diva-component-DIVA_BACKOFFICE_NEW .small-NY1-k {\n width: 104px;\n height: 104px;\n}\n\n.diva-component-DIVA_BACKOFFICE_NEW .medium---QcO {\n width: 200px;\n height: 200px;\n}\n\n.diva-component-DIVA_BACKOFFICE_NEW .big--E39S {\n width: 400px;\n height: 400px;\n}\n";
28939
+ styleInject(css_248z$P);
28940
28940
 
28941
28941
  var MediaUpload = observer(function (_ref) {
28942
28942
  var id = _ref.id;
@@ -29077,8 +29077,8 @@ var checkbox = "checkbox-H7R-w";
29077
29077
  var editableCellValueWrap = "editable-cell-value-wrap-ugTs4";
29078
29078
  var contentWidth = "content-width-hGyVI";
29079
29079
  var tableLoadingSpin = "table-loading-spin-QjnC-";
29080
- var css_248z$N = ".checkbox-readonly-0-bzT {\n cursor: default;\n}\n\n.checkbox-readonly-0-bzT .ant-checkbox-input {\n cursor: default;\n}\n\n.checkbox-readonly-0-bzT .ant-checkbox {\n cursor: default;\n}\n\n.editable-row-9BEHi:hover .checkbox-H7R-w .ant-checkbox {\n box-shadow: 0 0 5px rgba(0, 0, 0, 0.6);\n}\n\n.editable-cell-value-wrap-ugTs4 {\n padding: 5px 12px;\n cursor: pointer;\n}\n\n.editable-row-9BEHi:hover .editable-cell-value-wrap-ugTs4 {\n padding: 4px 11px;\n border: 1px solid #d9d9d9;\n border-radius: 4px;\n}\n\n.content-width-hGyVI .ant-modal-confirm-content {\n width: 100%;\n}\n\n.ant-select {\n display: inline-flex !important;\n}\n\n/* Fix for antd Table extra column on Windows */\n/* workarround for https://github.com/ant-design/ant-design/issues/55633, if resolved try to remove this */\n.ant-table-cell-scrollbar:not(.ant-table-cell-fix-right) {\n display: none !important;\n}\n\n.table-loading-spin-QjnC- {\n overflow: auto;\n height: 100%;\n}\n";
29081
- styleInject(css_248z$N);
29080
+ var css_248z$O = ".checkbox-readonly-0-bzT {\n cursor: default;\n}\n\n.checkbox-readonly-0-bzT .ant-checkbox-input {\n cursor: default;\n}\n\n.checkbox-readonly-0-bzT .ant-checkbox {\n cursor: default;\n}\n\n.editable-row-9BEHi:hover .checkbox-H7R-w .ant-checkbox {\n box-shadow: 0 0 5px rgba(0, 0, 0, 0.6);\n}\n\n.editable-cell-value-wrap-ugTs4 {\n padding: 5px 12px;\n cursor: pointer;\n}\n\n.editable-row-9BEHi:hover .editable-cell-value-wrap-ugTs4 {\n padding: 4px 11px;\n border: 1px solid #d9d9d9;\n border-radius: 4px;\n}\n\n.content-width-hGyVI .ant-modal-confirm-content {\n width: 100%;\n}\n\n.ant-select {\n display: inline-flex !important;\n}\n\n/* Fix for antd Table extra column on Windows */\n/* workarround for https://github.com/ant-design/ant-design/issues/55633, if resolved try to remove this */\n.ant-table-cell-scrollbar:not(.ant-table-cell-fix-right) {\n display: none !important;\n}\n\n.table-loading-spin-QjnC- {\n overflow: auto;\n height: 100%;\n}\n";
29081
+ styleInject(css_248z$O);
29082
29082
 
29083
29083
  function BooleanCell (_ref) {
29084
29084
  var children = _ref.children,
@@ -30220,8 +30220,8 @@ function useAGHistogram (_ref) {
30220
30220
  var container$6 = "container-2r-OJ";
30221
30221
  var column1 = "column1-9viTK";
30222
30222
  var spinner = "spinner-00VcK";
30223
- var css_248z$M = ".container-2r-OJ {\n display: flex;\n gap: 40px; /* Distribute the columns evenly */\n}\n\n.column-yZ2Qc {\n padding: 10px;\n}\n\n.column1-9viTK .column-yZ2Qc {\n flex: 8;\n}\n\n.column2-pCnEz .column-yZ2Qc {\n flex: 1;\n}\n\n.column3-QZDVv .column-yZ2Qc {\n flex: 3;\n}\n\n.spinner-00VcK {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n";
30224
- styleInject(css_248z$M);
30223
+ var css_248z$N = ".container-2r-OJ {\n display: flex;\n gap: 40px; /* Distribute the columns evenly */\n}\n\n.column-yZ2Qc {\n padding: 10px;\n}\n\n.column1-9viTK .column-yZ2Qc {\n flex: 8;\n}\n\n.column2-pCnEz .column-yZ2Qc {\n flex: 1;\n}\n\n.column3-QZDVv .column-yZ2Qc {\n flex: 3;\n}\n\n.spinner-00VcK {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n";
30224
+ styleInject(css_248z$N);
30225
30225
 
30226
30226
  var Panel$1 = Collapse.Panel;
30227
30227
  function AGHistogram (_ref) {
@@ -33659,8 +33659,8 @@ var loader = "loader-LaXZy";
33659
33659
  var flex = "flex-yQdda";
33660
33660
  var bar = "bar-Y663f";
33661
33661
  var value = "value-FCA-6";
33662
- var css_248z$L = ".overlay-lm0tm {\n position: absolute;\n z-index: 1;\n background-color: rgba(247,247,247,0.45882);\n height: 60vh;\n width: 100%;\n}\n.loader-LaXZy {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 50px;\n height: 50px;\n border: 3px solid rgba(0, 0, 0, 0.3);\n border-radius: 50%;\n border-top-color: #fff;\n animation: spin-qUdpu 1s ease-in-out infinite;\n -webkit-animation: spin-qUdpu 1s ease-in-out infinite;\n}\n.flex-yQdda {\n display: flex;\n}\n\n.bar-Y663f {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 100%;\n margin-top: 7%;\n}\n\n.value-FCA-6 {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: -moz-fit-content;\n width: fit-content;\n}\n@keyframes spin-qUdpu {\n to {\n -webkit-transform: rotate(360deg);\n }\n}\n";
33663
- styleInject(css_248z$L);
33662
+ var css_248z$M = ".overlay-lm0tm {\n position: absolute;\n z-index: 1;\n background-color: rgba(247,247,247,0.45882);\n height: 60vh;\n width: 100%;\n}\n.loader-LaXZy {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 50px;\n height: 50px;\n border: 3px solid rgba(0, 0, 0, 0.3);\n border-radius: 50%;\n border-top-color: #fff;\n animation: spin-qUdpu 1s ease-in-out infinite;\n -webkit-animation: spin-qUdpu 1s ease-in-out infinite;\n}\n.flex-yQdda {\n display: flex;\n}\n\n.bar-Y663f {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 100%;\n margin-top: 7%;\n}\n\n.value-FCA-6 {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: -moz-fit-content;\n width: fit-content;\n}\n@keyframes spin-qUdpu {\n to {\n -webkit-transform: rotate(360deg);\n }\n}\n";
33663
+ styleInject(css_248z$M);
33664
33664
 
33665
33665
  function ownKeys$1m(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
33666
33666
  function _objectSpread$1m(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1m(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1m(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -34606,8 +34606,8 @@ var supplier = "supplier-8sm0I";
34606
34606
  var dealer = "dealer-xgnku";
34607
34607
  var association = "association-b8uVW";
34608
34608
  var campaign = "campaign-zlrTx";
34609
- var css_248z$K = ".label-rYNbb {\n width: 225px;\n background-color: #fff;\n cursor: pointer;\n padding: 10px 15px;\n border-radius: 5px;\n display: flex;\n gap: 12px;\n flex-direction: column;\n font-weight: 500;\n}\n\n.not-clickable-wHc5V {\n cursor: inherit;\n color: grey;\n}\n\n.selected-34dYg {\n font-weight: 630;\n}\n\n.description-iFui2 {\n font-weight: 300;\n font-size: small;\n margin-top: -8px;\n}\n\n.diva-component-DIVA_BACKOFFICE_NEW .org-tree-node-label .org-tree-node-label-inner {\n padding: 0;\n padding: initial;\n}\n\n.darkmode .org-tree-container {\n background-color: rgb(20, 20, 20);\n}\n\n.org-tree-container .org-tree-node-label .ant-btn-default:disabled, .org-tree-container .org-tree-node-label .ant-btn-primary:disabled {\n border-color: #d9d9d9;\n color: rgba(0, 0, 0, 0.25);\n background-color: rgba(0, 0, 0, 0.04);\n}\n\n.retailer-YNzAh {\n border-bottom: #81c784 solid 5px;\n}\n\n.retailer-child-5ll0K {\n border-bottom: #c8e6c9 solid 5px;\n}\n\n.supplier-8sm0I {\n border-bottom: #ba68c8 solid 5px;\n}\n\n.dealer-xgnku {\n border-bottom: #e1bee7 solid 5px;\n}\n\n.association-b8uVW {\n border-bottom: #fff176 solid 5px;\n}\n\n.campaign-zlrTx {\n border-bottom: #64b5f6 solid 5px;\n}\n";
34610
- styleInject(css_248z$K);
34609
+ var css_248z$L = ".label-rYNbb {\n width: 225px;\n background-color: #fff;\n cursor: pointer;\n padding: 10px 15px;\n border-radius: 5px;\n display: flex;\n gap: 12px;\n flex-direction: column;\n font-weight: 500;\n}\n\n.not-clickable-wHc5V {\n cursor: inherit;\n color: grey;\n}\n\n.selected-34dYg {\n font-weight: 630;\n}\n\n.description-iFui2 {\n font-weight: 300;\n font-size: small;\n margin-top: -8px;\n}\n\n.diva-component-DIVA_BACKOFFICE_NEW .org-tree-node-label .org-tree-node-label-inner {\n padding: 0;\n padding: initial;\n}\n\n.darkmode .org-tree-container {\n background-color: rgb(20, 20, 20);\n}\n\n.org-tree-container .org-tree-node-label .ant-btn-default:disabled, .org-tree-container .org-tree-node-label .ant-btn-primary:disabled {\n border-color: #d9d9d9;\n color: rgba(0, 0, 0, 0.25);\n background-color: rgba(0, 0, 0, 0.04);\n}\n\n.retailer-YNzAh {\n border-bottom: #81c784 solid 5px;\n}\n\n.retailer-child-5ll0K {\n border-bottom: #c8e6c9 solid 5px;\n}\n\n.supplier-8sm0I {\n border-bottom: #ba68c8 solid 5px;\n}\n\n.dealer-xgnku {\n border-bottom: #e1bee7 solid 5px;\n}\n\n.association-b8uVW {\n border-bottom: #fff176 solid 5px;\n}\n\n.campaign-zlrTx {\n border-bottom: #64b5f6 solid 5px;\n}\n";
34610
+ styleInject(css_248z$L);
34611
34611
 
34612
34612
  function getColorClass(data) {
34613
34613
  switch (data.type) {
@@ -34842,8 +34842,8 @@ var arrow = "arrow-Rd0hp";
34842
34842
  var openClass = "open-class--gGXs";
34843
34843
  var breadcrumb = "breadcrumb-Z0VvH";
34844
34844
  var selected = "selected-w-sfW";
34845
- var css_248z$J = ".trigger-wrapper-OkPRc {\n width: 100%;\n padding: 12px 0px;\n display: flex;\n gap: 32px;\n}\n\n.arrow-Rd0hp {\n background-image: url(\"data:image/svg+xml,%3Csvg width%3D%228%22 height%3D%2213%22 viewBox%3D%220 0 8 13%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E %3Cpath d%3D%22M0.947266 1.14893L6.94727 6.29178L0.947266 11.9489%22 stroke%3D%22%236F6F6F%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E %3C%2Fsvg%3E\");\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n transform: rotateZ(0deg);\n transition: all 0.35s ease;\n width: 20.8px;\n height: 22.4px;\n cursor: pointer;\n}\n\n.open-class--gGXs {\n transform: rotateZ(90deg);\n}\n\n.breadcrumb-Z0VvH {\n transition: color 0.3s;\n}\n.breadcrumb-Z0VvH:hover:not(.selected-w-sfW) {\n cursor: pointer;\n color: #000;\n}\n\n.selected-w-sfW {\n color: #000;\n font-weight: 400;\n}\n\n.selected-w-sfW {\n color: #000;\n font-weight: 400;\n}\n\n.disabled-0nado {\n pointer-events: none;\n color: lightgray;\n}\n\n.darkmode .selected-w-sfW {\n color: #fff;\n font-weight: 400;\n}\n";
34846
- styleInject(css_248z$J);
34845
+ var css_248z$K = ".trigger-wrapper-OkPRc {\n width: 100%;\n padding: 12px 0px;\n display: flex;\n gap: 32px;\n}\n\n.arrow-Rd0hp {\n background-image: url(\"data:image/svg+xml,%3Csvg width%3D%228%22 height%3D%2213%22 viewBox%3D%220 0 8 13%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E %3Cpath d%3D%22M0.947266 1.14893L6.94727 6.29178L0.947266 11.9489%22 stroke%3D%22%236F6F6F%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E %3C%2Fsvg%3E\");\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n transform: rotateZ(0deg);\n transition: all 0.35s ease;\n width: 20.8px;\n height: 22.4px;\n cursor: pointer;\n}\n\n.open-class--gGXs {\n transform: rotateZ(90deg);\n}\n\n.breadcrumb-Z0VvH {\n transition: color 0.3s;\n}\n.breadcrumb-Z0VvH:hover:not(.selected-w-sfW) {\n cursor: pointer;\n color: #000;\n}\n\n.selected-w-sfW {\n color: #000;\n font-weight: 400;\n}\n\n.selected-w-sfW {\n color: #000;\n font-weight: 400;\n}\n\n.disabled-0nado {\n pointer-events: none;\n color: lightgray;\n}\n\n.darkmode .selected-w-sfW {\n color: #fff;\n font-weight: 400;\n}\n";
34846
+ styleInject(css_248z$K);
34847
34847
 
34848
34848
  var BreadCrumbsTrigger = function BreadCrumbsTrigger(_ref) {
34849
34849
  var open = _ref.open,
@@ -34876,8 +34876,8 @@ var BreadCrumbsTrigger = function BreadCrumbsTrigger(_ref) {
34876
34876
 
34877
34877
  var collapsibleInner = "collapsible-inner-rI8kI";
34878
34878
  var toolbarLeft = "toolbar-left-X9WRo";
34879
- var css_248z$I = ".collapsible-inner-rI8kI {\n overflow: auto;\n padding: 32px 0;\n position: relative;\n}\n\n.toolbar-left-X9WRo {\n position: absolute;\n right: 22px;\n top: 10px;\n display: flex;\n gap: 10px;\n}\n";
34880
- styleInject(css_248z$I);
34879
+ var css_248z$J = ".collapsible-inner-rI8kI {\n overflow: auto;\n padding: 32px 0;\n position: relative;\n}\n\n.toolbar-left-X9WRo {\n position: absolute;\n right: 22px;\n top: 10px;\n display: flex;\n gap: 10px;\n}\n";
34880
+ styleInject(css_248z$J);
34881
34881
 
34882
34882
  var Legend = function Legend(props) {
34883
34883
  return /*#__PURE__*/jsx(List$1, {
@@ -34931,8 +34931,8 @@ var Legend = function Legend(props) {
34931
34931
  var buttonsWrapper = "buttons-wrapper-Bubkr";
34932
34932
  var mask = "mask-ssagp";
34933
34933
  var transformWrapper = "transform-wrapper--8t0v";
34934
- var css_248z$H = ".buttons-wrapper-Bubkr {\n display: flex;\n gap: 6px;\n}\n\n.buttons-wrapper-Bubkr button {\n min-width: 24px;\n}\n\n.mask-ssagp {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.45);\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n -webkit-backdrop-filter: blur(3px);\n backdrop-filter: blur(3px);\n}\n.mask-ssagp p {\n font-size: 18px;\n font-weight: bold;\n background: rgba(255, 255, 255, 0.4);\n padding: 10px;\n border-radius: 5px;\n}\n\n.transform-wrapper--8t0v .ant-modal-mask,\n.transform-wrapper--8t0v .ant-modal-wrap {\n position: absolute;\n}\n";
34935
- styleInject(css_248z$H);
34934
+ var css_248z$I = ".buttons-wrapper-Bubkr {\n display: flex;\n gap: 6px;\n}\n\n.buttons-wrapper-Bubkr button {\n min-width: 24px;\n}\n\n.mask-ssagp {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.45);\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n -webkit-backdrop-filter: blur(3px);\n backdrop-filter: blur(3px);\n}\n.mask-ssagp p {\n font-size: 18px;\n font-weight: bold;\n background: rgba(255, 255, 255, 0.4);\n padding: 10px;\n border-radius: 5px;\n}\n\n.transform-wrapper--8t0v .ant-modal-mask,\n.transform-wrapper--8t0v .ant-modal-wrap {\n position: absolute;\n}\n";
34935
+ styleInject(css_248z$I);
34936
34936
 
34937
34937
  var ZoomWrapper = function ZoomWrapper(_ref) {
34938
34938
  var _children = _ref.children,
@@ -38606,8 +38606,8 @@ function createTranslatedColumnConfig(field, headerName, languages) {
38606
38606
  }
38607
38607
 
38608
38608
  var rowInherited = "rowInherited-Mszxm";
38609
- var css_248z$G = ".rowInherited-Mszxm {\n opacity: 0.6;\n}\n";
38610
- styleInject(css_248z$G);
38609
+ var css_248z$H = ".rowInherited-Mszxm {\n opacity: 0.6;\n}\n";
38610
+ styleInject(css_248z$H);
38611
38611
 
38612
38612
  var TableTabGroups = observer(function () {
38613
38613
  var _useTranslation = useTranslation(),
@@ -40802,8 +40802,8 @@ var space = "space-T5Mkd";
40802
40802
  var input$1 = "input-SK-Fo";
40803
40803
  var addButton$1 = "addButton-AVN8Y";
40804
40804
  var helpText = "helpText-QYQQF";
40805
- var css_248z$F = ".cell-Noc7s {\n min-width: 50px;\n height: 100%;\n}\n\n.typeSelector-Y8Yly {\n margin-bottom: 16px;\n}\n\n.space-T5Mkd {\n width: 100%;\n}\n\n.input-SK-Fo {\n width: 120px;\n}\n\n.addButton-AVN8Y {\n margin-top: 16px;\n text-align: right;\n}\n\n.helpText-QYQQF {\n margin-top: 8px;\n font-size: 12px;\n color: #666;\n}\n";
40806
- styleInject(css_248z$F);
40805
+ var css_248z$G = ".cell-Noc7s {\n min-width: 50px;\n height: 100%;\n}\n\n.typeSelector-Y8Yly {\n margin-bottom: 16px;\n}\n\n.space-T5Mkd {\n width: 100%;\n}\n\n.input-SK-Fo {\n width: 120px;\n}\n\n.addButton-AVN8Y {\n margin-top: 16px;\n text-align: right;\n}\n\n.helpText-QYQQF {\n margin-top: 8px;\n font-size: 12px;\n color: #666;\n}\n";
40806
+ styleInject(css_248z$G);
40807
40807
 
40808
40808
  function PriceFactorCellRenderer(props) {
40809
40809
  var data = props.data,
@@ -41019,8 +41019,8 @@ var difference = "difference-xT9ZP";
41019
41019
  var differencePositive = "differencePositive-hGhZO";
41020
41020
  var differenceNegative = "differenceNegative-3CEZA";
41021
41021
  var differenceNeutral = "differenceNeutral-wx8oE";
41022
- var css_248z$E = ".container-T4Tzz {\n display: flex;\n align-items: center;\n}\n\n.price-NjOOy {\n font-weight: normal;\n}\n\n.priceManual-i7wtQ {\n font-weight: bold;\n}\n\n.originalPrice-V8MP5 {\n color: #8c8c8c;\n margin: 0 8px;\n}\n\n.difference-xT9ZP {\n margin-left: 8px;\n}\n\n.differencePositive-hGhZO {\n color: #52c41a;\n}\n\n.differenceNegative-3CEZA {\n color: #ff4d4f;\n}\n\n.differenceNeutral-wx8oE {\n color: inherit;\n}\n";
41023
- styleInject(css_248z$E);
41022
+ var css_248z$F = ".container-T4Tzz {\n display: flex;\n align-items: center;\n}\n\n.price-NjOOy {\n font-weight: normal;\n}\n\n.priceManual-i7wtQ {\n font-weight: bold;\n}\n\n.originalPrice-V8MP5 {\n color: #8c8c8c;\n margin: 0 8px;\n}\n\n.difference-xT9ZP {\n margin-left: 8px;\n}\n\n.differencePositive-hGhZO {\n color: #52c41a;\n}\n\n.differenceNegative-3CEZA {\n color: #ff4d4f;\n}\n\n.differenceNeutral-wx8oE {\n color: inherit;\n}\n";
41023
+ styleInject(css_248z$F);
41024
41024
 
41025
41025
  function PriceDisplayCellRenderer(props) {
41026
41026
  var _data$origPrices, _data$manualPrices, _currentPrice$toFixed, _origPrice$toFixed;
@@ -41130,8 +41130,8 @@ function getPriceFeatureGroups(selectedSerie, language) {
41130
41130
 
41131
41131
  var input = "input-leHam";
41132
41132
  var disabled$1 = "disabled-Llkqu";
41133
- var css_248z$D = ".input-leHam {\n position: relative;\n width: 200px;\n height: 32px;\n border: 1px solid #d9d9d9;\n background: #ffffff;\n padding: 0 11px;\n border-radius: 6px;\n font-size: 14px;\n line-height: 30px;\n cursor: pointer;\n}\n\n.darkmode .input-leHam {\n background: #141414;\n border: 1px solid #424242;\n}\n\n.input-leHam.disabled-Llkqu {\n cursor: default;\n color: rgba(0, 0, 0, 0.25);\n}\n\n.darkmode .input-leHam.disabled-Llkqu {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.input-leHam:hover {\n border-color: #4096ff;\n}\n";
41134
- styleInject(css_248z$D);
41133
+ var css_248z$E = ".input-leHam {\n position: relative;\n width: 200px;\n height: 32px;\n border: 1px solid #d9d9d9;\n background: #ffffff;\n padding: 0 11px;\n border-radius: 6px;\n font-size: 14px;\n line-height: 30px;\n cursor: pointer;\n}\n\n.darkmode .input-leHam {\n background: #141414;\n border: 1px solid #424242;\n}\n\n.input-leHam.disabled-Llkqu {\n cursor: default;\n color: rgba(0, 0, 0, 0.25);\n}\n\n.darkmode .input-leHam.disabled-Llkqu {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.input-leHam:hover {\n border-color: #4096ff;\n}\n";
41134
+ styleInject(css_248z$E);
41135
41135
 
41136
41136
  var _excluded$8 = ["onSave", "value"];
41137
41137
  function ownKeys$17(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -41165,8 +41165,8 @@ function PriceFactorInput(_ref) {
41165
41165
 
41166
41166
  var inputHeader = "input-header--4KDP";
41167
41167
  var factorInput = "factor-input-MX85Z";
41168
- var css_248z$C = ".input-header--4KDP .ag-header-cell-text {\n width: 100%;\n}\n\n.input-header--4KDP .ag-header-group-cell-label {\n width: 100%;\n max-width: 250px;\n}\n\n.input-header--4KDP .ag-header-group-text {\n width: 100%;\n}\n\n.factor-input-MX85Z {\n min-height: 0;\n flex: 1;\n}\n\n.factor-input-MX85Z .price-factor-input {\n width: 100%;\n background-color: var(--ag-input-background-color);\n border: var(--ag-input-border);\n border-radius: var(--ag-input-border-radius);\n color: var(--ag-input-text-color);\n height: var(--ag-input-height);\n line-height: var(--ag-input-height);\n font-size: var(--ag-font-size);\n}\n\n.factor-input-MX85Z .price-factor-input:hover {\n border-color: #4096ff;\n}\n";
41169
- styleInject(css_248z$C);
41168
+ var css_248z$D = ".input-header--4KDP .ag-header-cell-text {\n width: 100%;\n}\n\n.input-header--4KDP .ag-header-group-cell-label {\n width: 100%;\n max-width: 250px;\n}\n\n.input-header--4KDP .ag-header-group-text {\n width: 100%;\n}\n\n.factor-input-MX85Z {\n min-height: 0;\n flex: 1;\n}\n\n.factor-input-MX85Z .price-factor-input {\n width: 100%;\n background-color: var(--ag-input-background-color);\n border: var(--ag-input-border);\n border-radius: var(--ag-input-border-radius);\n color: var(--ag-input-text-color);\n height: var(--ag-input-height);\n line-height: var(--ag-input-height);\n font-size: var(--ag-font-size);\n}\n\n.factor-input-MX85Z .price-factor-input:hover {\n border-color: #4096ff;\n}\n";
41169
+ styleInject(css_248z$D);
41170
41170
 
41171
41171
  function PriceFactorHeaderComponent(_ref) {
41172
41172
  var onSave = _ref.onSave,
@@ -41207,8 +41207,8 @@ function PriceFactorHeaderComponent(_ref) {
41207
41207
 
41208
41208
  var root$d = "root-SA2Dd";
41209
41209
  var contentWrapper$1 = "content-wrapper-KSvuc";
41210
- var css_248z$B = ".root-SA2Dd {\n display: flex;\n flex-direction: column;\n height: 50px;\n justify-content: flex-end;\n font-size: 12px;\n}\n\n.content-wrapper-KSvuc {\n height: 34px;\n display: flex;\n align-items: center;\n}\n";
41211
- styleInject(css_248z$B);
41210
+ var css_248z$C = ".root-SA2Dd {\n display: flex;\n flex-direction: column;\n height: 50px;\n justify-content: flex-end;\n font-size: 12px;\n}\n\n.content-wrapper-KSvuc {\n height: 34px;\n display: flex;\n align-items: center;\n}\n";
41211
+ styleInject(css_248z$C);
41212
41212
 
41213
41213
  function Setting(_ref) {
41214
41214
  var title = _ref.title,
@@ -41346,8 +41346,8 @@ function Input(_ref) {
41346
41346
  }
41347
41347
 
41348
41348
  var uploadDraggerWrapper = "upload-dragger-wrapper-xZiDJ";
41349
- var css_248z$A = ".upload-dragger-wrapper-xZiDJ {\n min-height: 220px;\n}\n";
41350
- styleInject(css_248z$A);
41349
+ var css_248z$B = ".upload-dragger-wrapper-xZiDJ {\n min-height: 220px;\n}\n";
41350
+ styleInject(css_248z$B);
41351
41351
 
41352
41352
  function ownKeys$13(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
41353
41353
  function _objectSpread$13(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$13(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$13(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -41689,8 +41689,8 @@ var uploadModalFooter = "upload-modal-footer-W5737";
41689
41689
  var uploadButton = "upload-button-QkWYP";
41690
41690
  var errorGroup = "error-group-lmQSx";
41691
41691
  var errorItem = "error-item-kyNLD";
41692
- var css_248z$z = ".upload-modal-footer-W5737 {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: 10px;\n}\n\n.upload-modal-footer-W5737 > .upload-button-QkWYP {\n width: 300px;\n}\n\n.error-group-lmQSx {\n margin-bottom: 8px;\n}\n\n.error-item-kyNLD {\n padding: 4px 0;\n display: flex;\n align-items: flex-start;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.row-index-jmU3D {\n font-weight: 600;\n margin-right: 8px;\n}\n";
41693
- styleInject(css_248z$z);
41692
+ var css_248z$A = ".upload-modal-footer-W5737 {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: 10px;\n}\n\n.upload-modal-footer-W5737 > .upload-button-QkWYP {\n width: 300px;\n}\n\n.error-group-lmQSx {\n margin-bottom: 8px;\n}\n\n.error-item-kyNLD {\n padding: 4px 0;\n display: flex;\n align-items: flex-start;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.row-index-jmU3D {\n font-weight: 600;\n margin-right: 8px;\n}\n";
41693
+ styleInject(css_248z$A);
41694
41694
 
41695
41695
  /**
41696
41696
  * Custom hook for managing upload modal state and functionality
@@ -45934,8 +45934,8 @@ var placeholder = "placeholder-ixWml";
45934
45934
  var cellContent = "cell-content--LnOb";
45935
45935
  var label$2 = "label-swbVm";
45936
45936
  var trigger = "trigger-4ycgM";
45937
- var css_248z$y = "/* Mirrors the spreadsheet package's withPlaceholder cell styling, so AI-sourced values read as unconfirmed the\n same way a placeholder value does. */\n.placeholder-ixWml {\n color: #cacaca;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n}\n\n/* Cell layout: the value on the left, the classify trigger pinned to the end. The full cell height keeps\n the trigger vertically centered even when the label is empty (otherwise the flex box collapses to the\n icon's own height and sits off-center on the text baseline). */\n.cell-content--LnOb {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 4px;\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n\n.label-swbVm {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.trigger-4ycgM {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n cursor: pointer;\n color: #8c8c8c;\n}\n";
45938
- styleInject(css_248z$y);
45937
+ var css_248z$z = "/* Mirrors the spreadsheet package's withPlaceholder cell styling, so AI-sourced values read as unconfirmed the\n same way a placeholder value does. */\n.placeholder-ixWml {\n color: #cacaca;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n}\n\n/* Cell layout: the value on the left, the classify trigger pinned to the end. The full cell height keeps\n the trigger vertically centered even when the label is empty (otherwise the flex box collapses to the\n icon's own height and sits off-center on the text baseline). */\n.cell-content--LnOb {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 4px;\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n\n.label-swbVm {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.trigger-4ycgM {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n cursor: pointer;\n color: #8c8c8c;\n}\n";
45938
+ styleInject(css_248z$z);
45939
45939
 
45940
45940
  /**
45941
45941
  * Sparkle "classify with AI" glyph. No sparkle/magic icon exists yet in the ant-design set this repo uses
@@ -49173,8 +49173,8 @@ var formContent = "form-content-H-AkE";
49173
49173
  var footerButtons = "footer-buttons-4cwcu";
49174
49174
  var addButton = "add-button-w-6Lk";
49175
49175
  var footerContent = "footer-content-sOrT1";
49176
- var css_248z$x = ".container-wGptw {\n display: flex;\n flex-direction: column;\n height: 500px;\n}\n\n.scrollable-content-zRBJy {\n flex-grow: 1;\n overflow: auto;\n margin-bottom: 16px;\n}\n\n.section-title-s2qIs {\n margin-bottom: 16px;\n}\n\n.action-item-LjQVf {\n width: 100%;\n}\n\n.action-item-highlighted-pjO7e {\n background-color: #e6f7ff;\n border: 1px solid #91d5ff;\n}\n\n.form-container-gF94J {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.form-layout-Ykach {\n display: flex;\n flex-direction: column;\n flex: 1;\n}\n\n.form-content-H-AkE {\n flex-grow: 1;\n overflow: auto;\n}\n\n.footer-buttons-4cwcu {\n margin-top: auto;\n}\n\n.add-button-w-6Lk {\n width: 100%;\n}\n\n.footer-content-sOrT1 {\n text-align: center;\n padding: 8px 0;\n}\n";
49177
- styleInject(css_248z$x);
49176
+ var css_248z$y = ".container-wGptw {\n display: flex;\n flex-direction: column;\n height: 500px;\n}\n\n.scrollable-content-zRBJy {\n flex-grow: 1;\n overflow: auto;\n margin-bottom: 16px;\n}\n\n.section-title-s2qIs {\n margin-bottom: 16px;\n}\n\n.action-item-LjQVf {\n width: 100%;\n}\n\n.action-item-highlighted-pjO7e {\n background-color: #e6f7ff;\n border: 1px solid #91d5ff;\n}\n\n.form-container-gF94J {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.form-layout-Ykach {\n display: flex;\n flex-direction: column;\n flex: 1;\n}\n\n.form-content-H-AkE {\n flex-grow: 1;\n overflow: auto;\n}\n\n.footer-buttons-4cwcu {\n margin-top: auto;\n}\n\n.add-button-w-6Lk {\n width: 100%;\n}\n\n.footer-content-sOrT1 {\n text-align: center;\n padding: 8px 0;\n}\n";
49177
+ styleInject(css_248z$y);
49178
49178
 
49179
49179
  function ownKeys$T(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
49180
49180
  function _objectSpread$T(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$T(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$T(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -57579,8 +57579,8 @@ function Maintenance() {
57579
57579
  var shell = "shell-2U8ER";
57580
57580
  var shellDark = "shellDark-Xzi3I";
57581
57581
  var editorHost = "editorHost-9538u";
57582
- var css_248z$w = "/* Scoped jsoneditor theming; light uses stock colors via fallbacks, dark uses CSS vars from inline style + .shellDark. */\n\n.shell-2U8ER {\n width: 100%;\n border-radius: 8px;\n overflow: hidden;\n}\n\n.shell-2U8ER .jsoneditor {\n border-color: #3883fa;\n border-color: var(--je-border, #3883fa);\n color: #1a1a1a;\n color: var(--je-text, #1a1a1a);\n}\n\n.shell-2U8ER div.jsoneditor-tree {\n background: #fff;\n background: var(--je-tree-bg, #fff);\n}\n\n.shell-2U8ER .jsoneditor td,\n.shell-2U8ER .jsoneditor th,\n.shell-2U8ER .jsoneditor tr,\n.shell-2U8ER div.jsoneditor-field,\n.shell-2U8ER div.jsoneditor-value,\n.shell-2U8ER pre.jsoneditor-preview {\n color: #1a1a1a;\n color: var(--je-text, #1a1a1a);\n}\n\n.shell-2U8ER div.jsoneditor td.jsoneditor-separator {\n color: grey;\n color: var(--je-separator, grey);\n}\n\n.shell-2U8ER div.jsoneditor-default {\n color: grey;\n color: var(--je-dim, grey);\n}\n\n.shell-2U8ER div.jsoneditor-readonly {\n color: grey;\n color: var(--je-dim, grey);\n}\n\n.shell-2U8ER div.jsoneditor-value.jsoneditor-string,\n.shell-2U8ER a.jsoneditor-value.jsoneditor-url {\n color: #006000;\n color: var(--je-string, #006000);\n}\n\n.shell-2U8ER div.jsoneditor-value.jsoneditor-number {\n color: #ee422e;\n color: var(--je-number, #ee422e);\n}\n\n.shell-2U8ER div.jsoneditor-value.jsoneditor-boolean {\n color: #ff8c00;\n color: var(--je-boolean, #ff8c00);\n}\n\n.shell-2U8ER div.jsoneditor-value.jsoneditor-null {\n color: #004ed0;\n color: var(--je-null, #004ed0);\n}\n\n.shell-2U8ER tr.jsoneditor-highlight,\n.shell-2U8ER tr.jsoneditor-selected {\n background-color: #d3d3d3;\n background-color: var(--je-row-bg, #d3d3d3);\n}\n\n.shell-2U8ER div.jsoneditor-tree button.jsoneditor-button:focus {\n background-color: #f5f5f5;\n background-color: var(--je-btn-focus, #f5f5f5);\n outline: 1px solid #e5e5e5;\n outline: 1px solid var(--je-btn-outline, #e5e5e5);\n}\n\n.shell-2U8ER div.jsoneditor-tree div.jsoneditor-show-more {\n background-color: #e5e5e5;\n background-color: var(--je-show-more-bg, #e5e5e5);\n color: grey;\n color: var(--je-dim, grey);\n}\n\n.shell-2U8ER div.jsoneditor-tree div.jsoneditor-show-more a {\n color: grey;\n color: var(--je-dim, grey);\n}\n\n/* Dark: syntax + tree chrome (vars set inline from Ant token where possible) */\n.shellDark-Xzi3I {\n --je-string: #89d185;\n --je-number: #b5cea8;\n --je-boolean: #dcdcaa;\n --je-null: #569cd6;\n --je-url: #4ec9b0;\n --je-row-bg: rgba(255, 255, 255, 0.08);\n --je-btn-focus: rgba(255, 255, 255, 0.12);\n --je-btn-outline: rgba(255, 255, 255, 0.2);\n --je-show-more-bg: rgba(255, 255, 255, 0.12);\n}\n\n.shellDark-Xzi3I div.jsoneditor-tree button.jsoneditor-button {\n filter: invert(1);\n}\n\n.shellDark-Xzi3I div.jsoneditor-tree button.jsoneditor-button:focus {\n filter: invert(1);\n}\n\n.editorHost-9538u {\n height: 100%;\n width: 100%;\n min-height: 200px;\n}\n";
57583
- styleInject(css_248z$w);
57582
+ var css_248z$x = "/* Scoped jsoneditor theming; light uses stock colors via fallbacks, dark uses CSS vars from inline style + .shellDark. */\n\n.shell-2U8ER {\n width: 100%;\n border-radius: 8px;\n overflow: hidden;\n}\n\n.shell-2U8ER .jsoneditor {\n border-color: #3883fa;\n border-color: var(--je-border, #3883fa);\n color: #1a1a1a;\n color: var(--je-text, #1a1a1a);\n}\n\n.shell-2U8ER div.jsoneditor-tree {\n background: #fff;\n background: var(--je-tree-bg, #fff);\n}\n\n.shell-2U8ER .jsoneditor td,\n.shell-2U8ER .jsoneditor th,\n.shell-2U8ER .jsoneditor tr,\n.shell-2U8ER div.jsoneditor-field,\n.shell-2U8ER div.jsoneditor-value,\n.shell-2U8ER pre.jsoneditor-preview {\n color: #1a1a1a;\n color: var(--je-text, #1a1a1a);\n}\n\n.shell-2U8ER div.jsoneditor td.jsoneditor-separator {\n color: grey;\n color: var(--je-separator, grey);\n}\n\n.shell-2U8ER div.jsoneditor-default {\n color: grey;\n color: var(--je-dim, grey);\n}\n\n.shell-2U8ER div.jsoneditor-readonly {\n color: grey;\n color: var(--je-dim, grey);\n}\n\n.shell-2U8ER div.jsoneditor-value.jsoneditor-string,\n.shell-2U8ER a.jsoneditor-value.jsoneditor-url {\n color: #006000;\n color: var(--je-string, #006000);\n}\n\n.shell-2U8ER div.jsoneditor-value.jsoneditor-number {\n color: #ee422e;\n color: var(--je-number, #ee422e);\n}\n\n.shell-2U8ER div.jsoneditor-value.jsoneditor-boolean {\n color: #ff8c00;\n color: var(--je-boolean, #ff8c00);\n}\n\n.shell-2U8ER div.jsoneditor-value.jsoneditor-null {\n color: #004ed0;\n color: var(--je-null, #004ed0);\n}\n\n.shell-2U8ER tr.jsoneditor-highlight,\n.shell-2U8ER tr.jsoneditor-selected {\n background-color: #d3d3d3;\n background-color: var(--je-row-bg, #d3d3d3);\n}\n\n.shell-2U8ER div.jsoneditor-tree button.jsoneditor-button:focus {\n background-color: #f5f5f5;\n background-color: var(--je-btn-focus, #f5f5f5);\n outline: 1px solid #e5e5e5;\n outline: 1px solid var(--je-btn-outline, #e5e5e5);\n}\n\n.shell-2U8ER div.jsoneditor-tree div.jsoneditor-show-more {\n background-color: #e5e5e5;\n background-color: var(--je-show-more-bg, #e5e5e5);\n color: grey;\n color: var(--je-dim, grey);\n}\n\n.shell-2U8ER div.jsoneditor-tree div.jsoneditor-show-more a {\n color: grey;\n color: var(--je-dim, grey);\n}\n\n/* Dark: syntax + tree chrome (vars set inline from Ant token where possible) */\n.shellDark-Xzi3I {\n --je-string: #89d185;\n --je-number: #b5cea8;\n --je-boolean: #dcdcaa;\n --je-null: #569cd6;\n --je-url: #4ec9b0;\n --je-row-bg: rgba(255, 255, 255, 0.08);\n --je-btn-focus: rgba(255, 255, 255, 0.12);\n --je-btn-outline: rgba(255, 255, 255, 0.2);\n --je-show-more-bg: rgba(255, 255, 255, 0.12);\n}\n\n.shellDark-Xzi3I div.jsoneditor-tree button.jsoneditor-button {\n filter: invert(1);\n}\n\n.shellDark-Xzi3I div.jsoneditor-tree button.jsoneditor-button:focus {\n filter: invert(1);\n}\n\n.editorHost-9538u {\n height: 100%;\n width: 100%;\n min-height: 200px;\n}\n";
57583
+ styleInject(css_248z$x);
57584
57584
 
57585
57585
  function ownKeys$F(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
57586
57586
  function _objectSpread$F(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$F(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$F(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -57919,8 +57919,8 @@ var statRejected = "statRejected-xIvPi";
57919
57919
  var statRemaining = "statRemaining-lhHD1";
57920
57920
  var statChanged = "statChanged-Yi-hD";
57921
57921
  var skipCheckbox = "skipCheckbox-6f6xL";
57922
- var css_248z$v = ".root-7Tfio {\n display: flex;\n flex-direction: column;\n gap: 10px;\n padding: 10px 16px 12px;\n background: #fff;\n border-bottom: 1px solid #f0f0f0;\n flex-shrink: 0;\n}\n\n.topRow-PBU6G {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n min-width: 0;\n}\n\n.backButton-FAXI7 {\n flex-shrink: 0;\n}\n\n.jobInfo-M65Y0 {\n display: flex;\n flex-wrap: wrap;\n gap: 12px 20px;\n flex: 1;\n min-width: 0;\n}\n\n.jobInfoItem-OYxkA {\n display: inline-flex;\n gap: 4px;\n align-items: baseline;\n min-width: 0;\n}\n\n.jobInfoLabel-MH1sL {\n font-size: 12px;\n white-space: nowrap;\n}\n\n.jobInfoValue-En0nn {\n font-size: 13px;\n max-width: 220px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.progressSection-jDlWb {\n display: flex;\n flex-direction: column;\n gap: 6px;\n min-width: 260px;\n max-width: 400px;\n flex-shrink: 0;\n margin-left: auto;\n}\n\n.progressHeader-dJp1s {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n gap: 12px;\n}\n\n.progressPosition-3DTnf {\n font-size: 15px;\n line-height: 1.2;\n white-space: nowrap;\n}\n\n.progressPercent-0D8b- {\n font-size: 12px;\n white-space: nowrap;\n}\n\n.progressTrack-45tuc {\n display: flex;\n width: 100%;\n height: 8px;\n border-radius: 4px;\n overflow: hidden;\n background: #f0f0f0;\n}\n\n.progressSegment-eXone {\n height: 100%;\n min-width: 0;\n transition: width 0.2s ease;\n}\n\n.progressApproved-JbJR1 {\n background: #52c41a;\n}\n\n.progressRejected-qGOTN {\n background: #ff4d4f;\n}\n\n.progressOpen-oWm4h {\n background: #bfbfbf;\n}\n\n.bottomRow-j2rQ- {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n gap: 12px 16px;\n}\n\n.summaryStats-jvqoJ {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.statBadge-xOJvU {\n display: inline-flex;\n align-items: center;\n padding: 2px 10px;\n border-radius: 4px;\n font-size: 12px;\n line-height: 20px;\n border: 1px solid transparent;\n}\n\n.statApproved-XaXrf {\n color: #389e0d;\n background: #f6ffed;\n border-color: #b7eb8f;\n}\n\n.statRejected-xIvPi {\n color: #cf1322;\n background: #fff1f0;\n border-color: #ffa39e;\n}\n\n.statRemaining-lhHD1 {\n color: #595959;\n background: #fff;\n border-color: #d9d9d9;\n}\n\n.statChanged-Yi-hD {\n color: #d48806;\n background: #fff1b8;\n border-color: #ffc53d;\n}\n\n.skipCheckbox-6f6xL {\n margin: 0;\n margin-left: auto;\n white-space: normal;\n}\n\n/* Dark mode */\n.darkmode .root-7Tfio {\n background: #141414;\n border-bottom-color: #303030;\n}\n\n.darkmode .progressTrack-45tuc {\n background: #262626;\n}\n\n.darkmode .progressOpen-oWm4h {\n background: #595959;\n}\n\n.darkmode .statApproved-XaXrf {\n color: #95de64;\n background: rgba(56, 158, 13, 0.18);\n border-color: rgba(82, 196, 26, 0.45);\n}\n\n.darkmode .statRejected-xIvPi {\n color: #ff7875;\n background: rgba(207, 19, 34, 0.2);\n border-color: rgba(255, 77, 79, 0.45);\n}\n\n.darkmode .statRemaining-lhHD1 {\n color: rgba(255, 255, 255, 0.75);\n background: #262626;\n border-color: #595959;\n}\n\n.darkmode .statChanged-Yi-hD {\n color: #ffd666;\n background: rgba(212, 136, 6, 0.28);\n border-color: rgba(255, 197, 61, 0.55);\n}\n";
57923
- styleInject(css_248z$v);
57922
+ var css_248z$w = ".root-7Tfio {\n display: flex;\n flex-direction: column;\n gap: 10px;\n padding: 10px 16px 12px;\n background: #fff;\n border-bottom: 1px solid #f0f0f0;\n flex-shrink: 0;\n}\n\n.topRow-PBU6G {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n min-width: 0;\n}\n\n.backButton-FAXI7 {\n flex-shrink: 0;\n}\n\n.jobInfo-M65Y0 {\n display: flex;\n flex-wrap: wrap;\n gap: 12px 20px;\n flex: 1;\n min-width: 0;\n}\n\n.jobInfoItem-OYxkA {\n display: inline-flex;\n gap: 4px;\n align-items: baseline;\n min-width: 0;\n}\n\n.jobInfoLabel-MH1sL {\n font-size: 12px;\n white-space: nowrap;\n}\n\n.jobInfoValue-En0nn {\n font-size: 13px;\n max-width: 220px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.progressSection-jDlWb {\n display: flex;\n flex-direction: column;\n gap: 6px;\n min-width: 260px;\n max-width: 400px;\n flex-shrink: 0;\n margin-left: auto;\n}\n\n.progressHeader-dJp1s {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n gap: 12px;\n}\n\n.progressPosition-3DTnf {\n font-size: 15px;\n line-height: 1.2;\n white-space: nowrap;\n}\n\n.progressPercent-0D8b- {\n font-size: 12px;\n white-space: nowrap;\n}\n\n.progressTrack-45tuc {\n display: flex;\n width: 100%;\n height: 8px;\n border-radius: 4px;\n overflow: hidden;\n background: #f0f0f0;\n}\n\n.progressSegment-eXone {\n height: 100%;\n min-width: 0;\n transition: width 0.2s ease;\n}\n\n.progressApproved-JbJR1 {\n background: #52c41a;\n}\n\n.progressRejected-qGOTN {\n background: #ff4d4f;\n}\n\n.progressOpen-oWm4h {\n background: #bfbfbf;\n}\n\n.bottomRow-j2rQ- {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n gap: 12px 16px;\n}\n\n.summaryStats-jvqoJ {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.statBadge-xOJvU {\n display: inline-flex;\n align-items: center;\n padding: 2px 10px;\n border-radius: 4px;\n font-size: 12px;\n line-height: 20px;\n border: 1px solid transparent;\n}\n\n.statApproved-XaXrf {\n color: #389e0d;\n background: #f6ffed;\n border-color: #b7eb8f;\n}\n\n.statRejected-xIvPi {\n color: #cf1322;\n background: #fff1f0;\n border-color: #ffa39e;\n}\n\n.statRemaining-lhHD1 {\n color: #595959;\n background: #fff;\n border-color: #d9d9d9;\n}\n\n.statChanged-Yi-hD {\n color: #d48806;\n background: #fff1b8;\n border-color: #ffc53d;\n}\n\n.skipCheckbox-6f6xL {\n margin: 0;\n margin-left: auto;\n white-space: normal;\n}\n\n/* Dark mode */\n.darkmode .root-7Tfio {\n background: #141414;\n border-bottom-color: #303030;\n}\n\n.darkmode .progressTrack-45tuc {\n background: #262626;\n}\n\n.darkmode .progressOpen-oWm4h {\n background: #595959;\n}\n\n.darkmode .statApproved-XaXrf {\n color: #95de64;\n background: rgba(56, 158, 13, 0.18);\n border-color: rgba(82, 196, 26, 0.45);\n}\n\n.darkmode .statRejected-xIvPi {\n color: #ff7875;\n background: rgba(207, 19, 34, 0.2);\n border-color: rgba(255, 77, 79, 0.45);\n}\n\n.darkmode .statRemaining-lhHD1 {\n color: rgba(255, 255, 255, 0.75);\n background: #262626;\n border-color: #595959;\n}\n\n.darkmode .statChanged-Yi-hD {\n color: #ffd666;\n background: rgba(212, 136, 6, 0.28);\n border-color: rgba(255, 197, 61, 0.55);\n}\n";
57923
+ styleInject(css_248z$w);
57924
57924
 
57925
57925
  function buildInfoItems(job) {
57926
57926
  var _job$productName, _job$organizationName;
@@ -58110,8 +58110,8 @@ var contentAr = "contentAr-iUuog";
58110
58110
  var image$1 = "image-UQwwt";
58111
58111
  var imageLoaded = "imageLoaded--oFrG";
58112
58112
  var imageClickable = "imageClickable-9AVC0";
58113
- var css_248z$u = ".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";
58114
- styleInject(css_248z$u);
58113
+ var css_248z$v = ".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";
58114
+ styleInject(css_248z$v);
58115
58115
 
58116
58116
  function isAr$1(media) {
58117
58117
  return (media === null || media === void 0 ? void 0 : media.mediaType) === 'AR';
@@ -58120,6 +58120,7 @@ function ImagePanel(_ref) {
58120
58120
  var title = _ref.title,
58121
58121
  media = _ref.media,
58122
58122
  alt = _ref.alt,
58123
+ badge = _ref.badge,
58123
58124
  onOpenFullscreen = _ref.onOpenFullscreen;
58124
58125
  var _useDivaCore = useDivaCore(),
58125
58126
  actions = _useDivaCore.actions;
@@ -58166,7 +58167,7 @@ function ImagePanel(_ref) {
58166
58167
  className: header$1,
58167
58168
  children: /*#__PURE__*/jsxs(Typography.Text, {
58168
58169
  strong: true,
58169
- children: [title, showAr && /*#__PURE__*/jsxs(Typography.Text, {
58170
+ children: [title, badge, showAr && /*#__PURE__*/jsxs(Typography.Text, {
58170
58171
  type: "secondary",
58171
58172
  children: [" ", t('backoffice.renderapprove.viewer.arSuffix')]
58172
58173
  })]
@@ -58216,10 +58217,24 @@ function ImagePanel(_ref) {
58216
58217
  });
58217
58218
  }
58218
58219
 
58220
+ function ReferenceImageTag() {
58221
+ var _useTranslation = useTranslation(),
58222
+ t = _useTranslation.t;
58223
+ return /*#__PURE__*/jsx(Tag$1, {
58224
+ color: "blue",
58225
+ style: {
58226
+ marginInlineStart: 8
58227
+ },
58228
+ children: t('backoffice.renderapprove.viewer.referenceImageTag', {
58229
+ defaultValue: 'Referenzbild'
58230
+ })
58231
+ });
58232
+ }
58233
+
58219
58234
  var root$a = "root-iS23R";
58220
58235
  var swiper$1 = "swiper-3uKmT";
58221
- var css_248z$t = ".root-iS23R {\n display: flex;\n flex: 1;\n min-width: 0;\n min-height: 0;\n position: relative;\n}\n\n.swiper-3uKmT {\n width: 100%;\n height: 100%;\n min-height: 0;\n}\n\n.swiper-3uKmT .swiper-wrapper {\n height: 100%;\n}\n\n.swiper-3uKmT .swiper-slide {\n display: flex;\n height: auto;\n min-height: 0;\n}\n\n.swiper-3uKmT .swiper-button-prev,\n.swiper-3uKmT .swiper-button-next {\n width: 32px;\n height: 32px;\n margin-top: 0;\n top: 50%;\n transform: translateY(-50%);\n color: rgba(0, 0, 0, 0.55);\n background: transparent;\n z-index: 3;\n transition: color 0.15s ease-in-out;\n}\n\n.swiper-3uKmT .swiper-button-prev:hover,\n.swiper-3uKmT .swiper-button-next:hover {\n color: rgba(0, 0, 0, 0.85);\n}\n\n.swiper-3uKmT .swiper-button-prev::after,\n.swiper-3uKmT .swiper-button-next::after {\n font-size: 18px;\n font-weight: 500;\n text-shadow: 0 1px 2px rgba(255, 255, 255, 0.7);\n}\n\n.swiper-3uKmT .swiper-button-prev {\n left: 8px;\n}\n\n.swiper-3uKmT .swiper-button-next {\n right: 8px;\n}\n\n.swiper-3uKmT .swiper-button-disabled {\n opacity: 0.3;\n pointer-events: none;\n}\n\n.swiper-3uKmT .swiper-pagination {\n bottom: 8px;\n}\n\n.swiper-3uKmT .swiper-pagination-bullet {\n background: rgba(255, 255, 255, 0.7);\n opacity: 0.7;\n}\n\n.swiper-3uKmT .swiper-pagination-bullet-active {\n background: #fff;\n opacity: 1;\n}\n\n/* Dark mode */\n.darkmode .swiper-3uKmT .swiper-button-prev,\n.darkmode .swiper-3uKmT .swiper-button-next {\n color: rgba(255, 255, 255, 0.58);\n}\n\n.darkmode .swiper-3uKmT .swiper-button-prev:hover,\n.darkmode .swiper-3uKmT .swiper-button-next:hover {\n color: rgba(255, 255, 255, 0.9);\n}\n\n.darkmode .swiper-3uKmT .swiper-button-prev::after,\n.darkmode .swiper-3uKmT .swiper-button-next::after {\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.75);\n}\n\n.darkmode .swiper-3uKmT .swiper-pagination-bullet {\n background: rgba(255, 255, 255, 0.42);\n}\n\n.darkmode .swiper-3uKmT .swiper-pagination-bullet-active {\n background: rgba(255, 255, 255, 0.85);\n}\n";
58222
- styleInject(css_248z$t);
58236
+ var css_248z$u = ".root-iS23R {\n display: flex;\n flex: 1;\n min-width: 0;\n min-height: 0;\n position: relative;\n}\n\n.swiper-3uKmT {\n width: 100%;\n height: 100%;\n min-height: 0;\n}\n\n.swiper-3uKmT .swiper-wrapper {\n height: 100%;\n}\n\n.swiper-3uKmT .swiper-slide {\n display: flex;\n height: auto;\n min-height: 0;\n}\n\n.swiper-3uKmT .swiper-button-prev,\n.swiper-3uKmT .swiper-button-next {\n width: 32px;\n height: 32px;\n margin-top: 0;\n top: 50%;\n transform: translateY(-50%);\n color: rgba(0, 0, 0, 0.55);\n background: transparent;\n z-index: 3;\n transition: color 0.15s ease-in-out;\n}\n\n.swiper-3uKmT .swiper-button-prev:hover,\n.swiper-3uKmT .swiper-button-next:hover {\n color: rgba(0, 0, 0, 0.85);\n}\n\n.swiper-3uKmT .swiper-button-prev::after,\n.swiper-3uKmT .swiper-button-next::after {\n font-size: 18px;\n font-weight: 500;\n text-shadow: 0 1px 2px rgba(255, 255, 255, 0.7);\n}\n\n.swiper-3uKmT .swiper-button-prev {\n left: 8px;\n}\n\n.swiper-3uKmT .swiper-button-next {\n right: 8px;\n}\n\n.swiper-3uKmT .swiper-button-disabled {\n opacity: 0.3;\n pointer-events: none;\n}\n\n.swiper-3uKmT .swiper-pagination {\n bottom: 8px;\n}\n\n.swiper-3uKmT .swiper-pagination-bullet {\n background: rgba(255, 255, 255, 0.7);\n opacity: 0.7;\n}\n\n.swiper-3uKmT .swiper-pagination-bullet-active {\n background: #fff;\n opacity: 1;\n}\n\n/* Dark mode */\n.darkmode .swiper-3uKmT .swiper-button-prev,\n.darkmode .swiper-3uKmT .swiper-button-next {\n color: rgba(255, 255, 255, 0.58);\n}\n\n.darkmode .swiper-3uKmT .swiper-button-prev:hover,\n.darkmode .swiper-3uKmT .swiper-button-next:hover {\n color: rgba(255, 255, 255, 0.9);\n}\n\n.darkmode .swiper-3uKmT .swiper-button-prev::after,\n.darkmode .swiper-3uKmT .swiper-button-next::after {\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.75);\n}\n\n.darkmode .swiper-3uKmT .swiper-pagination-bullet {\n background: rgba(255, 255, 255, 0.42);\n}\n\n.darkmode .swiper-3uKmT .swiper-pagination-bullet-active {\n background: rgba(255, 255, 255, 0.85);\n}\n";
58237
+ styleInject(css_248z$u);
58223
58238
 
58224
58239
  /**
58225
58240
  * Horizontal Swiper for the left RenderApprove panel. Slides are the realtime
@@ -58265,11 +58280,13 @@ function LeftSlider(_ref) {
58265
58280
  var alt = isPreview ? t('backoffice.renderapprove.viewer.previewAlt') : t('backoffice.renderapprove.viewer.productMediaAlt', {
58266
58281
  defaultValue: 'Produktmedium'
58267
58282
  });
58283
+ var badge = media.isReference ? /*#__PURE__*/jsx(ReferenceImageTag, {}) : undefined;
58268
58284
  return /*#__PURE__*/jsx(SwiperSlide, {
58269
58285
  children: /*#__PURE__*/jsx(ImagePanel, {
58270
58286
  title: title,
58271
58287
  media: media,
58272
58288
  alt: alt,
58289
+ badge: badge,
58273
58290
  onOpenFullscreen: isPreview ? onOpenFullscreenFirst : undefined
58274
58291
  })
58275
58292
  }, "".concat((_media$url = media.url) !== null && _media$url !== void 0 ? _media$url : 'empty', "-").concat(i));
@@ -58280,8 +58297,8 @@ function LeftSlider(_ref) {
58280
58297
 
58281
58298
  var root$9 = "root-Apxh1";
58282
58299
  var footer$1 = "footer-veR-2";
58283
- var css_248z$s = ".root-Apxh1 {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-width: 0;\n min-height: 0;\n}\n\n.footer-veR-2 {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 32px;\n padding-top: 8px;\n}\n";
58284
- styleInject(css_248z$s);
58300
+ var css_248z$t = ".root-Apxh1 {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-width: 0;\n min-height: 0;\n}\n\n.footer-veR-2 {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 32px;\n padding-top: 8px;\n}\n";
58301
+ styleInject(css_248z$t);
58285
58302
 
58286
58303
  /**
58287
58304
  * One image variant with its take-over action. Shared by the variant slider and
@@ -58338,8 +58355,8 @@ function VariantPanel(_ref) {
58338
58355
 
58339
58356
  var root$8 = "root-tVqtH";
58340
58357
  var grid = "grid-yZwW9";
58341
- var css_248z$r = ".root-tVqtH {\n display: flex;\n flex: 1;\n min-width: 0;\n min-height: 0;\n}\n\n.grid-yZwW9 {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(0, 1fr));\n grid-gap: 16px;\n gap: 16px;\n flex: 1;\n min-width: 0;\n min-height: 0;\n}\n";
58342
- styleInject(css_248z$r);
58358
+ var css_248z$s = ".root-tVqtH {\n display: flex;\n flex: 1;\n min-width: 0;\n min-height: 0;\n}\n\n.grid-yZwW9 {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(0, 1fr));\n grid-gap: 16px;\n gap: 16px;\n flex: 1;\n min-width: 0;\n min-height: 0;\n}\n";
58359
+ styleInject(css_248z$s);
58343
58360
 
58344
58361
  /**
58345
58362
  * Side-by-side comparison of all generated variants, each with its take-over
@@ -58372,8 +58389,8 @@ function VariantCompareView(_ref) {
58372
58389
 
58373
58390
  var root$7 = "root-vll5G";
58374
58391
  var swiper = "swiper-arh-j";
58375
- var css_248z$q = ".root-vll5G {\n display: flex;\n flex: 1;\n min-width: 0;\n min-height: 0;\n position: relative;\n}\n\n.swiper-arh-j {\n width: 100%;\n height: 100%;\n min-height: 0;\n}\n\n.swiper-arh-j .swiper-wrapper {\n height: 100%;\n}\n\n.swiper-arh-j .swiper-slide {\n display: flex;\n height: auto;\n min-height: 0;\n}\n\n.swiper-arh-j .swiper-button-prev,\n.swiper-arh-j .swiper-button-next {\n width: 32px;\n height: 32px;\n margin-top: 0;\n top: 50%;\n transform: translateY(-50%);\n color: rgba(0, 0, 0, 0.55);\n background: transparent;\n z-index: 3;\n transition: color 0.15s ease-in-out;\n}\n\n.swiper-arh-j .swiper-button-prev:hover,\n.swiper-arh-j .swiper-button-next:hover {\n color: rgba(0, 0, 0, 0.85);\n}\n\n.swiper-arh-j .swiper-button-prev::after,\n.swiper-arh-j .swiper-button-next::after {\n font-size: 18px;\n font-weight: 500;\n text-shadow: 0 1px 2px rgba(255, 255, 255, 0.7);\n}\n\n.swiper-arh-j .swiper-button-prev {\n left: 8px;\n}\n\n.swiper-arh-j .swiper-button-next {\n right: 8px;\n}\n\n.swiper-arh-j .swiper-button-disabled {\n opacity: 0.3;\n pointer-events: none;\n}\n\n/* Sits above the take-over footer instead of on top of the image. */\n.swiper-arh-j .swiper-pagination {\n bottom: 40px;\n}\n\n.swiper-arh-j .swiper-pagination-bullet {\n background: rgba(255, 255, 255, 0.7);\n opacity: 0.7;\n}\n\n.swiper-arh-j .swiper-pagination-bullet-active {\n background: #fff;\n opacity: 1;\n}\n\n/* Dark mode */\n.darkmode .swiper-arh-j .swiper-button-prev,\n.darkmode .swiper-arh-j .swiper-button-next {\n color: rgba(255, 255, 255, 0.58);\n}\n\n.darkmode .swiper-arh-j .swiper-button-prev:hover,\n.darkmode .swiper-arh-j .swiper-button-next:hover {\n color: rgba(255, 255, 255, 0.9);\n}\n\n.darkmode .swiper-arh-j .swiper-button-prev::after,\n.darkmode .swiper-arh-j .swiper-button-next::after {\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.75);\n}\n\n.darkmode .swiper-arh-j .swiper-pagination-bullet {\n background: rgba(255, 255, 255, 0.42);\n}\n\n.darkmode .swiper-arh-j .swiper-pagination-bullet-active {\n background: rgba(255, 255, 255, 0.85);\n}\n";
58376
- styleInject(css_248z$q);
58392
+ var css_248z$r = ".root-vll5G {\n display: flex;\n flex: 1;\n min-width: 0;\n min-height: 0;\n position: relative;\n}\n\n.swiper-arh-j {\n width: 100%;\n height: 100%;\n min-height: 0;\n}\n\n.swiper-arh-j .swiper-wrapper {\n height: 100%;\n}\n\n.swiper-arh-j .swiper-slide {\n display: flex;\n height: auto;\n min-height: 0;\n}\n\n.swiper-arh-j .swiper-button-prev,\n.swiper-arh-j .swiper-button-next {\n width: 32px;\n height: 32px;\n margin-top: 0;\n top: 50%;\n transform: translateY(-50%);\n color: rgba(0, 0, 0, 0.55);\n background: transparent;\n z-index: 3;\n transition: color 0.15s ease-in-out;\n}\n\n.swiper-arh-j .swiper-button-prev:hover,\n.swiper-arh-j .swiper-button-next:hover {\n color: rgba(0, 0, 0, 0.85);\n}\n\n.swiper-arh-j .swiper-button-prev::after,\n.swiper-arh-j .swiper-button-next::after {\n font-size: 18px;\n font-weight: 500;\n text-shadow: 0 1px 2px rgba(255, 255, 255, 0.7);\n}\n\n.swiper-arh-j .swiper-button-prev {\n left: 8px;\n}\n\n.swiper-arh-j .swiper-button-next {\n right: 8px;\n}\n\n.swiper-arh-j .swiper-button-disabled {\n opacity: 0.3;\n pointer-events: none;\n}\n\n/* Sits above the take-over footer instead of on top of the image. */\n.swiper-arh-j .swiper-pagination {\n bottom: 40px;\n}\n\n.swiper-arh-j .swiper-pagination-bullet {\n background: rgba(255, 255, 255, 0.7);\n opacity: 0.7;\n}\n\n.swiper-arh-j .swiper-pagination-bullet-active {\n background: #fff;\n opacity: 1;\n}\n\n/* Dark mode */\n.darkmode .swiper-arh-j .swiper-button-prev,\n.darkmode .swiper-arh-j .swiper-button-next {\n color: rgba(255, 255, 255, 0.58);\n}\n\n.darkmode .swiper-arh-j .swiper-button-prev:hover,\n.darkmode .swiper-arh-j .swiper-button-next:hover {\n color: rgba(255, 255, 255, 0.9);\n}\n\n.darkmode .swiper-arh-j .swiper-button-prev::after,\n.darkmode .swiper-arh-j .swiper-button-next::after {\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.75);\n}\n\n.darkmode .swiper-arh-j .swiper-pagination-bullet {\n background: rgba(255, 255, 255, 0.42);\n}\n\n.darkmode .swiper-arh-j .swiper-pagination-bullet-active {\n background: rgba(255, 255, 255, 0.85);\n}\n";
58393
+ styleInject(css_248z$r);
58377
58394
 
58378
58395
  /**
58379
58396
  * Horizontal swiper over the generated image variants on the result side of the
@@ -58442,11 +58459,11 @@ var overlayLabel = "overlayLabel-MfzIQ";
58442
58459
  var overlayLabelApproved = "overlayLabelApproved-Dn09n";
58443
58460
  var overlayLabelRejected = "overlayLabelRejected-IdRHs";
58444
58461
  var overlayLabelChangedReadyForRenderer = "overlayLabelChangedReadyForRenderer-e7Fdw";
58445
- var css_248z$p = ".root-16ADu {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: 16px;\n flex: 1;\n min-height: 0;\n position: relative;\n}\n\n/* Own row so the result actions stay visible for every result-side variant\n (single image panel, variant slider, comparison grid). */\n.resultActions-izqBu {\n display: flex;\n justify-content: flex-end;\n flex: none;\n}\n\n.viewerPanels-Lntpx {\n display: flex;\n gap: 16px;\n flex: 1;\n min-width: 0;\n min-height: 0;\n}\n\n.decisionOverlay-8mr9P {\n position: absolute;\n top: 16px;\n right: 16px;\n bottom: 16px;\n left: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: none;\n z-index: 2;\n border-radius: 4px;\n}\n\n.overlayApproved-hAkZi {\n background: rgba(82, 196, 26, 0.22);\n border: 2px solid rgba(82, 196, 26, 0.55);\n}\n\n.overlayRejected-UqBPC {\n background: rgba(255, 77, 79, 0.22);\n border: 2px solid rgba(255, 77, 79, 0.55);\n}\n\n.overlayChangedReadyForRenderer-ignKB {\n background: rgba(250, 173, 20, 0.22);\n border: 2px solid rgba(250, 173, 20, 0.55);\n}\n\n.overlayLabel-MfzIQ {\n padding: 10px 20px;\n border-radius: 6px;\n font-size: 18px;\n font-weight: 600;\n letter-spacing: 0.02em;\n text-transform: uppercase;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);\n}\n\n.overlayLabelApproved-Dn09n {\n color: #237804;\n background: rgba(255, 255, 255, 0.92);\n}\n\n.overlayLabelRejected-IdRHs {\n color: #a8071a;\n background: rgba(255, 255, 255, 0.92);\n}\n\n.overlayLabelChangedReadyForRenderer-e7Fdw {\n color: #ad6800;\n background: rgba(255, 255, 255, 0.92);\n}\n\n/* Dark mode */\n.darkmode .overlayLabelApproved-Dn09n {\n color: #95de64;\n background: rgba(0, 0, 0, 0.55);\n}\n\n.darkmode .overlayLabelRejected-IdRHs {\n color: #ff7875;\n background: rgba(0, 0, 0, 0.55);\n}\n\n.darkmode .overlayLabelChangedReadyForRenderer-e7Fdw {\n color: #ffd666;\n background: rgba(0, 0, 0, 0.55);\n}\n";
58446
- styleInject(css_248z$p);
58462
+ var css_248z$q = ".root-16ADu {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: 16px;\n flex: 1;\n min-height: 0;\n position: relative;\n}\n\n/* Own row so the result actions stay visible for every result-side variant\n (single image panel, variant slider, comparison grid). */\n.resultActions-izqBu {\n display: flex;\n justify-content: flex-end;\n flex: none;\n}\n\n.viewerPanels-Lntpx {\n display: flex;\n gap: 16px;\n flex: 1;\n min-width: 0;\n min-height: 0;\n}\n\n.decisionOverlay-8mr9P {\n position: absolute;\n top: 16px;\n right: 16px;\n bottom: 16px;\n left: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: none;\n z-index: 2;\n border-radius: 4px;\n}\n\n.overlayApproved-hAkZi {\n background: rgba(82, 196, 26, 0.22);\n border: 2px solid rgba(82, 196, 26, 0.55);\n}\n\n.overlayRejected-UqBPC {\n background: rgba(255, 77, 79, 0.22);\n border: 2px solid rgba(255, 77, 79, 0.55);\n}\n\n.overlayChangedReadyForRenderer-ignKB {\n background: rgba(250, 173, 20, 0.22);\n border: 2px solid rgba(250, 173, 20, 0.55);\n}\n\n.overlayLabel-MfzIQ {\n padding: 10px 20px;\n border-radius: 6px;\n font-size: 18px;\n font-weight: 600;\n letter-spacing: 0.02em;\n text-transform: uppercase;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);\n}\n\n.overlayLabelApproved-Dn09n {\n color: #237804;\n background: rgba(255, 255, 255, 0.92);\n}\n\n.overlayLabelRejected-IdRHs {\n color: #a8071a;\n background: rgba(255, 255, 255, 0.92);\n}\n\n.overlayLabelChangedReadyForRenderer-e7Fdw {\n color: #ad6800;\n background: rgba(255, 255, 255, 0.92);\n}\n\n/* Dark mode */\n.darkmode .overlayLabelApproved-Dn09n {\n color: #95de64;\n background: rgba(0, 0, 0, 0.55);\n}\n\n.darkmode .overlayLabelRejected-IdRHs {\n color: #ff7875;\n background: rgba(0, 0, 0, 0.55);\n}\n\n.darkmode .overlayLabelChangedReadyForRenderer-e7Fdw {\n color: #ffd666;\n background: rgba(0, 0, 0, 0.55);\n}\n";
58463
+ styleInject(css_248z$q);
58447
58464
 
58448
58465
  function SideBySideViewer(_ref) {
58449
- var _images$leftSlides, _images$rightSlides;
58466
+ var _images$leftSlides, _images$rightSlides, _slides$;
58450
58467
  var images = _ref.images,
58451
58468
  readonlyDecision = _ref.readonlyDecision,
58452
58469
  onOpenFullscreenLeft = _ref.onOpenFullscreenLeft,
@@ -58454,6 +58471,7 @@ function SideBySideViewer(_ref) {
58454
58471
  onLeftSwiperInit = _ref.onLeftSwiperInit,
58455
58472
  onUpload = _ref.onUpload,
58456
58473
  onSetReadyForProduction = _ref.onSetReadyForProduction,
58474
+ onEditInputImages = _ref.onEditInputImages,
58457
58475
  actionsDisabled = _ref.actionsDisabled,
58458
58476
  compareOpen = _ref.compareOpen,
58459
58477
  onToggleCompare = _ref.onToggleCompare,
@@ -58471,7 +58489,7 @@ function SideBySideViewer(_ref) {
58471
58489
  // Rendered above the panels instead of inside a panel header so the actions
58472
58490
  // do not depend on which component fills the result side. The compare toggle
58473
58491
  // also has to survive the compare view itself, which replaces both panels.
58474
- var showMediaActions = !showOverlay && (onSetReadyForProduction !== undefined || onUpload !== undefined);
58492
+ var showMediaActions = !showOverlay && (onSetReadyForProduction !== undefined || onEditInputImages !== undefined || onUpload !== undefined);
58475
58493
  var resultActionButtons = showMediaActions || onToggleCompare ? /*#__PURE__*/jsxs(Space, {
58476
58494
  size: 8,
58477
58495
  children: [!showOverlay && onSetReadyForProduction && /*#__PURE__*/jsx(Tooltip$1, {
@@ -58486,6 +58504,19 @@ function SideBySideViewer(_ref) {
58486
58504
  defaultValue: 'Bereit zur Produktion'
58487
58505
  })
58488
58506
  })
58507
+ }), !showOverlay && onEditInputImages && /*#__PURE__*/jsx(Tooltip$1, {
58508
+ title: t('backoffice.renderapprove.tooltips.editInputImages', {
58509
+ defaultValue: 'Auswahl und Reihenfolge der KI-Inputbilder für den nächsten Neustart ändern'
58510
+ }),
58511
+ children: /*#__PURE__*/jsx(Button, {
58512
+ size: "small",
58513
+ icon: /*#__PURE__*/jsx(PictureOutlined, {}),
58514
+ onClick: onEditInputImages,
58515
+ disabled: actionsDisabled,
58516
+ children: t('backoffice.renderapprove.actions.editInputImages', {
58517
+ defaultValue: 'Inputbilder ändern'
58518
+ })
58519
+ })
58489
58520
  }), !showOverlay && onUpload && /*#__PURE__*/jsx(Tooltip$1, {
58490
58521
  title: t('backoffice.renderapprove.tooltips.upload', {
58491
58522
  defaultValue: 'Externes Bild hochladen'
@@ -58555,7 +58586,10 @@ function SideBySideViewer(_ref) {
58555
58586
  }) : /*#__PURE__*/jsx(ImagePanel, {
58556
58587
  title: t('backoffice.renderapprove.viewer.previewTitle'),
58557
58588
  media: images.left,
58558
- alt: t('backoffice.renderapprove.viewer.previewAlt'),
58589
+ alt: t('backoffice.renderapprove.viewer.previewAlt')
58590
+ // The single slide is the preview; it carries the reference flag when it is the only AI input.
58591
+ ,
58592
+ badge: (_slides$ = slides[0]) !== null && _slides$ !== void 0 && _slides$.isReference ? /*#__PURE__*/jsx(ReferenceImageTag, {}) : undefined,
58559
58593
  onOpenFullscreen: showOverlay ? undefined : onOpenFullscreenLeft
58560
58594
  }), hasVariants && resultIsVariant ? /*#__PURE__*/jsx(VariantSlider, {
58561
58595
  variants: variants,
@@ -58587,8 +58621,8 @@ var item = "item-jn9Ok";
58587
58621
  var keys = "keys-ev62a";
58588
58622
  var keyChip = "keyChip-gS8Cz";
58589
58623
  var label$1 = "label-bmm2i";
58590
- var css_248z$o = ".root-9FUw- {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n -moz-column-gap: 14px;\n column-gap: 14px;\n row-gap: 4px;\n opacity: 0.75;\n}\n\n.item-jn9Ok {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n min-width: -moz-max-content;\n min-width: max-content;\n}\n\n.keys-ev62a {\n display: inline-flex;\n gap: 2px;\n}\n\n.keyChip-gS8Cz {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 22px;\n height: 22px;\n padding: 0 6px;\n border-radius: 4px;\n border: 1px solid #d9d9d9;\n background: #fafafa;\n color: rgba(0, 0, 0, 0.65);\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 11px;\n line-height: 20px;\n}\n\n.label-bmm2i {\n font-size: 12px;\n white-space: nowrap;\n word-break: keep-all;\n}\n\n@media (max-width: 1280px) {\n .root-9FUw- {\n justify-content: flex-start;\n }\n}\n\n/* Dark mode */\n.darkmode .keyChip-gS8Cz {\n border-color: #595959;\n background: #262626;\n color: rgba(255, 255, 255, 0.75);\n}\n";
58591
- styleInject(css_248z$o);
58624
+ var css_248z$p = ".root-9FUw- {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n -moz-column-gap: 14px;\n column-gap: 14px;\n row-gap: 4px;\n opacity: 0.75;\n}\n\n.item-jn9Ok {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n min-width: -moz-max-content;\n min-width: max-content;\n}\n\n.keys-ev62a {\n display: inline-flex;\n gap: 2px;\n}\n\n.keyChip-gS8Cz {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 22px;\n height: 22px;\n padding: 0 6px;\n border-radius: 4px;\n border: 1px solid #d9d9d9;\n background: #fafafa;\n color: rgba(0, 0, 0, 0.65);\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 11px;\n line-height: 20px;\n}\n\n.label-bmm2i {\n font-size: 12px;\n white-space: nowrap;\n word-break: keep-all;\n}\n\n@media (max-width: 1280px) {\n .root-9FUw- {\n justify-content: flex-start;\n }\n}\n\n/* Dark mode */\n.darkmode .keyChip-gS8Cz {\n border-color: #595959;\n background: #262626;\n color: rgba(255, 255, 255, 0.75);\n}\n";
58625
+ styleInject(css_248z$p);
58592
58626
 
58593
58627
  /** Catalog of all available shortcuts, keyed for explicit composition per mode. */
58594
58628
  var SHORTCUTS = {
@@ -58691,8 +58725,8 @@ function ShortcutLegend(_ref) {
58691
58725
  var root$4 = "root-AeU29";
58692
58726
  var actions = "actions-Wopjy";
58693
58727
  var legendContainer = "legendContainer--qZEQ";
58694
- var css_248z$n = ".root-AeU29 {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 16px;\n background: #fff;\n border-top: 1px solid #f0f0f0;\n gap: 16px;\n flex-wrap: wrap;\n flex-shrink: 0;\n}\n\n.actions-Wopjy {\n display: inline-flex;\n min-width: 0;\n}\n\n.legendContainer--qZEQ {\n flex: 1 1 420px;\n display: flex;\n justify-content: flex-end;\n min-width: 0;\n}\n\n@media (max-width: 1280px) {\n .legendContainer--qZEQ {\n flex-basis: 100%;\n justify-content: flex-start;\n }\n}\n\n/* Dark mode */\n.darkmode .root-AeU29 {\n background: #141414;\n border-top-color: #303030;\n}\n";
58695
- styleInject(css_248z$n);
58728
+ var css_248z$o = ".root-AeU29 {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 16px;\n background: #fff;\n border-top: 1px solid #f0f0f0;\n gap: 16px;\n flex-wrap: wrap;\n flex-shrink: 0;\n}\n\n.actions-Wopjy {\n display: inline-flex;\n min-width: 0;\n}\n\n.legendContainer--qZEQ {\n flex: 1 1 420px;\n display: flex;\n justify-content: flex-end;\n min-width: 0;\n}\n\n@media (max-width: 1280px) {\n .legendContainer--qZEQ {\n flex-basis: 100%;\n justify-content: flex-start;\n }\n}\n\n/* Dark mode */\n.darkmode .root-AeU29 {\n background: #141414;\n border-top-color: #303030;\n}\n";
58729
+ styleInject(css_248z$o);
58696
58730
 
58697
58731
  function ActionBar(_ref) {
58698
58732
  var disabled = _ref.disabled,
@@ -58770,6 +58804,7 @@ function ApprovalWorkspace(_ref) {
58770
58804
  onNext = _ref.onNext,
58771
58805
  onUpload = _ref.onUpload,
58772
58806
  onSetReadyForProduction = _ref.onSetReadyForProduction,
58807
+ onEditInputImages = _ref.onEditInputImages,
58773
58808
  compareOpen = _ref.compareOpen,
58774
58809
  onToggleCompare = _ref.onToggleCompare,
58775
58810
  variantSelecting = _ref.variantSelecting,
@@ -58785,6 +58820,7 @@ function ApprovalWorkspace(_ref) {
58785
58820
  onLeftSwiperInit: onLeftSwiperInit,
58786
58821
  onUpload: onUpload,
58787
58822
  onSetReadyForProduction: onSetReadyForProduction,
58823
+ onEditInputImages: onEditInputImages,
58788
58824
  actionsDisabled: actionDisabled || busy || readOnly,
58789
58825
  compareOpen: compareOpen,
58790
58826
  onToggleCompare: onToggleCompare,
@@ -58817,8 +58853,8 @@ var thumbPlaceholder$1 = "thumbPlaceholder-zX1-S";
58817
58853
  var info$1 = "info-8ZlUD";
58818
58854
  var label = "label-y-wTq";
58819
58855
  var meta = "meta-Ihuqr";
58820
- var css_248z$m = ".root-7OUrP {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 10px 12px;\n border: 1px solid #d9d9d9;\n border: 1px solid var(--ant-color-border, #d9d9d9);\n border-radius: 8px;\n background: #fff;\n background: var(--ant-color-bg-container, #fff);\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n\n.root-7OUrP:active {\n cursor: grabbing;\n}\n\n.rootSelected-Z8LGb {\n border-color: #1677ff;\n border-color: var(--ant-color-primary, #1677ff);\n background: #e6f4ff;\n background: var(--ant-color-primary-bg, #e6f4ff);\n}\n\n.dragHandle-xo0vD {\n display: inline-flex;\n align-items: center;\n cursor: grab;\n color: #999;\n color: var(--ant-color-text-tertiary, #999);\n touch-action: none;\n}\n\n.dragHandle-xo0vD:active {\n cursor: grabbing;\n}\n\n.badge-7hZ6T {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 20px;\n padding: 0 6px;\n border-radius: 10px;\n font-size: 12px;\n font-weight: 600;\n color: #fff;\n background: #1677ff;\n background: var(--ant-color-primary, #1677ff);\n}\n\n.thumb-ePFWB {\n width: 88px;\n height: 88px;\n -o-object-fit: cover;\n object-fit: cover;\n border-radius: 6px;\n flex: 0 0 auto;\n background: #f0f0f0;\n background: var(--ant-color-fill-secondary, #f0f0f0);\n cursor: pointer;\n}\n\n.thumbPlaceholder-zX1-S {\n width: 88px;\n height: 88px;\n border-radius: 6px;\n background: #f0f0f0;\n background: var(--ant-color-fill-secondary, #f0f0f0);\n flex: 0 0 auto;\n}\n\n.info-8ZlUD {\n display: flex;\n flex-direction: column;\n min-width: 0;\n flex: 1 1 auto;\n}\n\n.label-y-wTq {\n font-size: 14px;\n font-weight: 500;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.meta-Ihuqr {\n font-size: 12px;\n color: #888;\n color: var(--ant-color-text-secondary, #888);\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n.referenceTag-gyKQR {\n align-self: flex-start;\n margin-top: 4px;\n padding: 1px 8px;\n border-radius: 4px;\n font-size: 11px;\n font-weight: 500;\n color: #1677ff;\n color: var(--ant-color-primary, #1677ff);\n background: #e6f4ff;\n background: var(--ant-color-primary-bg, #e6f4ff);\n border: 1px solid #91caff;\n border: 1px solid var(--ant-color-primary-border, #91caff);\n white-space: nowrap;\n}\n";
58821
- styleInject(css_248z$m);
58856
+ var css_248z$n = ".root-7OUrP {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 10px 12px;\n border: 1px solid #d9d9d9;\n border: 1px solid var(--ant-color-border, #d9d9d9);\n border-radius: 8px;\n background: #fff;\n background: var(--ant-color-bg-container, #fff);\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n\n.root-7OUrP:active {\n cursor: grabbing;\n}\n\n.rootSelected-Z8LGb {\n border-color: #1677ff;\n border-color: var(--ant-color-primary, #1677ff);\n background: #e6f4ff;\n background: var(--ant-color-primary-bg, #e6f4ff);\n}\n\n.dragHandle-xo0vD {\n display: inline-flex;\n align-items: center;\n cursor: grab;\n color: #999;\n color: var(--ant-color-text-tertiary, #999);\n touch-action: none;\n}\n\n.dragHandle-xo0vD:active {\n cursor: grabbing;\n}\n\n.badge-7hZ6T {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 20px;\n padding: 0 6px;\n border-radius: 10px;\n font-size: 12px;\n font-weight: 600;\n color: #fff;\n background: #1677ff;\n background: var(--ant-color-primary, #1677ff);\n}\n\n.thumb-ePFWB {\n width: 88px;\n height: 88px;\n -o-object-fit: cover;\n object-fit: cover;\n border-radius: 6px;\n flex: 0 0 auto;\n background: #f0f0f0;\n background: var(--ant-color-fill-secondary, #f0f0f0);\n cursor: pointer;\n}\n\n.thumbPlaceholder-zX1-S {\n width: 88px;\n height: 88px;\n border-radius: 6px;\n background: #f0f0f0;\n background: var(--ant-color-fill-secondary, #f0f0f0);\n flex: 0 0 auto;\n}\n\n.info-8ZlUD {\n display: flex;\n flex-direction: column;\n min-width: 0;\n flex: 1 1 auto;\n}\n\n.label-y-wTq {\n font-size: 14px;\n font-weight: 500;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.meta-Ihuqr {\n font-size: 12px;\n color: #888;\n color: var(--ant-color-text-secondary, #888);\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n}\n\n.referenceTag-gyKQR {\n align-self: flex-start;\n margin-top: 4px;\n padding: 1px 8px;\n border-radius: 4px;\n font-size: 11px;\n font-weight: 500;\n color: #1677ff;\n color: var(--ant-color-primary, #1677ff);\n background: #e6f4ff;\n background: var(--ant-color-primary-bg, #e6f4ff);\n border: 1px solid #91caff;\n border: 1px solid var(--ant-color-primary-border, #91caff);\n white-space: nowrap;\n}\n";
58857
+ styleInject(css_248z$n);
58822
58858
 
58823
58859
  function ownKeys$D(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
58824
58860
  function _objectSpread$D(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$D(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$D(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -58927,8 +58963,8 @@ var root$2 = "root-II5c9";
58927
58963
  var title$1 = "title-2FZl4";
58928
58964
  var hint = "hint-AnZcz";
58929
58965
  var list = "list-qqATK";
58930
- var css_248z$l = ".root-II5c9 {\n display: flex;\n flex-direction: column;\n gap: 8px;\n padding: 12px;\n border: 1px solid #d9d9d9;\n border: 1px solid var(--ant-color-border, #d9d9d9);\n border-radius: 8px;\n background: #fff;\n background: var(--ant-color-bg-container, #fff);\n flex: 1 1 auto;\n min-height: 0;\n overflow: hidden;\n}\n\n.title-2FZl4 {\n font-size: 14px;\n font-weight: 600;\n}\n\n.hint-AnZcz {\n font-size: 12px;\n color: #888;\n color: var(--ant-color-text-secondary, #888);\n}\n\n.list-qqATK {\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1 1 auto;\n min-height: 0;\n overflow-y: auto;\n padding-right: 4px;\n}\n";
58931
- styleInject(css_248z$l);
58966
+ var css_248z$m = ".root-II5c9 {\n display: flex;\n flex-direction: column;\n gap: 8px;\n padding: 12px;\n border: 1px solid #d9d9d9;\n border: 1px solid var(--ant-color-border, #d9d9d9);\n border-radius: 8px;\n background: #fff;\n background: var(--ant-color-bg-container, #fff);\n flex: 1 1 auto;\n min-height: 0;\n overflow: hidden;\n}\n\n.title-2FZl4 {\n font-size: 14px;\n font-weight: 600;\n}\n\n.hint-AnZcz {\n font-size: 12px;\n color: #888;\n color: var(--ant-color-text-secondary, #888);\n}\n\n.list-qqATK {\n display: flex;\n flex-direction: column;\n gap: 6px;\n flex: 1 1 auto;\n min-height: 0;\n overflow-y: auto;\n padding-right: 4px;\n}\n";
58967
+ styleInject(css_248z$m);
58932
58968
 
58933
58969
  function ownKeys$C(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
58934
58970
  function _objectSpread$C(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$C(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$C(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -59183,6 +59219,118 @@ function ImageSelectionWorkspace(_ref) {
59183
59219
  });
59184
59220
  }
59185
59221
 
59222
+ /** True when both lists carry the same urls in the same order. `mediaItemRefId` is ignored - the AI consumes urls only. */
59223
+ function sameImageUrls(a, b) {
59224
+ return a.length === b.length && a.every(function (image, index) {
59225
+ return image.url === b[index].url;
59226
+ });
59227
+ }
59228
+
59229
+ /**
59230
+ * `AIImageSelector` displays an empty selection as "preview selected" (its default) and diva-ai
59231
+ * consumes an empty list as "use realTimeRenderUrl" - so an empty draft is mapped to the preview
59232
+ * slide's url (or stays empty when the preview has no url). Keeps the draft equal to what is shown.
59233
+ */
59234
+ function normalizeInputImages(images, slides) {
59235
+ if (images.length > 0) return images;
59236
+ var preview = slides.find(function (slide) {
59237
+ return slide.isPreview;
59238
+ });
59239
+ if (!preview || typeof preview.url !== 'string' || preview.url.length === 0) return [];
59240
+ return [{
59241
+ url: preview.url
59242
+ }];
59243
+ }
59244
+
59245
+ var body = "body-DmzP3";
59246
+ var selectorWrap = "selector-wrap--NoNf";
59247
+ var css_248z$l = "/* Bounded height so the image list scrolls inside the popup instead of growing it. */\n.body-DmzP3 {\n display: flex;\n flex-direction: column;\n gap: 12px;\n height: 60vh;\n min-height: 0;\n}\n\n.selector-wrap--NoNf {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n}\n";
59248
+ styleInject(css_248z$l);
59249
+
59250
+ /**
59251
+ * Popup counterpart of the image-selection phase for jobs that are already in checking: the
59252
+ * reviewer re-picks and reorders the AI input images. Only the order is saved - the job is not
59253
+ * restarted here; the next restart ("Bereit zur Produktion" or a prompt restart) uses it, and
59254
+ * the left slider shows the first image as the reference image.
59255
+ */
59256
+ function InputImagesModal(_ref) {
59257
+ var open = _ref.open,
59258
+ slides = _ref.slides,
59259
+ renderImages = _ref.renderImages,
59260
+ saving = _ref.saving,
59261
+ onCancel = _ref.onCancel,
59262
+ onSave = _ref.onSave;
59263
+ var _useTranslation = useTranslation(),
59264
+ t = _useTranslation.t;
59265
+ var stored = useMemo(function () {
59266
+ return normalizeInputImages(renderImages, slides);
59267
+ }, [renderImages, slides]);
59268
+ var _useState = useState(stored),
59269
+ _useState2 = _slicedToArray(_useState, 2),
59270
+ draft = _useState2[0],
59271
+ setDraft = _useState2[1];
59272
+ var selectedUrls = useMemo(function () {
59273
+ return draft.map(function (image) {
59274
+ return image.url;
59275
+ });
59276
+ }, [draft]);
59277
+ var storedRef = useRef(stored);
59278
+ storedRef.current = stored;
59279
+
59280
+ // Every opening starts from the stored order; a cancelled draft must not leak into the next one.
59281
+ useEffect(function () {
59282
+ if (open) setDraft(storedRef.current);
59283
+ }, [open]);
59284
+ var hasChanges = !sameImageUrls(draft, stored);
59285
+ // An empty draft is only possible when the job has no realtime preview to fall back to.
59286
+ var canSave = hasChanges && draft.length > 0 && !saving;
59287
+ return /*#__PURE__*/jsxs(Modal$2, {
59288
+ open: open,
59289
+ title: t('backoffice.renderapprove.inputImages.title', {
59290
+ defaultValue: 'Inputbilder ändern'
59291
+ }),
59292
+ width: 720,
59293
+ onCancel: onCancel,
59294
+ onOk: function onOk() {
59295
+ return onSave(draft);
59296
+ },
59297
+ okText: t('backoffice.renderapprove.inputImages.saveButton', {
59298
+ defaultValue: 'Reihenfolge speichern'
59299
+ }),
59300
+ cancelText: t('backoffice.renderapprove.common.cancel'),
59301
+ okButtonProps: {
59302
+ disabled: !canSave,
59303
+ loading: saving
59304
+ },
59305
+ cancelButtonProps: {
59306
+ disabled: saving
59307
+ },
59308
+ maskClosable: !saving,
59309
+ keyboard: !saving,
59310
+ destroyOnHidden: true,
59311
+ classNames: {
59312
+ body: body
59313
+ },
59314
+ children: [/*#__PURE__*/jsx(Alert, {
59315
+ type: "info",
59316
+ showIcon: true,
59317
+ message: t('backoffice.renderapprove.inputImages.restartInfo', {
59318
+ defaultValue: 'Die neue Reihenfolge wird beim nächsten Neustart des Jobs verwendet. Bild 1 ist das Referenzbild.'
59319
+ })
59320
+ }), /*#__PURE__*/jsx("div", {
59321
+ className: selectorWrap,
59322
+ children: /*#__PURE__*/jsx(AIImageSelector, {
59323
+ slides: slides,
59324
+ selectedUrls: selectedUrls,
59325
+ disabled: saving,
59326
+ onChange: function onChange(next) {
59327
+ return setDraft(normalizeInputImages(next, slides));
59328
+ }
59329
+ })
59330
+ })]
59331
+ });
59332
+ }
59333
+
59186
59334
  /**
59187
59335
  * Numeric render-job states used by the RenderApprove session.
59188
59336
  * Mirrors `RenderJobState` in `node-apps/diva-media/src/infra/db/models/RenderJobModel.ts`
@@ -60527,7 +60675,7 @@ function buildPrimaryFields(job, fallback) {
60527
60675
  }] : []));
60528
60676
  }
60529
60677
  function buildSecondarySections(job, fileSize, mediaType, fallback) {
60530
- var _job$organizationName, _job$renderScene_disp;
60678
+ var _job$organizationName, _ref, _job$renderScene_disp;
60531
60679
  var fileAndRenderFields = [{
60532
60680
  labelKey: 'backoffice.renderapprove.metadata.fields.renderJobType',
60533
60681
  value: formatString(job === null || job === void 0 ? void 0 : job.job, fallback)
@@ -60579,37 +60727,36 @@ function buildSecondarySections(job, fileSize, mediaType, fallback) {
60579
60727
  value: formatString(job === null || job === void 0 ? void 0 : job.viewPoint, fallback),
60580
60728
  editKey: 'viewPoint'
60581
60729
  }, {
60582
- labelKey: 'backoffice.renderapprove.metadata.fields.scene',
60583
- 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),
60730
+ // HQ jobs carry a render scene, AI jobs the chosen style ("Stilwelt") - never both,
60731
+ // so one row shows whichever the job has, like the table column.
60732
+ labelKey: 'backoffice.table.renderjobs.columns.sceneOrStyle',
60733
+ labelDefault: 'Renderszene / Stilwelt',
60734
+ value: formatString((_ref = (_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) !== null && _ref !== void 0 ? _ref : job === null || job === void 0 ? void 0 : job.promptName, fallback),
60584
60735
  editKey: 'renderScene'
60585
- }].concat(_toConsumableArray(isAiEngine(job === null || job === void 0 ? void 0 : job.engine) ? [{
60586
- labelKey: 'backoffice.renderapprove.metadata.fields.promptName',
60587
- labelDefault: 'Stilwelt',
60588
- value: formatString(job === null || job === void 0 ? void 0 : job.promptName, fallback)
60589
- }] : []), [{
60736
+ }, {
60590
60737
  labelKey: 'backoffice.renderapprove.metadata.fields.engine',
60591
60738
  value: formatString(job === null || job === void 0 ? void 0 : job.engine, fallback)
60592
- }])
60739
+ }]
60593
60740
  }];
60594
60741
  }
60595
- function MetadataPanel(_ref) {
60596
- var job = _ref.job,
60597
- fileSize = _ref.fileSize,
60598
- mediaType = _ref.mediaType,
60599
- detailsOpen = _ref.detailsOpen,
60600
- onDetailsOpenChange = _ref.onDetailsOpenChange,
60601
- promptOpen = _ref.promptOpen,
60602
- onPromptOpenChange = _ref.onPromptOpenChange,
60603
- promptActionDisabled = _ref.promptActionDisabled,
60604
- promptActionBusy = _ref.promptActionBusy,
60605
- onPromptRestart = _ref.onPromptRestart,
60606
- promptWarningMessage = _ref.promptWarningMessage,
60607
- hidePrompt = _ref.hidePrompt,
60608
- detailsEditDisabled = _ref.detailsEditDisabled,
60609
- detailsEditBusy = _ref.detailsEditBusy,
60610
- onDetailsSave = _ref.onDetailsSave,
60611
- sceneNames = _ref.sceneNames,
60612
- children = _ref.children;
60742
+ function MetadataPanel(_ref2) {
60743
+ var job = _ref2.job,
60744
+ fileSize = _ref2.fileSize,
60745
+ mediaType = _ref2.mediaType,
60746
+ detailsOpen = _ref2.detailsOpen,
60747
+ onDetailsOpenChange = _ref2.onDetailsOpenChange,
60748
+ promptOpen = _ref2.promptOpen,
60749
+ onPromptOpenChange = _ref2.onPromptOpenChange,
60750
+ promptActionDisabled = _ref2.promptActionDisabled,
60751
+ promptActionBusy = _ref2.promptActionBusy,
60752
+ onPromptRestart = _ref2.onPromptRestart,
60753
+ promptWarningMessage = _ref2.promptWarningMessage,
60754
+ hidePrompt = _ref2.hidePrompt,
60755
+ detailsEditDisabled = _ref2.detailsEditDisabled,
60756
+ detailsEditBusy = _ref2.detailsEditBusy,
60757
+ onDetailsSave = _ref2.onDetailsSave,
60758
+ sceneNames = _ref2.sceneNames,
60759
+ children = _ref2.children;
60613
60760
  var _useTranslation = useTranslation(),
60614
60761
  t = _useTranslation.t;
60615
60762
  var _useState = useState(false),
@@ -60748,7 +60895,7 @@ function MetadataPanel(_ref) {
60748
60895
  setIsEditingPrompt(false);
60749
60896
  };
60750
60897
  var onRestartProduction = /*#__PURE__*/function () {
60751
- var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
60898
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
60752
60899
  var _message, detail;
60753
60900
  return _regeneratorRuntime.wrap(function _callee$(_context) {
60754
60901
  while (1) switch (_context.prev = _context.next) {
@@ -60781,7 +60928,7 @@ function MetadataPanel(_ref) {
60781
60928
  }, _callee, null, [[3, 11]]);
60782
60929
  }));
60783
60930
  return function onRestartProduction() {
60784
- return _ref2.apply(this, arguments);
60931
+ return _ref3.apply(this, arguments);
60785
60932
  };
60786
60933
  }();
60787
60934
  var onEditDetails = function onEditDetails() {
@@ -60794,7 +60941,7 @@ function MetadataPanel(_ref) {
60794
60941
  setIsEditingDetails(false);
60795
60942
  };
60796
60943
  var onSaveDetails = /*#__PURE__*/function () {
60797
- var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
60944
+ var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
60798
60945
  var _message2, detail;
60799
60946
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
60800
60947
  while (1) switch (_context2.prev = _context2.next) {
@@ -60825,7 +60972,7 @@ function MetadataPanel(_ref) {
60825
60972
  }, _callee2, null, [[3, 9]]);
60826
60973
  }));
60827
60974
  return function onSaveDetails() {
60828
- return _ref3.apply(this, arguments);
60975
+ return _ref4.apply(this, arguments);
60829
60976
  };
60830
60977
  }();
60831
60978
  var updateDetailsDraft = function updateDetailsDraft(change) {
@@ -60833,9 +60980,9 @@ function MetadataPanel(_ref) {
60833
60980
  return _objectSpread$B(_objectSpread$B({}, draft), change);
60834
60981
  });
60835
60982
  };
60836
- var renderDetailFieldValue = function renderDetailFieldValue(_ref4) {
60837
- var value = _ref4.value,
60838
- editKey = _ref4.editKey;
60983
+ var renderDetailFieldValue = function renderDetailFieldValue(_ref5) {
60984
+ var value = _ref5.value,
60985
+ editKey = _ref5.editKey;
60839
60986
  if (!isEditingDetails || !editKey || !editableDetailFields.includes(editKey)) return value;
60840
60987
  if (editKey === 'priority') {
60841
60988
  return /*#__PURE__*/jsx(InputNumber, {
@@ -61018,9 +61165,9 @@ function MetadataPanel(_ref) {
61018
61165
  defaultValue: 'Bearbeiten'
61019
61166
  })
61020
61167
  })]
61021
- }), sections.map(function (_ref5) {
61022
- var titleKey = _ref5.titleKey,
61023
- fields = _ref5.fields;
61168
+ }), sections.map(function (_ref6) {
61169
+ var titleKey = _ref6.titleKey,
61170
+ fields = _ref6.fields;
61024
61171
  return /*#__PURE__*/jsx(Descriptions, {
61025
61172
  title: t(titleKey),
61026
61173
  size: "small",
@@ -61079,10 +61226,10 @@ function MetadataPanel(_ref) {
61079
61226
  className: toolbar$1,
61080
61227
  children: [/*#__PURE__*/jsx("div", {
61081
61228
  className: primaryFields,
61082
- children: primary.map(function (_ref6) {
61083
- var labelKey = _ref6.labelKey,
61084
- labelDefault = _ref6.labelDefault,
61085
- value = _ref6.value;
61229
+ children: primary.map(function (_ref7) {
61230
+ var labelKey = _ref7.labelKey,
61231
+ labelDefault = _ref7.labelDefault,
61232
+ value = _ref7.value;
61086
61233
  return /*#__PURE__*/jsxs("span", {
61087
61234
  className: primaryFieldItem,
61088
61235
  children: [/*#__PURE__*/jsxs(Typography.Text, {
@@ -63000,15 +63147,19 @@ function buildLeftSlides(left, renderImages, productMedia) {
63000
63147
  } finally {
63001
63148
  _iterator.f();
63002
63149
  }
63003
- var renderImageSlides = renderImages.map(function (_ref6) {
63150
+ var renderImageSlides = renderImages.map(function (_ref6, index) {
63004
63151
  var _productByUrl$get;
63005
63152
  var url = _ref6.url,
63006
63153
  mediaItemRefId = _ref6.mediaItemRefId;
63007
- return url === left.url ? left : (_productByUrl$get = productByUrl.get(url)) !== null && _productByUrl$get !== void 0 ? _productByUrl$get : {
63154
+ var slide = url === left.url ? left : (_productByUrl$get = productByUrl.get(url)) !== null && _productByUrl$get !== void 0 ? _productByUrl$get : {
63008
63155
  url: url,
63009
63156
  mediaType: 'PCT',
63010
63157
  mediaItemRefId: mediaItemRefId
63011
63158
  };
63159
+ // The first input image is the one the AI works from - flagged so the slider can label it.
63160
+ return index === 0 ? _objectSpread$w(_objectSpread$w({}, slide), {}, {
63161
+ isReference: true
63162
+ }) : slide;
63012
63163
  });
63013
63164
  var previewAfter = left.url != null && !renderImageUrls.has(left.url) ? [left] : [];
63014
63165
  return [].concat(_toConsumableArray(renderImageSlides), previewAfter, _toConsumableArray(remainingProduct));
@@ -63221,7 +63372,7 @@ function useRenderJobData(id, refreshKey) {
63221
63372
  setJob(undefined);
63222
63373
  setImages({});
63223
63374
  _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
63224
- var _fetchedJob$realTimeR, fetchedJob, left, renderImages, leftSlides, mediaItemId, mediaItemRef, productId, rightTask, productTask, variantsTask, named, _message, message;
63375
+ var _fetchedJob$realTimeR, fetchedJob, left, storedRenderImages, isAiJob, renderImages, leftSlides, mediaItemId, mediaItemRef, productId, rightTask, productTask, variantsTask, named, _message, message;
63225
63376
  return _regeneratorRuntime.wrap(function _callee$(_context) {
63226
63377
  while (1) switch (_context.prev = _context.next) {
63227
63378
  case 0:
@@ -63244,9 +63395,14 @@ function useRenderJobData(id, refreshKey) {
63244
63395
  mediaType: 'PCT',
63245
63396
  isPreview: true
63246
63397
  };
63247
- renderImages = Array.isArray(fetchedJob === null || fetchedJob === void 0 ? void 0 : fetchedJob.renderImages) ? fetchedJob.renderImages.filter(function (image) {
63398
+ storedRenderImages = Array.isArray(fetchedJob === null || fetchedJob === void 0 ? void 0 : fetchedJob.renderImages) ? fetchedJob.renderImages.filter(function (image) {
63248
63399
  return typeof (image === null || image === void 0 ? void 0 : image.url) === 'string' && image.url.length > 0;
63249
- }) : []; // Stage 1: preview and AI input images are known from the job document.
63400
+ }) : []; // An AI job without a stored list renders from the preview alone (diva-ai's fallback), so
63401
+ // the preview is its reference image - mirrors `normalizeInputImages` of the input-image popup.
63402
+ isAiJob = typeof (fetchedJob === null || fetchedJob === void 0 ? void 0 : fetchedJob.engine) === 'string' && fetchedJob.engine.trim().toLowerCase() === 'ai';
63403
+ renderImages = isAiJob && storedRenderImages.length === 0 && left.url ? [{
63404
+ url: left.url
63405
+ }] : storedRenderImages; // Stage 1: preview and AI input images are known from the job document.
63250
63406
  leftSlides = buildLeftSlides(left, renderImages, []);
63251
63407
  setImages({
63252
63408
  left: left,
@@ -63297,55 +63453,55 @@ function useRenderJobData(id, refreshKey) {
63297
63453
  });
63298
63454
  });
63299
63455
  });
63300
- _context.next = 19;
63456
+ _context.next = 21;
63301
63457
  return Promise.all([rightTask, productTask, variantsTask]);
63302
- case 19:
63458
+ case 21:
63303
63459
  if (!cancelled) {
63304
- _context.next = 21;
63460
+ _context.next = 23;
63305
63461
  break;
63306
63462
  }
63307
63463
  return _context.abrupt("return");
63308
- case 21:
63309
- _context.next = 23;
63310
- return withResolvedSlideNames(baseUrl, jwt, leftSlides);
63311
63464
  case 23:
63465
+ _context.next = 25;
63466
+ return withResolvedSlideNames(baseUrl, jwt, leftSlides);
63467
+ case 25:
63312
63468
  named = _context.sent;
63313
63469
  if (!(cancelled || named === leftSlides)) {
63314
- _context.next = 26;
63470
+ _context.next = 28;
63315
63471
  break;
63316
63472
  }
63317
63473
  return _context.abrupt("return");
63318
- case 26:
63474
+ case 28:
63319
63475
  setImages(function (prev) {
63320
63476
  return _objectSpread$w(_objectSpread$w({}, prev), {}, {
63321
63477
  leftSlides: named
63322
63478
  });
63323
63479
  });
63324
- _context.next = 36;
63480
+ _context.next = 38;
63325
63481
  break;
63326
- case 29:
63327
- _context.prev = 29;
63482
+ case 31:
63483
+ _context.prev = 31;
63328
63484
  _context.t0 = _context["catch"](0);
63329
63485
  if (!cancelled) {
63330
- _context.next = 33;
63486
+ _context.next = 35;
63331
63487
  break;
63332
63488
  }
63333
63489
  return _context.abrupt("return");
63334
- case 33:
63490
+ case 35:
63335
63491
  message = (_message = _context.t0 === null || _context.t0 === void 0 ? void 0 : _context.t0.message) !== null && _message !== void 0 ? _message : 'Unknown error';
63336
63492
  LOG$a.error(new DivaError("Failed to load render job ".concat(id, ": ").concat(message), {
63337
63493
  code: 'RENDERAPPROVE_LOAD_JOB'
63338
63494
  }));
63339
63495
  setError(message);
63340
- case 36:
63341
- _context.prev = 36;
63496
+ case 38:
63497
+ _context.prev = 38;
63342
63498
  if (!cancelled) setLoading(false);
63343
- return _context.finish(36);
63344
- case 39:
63499
+ return _context.finish(38);
63500
+ case 41:
63345
63501
  case "end":
63346
63502
  return _context.stop();
63347
63503
  }
63348
- }, _callee, null, [[0, 29, 36, 39]]);
63504
+ }, _callee, null, [[0, 31, 38, 41]]);
63349
63505
  }))();
63350
63506
  return function () {
63351
63507
  cancelled = true;
@@ -64096,7 +64252,7 @@ function focusBackConfirmButton(button) {
64096
64252
  ok === null || ok === void 0 || ok.focus();
64097
64253
  }
64098
64254
  function RenderApprove() {
64099
- var _data$job, _data$images$rightSli, _data$images$rightSli2, _data$job2, _data$images$right, _data$images$right2, _data$job3, _data$images$leftSlid, _data$job4, _data$job5, _data$job6, _data$job7, _imageFullscreen$name;
64255
+ var _data$job2, _data$job3, _data$images$rightSli, _data$images$rightSli2, _data$job4, _data$images$right, _data$images$right2, _data$job5, _data$job6, _data$job7, _data$job8, _data$job9, _data$job10, _imageFullscreen$name;
64100
64256
  var store = useStore();
64101
64257
  var navigate = useNavigate();
64102
64258
  var _useTranslation = useTranslation(),
@@ -64167,30 +64323,50 @@ function RenderApprove() {
64167
64323
  setCompareOpen = _useState28[1];
64168
64324
  var _useState29 = useState(false),
64169
64325
  _useState30 = _slicedToArray(_useState29, 2),
64170
- variantSelecting = _useState30[0],
64171
- setVariantSelecting = _useState30[1];
64172
- var data = useRenderJobData(session.currentId, dataRefreshKey);
64326
+ inputImagesOpen = _useState30[0],
64327
+ setInputImagesOpen = _useState30[1];
64173
64328
  var _useState31 = useState(false),
64174
64329
  _useState32 = _slicedToArray(_useState31, 2),
64175
- overviewReady = _useState32[0],
64176
- setOverviewReady = _useState32[1];
64177
- var _useState33 = useState(null),
64330
+ inputImagesSaving = _useState32[0],
64331
+ setInputImagesSaving = _useState32[1];
64332
+ var _useState33 = useState(false),
64178
64333
  _useState34 = _slicedToArray(_useState33, 2),
64179
- overviewRejectId = _useState34[0],
64180
- setOverviewRejectId = _useState34[1];
64334
+ variantSelecting = _useState34[0],
64335
+ setVariantSelecting = _useState34[1];
64336
+ var data = useRenderJobData(session.currentId, dataRefreshKey);
64337
+ // Stable reference for jobs without a stored list, so the popup's draft is not reset per render.
64338
+ var storedRenderImages = useMemo(function () {
64339
+ var _data$job$renderImage, _data$job;
64340
+ return (_data$job$renderImage = (_data$job = data.job) === null || _data$job === void 0 ? void 0 : _data$job.renderImages) !== null && _data$job$renderImage !== void 0 ? _data$job$renderImage : [];
64341
+ }, [(_data$job2 = data.job) === null || _data$job2 === void 0 ? void 0 : _data$job2.renderImages]);
64181
64342
  var _useState35 = useState(false),
64182
64343
  _useState36 = _slicedToArray(_useState35, 2),
64183
- overviewRejectBusy = _useState36[0],
64184
- setOverviewRejectBusy = _useState36[1];
64344
+ overviewReady = _useState36[0],
64345
+ setOverviewReady = _useState36[1];
64346
+ var _useState37 = useState(null),
64347
+ _useState38 = _slicedToArray(_useState37, 2),
64348
+ overviewRejectId = _useState38[0],
64349
+ setOverviewRejectId = _useState38[1];
64350
+ var _useState39 = useState(false),
64351
+ _useState40 = _slicedToArray(_useState39, 2),
64352
+ overviewRejectBusy = _useState40[0],
64353
+ setOverviewRejectBusy = _useState40[1];
64185
64354
  var overview = useSessionOverviewData(session.ids, overviewReady);
64186
64355
  var leftSwiperRef = useRef(null);
64187
64356
  var variantSwiperRef = useRef(null);
64188
- var isAiJob = typeof ((_data$job = data.job) === null || _data$job === void 0 ? void 0 : _data$job.engine) === 'string' && data.job.engine.trim().toLowerCase() === 'ai';
64357
+ var isAiJob = typeof ((_data$job3 = data.job) === null || _data$job3 === void 0 ? void 0 : _data$job3.engine) === 'string' && data.job.engine.trim().toLowerCase() === 'ai';
64189
64358
  var hasVariants = ((_data$images$rightSli = (_data$images$rightSli2 = data.images.rightSlides) === null || _data$images$rightSli2 === void 0 ? void 0 : _data$images$rightSli2.length) !== null && _data$images$rightSli !== void 0 ? _data$images$rightSli : 0) > 1;
64359
+ // AR media cannot be an AI input image, both selectors share this pool.
64360
+ var inputImageSlides = useMemo(function () {
64361
+ var _data$images$leftSlid;
64362
+ return ((_data$images$leftSlid = data.images.leftSlides) !== null && _data$images$leftSlid !== void 0 ? _data$images$leftSlid : []).filter(function (slide) {
64363
+ return slide.mediaType !== 'AR';
64364
+ });
64365
+ }, [data.images.leftSlides]);
64190
64366
  // Before checking (state < inChecking) the AI input images can still be
64191
64367
  // chosen/ordered -> show the selector. From "in Abnahme" onwards the regular
64192
64368
  // side-by-side comparison view is shown as before.
64193
- var showImageSelector = isAiJob && typeof ((_data$job2 = data.job) === null || _data$job2 === void 0 ? void 0 : _data$job2.state) === 'number' && data.job.state < RENDER_JOB_STATE.inChecking;
64369
+ var showImageSelector = isAiJob && typeof ((_data$job4 = data.job) === null || _data$job4 === void 0 ? void 0 : _data$job4.state) === 'number' && data.job.state < RENDER_JOB_STATE.inChecking;
64194
64370
  var mode = showImageSelector ? 'select' : 'approve';
64195
64371
  var showVariantControls = !showImageSelector && hasVariants;
64196
64372
  var shortcutItems = buildShortcutItems(mode, isAiJob && !showImageSelector, showVariantControls);
@@ -64224,9 +64400,11 @@ function RenderApprove() {
64224
64400
  // the next job's panels in a mode it may not even support. The swiper ref is
64225
64401
  // deliberately kept: the Swiper instance survives a job change (only its slides
64226
64402
  // are replaced) and would never re-run `onSwiper`, so clearing it here would
64227
- // silently disable Q/E from the second job onwards.
64403
+ // silently disable Q/E from the second job onwards. The input-image draft belongs to one
64404
+ // job as well, so its popup closes too.
64228
64405
  useEffect(function () {
64229
64406
  setCompareOpen(false);
64407
+ setInputImagesOpen(false);
64230
64408
  }, [session.currentId]);
64231
64409
  var closeReject = function closeReject() {
64232
64410
  if (session.isUpdating) return;
@@ -64263,7 +64441,7 @@ function RenderApprove() {
64263
64441
  };
64264
64442
 
64265
64443
  // Overlays that own the screen while open - nothing behind them may be acted on.
64266
- var modalOpen = rejectOpen || fullscreenSide !== null || imageFullscreen !== null || backConfirmOpen || overviewRejectId !== null || readyForProductionConfirmOpen;
64444
+ var modalOpen = rejectOpen || fullscreenSide !== null || imageFullscreen !== null || backConfirmOpen || overviewRejectId !== null || readyForProductionConfirmOpen || inputImagesOpen;
64267
64445
  // The comparison grid replaces the viewer panels, so everything reading from those (both
64268
64446
  // swipers) has to treat it as an overlay. Deciding the job deliberately stays available:
64269
64447
  // approve/reject work straight out of the comparison.
@@ -64271,7 +64449,7 @@ function RenderApprove() {
64271
64449
  // A take-over rewrites the whole job document, exactly like approve/reject does. Both
64272
64450
  // read-modify-write without locking, so a decision taken while the other is in flight
64273
64451
  // would silently lose one of them.
64274
- var jobWriteInFlight = session.isUpdating || variantSelecting || detailsSaving;
64452
+ var jobWriteInFlight = session.isUpdating || variantSelecting || detailsSaving || inputImagesSaving;
64275
64453
  // Blocks the prompt and details edit flows (both patch the job document).
64276
64454
  var editFlowBlocked = overlayOpen || jobWriteInFlight || session.isCurrentReadOnly || data.loading || !data.job || session.isFinished || promptRestarting || readyForProductionBusy;
64277
64455
  var performSetReadyForProduction = /*#__PURE__*/function () {
@@ -64474,6 +64652,67 @@ function RenderApprove() {
64474
64652
  return _ref3.apply(this, arguments);
64475
64653
  };
64476
64654
  }();
64655
+ var openInputImages = function openInputImages() {
64656
+ if (editFlowBlocked || !data.job) return;
64657
+ setInputImagesOpen(true);
64658
+ };
64659
+
64660
+ // Persists the reviewer's new input-image selection/order without restarting the job - the
64661
+ // next restart ("Bereit zur Produktion" or a prompt restart) picks it up. `isManualUpdate` is
64662
+ // required from "in Abnahme" onwards. The job is re-fetched because the left slider assembles
64663
+ // its slides only on load, and the new first image has to show up as the reference image.
64664
+ var onSaveInputImages = /*#__PURE__*/function () {
64665
+ var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5(renderImages) {
64666
+ var op;
64667
+ return _regeneratorRuntime.wrap(function _callee5$(_context5) {
64668
+ while (1) switch (_context5.prev = _context5.next) {
64669
+ case 0:
64670
+ if (!(!data.job || jobWriteInFlight || session.isCurrentReadOnly)) {
64671
+ _context5.next = 2;
64672
+ break;
64673
+ }
64674
+ return _context5.abrupt("return");
64675
+ case 2:
64676
+ setInputImagesSaving(true);
64677
+ _context5.prev = 3;
64678
+ // RFC 6902: `add` is rejected when the path already exists.
64679
+ op = data.job.renderImages === undefined ? 'add' : 'replace';
64680
+ _context5.next = 7;
64681
+ return updateRenderJobPatch(data.job._id, [{
64682
+ op: op,
64683
+ path: '/renderImages',
64684
+ value: renderImages
64685
+ }], true);
64686
+ case 7:
64687
+ setInputImagesOpen(false);
64688
+ setDataRefreshKey(function (k) {
64689
+ return k + 1;
64690
+ });
64691
+ message.success(t('backoffice.renderapprove.inputImages.saveSuccess', {
64692
+ defaultValue: 'Inputbilder gespeichert. Die neue Reihenfolge gilt ab dem nächsten Neustart.'
64693
+ }));
64694
+ _context5.next = 15;
64695
+ break;
64696
+ case 12:
64697
+ _context5.prev = 12;
64698
+ _context5.t0 = _context5["catch"](3);
64699
+ message.error(t('backoffice.renderapprove.inputImages.saveFailed', {
64700
+ defaultValue: 'Inputbilder konnten nicht gespeichert werden.'
64701
+ }));
64702
+ case 15:
64703
+ _context5.prev = 15;
64704
+ setInputImagesSaving(false);
64705
+ return _context5.finish(15);
64706
+ case 18:
64707
+ case "end":
64708
+ return _context5.stop();
64709
+ }
64710
+ }, _callee5, null, [[3, 12, 15, 18]]);
64711
+ }));
64712
+ return function onSaveInputImages(_x4) {
64713
+ return _ref4.apply(this, arguments);
64714
+ };
64715
+ }();
64477
64716
 
64478
64717
  // Shortcuts keep running while the "Session complete" screen is
64479
64718
  // visible - so the user can still undo the approve/reject of the last
@@ -64481,7 +64720,10 @@ function RenderApprove() {
64481
64720
  // self-guard via `data.job`, `isFirst`/`isLast` etc. so they remain
64482
64721
  // no-ops on the finish screen.
64483
64722
  useKeyboardShortcuts({
64484
- disabled: session.isEmpty,
64723
+ // While the input-image popup is open, Enter/Space/arrows/Escape belong to the drag & drop
64724
+ // keyboard sensor of the image list - otherwise Enter would approve and Space open the
64725
+ // fullscreen. The popup closes on Escape by itself (antd modal).
64726
+ disabled: session.isEmpty || inputImagesOpen,
64485
64727
  handlers: {
64486
64728
  approve: function approve() {
64487
64729
  // Approve/reject only exist in the approval mode, not while selecting images.
@@ -64673,23 +64915,23 @@ function RenderApprove() {
64673
64915
  };
64674
64916
  }, [store]);
64675
64917
  var navigateBackToTable = /*#__PURE__*/function () {
64676
- var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {
64677
- return _regeneratorRuntime.wrap(function _callee5$(_context5) {
64678
- while (1) switch (_context5.prev = _context5.next) {
64918
+ var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee6() {
64919
+ return _regeneratorRuntime.wrap(function _callee6$(_context6) {
64920
+ while (1) switch (_context6.prev = _context6.next) {
64679
64921
  case 0:
64680
- _context5.next = 2;
64922
+ _context6.next = 2;
64681
64923
  return session.flushPending();
64682
64924
  case 2:
64683
64925
  setSideMenusOpen(store, true);
64684
64926
  navigate(RENDERJOBS_PATH);
64685
64927
  case 4:
64686
64928
  case "end":
64687
- return _context5.stop();
64929
+ return _context6.stop();
64688
64930
  }
64689
- }, _callee5);
64931
+ }, _callee6);
64690
64932
  }));
64691
64933
  return function navigateBackToTable() {
64692
- return _ref4.apply(this, arguments);
64934
+ return _ref5.apply(this, arguments);
64693
64935
  };
64694
64936
  }();
64695
64937
  var onBackClick = function onBackClick() {
@@ -64705,22 +64947,22 @@ function RenderApprove() {
64705
64947
  setBackConfirmOpen(false);
64706
64948
  },
64707
64949
  onOk: function () {
64708
- var _onOk2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee6() {
64709
- return _regeneratorRuntime.wrap(function _callee6$(_context6) {
64710
- while (1) switch (_context6.prev = _context6.next) {
64950
+ var _onOk2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee7() {
64951
+ return _regeneratorRuntime.wrap(function _callee7$(_context7) {
64952
+ while (1) switch (_context7.prev = _context7.next) {
64711
64953
  case 0:
64712
- _context6.prev = 0;
64713
- _context6.next = 3;
64954
+ _context7.prev = 0;
64955
+ _context7.next = 3;
64714
64956
  return navigateBackToTable();
64715
64957
  case 3:
64716
- _context6.prev = 3;
64958
+ _context7.prev = 3;
64717
64959
  setBackConfirmOpen(false);
64718
- return _context6.finish(3);
64960
+ return _context7.finish(3);
64719
64961
  case 6:
64720
64962
  case "end":
64721
- return _context6.stop();
64963
+ return _context7.stop();
64722
64964
  }
64723
- }, _callee6, null, [[0,, 3, 6]]);
64965
+ }, _callee7, null, [[0,, 3, 6]]);
64724
64966
  }));
64725
64967
  function onOk() {
64726
64968
  return _onOk2.apply(this, arguments);
@@ -64734,16 +64976,16 @@ function RenderApprove() {
64734
64976
  // `renderImages` array (CDN url + MediaItemRef id, in order) is the source of
64735
64977
  // truth the AI generation consumes.
64736
64978
  var persistImageSelection = /*#__PURE__*/function () {
64737
- var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee7(renderImages) {
64979
+ var _ref6 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee8(renderImages) {
64738
64980
  var op;
64739
- return _regeneratorRuntime.wrap(function _callee7$(_context7) {
64740
- while (1) switch (_context7.prev = _context7.next) {
64981
+ return _regeneratorRuntime.wrap(function _callee8$(_context8) {
64982
+ while (1) switch (_context8.prev = _context8.next) {
64741
64983
  case 0:
64742
64984
  if (data.job) {
64743
- _context7.next = 2;
64985
+ _context8.next = 2;
64744
64986
  break;
64745
64987
  }
64746
- return _context7.abrupt("return");
64988
+ return _context8.abrupt("return");
64747
64989
  case 2:
64748
64990
  // Optimistically update the in-memory job so re-renders (and a subsequent
64749
64991
  // upload) use this order instead of snapping back to the last fetched one.
@@ -64751,30 +64993,30 @@ function RenderApprove() {
64751
64993
  // RFC 6902: `add` is rejected when the path already exists (AI jobs often
64752
64994
  // ship with a default renderImages list), so replace when it's present.
64753
64995
  op = data.job.renderImages === undefined ? 'add' : 'replace';
64754
- _context7.prev = 4;
64755
- _context7.next = 7;
64996
+ _context8.prev = 4;
64997
+ _context8.next = 7;
64756
64998
  return updateRenderJobPatch(data.job._id, [{
64757
64999
  op: op,
64758
65000
  path: '/renderImages',
64759
65001
  value: renderImages
64760
65002
  }]);
64761
65003
  case 7:
64762
- _context7.next = 12;
65004
+ _context8.next = 12;
64763
65005
  break;
64764
65006
  case 9:
64765
- _context7.prev = 9;
64766
- _context7.t0 = _context7["catch"](4);
65007
+ _context8.prev = 9;
65008
+ _context8.t0 = _context8["catch"](4);
64767
65009
  message.error(t('backoffice.renderapprove.aiImageSelector.saveFailed', {
64768
65010
  defaultValue: 'Bildauswahl konnte nicht gespeichert werden.'
64769
65011
  }));
64770
65012
  case 12:
64771
65013
  case "end":
64772
- return _context7.stop();
65014
+ return _context8.stop();
64773
65015
  }
64774
- }, _callee7, null, [[4, 9]]);
65016
+ }, _callee8, null, [[4, 9]]);
64775
65017
  }));
64776
- return function persistImageSelection(_x4) {
64777
- return _ref5.apply(this, arguments);
65018
+ return function persistImageSelection(_x5) {
65019
+ return _ref6.apply(this, arguments);
64778
65020
  };
64779
65021
  }();
64780
65022
 
@@ -64782,19 +65024,19 @@ function RenderApprove() {
64782
65024
  // and the job reference along, so the job is re-fetched instead of patched in
64783
65025
  // memory - `fileUrl`, `mediaItemRef` and the variant names all change at once.
64784
65026
  var onSelectVariant = /*#__PURE__*/function () {
64785
- var _ref6 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee8(mediaItemId) {
64786
- return _regeneratorRuntime.wrap(function _callee8$(_context8) {
64787
- while (1) switch (_context8.prev = _context8.next) {
65027
+ var _ref7 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee9(mediaItemId) {
65028
+ return _regeneratorRuntime.wrap(function _callee9$(_context9) {
65029
+ while (1) switch (_context9.prev = _context9.next) {
64788
65030
  case 0:
64789
65031
  if (!(!data.job || variantSelecting)) {
64790
- _context8.next = 2;
65032
+ _context9.next = 2;
64791
65033
  break;
64792
65034
  }
64793
- return _context8.abrupt("return");
65035
+ return _context9.abrupt("return");
64794
65036
  case 2:
64795
65037
  setVariantSelecting(true);
64796
- _context8.prev = 3;
64797
- _context8.next = 6;
65038
+ _context9.prev = 3;
65039
+ _context9.next = 6;
64798
65040
  return selectRenderJobVariant(data.job._id, mediaItemId);
64799
65041
  case 6:
64800
65042
  setDataRefreshKey(function (k) {
@@ -64803,45 +65045,45 @@ function RenderApprove() {
64803
65045
  message.success(t('backoffice.renderapprove.variants.selectSuccess', {
64804
65046
  defaultValue: 'Variante als Produktbild übernommen.'
64805
65047
  }));
64806
- _context8.next = 13;
65048
+ _context9.next = 13;
64807
65049
  break;
64808
65050
  case 10:
64809
- _context8.prev = 10;
64810
- _context8.t0 = _context8["catch"](3);
65051
+ _context9.prev = 10;
65052
+ _context9.t0 = _context9["catch"](3);
64811
65053
  message.error(t('backoffice.renderapprove.variants.selectFailed', {
64812
65054
  defaultValue: 'Variante konnte nicht übernommen werden.'
64813
65055
  }));
64814
65056
  case 13:
64815
- _context8.prev = 13;
65057
+ _context9.prev = 13;
64816
65058
  setVariantSelecting(false);
64817
- return _context8.finish(13);
65059
+ return _context9.finish(13);
64818
65060
  case 16:
64819
65061
  case "end":
64820
- return _context8.stop();
65062
+ return _context9.stop();
64821
65063
  }
64822
- }, _callee8, null, [[3, 10, 13, 16]]);
65064
+ }, _callee9, null, [[3, 10, 13, 16]]);
64823
65065
  }));
64824
- return function onSelectVariant(_x5) {
64825
- return _ref6.apply(this, arguments);
65066
+ return function onSelectVariant(_x6) {
65067
+ return _ref7.apply(this, arguments);
64826
65068
  };
64827
65069
  }();
64828
65070
  var onRejectConfirm = /*#__PURE__*/function () {
64829
- var _ref7 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee9(reason, comment) {
64830
- return _regeneratorRuntime.wrap(function _callee9$(_context9) {
64831
- while (1) switch (_context9.prev = _context9.next) {
65071
+ var _ref8 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee10(reason, comment) {
65072
+ return _regeneratorRuntime.wrap(function _callee10$(_context10) {
65073
+ while (1) switch (_context10.prev = _context10.next) {
64832
65074
  case 0:
64833
- _context9.next = 2;
65075
+ _context10.next = 2;
64834
65076
  return session.reject(reason, comment);
64835
65077
  case 2:
64836
65078
  setRejectOpen(false);
64837
65079
  case 3:
64838
65080
  case "end":
64839
- return _context9.stop();
65081
+ return _context10.stop();
64840
65082
  }
64841
- }, _callee9);
65083
+ }, _callee10);
64842
65084
  }));
64843
- return function onRejectConfirm(_x6, _x7) {
64844
- return _ref7.apply(this, arguments);
65085
+ return function onRejectConfirm(_x7, _x8) {
65086
+ return _ref8.apply(this, arguments);
64845
65087
  };
64846
65088
  }();
64847
65089
 
@@ -64861,69 +65103,69 @@ function RenderApprove() {
64861
65103
 
64862
65104
  // Status changes made directly from the finish overview's dropdown/bulk takeover.
64863
65105
  var handleOverviewApplyState = /*#__PURE__*/function () {
64864
- var _ref8 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee10(id, targetState, msg) {
64865
- return _regeneratorRuntime.wrap(function _callee10$(_context10) {
64866
- while (1) switch (_context10.prev = _context10.next) {
65106
+ var _ref9 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee11(id, targetState, msg) {
65107
+ return _regeneratorRuntime.wrap(function _callee11$(_context11) {
65108
+ while (1) switch (_context11.prev = _context11.next) {
64867
65109
  case 0:
64868
- _context10.next = 2;
65110
+ _context11.next = 2;
64869
65111
  return overview.applyState(id, targetState, msg);
64870
65112
  case 2:
64871
65113
  syncSessionDecisionForOverviewState(id, targetState);
64872
65114
  case 3:
64873
65115
  case "end":
64874
- return _context10.stop();
65116
+ return _context11.stop();
64875
65117
  }
64876
- }, _callee10);
65118
+ }, _callee11);
64877
65119
  }));
64878
- return function handleOverviewApplyState(_x8, _x9, _x10) {
64879
- return _ref8.apply(this, arguments);
65120
+ return function handleOverviewApplyState(_x9, _x10, _x11) {
65121
+ return _ref9.apply(this, arguments);
64880
65122
  };
64881
65123
  }();
64882
65124
 
64883
65125
  // Reject flow triggered from the finish overview (a job's status dropdown).
64884
65126
  // Unlike the in-session reject this persists immediately via the overview.
64885
65127
  var handleOverviewReject = /*#__PURE__*/function () {
64886
- var _ref9 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee11(reason, comment) {
65128
+ var _ref10 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee12(reason, comment) {
64887
65129
  var id, rejectMessage;
64888
- return _regeneratorRuntime.wrap(function _callee11$(_context11) {
64889
- while (1) switch (_context11.prev = _context11.next) {
65130
+ return _regeneratorRuntime.wrap(function _callee12$(_context12) {
65131
+ while (1) switch (_context12.prev = _context12.next) {
64890
65132
  case 0:
64891
65133
  id = overviewRejectId;
64892
65134
  if (id) {
64893
- _context11.next = 3;
65135
+ _context12.next = 3;
64894
65136
  break;
64895
65137
  }
64896
- return _context11.abrupt("return");
65138
+ return _context12.abrupt("return");
64897
65139
  case 3:
64898
65140
  rejectMessage = buildRejectMessage(t(getRejectionReasonLabelKey(reason)), comment);
64899
65141
  setOverviewRejectBusy(true);
64900
- _context11.prev = 5;
64901
- _context11.next = 8;
65142
+ _context12.prev = 5;
65143
+ _context12.next = 8;
64902
65144
  return overview.applyState(id, RENDER_JOB_STATE.rejected, rejectMessage);
64903
65145
  case 8:
64904
65146
  syncSessionDecisionForOverviewState(id, RENDER_JOB_STATE.rejected);
64905
65147
  message.success(t('backoffice.renderapprove.messages.jobRejected'));
64906
- _context11.next = 15;
65148
+ _context12.next = 15;
64907
65149
  break;
64908
65150
  case 12:
64909
- _context11.prev = 12;
64910
- _context11.t0 = _context11["catch"](5);
65151
+ _context12.prev = 12;
65152
+ _context12.t0 = _context12["catch"](5);
64911
65153
  message.error(t('backoffice.renderapprove.overview.statusUpdateFailed', {
64912
65154
  defaultValue: 'Status konnte nicht geändert werden.'
64913
65155
  }));
64914
65156
  case 15:
64915
- _context11.prev = 15;
65157
+ _context12.prev = 15;
64916
65158
  setOverviewRejectBusy(false);
64917
65159
  setOverviewRejectId(null);
64918
- return _context11.finish(15);
65160
+ return _context12.finish(15);
64919
65161
  case 19:
64920
65162
  case "end":
64921
- return _context11.stop();
65163
+ return _context12.stop();
64922
65164
  }
64923
- }, _callee11, null, [[5, 12, 15, 19]]);
65165
+ }, _callee12, null, [[5, 12, 15, 19]]);
64924
65166
  }));
64925
- return function handleOverviewReject(_x11, _x12) {
64926
- return _ref9.apply(this, arguments);
65167
+ return function handleOverviewReject(_x12, _x13) {
65168
+ return _ref10.apply(this, arguments);
64927
65169
  };
64928
65170
  }();
64929
65171
  if (session.isValidatingSelection) {
@@ -65019,13 +65261,11 @@ function RenderApprove() {
65019
65261
  hidePrompt: showImageSelector,
65020
65262
  detailsEditDisabled: editFlowBlocked,
65021
65263
  detailsEditBusy: detailsSaving,
65022
- onDetailsSave: !showImageSelector && ((_data$job3 = data.job) === null || _data$job3 === void 0 ? void 0 : _data$job3.state) !== RENDER_JOB_STATE.finished ? onDetailsSave : undefined,
65264
+ onDetailsSave: !showImageSelector && ((_data$job5 = data.job) === null || _data$job5 === void 0 ? void 0 : _data$job5.state) !== RENDER_JOB_STATE.finished ? onDetailsSave : undefined,
65023
65265
  sceneNames: store.configurationStore.sceneNames,
65024
65266
  children: showImageSelector && data.job ? /*#__PURE__*/jsx(ImageSelectionWorkspace, {
65025
65267
  job: data.job,
65026
- slides: ((_data$images$leftSlid = data.images.leftSlides) !== null && _data$images$leftSlid !== void 0 ? _data$images$leftSlid : []).filter(function (slide) {
65027
- return slide.mediaType !== 'AR';
65028
- }),
65268
+ slides: inputImageSlides,
65029
65269
  selectionDisabled: session.isCurrentReadOnly || session.isUpdating,
65030
65270
  onSelectionChange: persistImageSelection,
65031
65271
  onOpenFullscreen: setImageFullscreen,
@@ -65061,10 +65301,11 @@ function RenderApprove() {
65061
65301
  onReject: openReject,
65062
65302
  onPrev: session.goPrev,
65063
65303
  onNext: session.goNext,
65064
- onUpload: ((_data$job4 = data.job) === null || _data$job4 === void 0 ? void 0 : _data$job4.state) === RENDER_JOB_STATE.finished ? undefined : function () {
65304
+ onUpload: ((_data$job6 = data.job) === null || _data$job6 === void 0 ? void 0 : _data$job6.state) === RENDER_JOB_STATE.finished ? undefined : function () {
65065
65305
  return setUploadOpen(true);
65066
65306
  },
65067
- onSetReadyForProduction: ((_data$job5 = data.job) === null || _data$job5 === void 0 ? void 0 : _data$job5.state) === RENDER_JOB_STATE.finished ? undefined : onSetReadyForProduction,
65307
+ onSetReadyForProduction: ((_data$job7 = data.job) === null || _data$job7 === void 0 ? void 0 : _data$job7.state) === RENDER_JOB_STATE.finished ? undefined : onSetReadyForProduction,
65308
+ onEditInputImages: isAiJob && ((_data$job8 = data.job) === null || _data$job8 === void 0 ? void 0 : _data$job8.state) !== RENDER_JOB_STATE.finished ? openInputImages : undefined,
65068
65309
  compareOpen: compareOpen,
65069
65310
  onToggleCompare: showVariantControls ? function () {
65070
65311
  return setCompareOpen(function (open) {
@@ -65093,7 +65334,7 @@ function RenderApprove() {
65093
65334
  onConfirm: handleOverviewReject
65094
65335
  }), /*#__PURE__*/jsx(UploadImageModal, {
65095
65336
  open: uploadOpen,
65096
- renderJob: (_data$job6 = data.job) !== null && _data$job6 !== void 0 ? _data$job6 : null,
65337
+ renderJob: (_data$job9 = data.job) !== null && _data$job9 !== void 0 ? _data$job9 : null,
65097
65338
  onClose: function onClose() {
65098
65339
  return setUploadOpen(false);
65099
65340
  },
@@ -65105,7 +65346,7 @@ function RenderApprove() {
65105
65346
  }
65106
65347
  }), /*#__PURE__*/jsx(UploadImageModal, {
65107
65348
  open: selectionUploadOpen,
65108
- renderJob: (_data$job7 = data.job) !== null && _data$job7 !== void 0 ? _data$job7 : null,
65349
+ renderJob: (_data$job10 = data.job) !== null && _data$job10 !== void 0 ? _data$job10 : null,
65109
65350
  uploadOverride: uploadRenderImage,
65110
65351
  skipValidation: true,
65111
65352
  allowedExtensions: ['webp', 'png', 'jpg', 'jpeg'],
@@ -65118,6 +65359,17 @@ function RenderApprove() {
65118
65359
  return k + 1;
65119
65360
  });
65120
65361
  }
65362
+ }), /*#__PURE__*/jsx(InputImagesModal, {
65363
+ open: inputImagesOpen,
65364
+ slides: inputImageSlides,
65365
+ renderImages: storedRenderImages,
65366
+ saving: inputImagesSaving,
65367
+ onCancel: function onCancel() {
65368
+ if (!inputImagesSaving) setInputImagesOpen(false);
65369
+ },
65370
+ onSave: function onSave(images) {
65371
+ return void onSaveInputImages(images);
65372
+ }
65121
65373
  }), /*#__PURE__*/jsx(FullscreenViewer, {
65122
65374
  open: fullscreenSide !== null,
65123
65375
  media: fullscreenMedia,