@crystaldesign/diva-backoffice 26.12.0-beta.21 → 26.12.0-beta.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/esm/index.js +202 -155
- package/build/types/backoffice/src/tests/unit/ui/TableRenderJobs/stateHistoryMessages.test.d.ts +2 -0
- package/build/types/backoffice/src/tests/unit/ui/TableRenderJobs/stateHistoryMessages.test.d.ts.map +1 -0
- package/build/types/backoffice/src/ui/List/index.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/SessionOverview/index.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/hooks/useSessionOverviewData.d.ts +4 -0
- package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/hooks/useSessionOverviewData.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/TableRenderJobs/constants.d.ts +1 -0
- package/build/types/backoffice/src/ui/TableRenderJobs/constants.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/TableRenderJobs/utils.d.ts +18 -0
- package/build/types/backoffice/src/ui/TableRenderJobs/utils.d.ts.map +1 -1
- package/package.json +10 -10
package/build/esm/index.js
CHANGED
|
@@ -13816,7 +13816,12 @@ function loadConfiguration(t, root, config, lang, apiConfig) {
|
|
|
13816
13816
|
}, 'von', {
|
|
13817
13817
|
field: 'authorByName'
|
|
13818
13818
|
}],
|
|
13819
|
+
// Recognised render-pipeline failures carry a code that is translated into plain language; the
|
|
13820
|
+
// reported message follows it, so an unclassified failure still shows what the pipeline said.
|
|
13819
13821
|
content: [{
|
|
13822
|
+
field: 'messageCode',
|
|
13823
|
+
translationPrefix: 'renderjob.error'
|
|
13824
|
+
}, {
|
|
13820
13825
|
field: 'message'
|
|
13821
13826
|
}]
|
|
13822
13827
|
}
|
|
@@ -27821,6 +27826,9 @@ var ListWrapper = function ListWrapper(props, ref) {
|
|
|
27821
27826
|
}),
|
|
27822
27827
|
description: item.description
|
|
27823
27828
|
}), /*#__PURE__*/jsx("div", {
|
|
27829
|
+
style: {
|
|
27830
|
+
whiteSpace: 'pre-wrap'
|
|
27831
|
+
},
|
|
27824
27832
|
children: item.content
|
|
27825
27833
|
}), /*#__PURE__*/jsx("div", {
|
|
27826
27834
|
style: {
|
|
@@ -73969,6 +73977,124 @@ function SessionHeader(_ref) {
|
|
|
73969
73977
|
});
|
|
73970
73978
|
}
|
|
73971
73979
|
|
|
73980
|
+
/**
|
|
73981
|
+
* Numeric render-job states used by the RenderApprove session.
|
|
73982
|
+
* Mirrors `RenderJobState` in `node-apps/diva-media/src/infra/db/models/RenderJobModel.ts`
|
|
73983
|
+
* (kept as plain literals to avoid a cross-package import).
|
|
73984
|
+
*/
|
|
73985
|
+
var RENDER_JOB_STATE = {
|
|
73986
|
+
paymentClarified: 2,
|
|
73987
|
+
readyForProduction: 3,
|
|
73988
|
+
readyForRenderer: 5,
|
|
73989
|
+
inChecking: 7,
|
|
73990
|
+
approved: 8,
|
|
73991
|
+
rejected: 9,
|
|
73992
|
+
error: 11,
|
|
73993
|
+
finished: 12
|
|
73994
|
+
};
|
|
73995
|
+
|
|
73996
|
+
/**
|
|
73997
|
+
* Mandatory rejection reasons per acceptance criteria / Story 5 (7 categories).
|
|
73998
|
+
* `value` is sent as the `message` payload of `PATCH /renderjobs/:id/state`.
|
|
73999
|
+
*/
|
|
74000
|
+
var REJECTION_REASONS = [{
|
|
74001
|
+
value: 'qualityInsufficient',
|
|
74002
|
+
labelKey: 'backoffice.renderapprove.rejectionReasons.qualityInsufficient'
|
|
74003
|
+
}, {
|
|
74004
|
+
value: 'wrongPerspective',
|
|
74005
|
+
labelKey: 'backoffice.renderapprove.rejectionReasons.wrongPerspective'
|
|
74006
|
+
}, {
|
|
74007
|
+
value: 'lightingIssues',
|
|
74008
|
+
labelKey: 'backoffice.renderapprove.rejectionReasons.lightingIssues'
|
|
74009
|
+
}, {
|
|
74010
|
+
value: 'materialIssues',
|
|
74011
|
+
labelKey: 'backoffice.renderapprove.rejectionReasons.materialIssues'
|
|
74012
|
+
}, {
|
|
74013
|
+
value: 'geometryIssues',
|
|
74014
|
+
labelKey: 'backoffice.renderapprove.rejectionReasons.geometryIssues'
|
|
74015
|
+
}, {
|
|
74016
|
+
value: 'compositionIssues',
|
|
74017
|
+
labelKey: 'backoffice.renderapprove.rejectionReasons.compositionIssues'
|
|
74018
|
+
}, {
|
|
74019
|
+
value: 'other',
|
|
74020
|
+
labelKey: 'backoffice.renderapprove.rejectionReasons.other'
|
|
74021
|
+
}];
|
|
74022
|
+
function getRejectionReasonLabelKey(reason) {
|
|
74023
|
+
var _match$labelKey;
|
|
74024
|
+
var match = REJECTION_REASONS.find(function (entry) {
|
|
74025
|
+
return entry.value === reason;
|
|
74026
|
+
});
|
|
74027
|
+
return (_match$labelKey = match === null || match === void 0 ? void 0 : match.labelKey) !== null && _match$labelKey !== void 0 ? _match$labelKey : 'backoffice.renderapprove.rejectionReasons.other';
|
|
74028
|
+
}
|
|
74029
|
+
|
|
74030
|
+
/**
|
|
74031
|
+
* Keyboard shortcut identifiers used by `useKeyboardShortcuts`.
|
|
74032
|
+
* Layout: Arrow Right = Approve, Arrow Left = Reject, Arrow Down = Skip.
|
|
74033
|
+
* Optional navigation shortcuts use PageUp/PageDown. Space = Fullscreen,
|
|
74034
|
+
* Escape closes Modal / Fullscreen, Ctrl/Cmd+Z undoes the last action
|
|
74035
|
+
* within the undo window.
|
|
74036
|
+
*
|
|
74037
|
+
* `code` matches `KeyboardEvent.code` (layout-stable); `mod` requires
|
|
74038
|
+
* Ctrl (Windows/Linux) or Cmd (macOS) to be held during the keypress.
|
|
74039
|
+
*/
|
|
74040
|
+
|
|
74041
|
+
var KEY_MAP = {
|
|
74042
|
+
approve: {
|
|
74043
|
+
code: 'Enter'
|
|
74044
|
+
},
|
|
74045
|
+
reject: {
|
|
74046
|
+
code: 'Backspace'
|
|
74047
|
+
},
|
|
74048
|
+
prev: {
|
|
74049
|
+
code: 'ArrowLeft'
|
|
74050
|
+
},
|
|
74051
|
+
next: {
|
|
74052
|
+
code: 'ArrowRight'
|
|
74053
|
+
},
|
|
74054
|
+
swiperPrev: {
|
|
74055
|
+
code: 'KeyA'
|
|
74056
|
+
},
|
|
74057
|
+
swiperNext: {
|
|
74058
|
+
code: 'KeyD'
|
|
74059
|
+
},
|
|
74060
|
+
// A/D already drive the left swiper, so the variant swiper gets its own pair.
|
|
74061
|
+
variantPrev: {
|
|
74062
|
+
code: 'KeyQ'
|
|
74063
|
+
},
|
|
74064
|
+
variantNext: {
|
|
74065
|
+
code: 'KeyE'
|
|
74066
|
+
},
|
|
74067
|
+
compare: {
|
|
74068
|
+
code: 'KeyC'
|
|
74069
|
+
},
|
|
74070
|
+
details: {
|
|
74071
|
+
code: 'KeyD',
|
|
74072
|
+
mod: true
|
|
74073
|
+
},
|
|
74074
|
+
prompt: {
|
|
74075
|
+
code: 'KeyI',
|
|
74076
|
+
mod: true
|
|
74077
|
+
},
|
|
74078
|
+
fullscreen: {
|
|
74079
|
+
code: 'Space'
|
|
74080
|
+
},
|
|
74081
|
+
close: {
|
|
74082
|
+
code: 'Escape'
|
|
74083
|
+
},
|
|
74084
|
+
undo: {
|
|
74085
|
+
code: 'KeyZ',
|
|
74086
|
+
mod: true
|
|
74087
|
+
}
|
|
74088
|
+
};
|
|
74089
|
+
/**
|
|
74090
|
+
* Default lifetime of the Phase 4 undo notification (ms).
|
|
74091
|
+
* Kept here so it can be referenced from multiple hooks/components.
|
|
74092
|
+
*/
|
|
74093
|
+
var UNDO_TIMEOUT_MS = 5000;
|
|
74094
|
+
|
|
74095
|
+
function _createForOfIteratorHelper$k(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$k(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
74096
|
+
function _unsupportedIterableToArray$k(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$k(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$k(r, a) : void 0; } }
|
|
74097
|
+
function _arrayLikeToArray$k(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
73972
74098
|
/** Mime types of images a browser cannot render in an `<img>` element. */
|
|
73973
74099
|
var NON_RENDERABLE_MIME_TYPES = new Set(['image/tiff', 'image/tif']);
|
|
73974
74100
|
|
|
@@ -73993,6 +74119,47 @@ function getViewerUrl(media) {
|
|
|
73993
74119
|
return (_media$url = media.url) !== null && _media$url !== void 0 ? _media$url : null;
|
|
73994
74120
|
}
|
|
73995
74121
|
|
|
74122
|
+
/** One entry of a render job's state history, as delivered by diva-media. */
|
|
74123
|
+
|
|
74124
|
+
/** Most recent state-history entry of the given state that carries a message. */
|
|
74125
|
+
function latestEntryWithMessage(history, state) {
|
|
74126
|
+
if (!Array.isArray(history)) return undefined;
|
|
74127
|
+
var best;
|
|
74128
|
+
var _iterator = _createForOfIteratorHelper$k(history),
|
|
74129
|
+
_step;
|
|
74130
|
+
try {
|
|
74131
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
74132
|
+
var _entry$created, _best$created;
|
|
74133
|
+
var entry = _step.value;
|
|
74134
|
+
if ((entry === null || entry === void 0 ? void 0 : entry.state) !== state) continue;
|
|
74135
|
+
if (typeof entry.message !== 'string' || entry.message.length === 0) continue;
|
|
74136
|
+
if (!best || ((_entry$created = entry.created) !== null && _entry$created !== void 0 ? _entry$created : 0) >= ((_best$created = best.created) !== null && _best$created !== void 0 ? _best$created : 0)) best = entry;
|
|
74137
|
+
}
|
|
74138
|
+
} catch (err) {
|
|
74139
|
+
_iterator.e(err);
|
|
74140
|
+
} finally {
|
|
74141
|
+
_iterator.f();
|
|
74142
|
+
}
|
|
74143
|
+
return best;
|
|
74144
|
+
}
|
|
74145
|
+
|
|
74146
|
+
/** Message (reason + comment) of the most recent rejection in a job's state history. */
|
|
74147
|
+
function latestRejectMessage(history) {
|
|
74148
|
+
var _latestEntryWithMessa;
|
|
74149
|
+
return (_latestEntryWithMessa = latestEntryWithMessage(history, RENDER_JOB_STATE.rejected)) === null || _latestEntryWithMessa === void 0 ? void 0 : _latestEntryWithMessa.message;
|
|
74150
|
+
}
|
|
74151
|
+
|
|
74152
|
+
/**
|
|
74153
|
+
* Most recent failure in a job's state history.
|
|
74154
|
+
*
|
|
74155
|
+
* The reported reason is the only thing a user gets to see about a job the render pipeline could not
|
|
74156
|
+
* process, so both the message and its code are returned - the code is translated, the message is the
|
|
74157
|
+
* fallback for an unrecognised failure.
|
|
74158
|
+
*/
|
|
74159
|
+
function latestErrorEntry(history) {
|
|
74160
|
+
return latestEntryWithMessage(history, RENDER_JOB_STATE.error);
|
|
74161
|
+
}
|
|
74162
|
+
|
|
73996
74163
|
var root$b = "root-bbDdW";
|
|
73997
74164
|
var header$1 = "header--owh8";
|
|
73998
74165
|
var content$1 = "content-q2m1c";
|
|
@@ -74859,9 +75026,9 @@ styleInject(css_248z$n);
|
|
|
74859
75026
|
|
|
74860
75027
|
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; }
|
|
74861
75028
|
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; }
|
|
74862
|
-
function _createForOfIteratorHelper$
|
|
74863
|
-
function _unsupportedIterableToArray$
|
|
74864
|
-
function _arrayLikeToArray$
|
|
75029
|
+
function _createForOfIteratorHelper$j(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$j(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
75030
|
+
function _unsupportedIterableToArray$j(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$j(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$j(r, a) : void 0; } }
|
|
75031
|
+
function _arrayLikeToArray$j(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
74865
75032
|
/**
|
|
74866
75033
|
* Builds the initial item list. When `selectedUrls` (the persisted
|
|
74867
75034
|
* `renderImages`) are present, the matching slides are selected and ordered
|
|
@@ -74884,7 +75051,7 @@ function buildItems(slides, selectedUrls) {
|
|
|
74884
75051
|
}));
|
|
74885
75052
|
var selected = [];
|
|
74886
75053
|
var rest = [];
|
|
74887
|
-
var _iterator = _createForOfIteratorHelper$
|
|
75054
|
+
var _iterator = _createForOfIteratorHelper$j(withMeta),
|
|
74888
75055
|
_step;
|
|
74889
75056
|
try {
|
|
74890
75057
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -74995,7 +75162,7 @@ function AIImageSelector(_ref2) {
|
|
|
74995
75162
|
// Running order number among the selected items, in list order.
|
|
74996
75163
|
var counter = 0;
|
|
74997
75164
|
var orderByKey = new Map();
|
|
74998
|
-
var _iterator2 = _createForOfIteratorHelper$
|
|
75165
|
+
var _iterator2 = _createForOfIteratorHelper$j(items),
|
|
74999
75166
|
_step2;
|
|
75000
75167
|
try {
|
|
75001
75168
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
@@ -75222,120 +75389,6 @@ function InputImagesModal(_ref) {
|
|
|
75222
75389
|
});
|
|
75223
75390
|
}
|
|
75224
75391
|
|
|
75225
|
-
/**
|
|
75226
|
-
* Numeric render-job states used by the RenderApprove session.
|
|
75227
|
-
* Mirrors `RenderJobState` in `node-apps/diva-media/src/infra/db/models/RenderJobModel.ts`
|
|
75228
|
-
* (kept as plain literals to avoid a cross-package import).
|
|
75229
|
-
*/
|
|
75230
|
-
var RENDER_JOB_STATE = {
|
|
75231
|
-
paymentClarified: 2,
|
|
75232
|
-
readyForProduction: 3,
|
|
75233
|
-
readyForRenderer: 5,
|
|
75234
|
-
inChecking: 7,
|
|
75235
|
-
approved: 8,
|
|
75236
|
-
rejected: 9,
|
|
75237
|
-
finished: 12
|
|
75238
|
-
};
|
|
75239
|
-
|
|
75240
|
-
/**
|
|
75241
|
-
* Mandatory rejection reasons per acceptance criteria / Story 5 (7 categories).
|
|
75242
|
-
* `value` is sent as the `message` payload of `PATCH /renderjobs/:id/state`.
|
|
75243
|
-
*/
|
|
75244
|
-
var REJECTION_REASONS = [{
|
|
75245
|
-
value: 'qualityInsufficient',
|
|
75246
|
-
labelKey: 'backoffice.renderapprove.rejectionReasons.qualityInsufficient'
|
|
75247
|
-
}, {
|
|
75248
|
-
value: 'wrongPerspective',
|
|
75249
|
-
labelKey: 'backoffice.renderapprove.rejectionReasons.wrongPerspective'
|
|
75250
|
-
}, {
|
|
75251
|
-
value: 'lightingIssues',
|
|
75252
|
-
labelKey: 'backoffice.renderapprove.rejectionReasons.lightingIssues'
|
|
75253
|
-
}, {
|
|
75254
|
-
value: 'materialIssues',
|
|
75255
|
-
labelKey: 'backoffice.renderapprove.rejectionReasons.materialIssues'
|
|
75256
|
-
}, {
|
|
75257
|
-
value: 'geometryIssues',
|
|
75258
|
-
labelKey: 'backoffice.renderapprove.rejectionReasons.geometryIssues'
|
|
75259
|
-
}, {
|
|
75260
|
-
value: 'compositionIssues',
|
|
75261
|
-
labelKey: 'backoffice.renderapprove.rejectionReasons.compositionIssues'
|
|
75262
|
-
}, {
|
|
75263
|
-
value: 'other',
|
|
75264
|
-
labelKey: 'backoffice.renderapprove.rejectionReasons.other'
|
|
75265
|
-
}];
|
|
75266
|
-
function getRejectionReasonLabelKey(reason) {
|
|
75267
|
-
var _match$labelKey;
|
|
75268
|
-
var match = REJECTION_REASONS.find(function (entry) {
|
|
75269
|
-
return entry.value === reason;
|
|
75270
|
-
});
|
|
75271
|
-
return (_match$labelKey = match === null || match === void 0 ? void 0 : match.labelKey) !== null && _match$labelKey !== void 0 ? _match$labelKey : 'backoffice.renderapprove.rejectionReasons.other';
|
|
75272
|
-
}
|
|
75273
|
-
|
|
75274
|
-
/**
|
|
75275
|
-
* Keyboard shortcut identifiers used by `useKeyboardShortcuts`.
|
|
75276
|
-
* Layout: Arrow Right = Approve, Arrow Left = Reject, Arrow Down = Skip.
|
|
75277
|
-
* Optional navigation shortcuts use PageUp/PageDown. Space = Fullscreen,
|
|
75278
|
-
* Escape closes Modal / Fullscreen, Ctrl/Cmd+Z undoes the last action
|
|
75279
|
-
* within the undo window.
|
|
75280
|
-
*
|
|
75281
|
-
* `code` matches `KeyboardEvent.code` (layout-stable); `mod` requires
|
|
75282
|
-
* Ctrl (Windows/Linux) or Cmd (macOS) to be held during the keypress.
|
|
75283
|
-
*/
|
|
75284
|
-
|
|
75285
|
-
var KEY_MAP = {
|
|
75286
|
-
approve: {
|
|
75287
|
-
code: 'Enter'
|
|
75288
|
-
},
|
|
75289
|
-
reject: {
|
|
75290
|
-
code: 'Backspace'
|
|
75291
|
-
},
|
|
75292
|
-
prev: {
|
|
75293
|
-
code: 'ArrowLeft'
|
|
75294
|
-
},
|
|
75295
|
-
next: {
|
|
75296
|
-
code: 'ArrowRight'
|
|
75297
|
-
},
|
|
75298
|
-
swiperPrev: {
|
|
75299
|
-
code: 'KeyA'
|
|
75300
|
-
},
|
|
75301
|
-
swiperNext: {
|
|
75302
|
-
code: 'KeyD'
|
|
75303
|
-
},
|
|
75304
|
-
// A/D already drive the left swiper, so the variant swiper gets its own pair.
|
|
75305
|
-
variantPrev: {
|
|
75306
|
-
code: 'KeyQ'
|
|
75307
|
-
},
|
|
75308
|
-
variantNext: {
|
|
75309
|
-
code: 'KeyE'
|
|
75310
|
-
},
|
|
75311
|
-
compare: {
|
|
75312
|
-
code: 'KeyC'
|
|
75313
|
-
},
|
|
75314
|
-
details: {
|
|
75315
|
-
code: 'KeyD',
|
|
75316
|
-
mod: true
|
|
75317
|
-
},
|
|
75318
|
-
prompt: {
|
|
75319
|
-
code: 'KeyI',
|
|
75320
|
-
mod: true
|
|
75321
|
-
},
|
|
75322
|
-
fullscreen: {
|
|
75323
|
-
code: 'Space'
|
|
75324
|
-
},
|
|
75325
|
-
close: {
|
|
75326
|
-
code: 'Escape'
|
|
75327
|
-
},
|
|
75328
|
-
undo: {
|
|
75329
|
-
code: 'KeyZ',
|
|
75330
|
-
mod: true
|
|
75331
|
-
}
|
|
75332
|
-
};
|
|
75333
|
-
/**
|
|
75334
|
-
* Default lifetime of the Phase 4 undo notification (ms).
|
|
75335
|
-
* Kept here so it can be referenced from multiple hooks/components.
|
|
75336
|
-
*/
|
|
75337
|
-
var UNDO_TIMEOUT_MS = 5000;
|
|
75338
|
-
|
|
75339
75392
|
var container$3 = "container-PmByk";
|
|
75340
75393
|
var header = "header-ESR-S";
|
|
75341
75394
|
var title = "title-g5pl0";
|
|
@@ -75374,7 +75427,7 @@ var statusTriggerLocked = "statusTriggerLocked-5u8lc";
|
|
|
75374
75427
|
var statusIcon = "statusIcon-rpMzy";
|
|
75375
75428
|
var menuDot = "menuDot-ybea1";
|
|
75376
75429
|
var footer = "footer-HdZwL";
|
|
75377
|
-
var css_248z$l = ".container-PmByk {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n gap: 14px;\n overflow: auto;\n padding: 16px 20px;\n}\n\n.header-ESR-S {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.title-g5pl0 {\n font-size: 16px;\n font-weight: 600;\n}\n\n.subtitle-wYnId {\n color: #8c8c8c;\n font-size: 13px;\n}\n\n.tiles-4NW82 {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.tile-vHlQ9 {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 6px 12px;\n border: 1px solid #f0f0f0;\n border-radius: 8px;\n background: #fff;\n cursor: pointer;\n font: inherit;\n color: inherit;\n transition: border-color 0.15s, background 0.15s;\n}\n\n.tile-vHlQ9:hover {\n border-color: #1677ff;\n}\n\n.tile-vHlQ9.focus-visible-am0Va {\n outline: 2px solid #1677ff;\n outline-offset: 2px;\n}\n\n.tile-vHlQ9:focus-visible {\n outline: 2px solid #1677ff;\n outline-offset: 2px;\n}\n\n.tileActive-Kl6AW {\n border-color: #1677ff;\n background: #e6f4ff;\n}\n\n.clearFilter-KsvRj {\n align-self: center;\n border: none;\n background: none;\n color: #1677ff;\n cursor: pointer;\n font: inherit;\n font-size: 12px;\n padding: 0 4px;\n}\n\n.clearFilter-KsvRj:hover {\n text-decoration: underline;\n}\n\n.dot-x41U9 {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n flex: none;\n}\n\n.dotApproved-jidKD {\n background: #52c41a;\n}\n\n.dotRejected-9TFUi {\n background: #ff4d4f;\n}\n\n.dotOpen-eHbi0 {\n background: #faad14;\n}\n\n.dotFinished-Id6hR {\n background: #722ed1;\n}\n\n.dotPayment-Fzk7U {\n background: #13c2c2;\n}\n\n.dotReadyForProduction-yIYkt {\n background: #1677ff;\n}\n\n.tileNum-9DGoc {\n font-size: 16px;\n font-weight: 600;\n font-feature-settings: \"tnum\";\n font-variant-numeric: tabular-nums;\n}\n\n.tileLabel-nG0xD {\n color: #8c8c8c;\n font-size: 12px;\n}\n\n.toolbar-jJDio {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.selInfo-r4QBF {\n color: #8c8c8c;\n font-size: 13px;\n}\n\n.spacer-g69QI {\n flex: 1;\n}\n\n.thumb-Wd6Zw {\n width: 74px;\n height: 54px;\n border-radius: 6px;\n overflow: hidden;\n border: 1px solid #f0f0f0;\n background: #fafafa;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n cursor: pointer;\n}\n\n.thumbStatic-kc-Qn {\n cursor: default;\n}\n\n.thumbImg-ViR1y {\n width: 100%;\n height: 100%;\n -o-object-fit: cover;\n object-fit: cover;\n display: block;\n}\n\n.thumbPlaceholder-gp0b2 {\n color: #bfbfbf;\n font-size: 18px;\n}\n\n.badge-bYA4m {\n position: absolute;\n left: 4px;\n bottom: 4px;\n background: rgba(0, 0, 0, 0.6);\n color: #fff;\n font-size: 10px;\n font-weight: 600;\n line-height: 1;\n padding: 2px 5px;\n border-radius: 3px;\n}\n\n.videoBadge--DvZy {\n position: absolute;\n color: #fff;\n font-size: 22px;\n filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.5));\n}\n\n.prodName-t5Dom {\n font-weight: 600;\n}\n\n.info--EMmi {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.infoLines-HenMK {\n display: flex;\n flex-direction: column;\n gap: 2px;\n margin-top: 2px;\n}\n\n.infoLine-EyUqw {\n font-size: 12px;\n color: #8c8c8c;\n}\n\n.infoLabel-JfxNQ {\n color: #bfbfbf;\n}\n\n.reason-wzttm {\n margin-top: 4px;\n max-width: 220px;\n font-size: 12px;\n color: #8c8c8c;\n white-space: normal;\n}\n\n.prodSub-cZZSl {\n color: #8c8c8c;\n font-size: 12px;\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n margin-top: 2px;\n}\n\n.sku-7EODQ {\n font-family: monospace;\n}\n\n.statusTrigger-oGuEq {\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n.statusTriggerLocked-5u8lc {\n cursor: default;\n}\n\n.statusIcon-rpMzy {\n font-size: 10px;\n color: #8c8c8c;\n}\n\n.menuDot-ybea1 {\n display: inline-block;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n margin-right: 8px;\n vertical-align: middle;\n}\n\n.footer-HdZwL {\n display: flex;\n justify-content: space-between;\n gap: 8px;\n flex-wrap: wrap;\n padding-top: 4px;\n}\n\n/* Dark mode */\n.darkmode .tile-vHlQ9 {\n background: #1f1f1f;\n border-color: #434343;\n}\n\n.darkmode .tileActive-Kl6AW {\n border-color: #3c89e8;\n background: rgba(60, 137, 232, 0.16);\n}\n\n.darkmode .thumb-Wd6Zw {\n background: #262626;\n border-color: #434343;\n}\n\n.darkmode .subtitle-wYnId,\n.darkmode .tileLabel-nG0xD,\n.darkmode .selInfo-r4QBF,\n.darkmode .prodSub-cZZSl,\n.darkmode .infoLine-EyUqw,\n.darkmode .reason-wzttm {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.darkmode .infoLabel-JfxNQ {\n color: rgba(255, 255, 255, 0.35);\n}\n";
|
|
75430
|
+
var css_248z$l = ".container-PmByk {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n gap: 14px;\n overflow: auto;\n padding: 16px 20px;\n}\n\n.header-ESR-S {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.title-g5pl0 {\n font-size: 16px;\n font-weight: 600;\n}\n\n.subtitle-wYnId {\n color: #8c8c8c;\n font-size: 13px;\n}\n\n.tiles-4NW82 {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.tile-vHlQ9 {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 6px 12px;\n border: 1px solid #f0f0f0;\n border-radius: 8px;\n background: #fff;\n cursor: pointer;\n font: inherit;\n color: inherit;\n transition: border-color 0.15s, background 0.15s;\n}\n\n.tile-vHlQ9:hover {\n border-color: #1677ff;\n}\n\n.tile-vHlQ9.focus-visible-am0Va {\n outline: 2px solid #1677ff;\n outline-offset: 2px;\n}\n\n.tile-vHlQ9:focus-visible {\n outline: 2px solid #1677ff;\n outline-offset: 2px;\n}\n\n.tileActive-Kl6AW {\n border-color: #1677ff;\n background: #e6f4ff;\n}\n\n.clearFilter-KsvRj {\n align-self: center;\n border: none;\n background: none;\n color: #1677ff;\n cursor: pointer;\n font: inherit;\n font-size: 12px;\n padding: 0 4px;\n}\n\n.clearFilter-KsvRj:hover {\n text-decoration: underline;\n}\n\n.dot-x41U9 {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n flex: none;\n}\n\n.dotApproved-jidKD {\n background: #52c41a;\n}\n\n.dotRejected-9TFUi {\n background: #ff4d4f;\n}\n\n.dotOpen-eHbi0 {\n background: #faad14;\n}\n\n.dotFinished-Id6hR {\n background: #722ed1;\n}\n\n.dotPayment-Fzk7U {\n background: #13c2c2;\n}\n\n.dotReadyForProduction-yIYkt {\n background: #1677ff;\n}\n\n.tileNum-9DGoc {\n font-size: 16px;\n font-weight: 600;\n font-feature-settings: \"tnum\";\n font-variant-numeric: tabular-nums;\n}\n\n.tileLabel-nG0xD {\n color: #8c8c8c;\n font-size: 12px;\n}\n\n.toolbar-jJDio {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.selInfo-r4QBF {\n color: #8c8c8c;\n font-size: 13px;\n}\n\n.spacer-g69QI {\n flex: 1;\n}\n\n.thumb-Wd6Zw {\n width: 74px;\n height: 54px;\n border-radius: 6px;\n overflow: hidden;\n border: 1px solid #f0f0f0;\n background: #fafafa;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n cursor: pointer;\n}\n\n.thumbStatic-kc-Qn {\n cursor: default;\n}\n\n.thumbImg-ViR1y {\n width: 100%;\n height: 100%;\n -o-object-fit: cover;\n object-fit: cover;\n display: block;\n}\n\n.thumbPlaceholder-gp0b2 {\n color: #bfbfbf;\n font-size: 18px;\n}\n\n.badge-bYA4m {\n position: absolute;\n left: 4px;\n bottom: 4px;\n background: rgba(0, 0, 0, 0.6);\n color: #fff;\n font-size: 10px;\n font-weight: 600;\n line-height: 1;\n padding: 2px 5px;\n border-radius: 3px;\n}\n\n.videoBadge--DvZy {\n position: absolute;\n color: #fff;\n font-size: 22px;\n filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.5));\n}\n\n.prodName-t5Dom {\n font-weight: 600;\n}\n\n.info--EMmi {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.infoLines-HenMK {\n display: flex;\n flex-direction: column;\n gap: 2px;\n margin-top: 2px;\n}\n\n.infoLine-EyUqw {\n font-size: 12px;\n color: #8c8c8c;\n}\n\n.infoLabel-JfxNQ {\n color: #bfbfbf;\n}\n\n.reason-wzttm {\n margin-top: 4px;\n max-width: 220px;\n font-size: 12px;\n color: #8c8c8c;\n white-space: normal;\n /* A failure reason can be a whole render log - without the clamp one row would blow up the table.\n The full text stays reachable through the element's tooltip. */\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.prodSub-cZZSl {\n color: #8c8c8c;\n font-size: 12px;\n display: flex;\n gap: 8px;\n flex-wrap: wrap;\n margin-top: 2px;\n}\n\n.sku-7EODQ {\n font-family: monospace;\n}\n\n.statusTrigger-oGuEq {\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n.statusTriggerLocked-5u8lc {\n cursor: default;\n}\n\n.statusIcon-rpMzy {\n font-size: 10px;\n color: #8c8c8c;\n}\n\n.menuDot-ybea1 {\n display: inline-block;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n margin-right: 8px;\n vertical-align: middle;\n}\n\n.footer-HdZwL {\n display: flex;\n justify-content: space-between;\n gap: 8px;\n flex-wrap: wrap;\n padding-top: 4px;\n}\n\n/* Dark mode */\n.darkmode .tile-vHlQ9 {\n background: #1f1f1f;\n border-color: #434343;\n}\n\n.darkmode .tileActive-Kl6AW {\n border-color: #3c89e8;\n background: rgba(60, 137, 232, 0.16);\n}\n\n.darkmode .thumb-Wd6Zw {\n background: #262626;\n border-color: #434343;\n}\n\n.darkmode .subtitle-wYnId,\n.darkmode .tileLabel-nG0xD,\n.darkmode .selInfo-r4QBF,\n.darkmode .prodSub-cZZSl,\n.darkmode .infoLine-EyUqw,\n.darkmode .reason-wzttm {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.darkmode .infoLabel-JfxNQ {\n color: rgba(255, 255, 255, 0.35);\n}\n";
|
|
75378
75431
|
styleInject(css_248z$l);
|
|
75379
75432
|
|
|
75380
75433
|
var PAYMENT_CLARIFIED = RENDER_JOB_STATE.paymentClarified,
|
|
@@ -75382,6 +75435,7 @@ var PAYMENT_CLARIFIED = RENDER_JOB_STATE.paymentClarified,
|
|
|
75382
75435
|
READY_FOR_RENDERER = RENDER_JOB_STATE.readyForRenderer,
|
|
75383
75436
|
APPROVED = RENDER_JOB_STATE.approved,
|
|
75384
75437
|
REJECTED = RENDER_JOB_STATE.rejected,
|
|
75438
|
+
ERROR = RENDER_JOB_STATE.error,
|
|
75385
75439
|
INCHECKING = RENDER_JOB_STATE.inChecking,
|
|
75386
75440
|
FINISHED = RENDER_JOB_STATE.finished;
|
|
75387
75441
|
|
|
@@ -75957,9 +76011,24 @@ function SessionOverview(_ref3) {
|
|
|
75957
76011
|
}
|
|
75958
76012
|
})]
|
|
75959
76013
|
})
|
|
75960
|
-
}), r.state === REJECTED && r.rejectMessage ?
|
|
76014
|
+
}), r.state === REJECTED && r.rejectMessage ?
|
|
76015
|
+
/*#__PURE__*/
|
|
76016
|
+
// Shares the clamped cell with the error message below, so the full reason needs the same tooltip.
|
|
76017
|
+
jsx("div", {
|
|
75961
76018
|
className: reason,
|
|
76019
|
+
title: r.rejectMessage,
|
|
75962
76020
|
children: r.rejectMessage
|
|
76021
|
+
}) : null, r.state === ERROR && r.errorMessage ?
|
|
76022
|
+
/*#__PURE__*/
|
|
76023
|
+
// A recognised failure gets its plain-language text in front of the reported message -
|
|
76024
|
+
// never instead of it, so a wrong classification cannot hide the only diagnosis there is.
|
|
76025
|
+
// The clamped cell keeps the full text reachable as a tooltip.
|
|
76026
|
+
jsx("div", {
|
|
76027
|
+
className: reason,
|
|
76028
|
+
title: r.errorMessage,
|
|
76029
|
+
children: [r.errorMessageCode ? t("renderjob.error.".concat(r.errorMessageCode), {
|
|
76030
|
+
defaultValue: ''
|
|
76031
|
+
}) : '', r.errorMessage].filter(Boolean).join(' — ')
|
|
75963
76032
|
}) : null]
|
|
75964
76033
|
});
|
|
75965
76034
|
}
|
|
@@ -76433,9 +76502,9 @@ styleInject(css_248z$j);
|
|
|
76433
76502
|
|
|
76434
76503
|
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; }
|
|
76435
76504
|
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; }
|
|
76436
|
-
function _createForOfIteratorHelper$
|
|
76437
|
-
function _unsupportedIterableToArray$
|
|
76438
|
-
function _arrayLikeToArray$
|
|
76505
|
+
function _createForOfIteratorHelper$i(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$i(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
76506
|
+
function _unsupportedIterableToArray$i(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$i(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$i(r, a) : void 0; } }
|
|
76507
|
+
function _arrayLikeToArray$i(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
76439
76508
|
var BYTES_IN_KIB = 1024;
|
|
76440
76509
|
|
|
76441
76510
|
/** A job without an explicit `nrOfVariants` behaves like a single variant. */
|
|
@@ -76542,7 +76611,7 @@ function buildDetailsPatch(job, fields, draft) {
|
|
|
76542
76611
|
value: next
|
|
76543
76612
|
});
|
|
76544
76613
|
};
|
|
76545
|
-
var _iterator = _createForOfIteratorHelper$
|
|
76614
|
+
var _iterator = _createForOfIteratorHelper$i(fields),
|
|
76546
76615
|
_step;
|
|
76547
76616
|
try {
|
|
76548
76617
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -78719,9 +78788,9 @@ function useRenderApproveSession(_ref) {
|
|
|
78719
78788
|
|
|
78720
78789
|
function ownKeys$x(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; }
|
|
78721
78790
|
function _objectSpread$x(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$x(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$x(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
78722
|
-
function _createForOfIteratorHelper$
|
|
78723
|
-
function _unsupportedIterableToArray$
|
|
78724
|
-
function _arrayLikeToArray$
|
|
78791
|
+
function _createForOfIteratorHelper$h(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$h(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
78792
|
+
function _unsupportedIterableToArray$h(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$h(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$h(r, a) : void 0; } }
|
|
78793
|
+
function _arrayLikeToArray$h(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
78725
78794
|
var LOG$b = getLogger('Backoffice', 'RenderApprove');
|
|
78726
78795
|
function getMediaItemId(job) {
|
|
78727
78796
|
var list = job === null || job === void 0 ? void 0 : job.mediaItems;
|
|
@@ -78854,7 +78923,7 @@ function _fetchProductMedia() {
|
|
|
78854
78923
|
seen = new Set();
|
|
78855
78924
|
if (excludeUrl) seen.add(excludeUrl);
|
|
78856
78925
|
result = [];
|
|
78857
|
-
_iterator2 = _createForOfIteratorHelper$
|
|
78926
|
+
_iterator2 = _createForOfIteratorHelper$h(sorted);
|
|
78858
78927
|
_context4.prev = 12;
|
|
78859
78928
|
_iterator2.s();
|
|
78860
78929
|
case 14:
|
|
@@ -79058,7 +79127,7 @@ function buildLeftSlides(left, renderImages, productMedia) {
|
|
|
79058
79127
|
});
|
|
79059
79128
|
if (renderImages.length === 0) return [left].concat(_toConsumableArray(remainingProduct));
|
|
79060
79129
|
var productByUrl = new Map();
|
|
79061
|
-
var _iterator = _createForOfIteratorHelper$
|
|
79130
|
+
var _iterator = _createForOfIteratorHelper$h(productMedia),
|
|
79062
79131
|
_step;
|
|
79063
79132
|
try {
|
|
79064
79133
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
@@ -79450,34 +79519,9 @@ function useRenderJobData(id, refreshKey) {
|
|
|
79450
79519
|
|
|
79451
79520
|
function ownKeys$w(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; }
|
|
79452
79521
|
function _objectSpread$w(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$w(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$w(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
79453
|
-
function _createForOfIteratorHelper$h(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$h(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
79454
|
-
function _unsupportedIterableToArray$h(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$h(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$h(r, a) : void 0; } }
|
|
79455
|
-
function _arrayLikeToArray$h(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
79456
79522
|
var LOG$a = getLogger('Backoffice', 'RenderApprove');
|
|
79457
79523
|
var METADATA_CHUNK_SIZE = 100;
|
|
79458
79524
|
var RESULT_CONCURRENCY = 6;
|
|
79459
|
-
/** Message of the most recent rejection (state 9) in the job's state history. */
|
|
79460
|
-
function latestRejectMessage(history) {
|
|
79461
|
-
var _best;
|
|
79462
|
-
if (!Array.isArray(history)) return undefined;
|
|
79463
|
-
var best;
|
|
79464
|
-
var _iterator = _createForOfIteratorHelper$h(history),
|
|
79465
|
-
_step;
|
|
79466
|
-
try {
|
|
79467
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
79468
|
-
var _entry$created, _best$created;
|
|
79469
|
-
var entry = _step.value;
|
|
79470
|
-
if ((entry === null || entry === void 0 ? void 0 : entry.state) !== RENDER_JOB_STATE.rejected) continue;
|
|
79471
|
-
if (typeof entry.message !== 'string' || entry.message.length === 0) continue;
|
|
79472
|
-
if (!best || ((_entry$created = entry.created) !== null && _entry$created !== void 0 ? _entry$created : 0) >= ((_best$created = best.created) !== null && _best$created !== void 0 ? _best$created : 0)) best = entry;
|
|
79473
|
-
}
|
|
79474
|
-
} catch (err) {
|
|
79475
|
-
_iterator.e(err);
|
|
79476
|
-
} finally {
|
|
79477
|
-
_iterator.f();
|
|
79478
|
-
}
|
|
79479
|
-
return (_best = best) === null || _best === void 0 ? void 0 : _best.message;
|
|
79480
|
-
}
|
|
79481
79525
|
function buildOverviewUrl(baseUrl, ids) {
|
|
79482
79526
|
var params = new URLSearchParams();
|
|
79483
79527
|
params.set('limit', String(ids.length));
|
|
@@ -79670,6 +79714,7 @@ function useSessionOverviewData(ids, enabled) {
|
|
|
79670
79714
|
base = ids.map(function (id) {
|
|
79671
79715
|
var _raw$productName, _raw$organizationName, _raw$realTimeRenderUr;
|
|
79672
79716
|
var raw = byId.get(id);
|
|
79717
|
+
var errorEntry = latestErrorEntry(raw === null || raw === void 0 ? void 0 : raw.stateHistory);
|
|
79673
79718
|
return {
|
|
79674
79719
|
id: id,
|
|
79675
79720
|
state: typeof (raw === null || raw === void 0 ? void 0 : raw.state) === 'number' ? raw.state : -1,
|
|
@@ -79685,6 +79730,8 @@ function useSessionOverviewData(ids, enabled) {
|
|
|
79685
79730
|
catalogName: raw === null || raw === void 0 ? void 0 : raw.catalogName,
|
|
79686
79731
|
organizationName: (_raw$organizationName = raw === null || raw === void 0 ? void 0 : raw.organizationName) !== null && _raw$organizationName !== void 0 ? _raw$organizationName : raw === null || raw === void 0 ? void 0 : raw.organization,
|
|
79687
79732
|
rejectMessage: latestRejectMessage(raw === null || raw === void 0 ? void 0 : raw.stateHistory),
|
|
79733
|
+
errorMessage: errorEntry === null || errorEntry === void 0 ? void 0 : errorEntry.message,
|
|
79734
|
+
errorMessageCode: errorEntry === null || errorEntry === void 0 ? void 0 : errorEntry.messageCode,
|
|
79688
79735
|
preview: {
|
|
79689
79736
|
url: (_raw$realTimeRenderUr = raw === null || raw === void 0 ? void 0 : raw.realTimeRenderUrl) !== null && _raw$realTimeRenderUr !== void 0 ? _raw$realTimeRenderUr : null,
|
|
79690
79737
|
mediaType: 'PCT',
|
package/build/types/backoffice/src/tests/unit/ui/TableRenderJobs/stateHistoryMessages.test.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stateHistoryMessages.test.d.ts","sourceRoot":"","sources":["../../../../../../../../src/tests/unit/ui/TableRenderJobs/stateHistoryMessages.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/List/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAQnD,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;;YAE2D,MAAM,IAAI;;YAAV,MAAM,IAAI;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/List/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAQnD,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;;YAE2D,MAAM,IAAI;;YAAV,MAAM,IAAI;;AAqDtE,wBAAuD;AAEvD,cAAc,SAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/ui/TableRenderJobs/components/RenderApprove/components/SessionOverview/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAW5D,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/ui/TableRenderJobs/components/RenderApprove/components/SessionOverview/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAW5D,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AA+DlE,UAAU,KAAK;IACb,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnF,iEAAiE;IACjE,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,8CAA8C;IAC9C,WAAW,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACjD,qDAAqD;IACrD,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAC7D,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;CACrB;AAwFD,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,KAAK,EACL,OAAO,EACP,KAAK,EACL,YAAY,EACZ,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,UAAU,GACX,EAAE,KAAK,qBA2eP"}
|
|
@@ -16,6 +16,10 @@ export interface OverviewItem {
|
|
|
16
16
|
organizationName?: string;
|
|
17
17
|
/** Message (reason + comment) of the most recent rejection, from the state history. */
|
|
18
18
|
rejectMessage?: string;
|
|
19
|
+
/** Message of the most recent failure, from the state history. */
|
|
20
|
+
errorMessage?: string;
|
|
21
|
+
/** Code of the most recent failure, if the render pipeline reported a recognised one. */
|
|
22
|
+
errorMessageCode?: string;
|
|
19
23
|
/** Realtime render preview (cheap, taken directly from the job document). */
|
|
20
24
|
preview: RenderApproveMedia;
|
|
21
25
|
/** Resolved result medium (mediaItem). Undefined until resolved or when none exists. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSessionOverviewData.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/TableRenderJobs/components/RenderApprove/hooks/useSessionOverviewData.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"useSessionOverviewData.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/TableRenderJobs/components/RenderApprove/hooks/useSessionOverviewData.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAM/D,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uFAAuF;IACvF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yFAAyF;IACzF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6EAA6E;IAC7E,OAAO,EAAE,kBAAkB,CAAC;IAC5B,wFAAwF;IACxF,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,8EAA8E;IAC9E,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mGAAmG;IACnG,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjF,kEAAkE;IAClE,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;CAC5D;AA6ED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,mBAAmB,CAwInG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/TableRenderJobs/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,gBAAgB
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/TableRenderJobs/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;CASnB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;EAQpB,CAAC;AAEX,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGjE;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgBmC,CAAC;AAExD,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,OAAO,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,eAAe,OAAO,CAAC"}
|
|
@@ -11,4 +11,22 @@ import { RenderApproveMedia } from './types';
|
|
|
11
11
|
* @returns the displayable url, or `null` when no renderable source exists
|
|
12
12
|
*/
|
|
13
13
|
export declare function getViewerUrl(media?: RenderApproveMedia): string | null;
|
|
14
|
+
/** One entry of a render job's state history, as delivered by diva-media. */
|
|
15
|
+
export interface StateHistoryEntry {
|
|
16
|
+
state?: number;
|
|
17
|
+
message?: string;
|
|
18
|
+
/** Code of a recognised render-pipeline failure, set by diva-media alongside the message. */
|
|
19
|
+
messageCode?: string;
|
|
20
|
+
created?: number;
|
|
21
|
+
}
|
|
22
|
+
/** Message (reason + comment) of the most recent rejection in a job's state history. */
|
|
23
|
+
export declare function latestRejectMessage(history?: StateHistoryEntry[]): string | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* Most recent failure in a job's state history.
|
|
26
|
+
*
|
|
27
|
+
* The reported reason is the only thing a user gets to see about a job the render pipeline could not
|
|
28
|
+
* process, so both the message and its code are returned - the code is translated, the message is the
|
|
29
|
+
* fallback for an unrecognised failure.
|
|
30
|
+
*/
|
|
31
|
+
export declare function latestErrorEntry(history?: StateHistoryEntry[]): StateHistoryEntry | undefined;
|
|
14
32
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/TableRenderJobs/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/TableRenderJobs/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAK7C;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI,CAMtE;AAED,6EAA6E;AAC7E,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6FAA6F;IAC7F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAcD,wFAAwF;AACxF,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,iBAAiB,EAAE,GAAG,MAAM,GAAG,SAAS,CAErF;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,iBAAiB,EAAE,GAAG,iBAAiB,GAAG,SAAS,CAE7F"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crystaldesign/diva-backoffice",
|
|
3
|
-
"version": "26.12.0-beta.
|
|
3
|
+
"version": "26.12.0-beta.23",
|
|
4
4
|
"description": "Ant Design backoffice shell: configuration plus the IDM and enricher editors.",
|
|
5
5
|
"license": "COMMERCIAL",
|
|
6
6
|
"devDependencies": {
|
|
@@ -16,14 +16,14 @@
|
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"@ant-design/icons": "6.3.4",
|
|
18
18
|
"@babel/runtime": "7.24.7",
|
|
19
|
-
"@crystaldesign/content-box": "26.12.0-beta.
|
|
20
|
-
"@crystaldesign/content-item": "26.12.0-beta.
|
|
21
|
-
"@crystaldesign/diva-agent": "26.12.0-beta.
|
|
22
|
-
"@crystaldesign/diva-core": "26.12.0-beta.
|
|
23
|
-
"@crystaldesign/diva-utils": "26.12.0-beta.
|
|
24
|
-
"@crystaldesign/media-upload": "26.12.0-beta.
|
|
25
|
-
"@crystaldesign/rtf-editor": "26.12.0-beta.
|
|
26
|
-
"@crystaldesign/spreadsheet": "26.12.0-beta.
|
|
19
|
+
"@crystaldesign/content-box": "26.12.0-beta.23",
|
|
20
|
+
"@crystaldesign/content-item": "26.12.0-beta.23",
|
|
21
|
+
"@crystaldesign/diva-agent": "26.12.0-beta.23",
|
|
22
|
+
"@crystaldesign/diva-core": "26.12.0-beta.23",
|
|
23
|
+
"@crystaldesign/diva-utils": "26.12.0-beta.23",
|
|
24
|
+
"@crystaldesign/media-upload": "26.12.0-beta.23",
|
|
25
|
+
"@crystaldesign/rtf-editor": "26.12.0-beta.23",
|
|
26
|
+
"@crystaldesign/spreadsheet": "26.12.0-beta.23",
|
|
27
27
|
"@dnd-kit/core": "^6.1.0",
|
|
28
28
|
"@dnd-kit/sortable": "^8.0.0",
|
|
29
29
|
"@dnd-kit/utilities": "^3.2.2",
|
|
@@ -57,5 +57,5 @@
|
|
|
57
57
|
},
|
|
58
58
|
"module": "build/esm/index.js",
|
|
59
59
|
"types": "./build/types/backoffice/src/index.d.ts",
|
|
60
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "560ab323936803b8cd7388cb1047f344cce2ed5c"
|
|
61
61
|
}
|