@crystaldesign/diva-backoffice 26.7.0-beta.7 → 26.7.0-beta.9

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 (75) hide show
  1. package/build/esm/index.js +1332 -821
  2. package/build/types/backoffice/src/Configuration.d.ts +3 -3
  3. package/build/types/backoffice/src/Configuration.d.ts.map +1 -1
  4. package/build/types/backoffice/src/layout/Content/index.d.ts.map +1 -1
  5. package/build/types/backoffice/src/ui/FileUploadOrders/index.d.ts.map +1 -1
  6. package/build/types/backoffice/src/ui/Table/BaseTable/index.d.ts.map +1 -1
  7. package/build/types/backoffice/src/ui/Table/StandardTable/useTableData.d.ts +1 -1
  8. package/build/types/backoffice/src/ui/Table/StandardTable/useTableData.d.ts.map +1 -1
  9. package/build/types/backoffice/src/ui/Table/types.d.ts +2 -0
  10. package/build/types/backoffice/src/ui/Table/types.d.ts.map +1 -1
  11. package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs/components/RenderApprove}/components/ActionBar/index.d.ts +2 -1
  12. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/ActionBar/index.d.ts.map +1 -0
  13. package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs/components/RenderApprove}/components/FullscreenViewer/index.d.ts +1 -1
  14. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/FullscreenViewer/index.d.ts.map +1 -0
  15. package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs/components/RenderApprove}/components/ImagePanel/index.d.ts +1 -1
  16. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/ImagePanel/index.d.ts.map +1 -0
  17. package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs/components/RenderApprove}/components/LeftSlider/index.d.ts +1 -1
  18. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/LeftSlider/index.d.ts.map +1 -0
  19. package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs/components/RenderApprove}/components/MetadataPanel/index.d.ts +1 -1
  20. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/MetadataPanel/index.d.ts.map +1 -0
  21. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/RejectModal/index.d.ts.map +1 -0
  22. package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs/components/RenderApprove}/components/SessionHeader/index.d.ts +1 -1
  23. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/SessionHeader/index.d.ts.map +1 -0
  24. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/ShortcutLegend/index.d.ts.map +1 -0
  25. package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs/components/RenderApprove}/components/SideBySideViewer/index.d.ts +1 -1
  26. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/SideBySideViewer/index.d.ts.map +1 -0
  27. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/UndoNotification/index.d.ts.map +1 -0
  28. package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs/components/RenderApprove}/hooks/useKeyboardShortcuts.d.ts +1 -1
  29. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  30. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/hooks/useRenderApproveSession.d.ts.map +1 -0
  31. package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs/components/RenderApprove}/hooks/useRenderJobData.d.ts +2 -2
  32. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/hooks/useRenderJobData.d.ts.map +1 -0
  33. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/hooks/useUpdateRenderJobState.d.ts.map +1 -0
  34. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/index.d.ts.map +1 -0
  35. package/build/types/backoffice/src/ui/TableRenderJobs/components/UploadImageModal/index.d.ts +11 -0
  36. package/build/types/backoffice/src/ui/TableRenderJobs/components/UploadImageModal/index.d.ts.map +1 -0
  37. package/build/types/backoffice/src/ui/TableRenderJobs/config.d.ts +321 -0
  38. package/build/types/backoffice/src/ui/TableRenderJobs/config.d.ts.map +1 -0
  39. package/build/types/backoffice/src/ui/TableRenderJobs/constants.d.ts.map +1 -0
  40. package/build/types/backoffice/src/ui/TableRenderJobs/hooks/useUpdateRenderJobPatch.d.ts.map +1 -0
  41. package/build/types/backoffice/src/ui/TableRenderJobs/hooks/useUpdateRenderJobState.d.ts +7 -0
  42. package/build/types/backoffice/src/ui/TableRenderJobs/hooks/useUpdateRenderJobState.d.ts.map +1 -0
  43. package/build/types/backoffice/src/ui/TableRenderJobs/hooks/useUploadRenderJobImage.d.ts +14 -0
  44. package/build/types/backoffice/src/ui/TableRenderJobs/hooks/useUploadRenderJobImage.d.ts.map +1 -0
  45. package/build/types/backoffice/src/ui/TableRenderJobs/index.d.ts +4 -0
  46. package/build/types/backoffice/src/ui/TableRenderJobs/index.d.ts.map +1 -0
  47. package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs}/types.d.ts +3 -0
  48. package/build/types/backoffice/src/ui/TableRenderJobs/types.d.ts.map +1 -0
  49. package/package.json +9 -9
  50. package/build/types/backoffice/src/ui/RenderApprove/components/ActionBar/index.d.ts.map +0 -1
  51. package/build/types/backoffice/src/ui/RenderApprove/components/FullscreenViewer/index.d.ts.map +0 -1
  52. package/build/types/backoffice/src/ui/RenderApprove/components/ImagePanel/index.d.ts.map +0 -1
  53. package/build/types/backoffice/src/ui/RenderApprove/components/LeftSlider/index.d.ts.map +0 -1
  54. package/build/types/backoffice/src/ui/RenderApprove/components/MetadataPanel/index.d.ts.map +0 -1
  55. package/build/types/backoffice/src/ui/RenderApprove/components/RejectModal/index.d.ts.map +0 -1
  56. package/build/types/backoffice/src/ui/RenderApprove/components/SessionHeader/index.d.ts.map +0 -1
  57. package/build/types/backoffice/src/ui/RenderApprove/components/ShortcutLegend/index.d.ts.map +0 -1
  58. package/build/types/backoffice/src/ui/RenderApprove/components/SideBySideViewer/index.d.ts.map +0 -1
  59. package/build/types/backoffice/src/ui/RenderApprove/components/UndoNotification/index.d.ts.map +0 -1
  60. package/build/types/backoffice/src/ui/RenderApprove/constants.d.ts.map +0 -1
  61. package/build/types/backoffice/src/ui/RenderApprove/hooks/useKeyboardShortcuts.d.ts.map +0 -1
  62. package/build/types/backoffice/src/ui/RenderApprove/hooks/useRenderApproveSession.d.ts.map +0 -1
  63. package/build/types/backoffice/src/ui/RenderApprove/hooks/useRenderJobData.d.ts.map +0 -1
  64. package/build/types/backoffice/src/ui/RenderApprove/hooks/useUpdateRenderJobPatch.d.ts.map +0 -1
  65. package/build/types/backoffice/src/ui/RenderApprove/hooks/useUpdateRenderJobState.d.ts.map +0 -1
  66. package/build/types/backoffice/src/ui/RenderApprove/index.d.ts.map +0 -1
  67. package/build/types/backoffice/src/ui/RenderApprove/types.d.ts.map +0 -1
  68. /package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs/components/RenderApprove}/components/RejectModal/index.d.ts +0 -0
  69. /package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs/components/RenderApprove}/components/ShortcutLegend/index.d.ts +0 -0
  70. /package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs/components/RenderApprove}/components/UndoNotification/index.d.ts +0 -0
  71. /package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs/components/RenderApprove}/hooks/useRenderApproveSession.d.ts +0 -0
  72. /package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs/components/RenderApprove}/hooks/useUpdateRenderJobState.d.ts +0 -0
  73. /package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs/components/RenderApprove}/index.d.ts +0 -0
  74. /package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs}/constants.d.ts +0 -0
  75. /package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs}/hooks/useUpdateRenderJobPatch.d.ts +0 -0
@@ -1,7 +1,7 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import React, { createElement, createContext, useState, useEffect, useRef, useMemo, forwardRef, useImperativeHandle, useCallback, createRef, useReducer, useContext, memo, useDeferredValue } from 'react';
3
3
  import 'antd/dist/reset.css';
4
- import { Modal as Modal$2, Divider, Form as Form$2, Button, Input as Input$1, Popover, Typography, Progress, Select, Avatar, Spin, Radio, Space, Dropdown, InputNumber, ColorPicker, Tooltip as Tooltip$1, Slider, DatePicker, Checkbox as Checkbox$1, Tabs, Cascader, Descriptions, Row, Col, Collapse, List as List$1, Skeleton, Alert, Card, Upload as Upload$2, Table as Table$1, message, Switch, Popconfirm, Image, Breadcrumb, Result as Result$1, Tag, Badge, theme, Empty, notification, ConfigProvider, Layout, Drawer } from 'antd';
4
+ import { Divider, Form as Form$2, Button, Input as Input$1, Popover, Typography, Progress, Select, Avatar, Spin, Radio, Space, Dropdown, InputNumber, ColorPicker, Tooltip as Tooltip$1, Slider, DatePicker, Checkbox as Checkbox$1, Modal as Modal$2, Tabs, Cascader, Descriptions, Row, Col, Collapse, List as List$1, Skeleton, Alert, Card, Upload as Upload$2, Table as Table$1, message, Switch, Popconfirm, Image as Image$1, Breadcrumb, Result as Result$1, Tag, Badge, theme, Empty, notification, ConfigProvider, Layout, Drawer } from 'antd';
5
5
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
6
6
  import { observer } from 'mobx-react-lite';
7
7
  import { getLogger, DivaError, useTranslation, useDivaCore, DivaUtils, i18n } from '@crystaldesign/diva-core';
@@ -135,7 +135,6 @@ import JSZip from 'jszip';
135
135
  import UploadOutlined$1 from '@ant-design/icons/lib/icons/UploadOutlined';
136
136
  import { GridError } from '@crystaldesign/spreadsheet/errors';
137
137
  import { MediaDetailCard } from '@crystaldesign/assetmanager';
138
- import { DropzoneAreaBase } from 'react-mui-dropzone';
139
138
  import ArrowLeftOutlined from '@ant-design/icons/ArrowLeftOutlined';
140
139
  import { Navigation as Navigation$1, Pagination, Mousewheel } from 'swiper/modules';
141
140
  import { Swiper, SwiperSlide } from 'swiper/react';
@@ -6029,458 +6028,8 @@ function loadConfiguration(t, root, config, lang, apiConfig) {
6029
6028
  }]
6030
6029
  },
6031
6030
  TableRenderjobs: {
6032
- title: t('backoffice.table.renderjobs.title'),
6033
- type: 'Table',
6034
- canRefresh: true,
6035
- columns: [{
6036
- title: t('backoffice.table.renderjobs.columns.title'),
6037
- field: 'notes',
6038
- type: 'icon',
6039
- iconMapping: [{
6040
- icon: 'StopFilled',
6041
- value: 0,
6042
- message: t('backoffice.table.renderjobs.columns.iconmapping.renderjobold')
6043
- }, {
6044
- icon: 'ExclamationCircleFilled',
6045
- message: t('backoffice.table.renderjobs.columns.iconmapping.renderjobchangedoptions'),
6046
- value: 1
6047
- }],
6048
- sorter: 2,
6049
- width: 100,
6050
- align: 'center',
6051
- closeIcon: true
6052
- }, {
6053
- title: t('backoffice.table.renderjobs.columns.state'),
6054
- field: 'state',
6055
- sorter: 1,
6056
- color: [{
6057
- color: 'yellow',
6058
- onValues: ['Warning', 7],
6059
- operations: ['ct', 'eq'],
6060
- fields: ['stateHistory', 'state']
6061
- }, {
6062
- color: 'red',
6063
- onValues: ['Threat', 7],
6064
- operations: ['ct', 'eq'],
6065
- fields: ['stateHistory', 'state']
6066
- }],
6067
- filter: {
6068
- type: 'multiselect',
6069
- values: [{
6070
- value: 0,
6071
- label: 'renderjob.state.0'
6072
- }, {
6073
- value: 1,
6074
- label: 'renderjob.state.1'
6075
- }, {
6076
- value: 2,
6077
- label: 'renderjob.state.2'
6078
- }, {
6079
- value: 3,
6080
- label: 'renderjob.state.3'
6081
- }, {
6082
- value: 4,
6083
- label: 'renderjob.state.4'
6084
- }, {
6085
- value: 5,
6086
- label: 'renderjob.state.5'
6087
- }, {
6088
- value: 6,
6089
- label: 'renderjob.state.6'
6090
- }, {
6091
- value: 7,
6092
- label: 'renderjob.state.7'
6093
- }, {
6094
- value: 8,
6095
- label: 'renderjob.state.8'
6096
- }, {
6097
- value: 9,
6098
- label: 'renderjob.state.9'
6099
- }, {
6100
- value: 10,
6101
- label: 'renderjob.state.10'
6102
- }, {
6103
- value: 11,
6104
- label: 'renderjob.state.11'
6105
- }, {
6106
- value: 12,
6107
- label: 'renderjob.state.12'
6108
- }]
6109
- },
6110
- width: 200,
6111
- translationPrefix: 'renderjob.state',
6112
- type: 'string'
6113
- }, {
6114
- title: t('backoffice.table.renderjobs.columns.priority'),
6115
- sorter: 2,
6116
- filter: 'advanced',
6117
- field: 'priority',
6118
- width: 110
6119
- }, {
6120
- title: t('backoffice.table.renderjobs.columns.divaNr'),
6121
- field: 'divaNr',
6122
- filter: 'advanced',
6123
- sorter: 2,
6124
- width: 150
6125
- }, {
6126
- title: t('backoffice.table.renderjobs.columns.VariantId'),
6127
- field: 'divaNrVariantId',
6128
- filter: 'advanced',
6129
- sorter: 2,
6130
- width: 150
6131
- }, {
6132
- title: t('backoffice.table.renderjobs.columns.fileUrl'),
6133
- field: 'mediaItemRef',
6134
- width: 99,
6135
- type: 'mediaItem',
6136
- mediaItemViewerIdMode: 'ref',
6137
- align: 'center'
6138
- }, {
6139
- title: t('backoffice.table.renderjobs.columns.realTimeRenderUrl'),
6140
- field: 'realTimeRenderUrl',
6141
- width: 99,
6142
- type: 'media',
6143
- align: 'center'
6144
- }, {
6145
- title: t('backoffice.table.renderjobs.columns.job'),
6146
- field: 'job',
6147
- sorter: 3,
6148
- filter: 'advanced',
6149
- width: 200
6150
- }, {
6151
- title: t('backoffice.table.renderjobs.columns.fileName'),
6152
- field: 'fileName',
6153
- sorter: 3,
6154
- filter: 'advanced',
6155
- width: 200
6156
- }, {
6157
- title: t('backoffice.table.renderjobs.columns.group'),
6158
- field: 'group',
6159
- sorter: 11,
6160
- filter: 'advanced',
6161
- width: 300
6162
- }, {
6163
- title: t('backoffice.table.renderjobs.columns.viewPoint'),
6164
- field: 'viewPoint',
6165
- sorter: 4,
6166
- filter: 'advanced',
6167
- width: 300
6168
- }, {
6169
- title: t('backoffice.table.renderjobs.columns.renderScene'),
6170
- field: 'renderScene',
6171
- sorter: 10,
6172
- filter: 'advanced',
6173
- width: 300
6174
- }, {
6175
- title: t('backoffice.table.renderjobs.columns.engine'),
6176
- field: 'engine',
6177
- sorter: 10,
6178
- filter: 'advanced',
6179
- width: 300
6180
- }, {
6181
- title: t('backoffice.table.renderjobs.columns.supplierName'),
6182
- field: 'supplierName',
6183
- width: 300,
6184
- sorter: 11,
6185
- filter: 'advanced'
6186
- }, {
6187
- title: t('backoffice.table.renderjobs.columns.catalogName'),
6188
- field: 'catalogName',
6189
- sorter: 14,
6190
- filter: 'advanced',
6191
- width: 300
6192
- }, {
6193
- title: t('backoffice.table.renderjobs.columns.organizationName'),
6194
- field: 'organizationName',
6195
- sorter: 13,
6196
- filter: 'advanced',
6197
- width: 400
6198
- }, {
6199
- title: t('backoffice.table.renderjobs.columns.createdByName'),
6200
- field: 'createdByName',
6201
- sorter: 14,
6202
- filter: 'advanced',
6203
- width: 200
6204
- }, {
6205
- title: t('backoffice.table.renderjobs.columns.lastUpdated'),
6206
- field: 'lastUpdated',
6207
- sorter: 15,
6208
- type: 'unixTimeStamp',
6209
- defaultSortOrder: 'descend',
6210
- filter: 'interval',
6211
- width: 200
6212
- }, {
6213
- title: t('backoffice.table.renderjobs.columns.dracoCompression'),
6214
- field: 'dracoCompression',
6215
- hidden: true
6216
- }, {
6217
- title: t('backoffice.table.renderjobs.columns.additionalPrompt'),
6218
- field: 'additionalPrompt',
6219
- hidden: true
6220
- }, {
6221
- title: t('backoffice.table.renderjobs.columns.prompt'),
6222
- field: 'prompt',
6223
- hidden: true
6224
- }, {
6225
- title: t('backoffice.table.renderjobs.columns.originPosition'),
6226
- field: 'originPosition',
6227
- hidden: true
6228
- }, {
6229
- title: t('backoffice.table.renderjobs.columns.originRotation'),
6230
- field: 'originRotation',
6231
- hidden: true
6232
- }, {
6233
- title: t('backoffice.table.renderjobs.columns.spawnLocation'),
6234
- field: 'spawnLocation',
6235
- hidden: true
6236
- }, {
6237
- title: t('backoffice.table.renderjobs.columns.product'),
6238
- field: 'product',
6239
- hidden: true
6240
- }, {
6241
- title: t('backoffice.table.renderjobs.columns.createdBy'),
6242
- field: 'createdBy',
6243
- hidden: true
6244
- }, {
6245
- title: t('backoffice.table.renderjobs.columns.createdByEmail'),
6246
- field: 'createdByEmail',
6247
- hidden: true
6248
- }, {
6249
- title: t('backoffice.table.renderjobs.columns.organization'),
6250
- field: 'organization',
6251
- hidden: true
6252
- }, {
6253
- title: '_id',
6254
- field: '_id',
6255
- hidden: true
6256
- }, {
6257
- title: 'fileName',
6258
- field: 'fileName',
6259
- hidden: true
6260
- }, {
6261
- title: 'fileFormat',
6262
- field: 'fileFormat',
6263
- hidden: true
6264
- }, {
6265
- title: 'arViewerSetting',
6266
- field: 'arViewerSetting',
6267
- hidden: true
6268
- }, {
6269
- title: 'mediaItems',
6270
- field: 'mediaItems',
6271
- hidden: true
6272
- }, {
6273
- title: 'alternativeRendering',
6274
- field: 'alternativeRendering',
6275
- hidden: true
6276
- }, {
6277
- title: 'borderCM',
6278
- field: 'borderCM',
6279
- hidden: true
6280
- }, {
6281
- title: 'doHideShadow',
6282
- field: 'doHideShadow',
6283
- hidden: true
6284
- }, {
6285
- title: 'doRenderDoubleResolution',
6286
- field: 'doRenderDoubleResolution',
6287
- hidden: true
6288
- }, {
6289
- title: 'useTransparency',
6290
- field: 'useTransparency',
6291
- hidden: true
6292
- }, {
6293
- title: 'fileUrl',
6294
- field: 'fileUrl',
6295
- hidden: true
6296
- }, {
6297
- title: 'stateHistory',
6298
- field: 'stateHistory',
6299
- hidden: true
6300
- }, {
6301
- title: 'debugUser',
6302
- field: 'debugUser',
6303
- hidden: true
6304
- }],
6305
- apiInterface: {
6306
- read: {
6307
- list: '${mediaService}/renderjobs',
6308
- filterServerSide: true
6309
- },
6310
- update: {
6311
- url: '${mediaService}/renderjobs/{_id}',
6312
- method: 'PATCH',
6313
- jsonPatch: true
6314
- },
6315
- "delete": '${mediaService}/renderjobs/${id}'
6316
- },
6317
- bulkActions: [{
6318
- actionType: 'Modal',
6319
- type: 'Form',
6320
- id: 'FormRenderJobState',
6321
- title: t('backoffice.table.renderjobs.bulkActions.FormRenderJobState.title'),
6322
- label: t('backoffice.table.renderjobs.bulkActions.FormRenderJobState.label'),
6323
- rule: [{
6324
- match: {
6325
- sourceField: 'state'
6326
- }
6327
- }],
6328
- errorText: t('backoffice.table.renderjobs.bulkActions.FormRenderJobState.errorText'),
6329
- apiInterface: {
6330
- update: {
6331
- url: '${mediaService}/renderjobs/{_id}/state',
6332
- method: 'PATCH'
6333
- }
6334
- },
6335
- showProgressBar: true
6336
- }, {
6337
- actionType: 'Modal',
6338
- type: 'Form',
6339
- id: 'FormNameAddition',
6340
- title: t('backoffice.table.renderjobs.bulkActions.FormNameAddition.title'),
6341
- label: t('backoffice.table.renderjobs.bulkActions.FormNameAddition.label'),
6342
- errorText: t('backoffice.table.renderjobs.bulkActions.FormNameAddition.errorText'),
6343
- apiInterface: {
6344
- update: {
6345
- url: '${mediaService}/renderjobs/{_id}',
6346
- method: 'PATCH',
6347
- jsonPatch: true
6348
- }
6349
- },
6350
- rule: [{
6351
- lt: {
6352
- sourceField: 'state',
6353
- value: 3
6354
- }
6355
- }],
6356
- mapping: {
6357
- type: 'body',
6358
- map: [{
6359
- targetField: 'addition',
6360
- sourceField: 'addition'
6361
- }, {
6362
- sourceField: 'fileName',
6363
- targetField: 'fileName'
6364
- }]
6365
- },
6366
- apiCallbackMapping: {
6367
- type: 'body',
6368
- map: [{
6369
- sourceField: 'addition',
6370
- targetField: 'fileName',
6371
- setType: 'addToSourceValue'
6372
- }]
6373
- },
6374
- showProgressBar: true
6375
- }, {
6376
- actionType: 'Callback',
6377
- id: 'OpenRenderApprove',
6378
- label: t('backoffice.renderapprove.table.bulkAction.label'),
6379
- rule: [{
6380
- match: {
6381
- sourceField: 'state',
6382
- value: 7
6383
- }
6384
- }],
6385
- errorText: 'backoffice.renderapprove.table.bulkAction.errorText',
6386
- disableOnRuleMismatch: true,
6387
- callback: function callback(selectedRenderJobs) {
6388
- var renderJobIds = (selectedRenderJobs !== null && selectedRenderJobs !== void 0 ? selectedRenderJobs : []).map(function (job) {
6389
- return job === null || job === void 0 ? void 0 : job._id;
6390
- }).filter(Boolean);
6391
- if (renderJobIds.length === 0) return;
6392
- Modal$2.confirm({
6393
- title: t('backoffice.renderapprove.table.bulkAction.title'),
6394
- content: t('backoffice.renderapprove.table.bulkAction.content', {
6395
- count: renderJobIds.length
6396
- }),
6397
- okText: t('backoffice.renderapprove.table.bulkAction.okText'),
6398
- cancelText: t('backoffice.renderapprove.table.bulkAction.cancelText'),
6399
- onOk: function onOk() {
6400
- var search = "?renderJobIds=".concat(encodeURIComponent(renderJobIds.join(',')));
6401
- root.navigate("/admin/renderjobs/renderapprove".concat(search));
6402
- }
6403
- });
6404
- }
6405
- }],
6406
- deselectOnUpdate: false,
6407
- copyAction: {
6408
- apiInterface: {
6409
- create: '${mediaService}/renderjobs/${_id}/copy'
6410
- },
6411
- mapping: {
6412
- type: 'query',
6413
- map: [{
6414
- sourceField: '_id',
6415
- targetField: '_id'
6416
- }]
6417
- }
6418
- },
6419
- downloadAction: [{
6420
- actionType: 'Download',
6421
- id: 'DownloadRenderjobAction',
6422
- rule: [{
6423
- match: {
6424
- sourceField: 'state',
6425
- value: [12, 9, 8, 7]
6426
- }
6427
- }],
6428
- download: [{
6429
- type: 'request',
6430
- request: '${mediaService}/v1/assets/${mediaItems}/download',
6431
- mediaType: 'file',
6432
- mapping: {
6433
- type: 'query',
6434
- map: [{
6435
- sourceField: 'mediaItemRef',
6436
- targetField: 'mediaItems'
6437
- }]
6438
- }
6439
- }]
6440
- }],
6441
- rowAction: [{
6442
- actionType: 'Detail',
6443
- type: 'Form',
6444
- id: 'FormRenderjob',
6445
- title: t('backoffice.table.renderjobs.rowAction.FormRenderjob.title'),
6446
- description: [{
6447
- text: t('backoffice.table.renderjobs.rowAction.FormRenderjob.description.text')
6448
- }]
6449
- }, {
6450
- actionType: 'Detail',
6451
- type: 'List',
6452
- id: 'ListJobHistory',
6453
- title: t('backoffice.table.renderjobs.rowAction.ListJobHistory.title'),
6454
- label: t('backoffice.table.renderjobs.rowAction.ListJobHistory.label')
6455
- }, {
6456
- actionType: 'Detail',
6457
- type: 'ImageCropper',
6458
- id: 'CropperRenderJob',
6459
- title: t('backoffice.table.renderjobs.rowAction.CropperRenderJob.title'),
6460
- label: t('backoffice.table.renderjobs.rowAction.CropperRenderJob.label')
6461
- }, {
6462
- actionType: 'Download',
6463
- id: 'DownloadRequest',
6464
- icon: 'DownloadOutlined',
6465
- rule: [{
6466
- match: {
6467
- sourceField: 'state',
6468
- value: [5, 6, 7, 8, 9, 10, 11, 12]
6469
- }
6470
- }],
6471
- download: [{
6472
- type: 'request',
6473
- request: '${mediaService}/renderjobs/${_id}/hqRenderScript',
6474
- mapping: {
6475
- type: 'query',
6476
- map: [{
6477
- sourceField: '_id',
6478
- targetField: '_id'
6479
- }]
6480
- },
6481
- mediaType: 'json'
6482
- }]
6483
- }]
6031
+ type: 'TableRenderJobs',
6032
+ title: t('backoffice.table.renderjobs.title')
6484
6033
  },
6485
6034
  RenderApprove: {
6486
6035
  type: 'RenderApprove',
@@ -31750,15 +31299,25 @@ function useTableData (_ref) {
31750
31299
  parentData = _ref.parentData,
31751
31300
  parentMapping = _ref.parentMapping,
31752
31301
  readListUrlOverride = _ref.readListUrlOverride,
31753
- genericType = _ref.genericType;
31302
+ genericType = _ref.genericType,
31303
+ configProp = _ref.config;
31754
31304
  var root = useStore();
31755
31305
  var baseConfiguration = useMemo(function () {
31756
- return root.configurationStore.getConfiguration(id, 'Table');
31757
- }, [id, i18n.language]);
31306
+ return configProp !== null && configProp !== void 0 ? configProp : root.configurationStore.getConfiguration(id, 'Table');
31307
+ }, [id, configProp, i18n.language]);
31758
31308
  var configuration = useMemo(function () {
31759
31309
  return mergeTableConfiguration(baseConfiguration, readListUrlOverride, genericType);
31760
31310
  }, [baseConfiguration, readListUrlOverride, genericType]);
31761
31311
  var apiHandler = useMemo(function () {
31312
+ if (configProp) {
31313
+ // Store entry is minimal (type+title only); pass the full apiInterface directly
31314
+ var apiInterface = readListUrlOverride && _typeof(configProp.apiInterface) === 'object' && configProp.apiInterface.read ? _objectSpread$V(_objectSpread$V({}, configProp.apiInterface), {}, {
31315
+ read: _objectSpread$V(_objectSpread$V({}, configProp.apiInterface.read), {}, {
31316
+ list: readListUrlOverride
31317
+ })
31318
+ }) : configProp.apiInterface;
31319
+ return root.getApiHandler(id, apiInterface);
31320
+ }
31762
31321
  if (!readListUrlOverride) {
31763
31322
  return root.getApiHandler(id);
31764
31323
  }
@@ -31771,7 +31330,7 @@ function useTableData (_ref) {
31771
31330
  }));
31772
31331
  }
31773
31332
  return root.getApiHandler(id);
31774
- }, [id, readListUrlOverride, baseConfiguration, i18n.language, root]);
31333
+ }, [id, configProp, readListUrlOverride, baseConfiguration, i18n.language, root]);
31775
31334
  var _useState = useState(),
31776
31335
  _useState2 = _slicedToArray(_useState, 2),
31777
31336
  selectedData = _useState2[0],
@@ -32807,7 +32366,7 @@ var AGGrid = /*#__PURE__*/memo(function (_ref) {
32807
32366
  _useState2 = _slicedToArray(_useState, 2),
32808
32367
  img = _useState2[0],
32809
32368
  setImg = _useState2[1];
32810
- return /*#__PURE__*/jsx(Image, {
32369
+ return /*#__PURE__*/jsx(Image$1, {
32811
32370
  style: {
32812
32371
  height: '40px'
32813
32372
  },
@@ -50869,42 +50428,41 @@ var FileUploadWrapper = function FileUploadWrapper(_ref) {
50869
50428
  var config = root.configurationStore.getConfiguration(id);
50870
50429
  var _useState = useState([]),
50871
50430
  _useState2 = _slicedToArray(_useState, 2),
50872
- files = _useState2[0],
50873
- setFiles = _useState2[1];
50874
- var _useState3 = useState(false),
50431
+ fileList = _useState2[0],
50432
+ setFileList = _useState2[1];
50433
+ var _useState3 = useState(),
50875
50434
  _useState4 = _slicedToArray(_useState3, 2),
50876
- loading = _useState4[0],
50877
- setLoading = _useState4[1];
50435
+ selectedFile = _useState4[0],
50436
+ setSelectedFile = _useState4[1];
50437
+ var _useState5 = useState(false),
50438
+ _useState6 = _slicedToArray(_useState5, 2),
50439
+ loading = _useState6[0],
50440
+ setLoading = _useState6[1];
50878
50441
  var _useTranslation = useTranslation(),
50879
50442
  t = _useTranslation.t;
50880
- var _useState5 = useState(),
50881
- _useState6 = _slicedToArray(_useState5, 2),
50882
- success = _useState6[0],
50883
- setSuccess = _useState6[1];
50884
50443
  var _useState7 = useState(),
50885
50444
  _useState8 = _slicedToArray(_useState7, 2),
50886
- error = _useState8[0],
50887
- setError = _useState8[1];
50445
+ success = _useState8[0],
50446
+ setSuccess = _useState8[1];
50888
50447
  var _useState9 = useState(),
50889
50448
  _useState10 = _slicedToArray(_useState9, 2),
50890
- columnName = _useState10[0],
50891
- setColumnName = _useState10[1];
50892
- var _useState11 = useState(undefined),
50449
+ error = _useState10[0],
50450
+ setError = _useState10[1];
50451
+ var _useState11 = useState(),
50893
50452
  _useState12 = _slicedToArray(_useState11, 2),
50894
- response = _useState12[0],
50895
- setResponse = _useState12[1];
50896
- var handleDelete = function handleDelete(deletedFile) {
50897
- setFiles(files.filter(function (file) {
50898
- return file.file.name !== deletedFile.file.name;
50899
- }));
50900
- };
50453
+ columnName = _useState12[0],
50454
+ setColumnName = _useState12[1];
50455
+ var _useState13 = useState(undefined),
50456
+ _useState14 = _slicedToArray(_useState13, 2),
50457
+ response = _useState14[0],
50458
+ setResponse = _useState14[1];
50901
50459
  var handleSubmit = /*#__PURE__*/function () {
50902
50460
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
50903
50461
  var formData, url, _response, jsonResponse;
50904
50462
  return _regeneratorRuntime.wrap(function _callee$(_context) {
50905
50463
  while (1) switch (_context.prev = _context.next) {
50906
50464
  case 0:
50907
- if (files.length) {
50465
+ if (selectedFile) {
50908
50466
  _context.next = 3;
50909
50467
  break;
50910
50468
  }
@@ -50923,7 +50481,7 @@ var FileUploadWrapper = function FileUploadWrapper(_ref) {
50923
50481
  setSuccess(undefined);
50924
50482
  formData = new FormData();
50925
50483
  formData.append('columnName', columnName);
50926
- formData.append('file', files[0].file);
50484
+ formData.append('file', selectedFile);
50927
50485
  url = config.apiInterface;
50928
50486
  _context.prev = 13;
50929
50487
  _context.next = 16;
@@ -50954,24 +50512,25 @@ var FileUploadWrapper = function FileUploadWrapper(_ref) {
50954
50512
  case 27:
50955
50513
  jsonResponse = _context.sent;
50956
50514
  setSuccess(t('backoffice.fileupload.success'));
50957
- setFiles([]);
50515
+ setFileList([]);
50516
+ setSelectedFile(undefined);
50958
50517
  setColumnName('');
50959
50518
  setResponse(jsonResponse);
50960
- _context.next = 37;
50519
+ _context.next = 38;
50961
50520
  break;
50962
- case 34:
50963
- _context.prev = 34;
50521
+ case 35:
50522
+ _context.prev = 35;
50964
50523
  _context.t4 = _context["catch"](13);
50965
50524
  setError(_context.t4.message || t('backoffice.fileupload.error'));
50966
- case 37:
50967
- _context.prev = 37;
50525
+ case 38:
50526
+ _context.prev = 38;
50968
50527
  setLoading(false);
50969
- return _context.finish(37);
50970
- case 40:
50528
+ return _context.finish(38);
50529
+ case 41:
50971
50530
  case "end":
50972
50531
  return _context.stop();
50973
50532
  }
50974
- }, _callee, null, [[13, 34, 37, 40]]);
50533
+ }, _callee, null, [[13, 35, 38, 41]]);
50975
50534
  }));
50976
50535
  return function handleSubmit() {
50977
50536
  return _ref2.apply(this, arguments);
@@ -50998,22 +50557,31 @@ var FileUploadWrapper = function FileUploadWrapper(_ref) {
50998
50557
  }
50999
50558
  }), /*#__PURE__*/jsxs(Spin, {
51000
50559
  spinning: loading,
51001
- children: [/*#__PURE__*/jsx(DropzoneAreaBase, {
51002
- fileObjects: files,
51003
- onAdd: function onAdd(newFiles) {
51004
- setFiles([].concat(_toConsumableArray(files), _toConsumableArray(newFiles))); // Update state with new files
51005
- },
51006
- onDelete: handleDelete,
51007
- acceptedFiles: ['application/vnd.ms-excel',
51008
- // .xls
51009
- 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
51010
- // .xlsx
51011
- 'text/csv',
51012
- // .csv
51013
- '.xls', '.xlsx', '.csv'],
51014
- maxFileSize: 5000000,
51015
- showPreviewsInDropzone: true,
51016
- dropzoneText: t('fileuploadorderes.dropzoneText')
50560
+ children: [/*#__PURE__*/jsx(Upload$2.Dragger, {
50561
+ accept: ".xls,.xlsx,.csv",
50562
+ maxCount: 1,
50563
+ fileList: fileList,
50564
+ beforeUpload: function beforeUpload(file) {
50565
+ if (file.size > 5000000) {
50566
+ message.error(t('backoffice.fileupload.error'));
50567
+ return Upload$2.LIST_IGNORE;
50568
+ }
50569
+ setSelectedFile(file);
50570
+ setFileList([{
50571
+ uid: file.uid,
50572
+ name: file.name,
50573
+ status: 'done'
50574
+ }]);
50575
+ return false;
50576
+ },
50577
+ onRemove: function onRemove() {
50578
+ setSelectedFile(undefined);
50579
+ setFileList([]);
50580
+ },
50581
+ children: /*#__PURE__*/jsx("p", {
50582
+ className: "ant-upload-text",
50583
+ children: t('fileuploadorderes.dropzoneText')
50584
+ })
51017
50585
  }), /*#__PURE__*/jsx("div", {
51018
50586
  style: {
51019
50587
  marginTop: 18
@@ -53080,31 +52648,31 @@ function MetaCampaignJotformSync() {
53080
52648
  }
53081
52649
  var MetaCampaignJotformSync$1 = observer(MetaCampaignJotformSync);
53082
52650
 
53083
- var root$7 = "root-qZi3I";
53084
- var topRow = "topRow-OB0pQ";
53085
- var backButton = "backButton-ZM3wo";
53086
- var jobInfo = "jobInfo-8wPNt";
53087
- var jobInfoItem = "jobInfoItem-hk3Rb";
53088
- var jobInfoLabel = "jobInfoLabel-Btclx";
53089
- var jobInfoValue = "jobInfoValue-xANoB";
53090
- var progressSection = "progressSection-fMRn8";
53091
- var progressHeader = "progressHeader-qrEDM";
53092
- var progressPosition = "progressPosition-5eopM";
53093
- var progressPercent = "progressPercent-PdsVG";
53094
- var progressTrack = "progressTrack-S1gS1";
53095
- var progressSegment = "progressSegment-eDBeh";
53096
- var progressApproved = "progressApproved-iNJZn";
53097
- var progressRejected = "progressRejected-7UJN7";
53098
- var progressOpen = "progressOpen-q-vtv";
53099
- var bottomRow = "bottomRow-kzM6o";
53100
- var summaryStats = "summaryStats-44tNe";
53101
- var statBadge = "statBadge-2F612";
53102
- var statApproved = "statApproved-TeFyK";
53103
- var statRejected = "statRejected-yfXJq";
53104
- var statRemaining = "statRemaining-1yUpc";
53105
- var statChanged = "statChanged-WAi9N";
53106
- var skipCheckbox = "skipCheckbox-LKckf";
53107
- var css_248z$k = ".root-qZi3I {\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-OB0pQ {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n min-width: 0;\n}\n\n.backButton-ZM3wo {\n flex-shrink: 0;\n}\n\n.jobInfo-8wPNt {\n display: flex;\n flex-wrap: wrap;\n gap: 12px 20px;\n flex: 1;\n min-width: 0;\n}\n\n.jobInfoItem-hk3Rb {\n display: inline-flex;\n gap: 4px;\n align-items: baseline;\n min-width: 0;\n}\n\n.jobInfoLabel-Btclx {\n font-size: 12px;\n white-space: nowrap;\n}\n\n.jobInfoValue-xANoB {\n font-size: 13px;\n max-width: 220px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.progressSection-fMRn8 {\n display: flex;\n flex-direction: column;\n gap: 6px;\n min-width: 260px;\n max-width: 400px;\n flex-shrink: 0;\n}\n\n.progressHeader-qrEDM {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n gap: 12px;\n}\n\n.progressPosition-5eopM {\n font-size: 15px;\n line-height: 1.2;\n white-space: nowrap;\n}\n\n.progressPercent-PdsVG {\n font-size: 12px;\n white-space: nowrap;\n}\n\n.progressTrack-S1gS1 {\n display: flex;\n width: 100%;\n height: 8px;\n border-radius: 4px;\n overflow: hidden;\n background: #f0f0f0;\n}\n\n.progressSegment-eDBeh {\n height: 100%;\n min-width: 0;\n transition: width 0.2s ease;\n}\n\n.progressApproved-iNJZn {\n background: #52c41a;\n}\n\n.progressRejected-7UJN7 {\n background: #ff4d4f;\n}\n\n.progressOpen-q-vtv {\n background: #bfbfbf;\n}\n\n.bottomRow-kzM6o {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n gap: 12px 16px;\n}\n\n.summaryStats-44tNe {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.statBadge-2F612 {\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-TeFyK {\n color: #389e0d;\n background: #f6ffed;\n border-color: #b7eb8f;\n}\n\n.statRejected-yfXJq {\n color: #cf1322;\n background: #fff1f0;\n border-color: #ffa39e;\n}\n\n.statRemaining-1yUpc {\n color: #595959;\n background: #fff;\n border-color: #d9d9d9;\n}\n\n.statChanged-WAi9N {\n color: #d48806;\n background: #fff1b8;\n border-color: #ffc53d;\n}\n\n.skipCheckbox-LKckf {\n margin: 0;\n white-space: normal;\n}\n\n/* Dark mode */\n.darkmode .root-qZi3I {\n background: #141414;\n border-bottom-color: #303030;\n}\n\n.darkmode .progressTrack-S1gS1 {\n background: #262626;\n}\n\n.darkmode .progressOpen-q-vtv {\n background: #595959;\n}\n\n.darkmode .statApproved-TeFyK {\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-yfXJq {\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-1yUpc {\n color: rgba(255, 255, 255, 0.75);\n background: #262626;\n border-color: #595959;\n}\n\n.darkmode .statChanged-WAi9N {\n color: #ffd666;\n background: rgba(212, 136, 6, 0.28);\n border-color: rgba(255, 197, 61, 0.55);\n}\n";
52651
+ var root$7 = "root-7Tfio";
52652
+ var topRow = "topRow-PBU6G";
52653
+ var backButton = "backButton-FAXI7";
52654
+ var jobInfo = "jobInfo-M65Y0";
52655
+ var jobInfoItem = "jobInfoItem-OYxkA";
52656
+ var jobInfoLabel = "jobInfoLabel-MH1sL";
52657
+ var jobInfoValue = "jobInfoValue-En0nn";
52658
+ var progressSection = "progressSection-jDlWb";
52659
+ var progressHeader = "progressHeader-dJp1s";
52660
+ var progressPosition = "progressPosition-3DTnf";
52661
+ var progressPercent = "progressPercent-0D8b-";
52662
+ var progressTrack = "progressTrack-45tuc";
52663
+ var progressSegment = "progressSegment-eXone";
52664
+ var progressApproved = "progressApproved-JbJR1";
52665
+ var progressRejected = "progressRejected-qGOTN";
52666
+ var progressOpen = "progressOpen-oWm4h";
52667
+ var bottomRow = "bottomRow-j2rQ-";
52668
+ var summaryStats = "summaryStats-jvqoJ";
52669
+ var statBadge = "statBadge-xOJvU";
52670
+ var statApproved = "statApproved-XaXrf";
52671
+ var statRejected = "statRejected-xIvPi";
52672
+ var statRemaining = "statRemaining-lhHD1";
52673
+ var statChanged = "statChanged-Yi-hD";
52674
+ var skipCheckbox = "skipCheckbox-6f6xL";
52675
+ var css_248z$k = ".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}\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 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";
53108
52676
  styleInject(css_248z$k);
53109
52677
 
53110
52678
  function buildInfoItems(job) {
@@ -53244,15 +52812,15 @@ function SessionHeader(_ref) {
53244
52812
  });
53245
52813
  }
53246
52814
 
53247
- var root$6 = "root-sKepy";
53248
- var header = "header-po1yY";
53249
- var content$1 = "content--O6Lw";
53250
- var contentImage = "contentImage-pYzTb";
53251
- var contentAr = "contentAr-mN2Zf";
53252
- var image$1 = "image-A5M7-";
53253
- var imageLoaded = "imageLoaded-V4fd-";
53254
- var imageClickable = "imageClickable-O-9TC";
53255
- var css_248z$j = ".root-sKepy {\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-po1yY {\n padding: 6px 12px;\n border-bottom: 1px solid #f0f0f0;\n background: #fff;\n}\n\n.content--O6Lw {\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-pYzTb {\n padding: 12px;\n}\n\n.contentAr-mN2Zf {\n padding: 0;\n background: #fff;\n}\n\n.image-A5M7- {\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-V4fd- {\n display: block;\n}\n\n.imageClickable-O-9TC {\n cursor: zoom-in;\n}\n\n/* Dark mode */\n.darkmode .root-sKepy {\n background: #1f1f1f;\n border-color: #303030;\n}\n\n.darkmode .header-po1yY {\n background: #141414;\n border-bottom-color: #303030;\n}\n\n.darkmode .contentAr-mN2Zf {\n background: #141414;\n}\n";
52815
+ var root$6 = "root-bbDdW";
52816
+ var header = "header--owh8";
52817
+ var content$1 = "content-q2m1c";
52818
+ var contentImage = "contentImage-vn5YC";
52819
+ var contentAr = "contentAr-iUuog";
52820
+ var image$1 = "image-UQwwt";
52821
+ var imageLoaded = "imageLoaded--oFrG";
52822
+ var imageClickable = "imageClickable-9AVC0";
52823
+ var css_248z$j = ".root-bbDdW {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-width: 0;\n background: #fafafa;\n border: 1px solid #f0f0f0;\n border-radius: 4px;\n overflow: hidden;\n}\n\n.header--owh8 {\n padding: 6px 12px;\n border-bottom: 1px solid #f0f0f0;\n background: #fff;\n}\n\n.content-q2m1c {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 320px;\n position: relative;\n}\n\n.contentImage-vn5YC {\n padding: 12px;\n}\n\n.contentAr-iUuog {\n padding: 0;\n background: #fff;\n}\n\n.image-UQwwt {\n max-width: 100%;\n max-height: 100%;\n -o-object-fit: contain;\n object-fit: contain;\n display: none;\n cursor: default;\n}\n\n.imageLoaded--oFrG {\n display: block;\n}\n\n.imageClickable-9AVC0 {\n cursor: zoom-in;\n}\n\n/* Dark mode */\n.darkmode .root-bbDdW {\n background: #1f1f1f;\n border-color: #303030;\n}\n\n.darkmode .header--owh8 {\n background: #141414;\n border-bottom-color: #303030;\n}\n\n.darkmode .contentAr-iUuog {\n background: #141414;\n}\n";
53256
52824
  styleInject(css_248z$j);
53257
52825
 
53258
52826
  function isAr$1(media) {
@@ -53358,9 +52926,9 @@ function ImagePanel(_ref) {
53358
52926
  });
53359
52927
  }
53360
52928
 
53361
- var root$5 = "root-POW7v";
53362
- var swiper = "swiper-HMX89";
53363
- var css_248z$i = ".root-POW7v {\n display: flex;\n flex: 1;\n min-width: 0;\n min-height: 0;\n position: relative;\n}\n\n.swiper-HMX89 {\n width: 100%;\n height: 100%;\n min-height: 0;\n}\n\n.swiper-HMX89 .swiper-wrapper {\n height: 100%;\n}\n\n.swiper-HMX89 .swiper-slide {\n display: flex;\n height: auto;\n min-height: 0;\n}\n\n.swiper-HMX89 .swiper-button-prev,\n.swiper-HMX89 .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-HMX89 .swiper-button-prev:hover,\n.swiper-HMX89 .swiper-button-next:hover {\n color: rgba(0, 0, 0, 0.85);\n}\n\n.swiper-HMX89 .swiper-button-prev::after,\n.swiper-HMX89 .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-HMX89 .swiper-button-prev {\n left: 8px;\n}\n\n.swiper-HMX89 .swiper-button-next {\n right: 8px;\n}\n\n.swiper-HMX89 .swiper-button-disabled {\n opacity: 0.3;\n pointer-events: none;\n}\n\n.swiper-HMX89 .swiper-pagination {\n bottom: 8px;\n}\n\n.swiper-HMX89 .swiper-pagination-bullet {\n background: rgba(255, 255, 255, 0.7);\n opacity: 0.7;\n}\n\n.swiper-HMX89 .swiper-pagination-bullet-active {\n background: #fff;\n opacity: 1;\n}\n\n/* Dark mode */\n.darkmode .swiper-HMX89 .swiper-button-prev,\n.darkmode .swiper-HMX89 .swiper-button-next {\n color: rgba(255, 255, 255, 0.58);\n}\n\n.darkmode .swiper-HMX89 .swiper-button-prev:hover,\n.darkmode .swiper-HMX89 .swiper-button-next:hover {\n color: rgba(255, 255, 255, 0.9);\n}\n\n.darkmode .swiper-HMX89 .swiper-button-prev::after,\n.darkmode .swiper-HMX89 .swiper-button-next::after {\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.75);\n}\n\n.darkmode .swiper-HMX89 .swiper-pagination-bullet {\n background: rgba(255, 255, 255, 0.42);\n}\n\n.darkmode .swiper-HMX89 .swiper-pagination-bullet-active {\n background: rgba(255, 255, 255, 0.85);\n}\n";
52929
+ var root$5 = "root-iS23R";
52930
+ var swiper = "swiper-3uKmT";
52931
+ var css_248z$i = ".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";
53364
52932
  styleInject(css_248z$i);
53365
52933
 
53366
52934
  /**
@@ -53421,17 +52989,17 @@ function LeftSlider(_ref) {
53421
52989
  });
53422
52990
  }
53423
52991
 
53424
- var root$4 = "root-LGYaK";
53425
- var viewerPanels = "viewerPanels-5z1Fc";
53426
- var decisionOverlay = "decisionOverlay-SB2W1";
53427
- var overlayApproved = "overlayApproved-D5sTT";
53428
- var overlayRejected = "overlayRejected-dbYCZ";
53429
- var overlayChangedReadyForRenderer = "overlayChangedReadyForRenderer-frQb-";
53430
- var overlayLabel = "overlayLabel-evTkb";
53431
- var overlayLabelApproved = "overlayLabelApproved-Qt93C";
53432
- var overlayLabelRejected = "overlayLabelRejected-x8GSu";
53433
- var overlayLabelChangedReadyForRenderer = "overlayLabelChangedReadyForRenderer-qRLcy";
53434
- var css_248z$h = ".root-LGYaK {\n display: flex;\n gap: 16px;\n padding: 16px;\n flex: 1;\n min-height: 0;\n position: relative;\n}\n\n.viewerPanels-5z1Fc {\n display: flex;\n gap: 16px;\n flex: 1;\n min-width: 0;\n min-height: 0;\n}\n\n.decisionOverlay-SB2W1 {\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-D5sTT {\n background: rgba(82, 196, 26, 0.22);\n border: 2px solid rgba(82, 196, 26, 0.55);\n}\n\n.overlayRejected-dbYCZ {\n background: rgba(255, 77, 79, 0.22);\n border: 2px solid rgba(255, 77, 79, 0.55);\n}\n\n.overlayChangedReadyForRenderer-frQb- {\n background: rgba(250, 173, 20, 0.22);\n border: 2px solid rgba(250, 173, 20, 0.55);\n}\n\n.overlayLabel-evTkb {\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-Qt93C {\n color: #237804;\n background: rgba(255, 255, 255, 0.92);\n}\n\n.overlayLabelRejected-x8GSu {\n color: #a8071a;\n background: rgba(255, 255, 255, 0.92);\n}\n\n.overlayLabelChangedReadyForRenderer-qRLcy {\n color: #ad6800;\n background: rgba(255, 255, 255, 0.92);\n}\n\n/* Dark mode */\n.darkmode .overlayLabelApproved-Qt93C {\n color: #95de64;\n background: rgba(0, 0, 0, 0.55);\n}\n\n.darkmode .overlayLabelRejected-x8GSu {\n color: #ff7875;\n background: rgba(0, 0, 0, 0.55);\n}\n\n.darkmode .overlayLabelChangedReadyForRenderer-qRLcy {\n color: #ffd666;\n background: rgba(0, 0, 0, 0.55);\n}\n";
52992
+ var root$4 = "root-16ADu";
52993
+ var viewerPanels = "viewerPanels-Lntpx";
52994
+ var decisionOverlay = "decisionOverlay-8mr9P";
52995
+ var overlayApproved = "overlayApproved-hAkZi";
52996
+ var overlayRejected = "overlayRejected-UqBPC";
52997
+ var overlayChangedReadyForRenderer = "overlayChangedReadyForRenderer-ignKB";
52998
+ var overlayLabel = "overlayLabel-MfzIQ";
52999
+ var overlayLabelApproved = "overlayLabelApproved-Dn09n";
53000
+ var overlayLabelRejected = "overlayLabelRejected-IdRHs";
53001
+ var overlayLabelChangedReadyForRenderer = "overlayLabelChangedReadyForRenderer-e7Fdw";
53002
+ var css_248z$h = ".root-16ADu {\n display: flex;\n gap: 16px;\n padding: 16px;\n flex: 1;\n min-height: 0;\n position: relative;\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";
53435
53003
  styleInject(css_248z$h);
53436
53004
 
53437
53005
  function SideBySideViewer(_ref) {
@@ -53487,12 +53055,12 @@ function SideBySideViewer(_ref) {
53487
53055
  });
53488
53056
  }
53489
53057
 
53490
- var root$3 = "root-xBnOW";
53491
- var item = "item-B2JHr";
53492
- var keys = "keys-Bg5oO";
53493
- var keyChip = "keyChip-RqeHp";
53494
- var label = "label-in3f5";
53495
- var css_248z$g = ".root-xBnOW {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n -moz-column-gap: 14px;\n column-gap: 14px;\n row-gap: 4px;\n opacity: 0.75;\n}\n\n.item-B2JHr {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.keys-Bg5oO {\n display: inline-flex;\n gap: 2px;\n}\n\n.keyChip-RqeHp {\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-in3f5 {\n font-size: 12px;\n}\n\n/* Dark mode */\n.darkmode .keyChip-RqeHp {\n border-color: #595959;\n background: #262626;\n color: rgba(255, 255, 255, 0.75);\n}\n";
53058
+ var root$3 = "root-9FUw-";
53059
+ var item = "item-jn9Ok";
53060
+ var keys = "keys-ev62a";
53061
+ var keyChip = "keyChip-gS8Cz";
53062
+ var label = "label-bmm2i";
53063
+ var css_248z$g = ".root-9FUw- {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\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}\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}\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";
53496
53064
  styleInject(css_248z$g);
53497
53065
 
53498
53066
  var BASE_ITEMS = [{
@@ -53559,9 +53127,9 @@ function ShortcutLegend(_ref) {
53559
53127
  });
53560
53128
  }
53561
53129
 
53562
- var root$2 = "root-QOVsq";
53563
- var legendContainer = "legendContainer-2uhkx";
53564
- var css_248z$f = ".root-QOVsq {\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}\n\n.legendContainer-2uhkx {\n flex: 1;\n display: flex;\n justify-content: right;\n min-width: 0;\n}\n\n/* Dark mode */\n.darkmode .root-QOVsq {\n background: #141414;\n border-top-color: #303030;\n}\n";
53130
+ var root$2 = "root-AeU29";
53131
+ var legendContainer = "legendContainer--qZEQ";
53132
+ var css_248z$f = ".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}\n\n.legendContainer--qZEQ {\n flex: 1;\n display: flex;\n justify-content: right;\n min-width: 0;\n}\n\n/* Dark mode */\n.darkmode .root-AeU29 {\n background: #141414;\n border-top-color: #303030;\n}\n";
53565
53133
  styleInject(css_248z$f);
53566
53134
 
53567
53135
  function ActionBar(_ref) {
@@ -53573,7 +53141,8 @@ function ActionBar(_ref) {
53573
53141
  onApprove = _ref.onApprove,
53574
53142
  onReject = _ref.onReject,
53575
53143
  onPrev = _ref.onPrev,
53576
- onNext = _ref.onNext;
53144
+ onNext = _ref.onNext,
53145
+ onUpload = _ref.onUpload;
53577
53146
  var _useTranslation = useTranslation(),
53578
53147
  t = _useTranslation.t;
53579
53148
  var blocked = disabled || busy;
@@ -53607,6 +53176,18 @@ function ActionBar(_ref) {
53607
53176
  disabled: actionsBlocked || !onApprove,
53608
53177
  children: "".concat(t('backoffice.renderapprove.actions.approve'), " (Enter)")
53609
53178
  })
53179
+ }), onUpload && /*#__PURE__*/jsx(Tooltip$1, {
53180
+ title: t('backoffice.renderapprove.tooltips.upload', {
53181
+ defaultValue: 'Externes Bild hochladen'
53182
+ }),
53183
+ children: /*#__PURE__*/jsx(Button, {
53184
+ icon: /*#__PURE__*/jsx(UploadOutlined, {}),
53185
+ onClick: onUpload,
53186
+ disabled: blocked,
53187
+ children: t('backoffice.renderapprove.actions.upload', {
53188
+ defaultValue: 'Hochladen'
53189
+ })
53190
+ })
53610
53191
  })]
53611
53192
  }), /*#__PURE__*/jsx("div", {
53612
53193
  className: legendContainer,
@@ -53718,10 +53299,10 @@ var KEY_MAP = {
53718
53299
  */
53719
53300
  var UNDO_TIMEOUT_MS = 5000;
53720
53301
 
53721
- var content = "content-iN9-c";
53722
- var reasonGroup = "reasonGroup-lYcpG";
53723
- var commentInput = "commentInput-DGAxu";
53724
- var css_248z$e = ".content-iN9-c {\n width: 100%;\n}\n\n.reasonGroup-lYcpG {\n display: flex;\n flex-direction: column;\n gap: 4px;\n margin-top: 8px;\n}\n\n.commentInput-DGAxu {\n margin-top: 8px;\n}\n";
53302
+ var content = "content-Zf-od";
53303
+ var reasonGroup = "reasonGroup-XDHiq";
53304
+ var commentInput = "commentInput-9VKDH";
53305
+ var css_248z$e = ".content-Zf-od {\n width: 100%;\n}\n\n.reasonGroup-XDHiq {\n display: flex;\n flex-direction: column;\n gap: 4px;\n margin-top: 8px;\n}\n\n.commentInput-9VKDH {\n margin-top: 8px;\n}\n";
53725
53306
  styleInject(css_248z$e);
53726
53307
 
53727
53308
  var _REJECTION_REASONS$;
@@ -53867,30 +53448,30 @@ function RejectModal(_ref) {
53867
53448
  });
53868
53449
  }
53869
53450
 
53870
- var panelRoot = "panelRoot-AWIep";
53871
- var toolbar = "toolbar-FekpW";
53872
- var toolbarActions = "toolbarActions-2drTW";
53873
- var workspace = "workspace-Bu3fK";
53874
- var main = "main-1Mh97";
53875
- var primaryFields = "primaryFields-NF5XM";
53876
- var primaryFieldItem = "primaryFieldItem-s0HPE";
53877
- var primaryFieldLabel = "primaryFieldLabel-TBIEZ";
53878
- var primaryFieldValue = "primaryFieldValue-kbxwM";
53879
- var sidebar$1 = "sidebar-fE64h";
53880
- var sidebarDual = "sidebarDual-DNdG-";
53881
- var sidebarCollapsed$1 = "sidebarCollapsed-Ozy2s";
53882
- var sidebarInner = "sidebarInner-6o9F-";
53883
- var panelColumns = "panelColumns-Xu41x";
53884
- var panelColumnsDual = "panelColumnsDual-Ap0mc";
53885
- var sidebarTitle$1 = "sidebarTitle-sxyE6";
53886
- var section = "section-d7Cy-";
53887
- var panelSection = "panelSection-SJxK1";
53888
- var promptText = "promptText-niuC2";
53889
- var promptActions = "promptActions-usGCT";
53890
- var promptEditor = "promptEditor-0OFKp";
53891
- var promptWarning = "promptWarning-9MlhH";
53892
- var promptEditActions = "promptEditActions-g4gce";
53893
- var css_248z$d = ".panelRoot-AWIep {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n}\n\n.toolbar-FekpW {\n display: flex;\n align-items: center;\n gap: 24px;\n padding: 6px 16px;\n background: #fff;\n border-bottom: 1px solid #f0f0f0;\n min-height: 36px;\n flex-wrap: wrap;\n flex-shrink: 0;\n}\n\n.toolbarActions-2drTW {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n}\n\n.workspace-Bu3fK {\n display: flex;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n\n.main-1Mh97 {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-width: 0;\n min-height: 0;\n}\n\n.primaryFields-NF5XM {\n display: flex;\n flex-wrap: wrap;\n gap: 16px;\n align-items: center;\n flex: 1;\n min-width: 0;\n}\n\n.primaryFieldItem-s0HPE {\n display: inline-flex;\n gap: 4px;\n align-items: baseline;\n min-width: 0;\n}\n\n.primaryFieldLabel-TBIEZ {\n font-size: 12px;\n white-space: nowrap;\n}\n\n.primaryFieldValue-kbxwM {\n font-size: 12px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 260px;\n}\n\n.sidebar-fE64h {\n flex-shrink: 0;\n width: 400px;\n background: #fff;\n border-left: 1px solid #f0f0f0;\n overflow: hidden;\n transition: width 0.2s ease;\n}\n\n.sidebarDual-DNdG- {\n width: 800px;\n}\n\n.sidebarCollapsed-Ozy2s {\n width: 0;\n border-left-width: 0;\n}\n\n.sidebarInner-6o9F- {\n width: 100%;\n height: 100%;\n overflow-y: auto;\n padding: 16px;\n box-sizing: border-box;\n}\n\n.panelColumns-Xu41x {\n display: block;\n}\n\n.panelColumnsDual-Ap0mc {\n display: flex;\n gap: 0;\n align-items: flex-start;\n}\n\n.sidebarTitle-sxyE6 {\n margin: 0 0 16px;\n}\n\n.section-d7Cy- {\n margin-bottom: 16px;\n}\n\n.panelSection-SJxK1 {\n margin-bottom: 20px;\n}\n\n.panelColumnsDual-Ap0mc .panelSection-SJxK1 {\n flex: 0 0 400px;\n min-width: 400px;\n margin-bottom: 0;\n}\n\n.panelColumnsDual-Ap0mc .panelSection-SJxK1 + .panelSection-SJxK1 {\n border-left: 1px solid #f0f0f0;\n padding-left: 16px;\n}\n\n.panelSection-SJxK1:last-child {\n margin-bottom: 0;\n}\n\n.promptText-niuC2 {\n white-space: pre-wrap;\n word-break: break-word;\n margin-bottom: 0;\n}\n\n.promptActions-usGCT {\n margin-top: 12px;\n}\n\n.promptEditor-0OFKp {\n margin-bottom: 12px;\n}\n\n.promptWarning-9MlhH {\n margin-bottom: 12px;\n}\n\n.promptEditActions-g4gce {\n display: flex;\n justify-content: flex-end;\n width: 100%;\n}\n\n/* Dark mode */\n.darkmode .toolbar-FekpW {\n background: #141414;\n border-bottom-color: #303030;\n}\n\n.darkmode .sidebar-fE64h {\n background: #141414;\n border-left-color: #303030;\n}\n\n.darkmode .panelColumnsDual-Ap0mc .panelSection-SJxK1 + .panelSection-SJxK1 {\n border-left-color: #303030;\n}\n";
53451
+ var panelRoot = "panelRoot-gfLcR";
53452
+ var toolbar = "toolbar-Y7oCe";
53453
+ var toolbarActions = "toolbarActions-L-u0R";
53454
+ var workspace = "workspace-4rfzU";
53455
+ var main = "main-OZ7rC";
53456
+ var primaryFields = "primaryFields-6QkPL";
53457
+ var primaryFieldItem = "primaryFieldItem-6-wLB";
53458
+ var primaryFieldLabel = "primaryFieldLabel-xmQ2Q";
53459
+ var primaryFieldValue = "primaryFieldValue-CY9eJ";
53460
+ var sidebar$1 = "sidebar-3A7Z2";
53461
+ var sidebarDual = "sidebarDual-BTYOM";
53462
+ var sidebarCollapsed$1 = "sidebarCollapsed-uMA2I";
53463
+ var sidebarInner = "sidebarInner-MpQjT";
53464
+ var panelColumns = "panelColumns-aYOq4";
53465
+ var panelColumnsDual = "panelColumnsDual-u8Gml";
53466
+ var sidebarTitle$1 = "sidebarTitle-dIltG";
53467
+ var section = "section-895Lv";
53468
+ var panelSection = "panelSection-cniRE";
53469
+ var promptText = "promptText-2-Sjb";
53470
+ var promptActions = "promptActions-QgHWm";
53471
+ var promptEditor = "promptEditor-0tZzL";
53472
+ var promptWarning = "promptWarning-OGH7p";
53473
+ var promptEditActions = "promptEditActions-bYvcD";
53474
+ var css_248z$d = ".panelRoot-gfLcR {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n}\n\n.toolbar-Y7oCe {\n display: flex;\n align-items: center;\n gap: 24px;\n padding: 6px 16px;\n background: #fff;\n border-bottom: 1px solid #f0f0f0;\n min-height: 36px;\n flex-wrap: wrap;\n flex-shrink: 0;\n}\n\n.toolbarActions-L-u0R {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n}\n\n.workspace-4rfzU {\n display: flex;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n\n.main-OZ7rC {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-width: 0;\n min-height: 0;\n}\n\n.primaryFields-6QkPL {\n display: flex;\n flex-wrap: wrap;\n gap: 16px;\n align-items: center;\n flex: 1;\n min-width: 0;\n}\n\n.primaryFieldItem-6-wLB {\n display: inline-flex;\n gap: 4px;\n align-items: baseline;\n min-width: 0;\n}\n\n.primaryFieldLabel-xmQ2Q {\n font-size: 12px;\n white-space: nowrap;\n}\n\n.primaryFieldValue-CY9eJ {\n font-size: 12px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 260px;\n}\n\n.sidebar-3A7Z2 {\n flex-shrink: 0;\n width: 400px;\n background: #fff;\n border-left: 1px solid #f0f0f0;\n overflow: hidden;\n transition: width 0.2s ease;\n}\n\n.sidebarDual-BTYOM {\n width: 800px;\n}\n\n.sidebarCollapsed-uMA2I {\n width: 0;\n border-left-width: 0;\n}\n\n.sidebarInner-MpQjT {\n width: 100%;\n height: 100%;\n overflow-y: auto;\n padding: 16px;\n box-sizing: border-box;\n}\n\n.panelColumns-aYOq4 {\n display: block;\n}\n\n.panelColumnsDual-u8Gml {\n display: flex;\n gap: 0;\n align-items: flex-start;\n}\n\n.sidebarTitle-dIltG {\n margin: 0 0 16px;\n}\n\n.section-895Lv {\n margin-bottom: 16px;\n}\n\n.panelSection-cniRE {\n margin-bottom: 20px;\n}\n\n.panelColumnsDual-u8Gml .panelSection-cniRE {\n flex: 0 0 400px;\n min-width: 400px;\n margin-bottom: 0;\n}\n\n.panelColumnsDual-u8Gml .panelSection-cniRE + .panelSection-cniRE {\n border-left: 1px solid #f0f0f0;\n padding-left: 16px;\n}\n\n.panelSection-cniRE:last-child {\n margin-bottom: 0;\n}\n\n.promptText-2-Sjb {\n white-space: pre-wrap;\n word-break: break-word;\n margin-bottom: 0;\n}\n\n.promptActions-QgHWm {\n margin-top: 12px;\n}\n\n.promptEditor-0tZzL {\n margin-bottom: 12px;\n}\n\n.promptWarning-OGH7p {\n margin-bottom: 12px;\n}\n\n.promptEditActions-bYvcD {\n display: flex;\n justify-content: flex-end;\n width: 100%;\n}\n\n/* Dark mode */\n.darkmode .toolbar-Y7oCe {\n background: #141414;\n border-bottom-color: #303030;\n}\n\n.darkmode .sidebar-3A7Z2 {\n background: #141414;\n border-left-color: #303030;\n}\n\n.darkmode .panelColumnsDual-u8Gml .panelSection-cniRE + .panelSection-cniRE {\n border-left-color: #303030;\n}\n";
53894
53475
  styleInject(css_248z$d);
53895
53476
 
53896
53477
  var BYTES_IN_KIB = 1024;
@@ -54273,9 +53854,9 @@ function MetadataPanel(_ref) {
54273
53854
  });
54274
53855
  }
54275
53856
 
54276
- var fullscreenModal = "fullscreenModal-egfju";
54277
- var image = "image-JGVCx";
54278
- var css_248z$c = ".fullscreenModal-egfju .ant-modal {\n top: 0;\n padding-bottom: 0;\n max-width: 100vw;\n}\n\n.fullscreenModal-egfju .ant-modal-content {\n border-radius: 0;\n}\n\n.fullscreenModal-egfju .ant-modal-body {\n padding: 0;\n height: calc(100vh - 56px);\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n}\n\n.image-JGVCx {\n max-width: 100%;\n max-height: 100%;\n -o-object-fit: contain;\n object-fit: contain;\n display: block;\n}\n";
53857
+ var fullscreenModal = "fullscreenModal-QnN1o";
53858
+ var image = "image-kk9AH";
53859
+ var css_248z$c = ".fullscreenModal-QnN1o .ant-modal {\n top: 0;\n padding-bottom: 0;\n max-width: 100vw;\n}\n\n.fullscreenModal-QnN1o .ant-modal-content {\n border-radius: 0;\n}\n\n.fullscreenModal-QnN1o .ant-modal-body {\n padding: 0;\n height: calc(100vh - 56px);\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n}\n\n.image-kk9AH {\n max-width: 100%;\n max-height: 100%;\n -o-object-fit: contain;\n object-fit: contain;\n display: block;\n}\n";
54279
53860
  styleInject(css_248z$c);
54280
53861
 
54281
53862
  function isAr(media) {
@@ -54339,9 +53920,9 @@ function FullscreenViewer(_ref) {
54339
53920
  });
54340
53921
  }
54341
53922
 
54342
- var notice = "notice-s4ApS";
54343
- var undoButton = "undoButton-jK0Jb";
54344
- var css_248z$b = ".notice-s4ApS {\n border: 1px solid #d6d8ff;\n border-radius: 10px;\n}\n\n.undoButton-jK0Jb {\n background: linear-gradient(135deg, #6253e1, #04befe);\n border: none;\n box-shadow: none;\n}\n\n.undoButton-jK0Jb:hover,\n.undoButton-jK0Jb:focus {\n background: linear-gradient(135deg, #7567e8, #22c8ff);\n border: none;\n}\n";
53923
+ var notice = "notice-IHLLb";
53924
+ var undoButton = "undoButton-HMSsR";
53925
+ var css_248z$b = ".notice-IHLLb {\n border: 1px solid #d6d8ff;\n border-radius: 10px;\n}\n\n.undoButton-HMSsR {\n background: linear-gradient(135deg, #6253e1, #04befe);\n border: none;\n box-shadow: none;\n}\n\n.undoButton-HMSsR:hover,\n.undoButton-HMSsR:focus {\n background: linear-gradient(135deg, #7567e8, #22c8ff);\n border: none;\n}\n";
54345
53926
  styleInject(css_248z$b);
54346
53927
 
54347
53928
  var NOTIFICATION_KEY = 'renderapprove-undo';
@@ -54397,6 +53978,570 @@ function UndoNotification(_ref) {
54397
53978
  function ownKeys$g(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; }
54398
53979
  function _objectSpread$g(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$g(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$g(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
54399
53980
  var LOG$6 = getLogger('Backoffice', 'RenderApprove');
53981
+ /**
53982
+ * Thin wrapper around `PATCH ${mediaService}/renderjobs/:id` with the
53983
+ * repository-wide JSON Patch envelope `{ patch: [...] }`.
53984
+ */
53985
+ function useUpdateRenderJobPatch() {
53986
+ var _root$configurationSt;
53987
+ var root = useStore();
53988
+ var baseUrl = (_root$configurationSt = root.configurationStore.apiConfig) === null || _root$configurationSt === void 0 ? void 0 : _root$configurationSt.mediaService;
53989
+ var jwt = root.dataStore.jwt;
53990
+ return useCallback(/*#__PURE__*/function () {
53991
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(id, patch) {
53992
+ var response, text, err, raw;
53993
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
53994
+ while (1) switch (_context.prev = _context.next) {
53995
+ case 0:
53996
+ if (baseUrl) {
53997
+ _context.next = 2;
53998
+ break;
53999
+ }
54000
+ throw new DivaError('Media service URL is not configured.', {
54001
+ code: 'MEDIA_SERVICE_NO_BASE_URL'
54002
+ });
54003
+ case 2:
54004
+ _context.next = 4;
54005
+ return fetch("".concat(baseUrl, "/renderjobs/").concat(encodeURIComponent(id)), {
54006
+ method: 'PATCH',
54007
+ headers: _objectSpread$g({
54008
+ 'Content-Type': 'application/json'
54009
+ }, jwt ? {
54010
+ Authorization: "Bearer ".concat(jwt)
54011
+ } : {}),
54012
+ body: JSON.stringify({
54013
+ patch: patch
54014
+ })
54015
+ });
54016
+ case 4:
54017
+ response = _context.sent;
54018
+ if (response.ok) {
54019
+ _context.next = 12;
54020
+ break;
54021
+ }
54022
+ _context.next = 8;
54023
+ return response.text()["catch"](function () {
54024
+ return '';
54025
+ });
54026
+ case 8:
54027
+ text = _context.sent;
54028
+ err = new DivaError("Renderjob patch failed: ".concat(response.status, " ").concat(response.statusText).concat(text ? " - ".concat(text) : ''), {
54029
+ code: 'MEDIA_RENDERJOB_PATCH_FAILED'
54030
+ });
54031
+ LOG$6.error(err);
54032
+ throw err;
54033
+ case 12:
54034
+ _context.next = 14;
54035
+ return response.text();
54036
+ case 14:
54037
+ raw = _context.sent;
54038
+ _context.prev = 15;
54039
+ return _context.abrupt("return", raw ? JSON.parse(raw) : undefined);
54040
+ case 19:
54041
+ _context.prev = 19;
54042
+ _context.t0 = _context["catch"](15);
54043
+ return _context.abrupt("return", undefined);
54044
+ case 22:
54045
+ case "end":
54046
+ return _context.stop();
54047
+ }
54048
+ }, _callee, null, [[15, 19]]);
54049
+ }));
54050
+ return function (_x, _x2) {
54051
+ return _ref.apply(this, arguments);
54052
+ };
54053
+ }(), [baseUrl, jwt]);
54054
+ }
54055
+
54056
+ 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; }
54057
+ 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; }
54058
+ var LOG$5 = getLogger('Backoffice', 'RenderApprove');
54059
+
54060
+ /**
54061
+ * Thin wrapper around `PATCH ${mediaService}/renderjobs/:id/state`.
54062
+ * Lives in its own hook so the session orchestrator can stay independent of
54063
+ * `useRenderJobData` (which is bound to a single currently-loaded job).
54064
+ */
54065
+ function useUpdateRenderJobState() {
54066
+ var _root$configurationSt;
54067
+ var root = useStore();
54068
+ var baseUrl = (_root$configurationSt = root.configurationStore.apiConfig) === null || _root$configurationSt === void 0 ? void 0 : _root$configurationSt.mediaService;
54069
+ var jwt = root.dataStore.jwt;
54070
+ return useCallback(/*#__PURE__*/function () {
54071
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(id, state, message, keepalive) {
54072
+ var response, text, err, raw;
54073
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
54074
+ while (1) switch (_context.prev = _context.next) {
54075
+ case 0:
54076
+ if (baseUrl) {
54077
+ _context.next = 2;
54078
+ break;
54079
+ }
54080
+ throw new DivaError('Media service URL is not configured.', {
54081
+ code: 'RENDERAPPROVE_NO_BASE_URL'
54082
+ });
54083
+ case 2:
54084
+ _context.next = 4;
54085
+ return fetch("".concat(baseUrl, "/renderjobs/").concat(encodeURIComponent(id), "/state"), _objectSpread$f({
54086
+ method: 'PATCH',
54087
+ headers: _objectSpread$f({
54088
+ 'Content-Type': 'application/json'
54089
+ }, jwt ? {
54090
+ Authorization: "Bearer ".concat(jwt)
54091
+ } : {}),
54092
+ body: JSON.stringify(_objectSpread$f({
54093
+ state: state
54094
+ }, message ? {
54095
+ message: message
54096
+ } : {}))
54097
+ }, keepalive === true ? {
54098
+ keepalive: true
54099
+ } : {}));
54100
+ case 4:
54101
+ response = _context.sent;
54102
+ if (response.ok) {
54103
+ _context.next = 12;
54104
+ break;
54105
+ }
54106
+ _context.next = 8;
54107
+ return response.text()["catch"](function () {
54108
+ return '';
54109
+ });
54110
+ case 8:
54111
+ text = _context.sent;
54112
+ err = new DivaError("State update failed: ".concat(response.status, " ").concat(response.statusText).concat(text ? " - ".concat(text) : ''), {
54113
+ code: 'RENDERAPPROVE_UPDATE_STATE_FAILED'
54114
+ });
54115
+ LOG$5.error(err);
54116
+ throw err;
54117
+ case 12:
54118
+ _context.next = 14;
54119
+ return response.text();
54120
+ case 14:
54121
+ raw = _context.sent;
54122
+ _context.prev = 15;
54123
+ return _context.abrupt("return", raw ? JSON.parse(raw) : undefined);
54124
+ case 19:
54125
+ _context.prev = 19;
54126
+ _context.t0 = _context["catch"](15);
54127
+ return _context.abrupt("return", undefined);
54128
+ case 22:
54129
+ case "end":
54130
+ return _context.stop();
54131
+ }
54132
+ }, _callee, null, [[15, 19]]);
54133
+ }));
54134
+ return function (_x, _x2, _x3, _x4) {
54135
+ return _ref.apply(this, arguments);
54136
+ };
54137
+ }(), [baseUrl, jwt]);
54138
+ }
54139
+
54140
+ function getImageDimensions(file) {
54141
+ return new Promise(function (resolve, reject) {
54142
+ var url = URL.createObjectURL(file);
54143
+ var img = new Image();
54144
+ img.onload = function () {
54145
+ resolve({
54146
+ width: img.naturalWidth,
54147
+ height: img.naturalHeight
54148
+ });
54149
+ URL.revokeObjectURL(url);
54150
+ };
54151
+ img.onerror = function () {
54152
+ URL.revokeObjectURL(url);
54153
+ reject(new Error('Could not read image dimensions'));
54154
+ };
54155
+ img.src = url;
54156
+ });
54157
+ }
54158
+
54159
+ /**
54160
+ * Validates the file against the render job's expected format and resolution.
54161
+ * Returns a list of human-readable warning strings (empty = no deviations).
54162
+ * Exported so the modal can run pre-upload validation on file selection.
54163
+ */
54164
+ function validateImageFile(_x, _x2, _x3) {
54165
+ return _validateImageFile.apply(this, arguments);
54166
+ }
54167
+ function _validateImageFile() {
54168
+ _validateImageFile = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(file, job, t) {
54169
+ var _file$name$split$pop$2, _file$name$split$pop2, _job$fileFormat$toLow2, _job$fileFormat2;
54170
+ var warnings, fileExt, expectedExt, parts, expectedW, expectedH, _yield$getImageDimens, width, height;
54171
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
54172
+ while (1) switch (_context2.prev = _context2.next) {
54173
+ case 0:
54174
+ warnings = [];
54175
+ fileExt = (_file$name$split$pop$2 = (_file$name$split$pop2 = file.name.split('.').pop()) === null || _file$name$split$pop2 === void 0 ? void 0 : _file$name$split$pop2.toLowerCase()) !== null && _file$name$split$pop$2 !== void 0 ? _file$name$split$pop$2 : '';
54176
+ expectedExt = (_job$fileFormat$toLow2 = (_job$fileFormat2 = job.fileFormat) === null || _job$fileFormat2 === void 0 ? void 0 : _job$fileFormat2.toLowerCase()) !== null && _job$fileFormat$toLow2 !== void 0 ? _job$fileFormat$toLow2 : '';
54177
+ if (expectedExt && fileExt !== expectedExt) {
54178
+ warnings.push(t('backoffice.table.renderapprove.upload.validation.fileTypeDeviation', {
54179
+ expected: expectedExt,
54180
+ actual: fileExt
54181
+ }));
54182
+ }
54183
+ if (!job.renderResolution) {
54184
+ _context2.next = 21;
54185
+ break;
54186
+ }
54187
+ parts = job.renderResolution.toLowerCase().split('x');
54188
+ if (!(parts.length === 2)) {
54189
+ _context2.next = 21;
54190
+ break;
54191
+ }
54192
+ expectedW = parseInt(parts[0], 10);
54193
+ expectedH = parseInt(parts[1], 10);
54194
+ if (!(!isNaN(expectedW) && !isNaN(expectedH))) {
54195
+ _context2.next = 21;
54196
+ break;
54197
+ }
54198
+ _context2.prev = 10;
54199
+ _context2.next = 13;
54200
+ return getImageDimensions(file);
54201
+ case 13:
54202
+ _yield$getImageDimens = _context2.sent;
54203
+ width = _yield$getImageDimens.width;
54204
+ height = _yield$getImageDimens.height;
54205
+ if (width !== expectedW || height !== expectedH) {
54206
+ warnings.push(t('backoffice.table.renderapprove.upload.validation.resolutionDeviation', {
54207
+ expected: job.renderResolution,
54208
+ actual: "".concat(width, "x").concat(height)
54209
+ }));
54210
+ }
54211
+ _context2.next = 21;
54212
+ break;
54213
+ case 19:
54214
+ _context2.prev = 19;
54215
+ _context2.t0 = _context2["catch"](10);
54216
+ case 21:
54217
+ return _context2.abrupt("return", warnings);
54218
+ case 22:
54219
+ case "end":
54220
+ return _context2.stop();
54221
+ }
54222
+ }, _callee2, null, [[10, 19]]);
54223
+ }));
54224
+ return _validateImageFile.apply(this, arguments);
54225
+ }
54226
+ function useUploadRenderJobImage() {
54227
+ var _root$configurationSt, _root$configurationSt2, _root$dataStore$jwt;
54228
+ var _useTranslation = useTranslation(),
54229
+ t = _useTranslation.t;
54230
+ var root = useStore();
54231
+ var baseUrl = (_root$configurationSt = (_root$configurationSt2 = root.configurationStore.apiConfig) === null || _root$configurationSt2 === void 0 ? void 0 : _root$configurationSt2.mediaService) !== null && _root$configurationSt !== void 0 ? _root$configurationSt : '';
54232
+ var jwt = (_root$dataStore$jwt = root.dataStore.jwt) !== null && _root$dataStore$jwt !== void 0 ? _root$dataStore$jwt : '';
54233
+ var patchJob = useUpdateRenderJobPatch();
54234
+ var updateState = useUpdateRenderJobState();
54235
+ var _useState = useState(false),
54236
+ _useState2 = _slicedToArray(_useState, 2),
54237
+ uploading = _useState2[0],
54238
+ setUploading = _useState2[1];
54239
+ var _useState3 = useState(null),
54240
+ _useState4 = _slicedToArray(_useState3, 2),
54241
+ error = _useState4[0],
54242
+ setError = _useState4[1];
54243
+ var upload = useCallback(/*#__PURE__*/function () {
54244
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(file, job) {
54245
+ var _file$name$split$pop$, _file$name$split$pop, _job$fileFormat$toLow, _job$fileFormat, _job$fileName, _job$organization, fileExt, expectedExt, typeDeviates, actualDims, dimsDeviate, parts, expectedW, expectedH, correctedName, renamedFile, result, deviations, stateMessage, err;
54246
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
54247
+ while (1) switch (_context.prev = _context.next) {
54248
+ case 0:
54249
+ setUploading(true);
54250
+ setError(null);
54251
+ _context.prev = 2;
54252
+ fileExt = (_file$name$split$pop$ = (_file$name$split$pop = file.name.split('.').pop()) === null || _file$name$split$pop === void 0 ? void 0 : _file$name$split$pop.toLowerCase()) !== null && _file$name$split$pop$ !== void 0 ? _file$name$split$pop$ : '';
54253
+ expectedExt = (_job$fileFormat$toLow = (_job$fileFormat = job.fileFormat) === null || _job$fileFormat === void 0 ? void 0 : _job$fileFormat.toLowerCase()) !== null && _job$fileFormat$toLow !== void 0 ? _job$fileFormat$toLow : '';
54254
+ typeDeviates = Boolean(expectedExt && fileExt !== expectedExt);
54255
+ dimsDeviate = false;
54256
+ if (!job.renderResolution) {
54257
+ _context.next = 22;
54258
+ break;
54259
+ }
54260
+ parts = job.renderResolution.toLowerCase().split('x');
54261
+ if (!(parts.length === 2)) {
54262
+ _context.next = 22;
54263
+ break;
54264
+ }
54265
+ expectedW = parseInt(parts[0], 10);
54266
+ expectedH = parseInt(parts[1], 10);
54267
+ if (!(!isNaN(expectedW) && !isNaN(expectedH))) {
54268
+ _context.next = 22;
54269
+ break;
54270
+ }
54271
+ _context.prev = 13;
54272
+ _context.next = 16;
54273
+ return getImageDimensions(file);
54274
+ case 16:
54275
+ actualDims = _context.sent;
54276
+ dimsDeviate = actualDims.width !== expectedW || actualDims.height !== expectedH;
54277
+ _context.next = 22;
54278
+ break;
54279
+ case 20:
54280
+ _context.prev = 20;
54281
+ _context.t0 = _context["catch"](13);
54282
+ case 22:
54283
+ // Rename to the render job's expected filename (automatic filename correction)
54284
+ correctedName = (_job$fileName = job.fileName) !== null && _job$fileName !== void 0 ? _job$fileName : file.name;
54285
+ renamedFile = new File([file], correctedName, {
54286
+ type: file.type
54287
+ });
54288
+ _context.next = 26;
54289
+ return uploadMediaItem(baseUrl, jwt, {
54290
+ organizationId: (_job$organization = job.organization) !== null && _job$organization !== void 0 ? _job$organization : '',
54291
+ file: renamedFile,
54292
+ mediaType: 'PCT',
54293
+ functionType: 'R3D'
54294
+ });
54295
+ case 26:
54296
+ result = _context.sent;
54297
+ _context.next = 29;
54298
+ return patchJob(job._id, [{
54299
+ op: 'replace',
54300
+ path: '/mediaItemRef',
54301
+ value: result.ref._id
54302
+ }]);
54303
+ case 29:
54304
+ // Build history message with deviation details
54305
+ deviations = [];
54306
+ if (typeDeviates) deviations.push(t('backoffice.table.renderapprove.upload.deviation.fileType', {
54307
+ expected: expectedExt,
54308
+ actual: fileExt
54309
+ }));
54310
+ if (dimsDeviate && actualDims) deviations.push(t('backoffice.table.renderapprove.upload.deviation.resolution', {
54311
+ expected: job.renderResolution,
54312
+ actual: "".concat(actualDims.width, "x").concat(actualDims.height)
54313
+ }));
54314
+ stateMessage = deviations.length > 0 ? t('backoffice.table.renderapprove.upload.manualUploadWithDeviations', {
54315
+ deviations: deviations.join('; ')
54316
+ }) : t('backoffice.table.renderapprove.upload.manualUpload');
54317
+ _context.next = 35;
54318
+ return updateState(job._id, RENDER_JOB_STATE.inChecking, stateMessage);
54319
+ case 35:
54320
+ _context.next = 42;
54321
+ break;
54322
+ case 37:
54323
+ _context.prev = 37;
54324
+ _context.t1 = _context["catch"](2);
54325
+ err = _context.t1;
54326
+ setError(err);
54327
+ throw err;
54328
+ case 42:
54329
+ _context.prev = 42;
54330
+ setUploading(false);
54331
+ return _context.finish(42);
54332
+ case 45:
54333
+ case "end":
54334
+ return _context.stop();
54335
+ }
54336
+ }, _callee, null, [[2, 37, 42, 45], [13, 20]]);
54337
+ }));
54338
+ return function (_x4, _x5) {
54339
+ return _ref.apply(this, arguments);
54340
+ };
54341
+ }(), [baseUrl, jwt, patchJob, updateState, t]);
54342
+ return {
54343
+ upload: upload,
54344
+ uploading: uploading,
54345
+ error: error
54346
+ };
54347
+ }
54348
+
54349
+ function UploadImageModal(_ref) {
54350
+ var open = _ref.open,
54351
+ renderJob = _ref.renderJob,
54352
+ onClose = _ref.onClose,
54353
+ onSuccess = _ref.onSuccess;
54354
+ var _useTranslation = useTranslation(),
54355
+ t = _useTranslation.t;
54356
+ var _useUploadRenderJobIm = useUploadRenderJobImage(),
54357
+ upload = _useUploadRenderJobIm.upload,
54358
+ uploading = _useUploadRenderJobIm.uploading;
54359
+ var _useState = useState(null),
54360
+ _useState2 = _slicedToArray(_useState, 2),
54361
+ selectedFile = _useState2[0],
54362
+ setSelectedFile = _useState2[1];
54363
+ var _useState3 = useState([]),
54364
+ _useState4 = _slicedToArray(_useState3, 2),
54365
+ warnings = _useState4[0],
54366
+ setWarnings = _useState4[1];
54367
+ var _useState5 = useState(false),
54368
+ _useState6 = _slicedToArray(_useState5, 2),
54369
+ validating = _useState6[0],
54370
+ setValidating = _useState6[1];
54371
+ var _useState7 = useState(null),
54372
+ _useState8 = _slicedToArray(_useState7, 2),
54373
+ uploadError = _useState8[0],
54374
+ setUploadError = _useState8[1];
54375
+ var reset = function reset() {
54376
+ setSelectedFile(null);
54377
+ setWarnings([]);
54378
+ setUploadError(null);
54379
+ };
54380
+ var handleClose = function handleClose() {
54381
+ if (uploading) return;
54382
+ reset();
54383
+ onClose();
54384
+ };
54385
+ var handleFileSelect = /*#__PURE__*/function () {
54386
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(file) {
54387
+ var w;
54388
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
54389
+ while (1) switch (_context.prev = _context.next) {
54390
+ case 0:
54391
+ setSelectedFile(file);
54392
+ setUploadError(null);
54393
+ setWarnings([]);
54394
+ if (!renderJob) {
54395
+ _context.next = 13;
54396
+ break;
54397
+ }
54398
+ setValidating(true);
54399
+ _context.prev = 5;
54400
+ _context.next = 8;
54401
+ return validateImageFile(file, renderJob, t);
54402
+ case 8:
54403
+ w = _context.sent;
54404
+ setWarnings(w);
54405
+ case 10:
54406
+ _context.prev = 10;
54407
+ setValidating(false);
54408
+ return _context.finish(10);
54409
+ case 13:
54410
+ return _context.abrupt("return", false);
54411
+ case 14:
54412
+ case "end":
54413
+ return _context.stop();
54414
+ }
54415
+ }, _callee, null, [[5,, 10, 13]]);
54416
+ }));
54417
+ return function handleFileSelect(_x) {
54418
+ return _ref2.apply(this, arguments);
54419
+ };
54420
+ }();
54421
+ var handleUpload = /*#__PURE__*/function () {
54422
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
54423
+ var _message;
54424
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
54425
+ while (1) switch (_context2.prev = _context2.next) {
54426
+ case 0:
54427
+ if (!(!selectedFile || !renderJob)) {
54428
+ _context2.next = 2;
54429
+ break;
54430
+ }
54431
+ return _context2.abrupt("return");
54432
+ case 2:
54433
+ setUploadError(null);
54434
+ _context2.prev = 3;
54435
+ _context2.next = 6;
54436
+ return upload(selectedFile, renderJob);
54437
+ case 6:
54438
+ reset();
54439
+ onSuccess === null || onSuccess === void 0 || onSuccess();
54440
+ _context2.next = 13;
54441
+ break;
54442
+ case 10:
54443
+ _context2.prev = 10;
54444
+ _context2.t0 = _context2["catch"](3);
54445
+ setUploadError((_message = _context2.t0 === null || _context2.t0 === void 0 ? void 0 : _context2.t0.message) !== null && _message !== void 0 ? _message : t('backoffice.renderapprove.uploadModal.uploadFailed', {
54446
+ defaultValue: 'Upload fehlgeschlagen'
54447
+ }));
54448
+ case 13:
54449
+ case "end":
54450
+ return _context2.stop();
54451
+ }
54452
+ }, _callee2, null, [[3, 10]]);
54453
+ }));
54454
+ return function handleUpload() {
54455
+ return _ref3.apply(this, arguments);
54456
+ };
54457
+ }();
54458
+ return /*#__PURE__*/jsx(Modal$2, {
54459
+ open: open,
54460
+ title: t('backoffice.renderapprove.uploadModal.title', {
54461
+ defaultValue: 'Bild hochladen'
54462
+ }),
54463
+ onCancel: handleClose,
54464
+ onOk: handleUpload,
54465
+ okText: t('backoffice.renderapprove.uploadModal.upload', {
54466
+ defaultValue: 'Hochladen'
54467
+ }),
54468
+ cancelText: t('backoffice.renderapprove.common.cancel', {
54469
+ defaultValue: 'Abbrechen'
54470
+ }),
54471
+ okButtonProps: {
54472
+ disabled: !selectedFile || validating,
54473
+ loading: uploading
54474
+ },
54475
+ afterClose: reset,
54476
+ destroyOnClose: true,
54477
+ children: /*#__PURE__*/jsxs(Spin, {
54478
+ spinning: validating || uploading,
54479
+ children: [/*#__PURE__*/jsxs(Upload$2.Dragger, {
54480
+ accept: "image/*",
54481
+ beforeUpload: handleFileSelect,
54482
+ maxCount: 1,
54483
+ showUploadList: !!selectedFile,
54484
+ fileList: selectedFile ? [{
54485
+ uid: '1',
54486
+ name: selectedFile.name,
54487
+ status: 'done',
54488
+ size: selectedFile.size,
54489
+ type: selectedFile.type
54490
+ }] : [],
54491
+ onRemove: function onRemove() {
54492
+ setSelectedFile(null);
54493
+ setWarnings([]);
54494
+ },
54495
+ children: [/*#__PURE__*/jsx("p", {
54496
+ className: "ant-upload-drag-icon",
54497
+ children: /*#__PURE__*/jsx(UploadOutlined, {})
54498
+ }), /*#__PURE__*/jsx("p", {
54499
+ className: "ant-upload-text",
54500
+ children: t('backoffice.renderapprove.uploadModal.dragText', {
54501
+ defaultValue: 'Datei hierher ziehen oder klicken zum Auswählen'
54502
+ })
54503
+ })]
54504
+ }), warnings.length > 0 && /*#__PURE__*/jsx(Alert, {
54505
+ style: {
54506
+ marginTop: 12
54507
+ },
54508
+ type: "warning",
54509
+ showIcon: true,
54510
+ message: t('backoffice.renderapprove.uploadModal.warningTitle', {
54511
+ defaultValue: 'Abweichung festgestellt'
54512
+ }),
54513
+ description: /*#__PURE__*/jsxs(Fragment, {
54514
+ children: [/*#__PURE__*/jsx("div", {
54515
+ children: t('backoffice.renderapprove.uploadModal.warningDescription', {
54516
+ defaultValue: 'Der Dateityp oder die Bildauflösung entspricht nicht den Vorgaben des Renderjobs. Der Upload kann trotzdem fortgesetzt werden.'
54517
+ })
54518
+ }), /*#__PURE__*/jsx("ul", {
54519
+ style: {
54520
+ marginTop: 4,
54521
+ paddingLeft: 16
54522
+ },
54523
+ children: warnings.map(function (w, i) {
54524
+ return /*#__PURE__*/jsx("li", {
54525
+ children: w
54526
+ }, i);
54527
+ })
54528
+ })]
54529
+ })
54530
+ }), uploadError && /*#__PURE__*/jsx(Alert, {
54531
+ style: {
54532
+ marginTop: 12
54533
+ },
54534
+ type: "error",
54535
+ showIcon: true,
54536
+ message: uploadError
54537
+ })]
54538
+ })
54539
+ });
54540
+ }
54541
+
54542
+ function ownKeys$e(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; }
54543
+ function _objectSpread$e(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$e(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$e(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
54544
+ var LOG$4 = getLogger('Backoffice', 'RenderApprove');
54400
54545
  function isProcessedDecision(decision) {
54401
54546
  return decision === 'approve' || decision === 'reject' || decision === 'changedReadyForRenderer';
54402
54547
  }
@@ -54445,7 +54590,7 @@ function _fetchRenderJobState() {
54445
54590
  case 0:
54446
54591
  _context6.next = 2;
54447
54592
  return fetch("".concat(baseUrl, "/renderjobs/").concat(encodeURIComponent(id)), {
54448
- headers: _objectSpread$g({
54593
+ headers: _objectSpread$e({
54449
54594
  'Content-Type': 'application/json'
54450
54595
  }, jwt ? {
54451
54596
  Authorization: "Bearer ".concat(jwt)
@@ -54647,7 +54792,7 @@ function useRenderApproveSession(_ref) {
54647
54792
  return _context.abrupt("return");
54648
54793
  case 19:
54649
54794
  detail = (_message = _context.t0 === null || _context.t0 === void 0 ? void 0 : _context.t0.message) !== null && _message !== void 0 ? _message : 'Unknown error';
54650
- LOG$6.error(new DivaError("RenderApprove selection validation failed: ".concat(detail), {
54795
+ LOG$4.error(new DivaError("RenderApprove selection validation failed: ".concat(detail), {
54651
54796
  code: 'RENDERAPPROVE_SELECTION_INVALID'
54652
54797
  }));
54653
54798
  setIds([]);
@@ -54695,7 +54840,7 @@ function useRenderApproveSession(_ref) {
54695
54840
  _context2.prev = 6;
54696
54841
  _context2.t0 = _context2["catch"](1);
54697
54842
  detail = (_message2 = _context2.t0 === null || _context2.t0 === void 0 ? void 0 : _context2.t0.message) !== null && _message2 !== void 0 ? _message2 : 'Unknown error';
54698
- LOG$6.error(new DivaError("RenderApprove deferred flush failed for ".concat(pending.jobId, ": ").concat(detail), {
54843
+ LOG$4.error(new DivaError("RenderApprove deferred flush failed for ".concat(pending.jobId, ": ").concat(detail), {
54699
54844
  code: 'RENDERAPPROVE_FLUSH_FAILED'
54700
54845
  }));
54701
54846
  message.error(t('backoffice.renderapprove.messages.pendingActionSaveFailed', {
@@ -54795,7 +54940,7 @@ function useRenderApproveSession(_ref) {
54795
54940
  return _context3.abrupt("return");
54796
54941
  case 2:
54797
54942
  previousDecision = decisions[currentId];
54798
- nextDecisions = _objectSpread$g(_objectSpread$g({}, decisions), {}, _defineProperty({}, currentId, 'approve'));
54943
+ nextDecisions = _objectSpread$e(_objectSpread$e({}, decisions), {}, _defineProperty({}, currentId, 'approve'));
54799
54944
  enqueuePending({
54800
54945
  jobId: currentId,
54801
54946
  action: 'approve',
@@ -54827,7 +54972,7 @@ function useRenderApproveSession(_ref) {
54827
54972
  return _context4.abrupt("return");
54828
54973
  case 2:
54829
54974
  previousDecision = decisions[currentId];
54830
- nextDecisions = _objectSpread$g(_objectSpread$g({}, decisions), {}, _defineProperty({}, currentId, 'reject'));
54975
+ nextDecisions = _objectSpread$e(_objectSpread$e({}, decisions), {}, _defineProperty({}, currentId, 'reject'));
54831
54976
  enqueuePending({
54832
54977
  jobId: currentId,
54833
54978
  action: 'reject',
@@ -54853,7 +54998,7 @@ function useRenderApproveSession(_ref) {
54853
54998
  }(), [currentId, decisions, enqueuePending, ids, isCurrentReadOnly, safeIndex, skipProcessedJobs, t, total]);
54854
54999
  var skip = useCallback(function () {
54855
55000
  if (isEmpty || !currentId || isCurrentReadOnly) return;
54856
- var nextDecisions = _objectSpread$g(_objectSpread$g({}, decisions), {}, _defineProperty({}, currentId, 'skip'));
55001
+ var nextDecisions = _objectSpread$e(_objectSpread$e({}, decisions), {}, _defineProperty({}, currentId, 'skip'));
54857
55002
  setDecisions(nextDecisions);
54858
55003
  message.info(t('backoffice.renderapprove.messages.jobSkipped'));
54859
55004
  var next = findNextNavigableIndex(ids, safeIndex + 1, nextDecisions, skipProcessedJobs);
@@ -54861,7 +55006,7 @@ function useRenderApproveSession(_ref) {
54861
55006
  }, [currentId, decisions, ids, isCurrentReadOnly, isEmpty, safeIndex, skipProcessedJobs, t, total]);
54862
55007
  var markChangedReadyForRenderer = useCallback(function () {
54863
55008
  if (isEmpty || !currentId || isCurrentReadOnly) return;
54864
- var nextDecisions = _objectSpread$g(_objectSpread$g({}, decisions), {}, _defineProperty({}, currentId, 'changedReadyForRenderer'));
55009
+ var nextDecisions = _objectSpread$e(_objectSpread$e({}, decisions), {}, _defineProperty({}, currentId, 'changedReadyForRenderer'));
54865
55010
  setDecisions(nextDecisions);
54866
55011
  var next = findNextNavigableIndex(ids, safeIndex + 1, nextDecisions, skipProcessedJobs);
54867
55012
  setCurrentIndex(next !== null && next !== void 0 ? next : total);
@@ -54878,11 +55023,11 @@ function useRenderApproveSession(_ref) {
54878
55023
  setPendingAction(null);
54879
55024
  setDecisions(function (prev) {
54880
55025
  if (!pending.previousDecision) {
54881
- var next = _objectSpread$g({}, prev);
55026
+ var next = _objectSpread$e({}, prev);
54882
55027
  delete next[pending.jobId];
54883
55028
  return next;
54884
55029
  }
54885
- return _objectSpread$g(_objectSpread$g({}, prev), {}, _defineProperty({}, pending.jobId, pending.previousDecision));
55030
+ return _objectSpread$e(_objectSpread$e({}, prev), {}, _defineProperty({}, pending.jobId, pending.previousDecision));
54886
55031
  });
54887
55032
  setCurrentIndex(pending.indexAtAction);
54888
55033
  message.info(t('backoffice.renderapprove.messages.actionUndone'));
@@ -54965,9 +55110,9 @@ function useRenderApproveSession(_ref) {
54965
55110
  function _createForOfIteratorHelper$8(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$8(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; } } }; }
54966
55111
  function _unsupportedIterableToArray$8(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$8(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$8(r, a) : void 0; } }
54967
55112
  function _arrayLikeToArray$8(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; }
54968
- 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; }
54969
- 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; }
54970
- var LOG$5 = getLogger('Backoffice', 'RenderApprove');
55113
+ 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; }
55114
+ 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; }
55115
+ var LOG$3 = getLogger('Backoffice', 'RenderApprove');
54971
55116
  function getMediaItemId(job) {
54972
55117
  var list = job === null || job === void 0 ? void 0 : job.mediaItems;
54973
55118
  if (!list || list.length === 0) return undefined;
@@ -54986,7 +55131,7 @@ function _fetchJson() {
54986
55131
  case 0:
54987
55132
  _context2.next = 2;
54988
55133
  return fetch(url, {
54989
- headers: _objectSpread$f({
55134
+ headers: _objectSpread$d({
54990
55135
  'Content-Type': 'application/json'
54991
55136
  }, jwt ? {
54992
55137
  Authorization: "Bearer ".concat(jwt)
@@ -55143,12 +55288,12 @@ function _resolveMediaItem() {
55143
55288
  return _regeneratorRuntime.wrap(function _callee4$(_context4) {
55144
55289
  while (1) switch (_context4.prev = _context4.next) {
55145
55290
  case 0:
55146
- if (!mediaItemId) {
55291
+ if (!mediaItemRef) {
55147
55292
  _context4.next = 7;
55148
55293
  break;
55149
55294
  }
55150
55295
  _context4.next = 3;
55151
- return fetchJson("".concat(baseUrl, "/v1/mediaitems/").concat(encodeURIComponent(mediaItemId)), jwt);
55296
+ return fetchJson("".concat(baseUrl, "/v1/mediaitemref/").concat(encodeURIComponent(mediaItemRef), "/mediaitem"), jwt);
55152
55297
  case 3:
55153
55298
  item = _context4.sent;
55154
55299
  media = toMedia(item);
@@ -55158,12 +55303,12 @@ function _resolveMediaItem() {
55158
55303
  }
55159
55304
  return _context4.abrupt("return", media);
55160
55305
  case 7:
55161
- if (!mediaItemRef) {
55306
+ if (!mediaItemId) {
55162
55307
  _context4.next = 14;
55163
55308
  break;
55164
55309
  }
55165
55310
  _context4.next = 10;
55166
- return fetchJson("".concat(baseUrl, "/v1/mediaitemref/").concat(encodeURIComponent(mediaItemRef), "/mediaitem"), jwt);
55311
+ return fetchJson("".concat(baseUrl, "/v1/mediaitems/").concat(encodeURIComponent(mediaItemId)), jwt);
55167
55312
  case 10:
55168
55313
  _item = _context4.sent;
55169
55314
  _media = toMedia(_item);
@@ -55182,7 +55327,7 @@ function _resolveMediaItem() {
55182
55327
  }));
55183
55328
  return _resolveMediaItem.apply(this, arguments);
55184
55329
  }
55185
- function useRenderJobData(id) {
55330
+ function useRenderJobData(id, refreshKey) {
55186
55331
  var _root$configurationSt, _root$configurationSt2;
55187
55332
  var root = useStore();
55188
55333
  var _useTranslation = useTranslation(),
@@ -55276,7 +55421,7 @@ function useRenderJobData(id) {
55276
55421
  url: null
55277
55422
  };
55278
55423
  } else {
55279
- LOG$5.warn("Could not resolve right image for job ".concat(id, ": ").concat((_rightResult$reason = rightResult.reason) === null || _rightResult$reason === void 0 ? void 0 : _rightResult$reason.message));
55424
+ LOG$3.warn("Could not resolve right image for job ".concat(id, ": ").concat((_rightResult$reason = rightResult.reason) === null || _rightResult$reason === void 0 ? void 0 : _rightResult$reason.message));
55280
55425
  right = {
55281
55426
  url: null
55282
55427
  };
@@ -55285,7 +55430,7 @@ function useRenderJobData(id) {
55285
55430
  if (productResult.status === 'fulfilled') {
55286
55431
  productMedia = productResult.value;
55287
55432
  } else {
55288
- LOG$5.warn("Could not load product media for job ".concat(id, ": ").concat((_productResult$reason = productResult.reason) === null || _productResult$reason === void 0 ? void 0 : _productResult$reason.message));
55433
+ LOG$3.warn("Could not load product media for job ".concat(id, ": ").concat((_productResult$reason = productResult.reason) === null || _productResult$reason === void 0 ? void 0 : _productResult$reason.message));
55289
55434
  }
55290
55435
  leftSlides = [left].concat(_toConsumableArray(productMedia));
55291
55436
  setImages({
@@ -55305,7 +55450,7 @@ function useRenderJobData(id) {
55305
55450
  return _context.abrupt("return");
55306
55451
  case 34:
55307
55452
  message = (_message = _context.t0 === null || _context.t0 === void 0 ? void 0 : _context.t0.message) !== null && _message !== void 0 ? _message : 'Unknown error';
55308
- LOG$5.error(new DivaError("Failed to load render job ".concat(id, ": ").concat(message), {
55453
+ LOG$3.error(new DivaError("Failed to load render job ".concat(id, ": ").concat(message), {
55309
55454
  code: 'RENDERAPPROVE_LOAD_JOB'
55310
55455
  }));
55311
55456
  setError(message);
@@ -55322,7 +55467,7 @@ function useRenderJobData(id) {
55322
55467
  return function () {
55323
55468
  cancelled = true;
55324
55469
  };
55325
- }, [id, baseUrl, catalogService, jwt, t]);
55470
+ }, [id, baseUrl, catalogService, jwt, t, refreshKey]);
55326
55471
  return useMemo(function () {
55327
55472
  return {
55328
55473
  job: job,
@@ -55333,168 +55478,6 @@ function useRenderJobData(id) {
55333
55478
  }, [job, images, loading, error]);
55334
55479
  }
55335
55480
 
55336
- function ownKeys$e(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; }
55337
- function _objectSpread$e(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$e(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$e(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
55338
- var LOG$4 = getLogger('Backoffice', 'RenderApprove');
55339
-
55340
- /**
55341
- * Thin wrapper around `PATCH ${mediaService}/renderjobs/:id/state`.
55342
- * Lives in its own hook so the session orchestrator can stay independent of
55343
- * `useRenderJobData` (which is bound to a single currently-loaded job).
55344
- */
55345
- function useUpdateRenderJobState() {
55346
- var _root$configurationSt;
55347
- var root = useStore();
55348
- var baseUrl = (_root$configurationSt = root.configurationStore.apiConfig) === null || _root$configurationSt === void 0 ? void 0 : _root$configurationSt.mediaService;
55349
- var jwt = root.dataStore.jwt;
55350
- return useCallback(/*#__PURE__*/function () {
55351
- var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(id, state, message, keepalive) {
55352
- var response, text, err, raw;
55353
- return _regeneratorRuntime.wrap(function _callee$(_context) {
55354
- while (1) switch (_context.prev = _context.next) {
55355
- case 0:
55356
- if (baseUrl) {
55357
- _context.next = 2;
55358
- break;
55359
- }
55360
- throw new DivaError('Media service URL is not configured.', {
55361
- code: 'RENDERAPPROVE_NO_BASE_URL'
55362
- });
55363
- case 2:
55364
- _context.next = 4;
55365
- return fetch("".concat(baseUrl, "/renderjobs/").concat(encodeURIComponent(id), "/state"), _objectSpread$e({
55366
- method: 'PATCH',
55367
- headers: _objectSpread$e({
55368
- 'Content-Type': 'application/json'
55369
- }, jwt ? {
55370
- Authorization: "Bearer ".concat(jwt)
55371
- } : {}),
55372
- body: JSON.stringify(_objectSpread$e({
55373
- state: state
55374
- }, message ? {
55375
- message: message
55376
- } : {}))
55377
- }, keepalive === true ? {
55378
- keepalive: true
55379
- } : {}));
55380
- case 4:
55381
- response = _context.sent;
55382
- if (response.ok) {
55383
- _context.next = 12;
55384
- break;
55385
- }
55386
- _context.next = 8;
55387
- return response.text()["catch"](function () {
55388
- return '';
55389
- });
55390
- case 8:
55391
- text = _context.sent;
55392
- err = new DivaError("State update failed: ".concat(response.status, " ").concat(response.statusText).concat(text ? " - ".concat(text) : ''), {
55393
- code: 'RENDERAPPROVE_UPDATE_STATE_FAILED'
55394
- });
55395
- LOG$4.error(err);
55396
- throw err;
55397
- case 12:
55398
- _context.next = 14;
55399
- return response.text();
55400
- case 14:
55401
- raw = _context.sent;
55402
- _context.prev = 15;
55403
- return _context.abrupt("return", raw ? JSON.parse(raw) : undefined);
55404
- case 19:
55405
- _context.prev = 19;
55406
- _context.t0 = _context["catch"](15);
55407
- return _context.abrupt("return", undefined);
55408
- case 22:
55409
- case "end":
55410
- return _context.stop();
55411
- }
55412
- }, _callee, null, [[15, 19]]);
55413
- }));
55414
- return function (_x, _x2, _x3, _x4) {
55415
- return _ref.apply(this, arguments);
55416
- };
55417
- }(), [baseUrl, jwt]);
55418
- }
55419
-
55420
- 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; }
55421
- 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; }
55422
- var LOG$3 = getLogger('Backoffice', 'RenderApprove');
55423
- /**
55424
- * Thin wrapper around `PATCH ${mediaService}/renderjobs/:id` with the
55425
- * repository-wide JSON Patch envelope `{ patch: [...] }`.
55426
- */
55427
- function useUpdateRenderJobPatch() {
55428
- var _root$configurationSt;
55429
- var root = useStore();
55430
- var baseUrl = (_root$configurationSt = root.configurationStore.apiConfig) === null || _root$configurationSt === void 0 ? void 0 : _root$configurationSt.mediaService;
55431
- var jwt = root.dataStore.jwt;
55432
- return useCallback(/*#__PURE__*/function () {
55433
- var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(id, patch) {
55434
- var response, text, err, raw;
55435
- return _regeneratorRuntime.wrap(function _callee$(_context) {
55436
- while (1) switch (_context.prev = _context.next) {
55437
- case 0:
55438
- if (baseUrl) {
55439
- _context.next = 2;
55440
- break;
55441
- }
55442
- throw new DivaError('Media service URL is not configured.', {
55443
- code: 'RENDERAPPROVE_NO_BASE_URL'
55444
- });
55445
- case 2:
55446
- _context.next = 4;
55447
- return fetch("".concat(baseUrl, "/renderjobs/").concat(encodeURIComponent(id)), {
55448
- method: 'PATCH',
55449
- headers: _objectSpread$d({
55450
- 'Content-Type': 'application/json'
55451
- }, jwt ? {
55452
- Authorization: "Bearer ".concat(jwt)
55453
- } : {}),
55454
- body: JSON.stringify({
55455
- patch: patch
55456
- })
55457
- });
55458
- case 4:
55459
- response = _context.sent;
55460
- if (response.ok) {
55461
- _context.next = 12;
55462
- break;
55463
- }
55464
- _context.next = 8;
55465
- return response.text()["catch"](function () {
55466
- return '';
55467
- });
55468
- case 8:
55469
- text = _context.sent;
55470
- err = new DivaError("Renderjob patch failed: ".concat(response.status, " ").concat(response.statusText).concat(text ? " - ".concat(text) : ''), {
55471
- code: 'RENDERAPPROVE_PATCH_JOB_FAILED'
55472
- });
55473
- LOG$3.error(err);
55474
- throw err;
55475
- case 12:
55476
- _context.next = 14;
55477
- return response.text();
55478
- case 14:
55479
- raw = _context.sent;
55480
- _context.prev = 15;
55481
- return _context.abrupt("return", raw ? JSON.parse(raw) : undefined);
55482
- case 19:
55483
- _context.prev = 19;
55484
- _context.t0 = _context["catch"](15);
55485
- return _context.abrupt("return", undefined);
55486
- case 22:
55487
- case "end":
55488
- return _context.stop();
55489
- }
55490
- }, _callee, null, [[15, 19]]);
55491
- }));
55492
- return function (_x, _x2) {
55493
- return _ref.apply(this, arguments);
55494
- };
55495
- }(), [baseUrl, jwt]);
55496
- }
55497
-
55498
55481
  /** Return `false` when the shortcut should not run (e.g. modal open) so default browser behavior is preserved. */
55499
55482
 
55500
55483
  // RenderApprove currently only has free-typing in RejectModal's TextArea.
@@ -55581,21 +55564,21 @@ function useKeyboardShortcuts(_ref) {
55581
55564
  }, [disabled]);
55582
55565
  }
55583
55566
 
55584
- var root$1 = "root-aKShd";
55585
- var emptyStateContainer = "emptyStateContainer--GM0f";
55586
- var finishedContainer = "finishedContainer-lY-P9";
55587
- var finishedSummary = "finishedSummary-I0j--";
55588
- var finishedStats = "finishedStats-ZTCbP";
55589
- var finishedStat = "finishedStat-zC-fQ";
55590
- var finishedStatApproved = "finishedStatApproved-cewMf";
55591
- var finishedStatRejected = "finishedStatRejected-QLbLX";
55592
- var finishedStatOpen = "finishedStatOpen-5tR1r";
55593
- var finishedStatChanged = "finishedStatChanged-UCoYi";
55594
- var finishedWarning = "finishedWarning-mChts";
55595
- var finishedActions = "finishedActions-Ja-V9";
55596
- var errorAlert = "errorAlert-bRo-U";
55597
- var notFoundContainer = "notFoundContainer-g-pxe";
55598
- var css_248z$a = ".root-aKShd {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n background: #f5f5f5;\n}\n\n.emptyStateContainer--GM0f {\n padding: 24px;\n}\n\n.finishedContainer-lY-P9 {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 24px;\n}\n\n.finishedSummary-I0j-- {\n display: flex;\n flex-direction: column;\n gap: 12px;\n max-width: 680px;\n margin: 0 auto;\n}\n\n.finishedStats-ZTCbP {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n justify-content: center;\n}\n\n.finishedStat-zC-fQ {\n display: inline-flex;\n align-items: center;\n padding: 3px 10px;\n border-radius: 999px;\n font-size: 12px;\n line-height: 18px;\n border: 1px solid transparent;\n background: #fff;\n}\n\n.finishedStatApproved-cewMf {\n color: #237804;\n background: #f6ffed;\n border-color: #b7eb8f;\n}\n\n.finishedStatRejected-QLbLX {\n color: #a8071a;\n background: #fff1f0;\n border-color: #ffa39e;\n}\n\n.finishedStatOpen-5tR1r {\n color: #595959;\n background: #fafafa;\n border-color: #d9d9d9;\n}\n\n.finishedStatChanged-UCoYi {\n color: #d48806;\n background: #fff1b8;\n border-color: #ffc53d;\n}\n\n.finishedWarning-mChts {\n max-width: 560px;\n margin: 0 auto;\n}\n\n.finishedActions-Ja-V9 {\n display: inline-flex;\n gap: 8px;\n flex-wrap: wrap;\n justify-content: center;\n}\n\n.errorAlert-bRo-U {\n margin: 16px;\n}\n\n.notFoundContainer-g-pxe {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n/* Dark mode */\n.darkmode .root-aKShd {\n background: #141414;\n}\n\n.darkmode .finishedStat-zC-fQ {\n background: #1f1f1f;\n border-color: #434343;\n color: rgba(255, 255, 255, 0.85);\n}\n\n.darkmode .finishedStatApproved-cewMf {\n color: #95de64;\n background: rgba(56, 158, 13, 0.18);\n border-color: rgba(82, 196, 26, 0.45);\n}\n\n.darkmode .finishedStatRejected-QLbLX {\n color: #ff7875;\n background: rgba(207, 19, 34, 0.2);\n border-color: rgba(255, 77, 79, 0.45);\n}\n\n.darkmode .finishedStatOpen-5tR1r {\n color: rgba(255, 255, 255, 0.8);\n background: #262626;\n border-color: #595959;\n}\n\n.darkmode .finishedStatChanged-UCoYi {\n color: #ffd666;\n background: rgba(212, 136, 6, 0.28);\n border-color: rgba(255, 197, 61, 0.55);\n}\n";
55567
+ var root$1 = "root-XQQT2";
55568
+ var emptyStateContainer = "emptyStateContainer-155hD";
55569
+ var finishedContainer = "finishedContainer-ius-c";
55570
+ var finishedSummary = "finishedSummary-7q4Vm";
55571
+ var finishedStats = "finishedStats-r-MZt";
55572
+ var finishedStat = "finishedStat-EXeCH";
55573
+ var finishedStatApproved = "finishedStatApproved-aumiA";
55574
+ var finishedStatRejected = "finishedStatRejected-M2PWK";
55575
+ var finishedStatOpen = "finishedStatOpen-jRasI";
55576
+ var finishedStatChanged = "finishedStatChanged-viPzT";
55577
+ var finishedWarning = "finishedWarning-JuCh0";
55578
+ var finishedActions = "finishedActions-dT6SX";
55579
+ var errorAlert = "errorAlert-d4AdZ";
55580
+ var notFoundContainer = "notFoundContainer-xbFHj";
55581
+ var css_248z$a = ".root-XQQT2 {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n background: #f5f5f5;\n}\n\n.emptyStateContainer-155hD {\n padding: 24px;\n}\n\n.finishedContainer-ius-c {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 24px;\n}\n\n.finishedSummary-7q4Vm {\n display: flex;\n flex-direction: column;\n gap: 12px;\n max-width: 680px;\n margin: 0 auto;\n}\n\n.finishedStats-r-MZt {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n justify-content: center;\n}\n\n.finishedStat-EXeCH {\n display: inline-flex;\n align-items: center;\n padding: 3px 10px;\n border-radius: 999px;\n font-size: 12px;\n line-height: 18px;\n border: 1px solid transparent;\n background: #fff;\n}\n\n.finishedStatApproved-aumiA {\n color: #237804;\n background: #f6ffed;\n border-color: #b7eb8f;\n}\n\n.finishedStatRejected-M2PWK {\n color: #a8071a;\n background: #fff1f0;\n border-color: #ffa39e;\n}\n\n.finishedStatOpen-jRasI {\n color: #595959;\n background: #fafafa;\n border-color: #d9d9d9;\n}\n\n.finishedStatChanged-viPzT {\n color: #d48806;\n background: #fff1b8;\n border-color: #ffc53d;\n}\n\n.finishedWarning-JuCh0 {\n max-width: 560px;\n margin: 0 auto;\n}\n\n.finishedActions-dT6SX {\n display: inline-flex;\n gap: 8px;\n flex-wrap: wrap;\n justify-content: center;\n}\n\n.errorAlert-d4AdZ {\n margin: 16px;\n}\n\n.notFoundContainer-xbFHj {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n/* Dark mode */\n.darkmode .root-XQQT2 {\n background: #141414;\n}\n\n.darkmode .finishedStat-EXeCH {\n background: #1f1f1f;\n border-color: #434343;\n color: rgba(255, 255, 255, 0.85);\n}\n\n.darkmode .finishedStatApproved-aumiA {\n color: #95de64;\n background: rgba(56, 158, 13, 0.18);\n border-color: rgba(82, 196, 26, 0.45);\n}\n\n.darkmode .finishedStatRejected-M2PWK {\n color: #ff7875;\n background: rgba(207, 19, 34, 0.2);\n border-color: rgba(255, 77, 79, 0.45);\n}\n\n.darkmode .finishedStatOpen-jRasI {\n color: rgba(255, 255, 255, 0.8);\n background: #262626;\n border-color: #595959;\n}\n\n.darkmode .finishedStatChanged-viPzT {\n color: #ffd666;\n background: rgba(212, 136, 6, 0.28);\n border-color: rgba(255, 197, 61, 0.55);\n}\n";
55599
55582
  styleInject(css_248z$a);
55600
55583
 
55601
55584
  var RENDERJOBS_PATH = '/admin/renderjobs';
@@ -55619,7 +55602,7 @@ function focusBackConfirmButton(button) {
55619
55602
  ok === null || ok === void 0 || ok.focus();
55620
55603
  }
55621
55604
  function RenderApprove() {
55622
- var _data$job, _data$images$right2, _data$images$right3;
55605
+ var _data$job, _data$images$right2, _data$images$right3, _data$job2;
55623
55606
  var store = useStore();
55624
55607
  var navigate = useNavigate();
55625
55608
  var _useTranslation = useTranslation(),
@@ -55629,7 +55612,6 @@ function RenderApprove() {
55629
55612
  var session = useRenderApproveSession({
55630
55613
  updateState: updateState
55631
55614
  });
55632
- var data = useRenderJobData(session.currentId);
55633
55615
  var _useState = useState(false),
55634
55616
  _useState2 = _slicedToArray(_useState, 2),
55635
55617
  rejectOpen = _useState2[0],
@@ -55654,6 +55636,15 @@ function RenderApprove() {
55654
55636
  _useState12 = _slicedToArray(_useState11, 2),
55655
55637
  promptRestarting = _useState12[0],
55656
55638
  setPromptRestarting = _useState12[1];
55639
+ var _useState13 = useState(false),
55640
+ _useState14 = _slicedToArray(_useState13, 2),
55641
+ uploadOpen = _useState14[0],
55642
+ setUploadOpen = _useState14[1];
55643
+ var _useState15 = useState(0),
55644
+ _useState16 = _slicedToArray(_useState15, 2),
55645
+ dataRefreshKey = _useState16[0],
55646
+ setDataRefreshKey = _useState16[1];
55647
+ var data = useRenderJobData(session.currentId, dataRefreshKey);
55657
55648
  var leftSwiperRef = useRef(null);
55658
55649
  var isAiJob = typeof ((_data$job = data.job) === null || _data$job === void 0 ? void 0 : _data$job.engine) === 'string' && data.job.engine.trim().toLowerCase() === 'ai';
55659
55650
  var closeReject = function closeReject() {
@@ -56087,7 +56078,10 @@ function RenderApprove() {
56087
56078
  },
56088
56079
  onReject: openReject,
56089
56080
  onPrev: session.goPrev,
56090
- onNext: session.goNext
56081
+ onNext: session.goNext,
56082
+ onUpload: function onUpload() {
56083
+ return setUploadOpen(true);
56084
+ }
56091
56085
  })]
56092
56086
  })]
56093
56087
  }), /*#__PURE__*/jsx(RejectModal, {
@@ -56095,6 +56089,18 @@ function RenderApprove() {
56095
56089
  loading: session.isUpdating,
56096
56090
  onCancel: closeReject,
56097
56091
  onConfirm: onRejectConfirm
56092
+ }), /*#__PURE__*/jsx(UploadImageModal, {
56093
+ open: uploadOpen,
56094
+ renderJob: (_data$job2 = data.job) !== null && _data$job2 !== void 0 ? _data$job2 : null,
56095
+ onClose: function onClose() {
56096
+ return setUploadOpen(false);
56097
+ },
56098
+ onSuccess: function onSuccess() {
56099
+ setUploadOpen(false);
56100
+ setDataRefreshKey(function (k) {
56101
+ return k + 1;
56102
+ });
56103
+ }
56098
56104
  }), /*#__PURE__*/jsx(FullscreenViewer, {
56099
56105
  open: fullscreenSide !== null,
56100
56106
  media: fullscreenMedia,
@@ -56107,6 +56113,509 @@ function RenderApprove() {
56107
56113
  });
56108
56114
  }
56109
56115
 
56116
+ function createTableRenderJobsConfig(t, root, onUploadRenderJob) {
56117
+ return {
56118
+ title: t('backoffice.table.renderjobs.title'),
56119
+ type: 'TableRenderJobs',
56120
+ canRefresh: true,
56121
+ columns: [{
56122
+ title: t('backoffice.table.renderjobs.columns.title'),
56123
+ field: 'notes',
56124
+ type: 'icon',
56125
+ iconMapping: [{
56126
+ icon: 'StopFilled',
56127
+ value: 0,
56128
+ message: t('backoffice.table.renderjobs.columns.iconmapping.renderjobold')
56129
+ }, {
56130
+ icon: 'ExclamationCircleFilled',
56131
+ message: t('backoffice.table.renderjobs.columns.iconmapping.renderjobchangedoptions'),
56132
+ value: 1
56133
+ }],
56134
+ sorter: 2,
56135
+ width: 100,
56136
+ align: 'center',
56137
+ closeIcon: true
56138
+ }, {
56139
+ title: t('backoffice.table.renderjobs.columns.state'),
56140
+ field: 'state',
56141
+ sorter: 1,
56142
+ color: [{
56143
+ color: 'yellow',
56144
+ onValues: ['Warning', 7],
56145
+ operations: ['ct', 'eq'],
56146
+ fields: ['stateHistory', 'state']
56147
+ }, {
56148
+ color: 'red',
56149
+ onValues: ['Threat', 7],
56150
+ operations: ['ct', 'eq'],
56151
+ fields: ['stateHistory', 'state']
56152
+ }],
56153
+ filter: {
56154
+ type: 'multiselect',
56155
+ values: [{
56156
+ value: 0,
56157
+ label: 'renderjob.state.0'
56158
+ }, {
56159
+ value: 1,
56160
+ label: 'renderjob.state.1'
56161
+ }, {
56162
+ value: 2,
56163
+ label: 'renderjob.state.2'
56164
+ }, {
56165
+ value: 3,
56166
+ label: 'renderjob.state.3'
56167
+ }, {
56168
+ value: 4,
56169
+ label: 'renderjob.state.4'
56170
+ }, {
56171
+ value: 5,
56172
+ label: 'renderjob.state.5'
56173
+ }, {
56174
+ value: 6,
56175
+ label: 'renderjob.state.6'
56176
+ }, {
56177
+ value: 7,
56178
+ label: 'renderjob.state.7'
56179
+ }, {
56180
+ value: 8,
56181
+ label: 'renderjob.state.8'
56182
+ }, {
56183
+ value: 9,
56184
+ label: 'renderjob.state.9'
56185
+ }, {
56186
+ value: 10,
56187
+ label: 'renderjob.state.10'
56188
+ }, {
56189
+ value: 11,
56190
+ label: 'renderjob.state.11'
56191
+ }, {
56192
+ value: 12,
56193
+ label: 'renderjob.state.12'
56194
+ }]
56195
+ },
56196
+ width: 200,
56197
+ translationPrefix: 'renderjob.state',
56198
+ type: 'string'
56199
+ }, {
56200
+ title: t('backoffice.table.renderjobs.columns.priority'),
56201
+ sorter: 2,
56202
+ filter: 'advanced',
56203
+ field: 'priority',
56204
+ width: 110
56205
+ }, {
56206
+ title: t('backoffice.table.renderjobs.columns.divaNr'),
56207
+ field: 'divaNr',
56208
+ filter: 'advanced',
56209
+ sorter: 2,
56210
+ width: 150
56211
+ }, {
56212
+ title: t('backoffice.table.renderjobs.columns.VariantId'),
56213
+ field: 'divaNrVariantId',
56214
+ filter: 'advanced',
56215
+ sorter: 2,
56216
+ width: 150
56217
+ }, {
56218
+ title: t('backoffice.table.renderjobs.columns.fileUrl'),
56219
+ field: 'mediaItemRef',
56220
+ width: 99,
56221
+ type: 'mediaItem',
56222
+ mediaItemViewerIdMode: 'ref',
56223
+ align: 'center'
56224
+ }, {
56225
+ title: t('backoffice.table.renderjobs.columns.realTimeRenderUrl'),
56226
+ field: 'realTimeRenderUrl',
56227
+ width: 99,
56228
+ type: 'media',
56229
+ align: 'center'
56230
+ }, {
56231
+ title: t('backoffice.table.renderjobs.columns.job'),
56232
+ field: 'job',
56233
+ sorter: 3,
56234
+ filter: 'advanced',
56235
+ width: 200
56236
+ }, {
56237
+ title: t('backoffice.table.renderjobs.columns.fileName'),
56238
+ field: 'fileName',
56239
+ sorter: 3,
56240
+ filter: 'advanced',
56241
+ width: 200
56242
+ }, {
56243
+ title: t('backoffice.table.renderjobs.columns.group'),
56244
+ field: 'group',
56245
+ sorter: 11,
56246
+ filter: 'advanced',
56247
+ width: 300
56248
+ }, {
56249
+ title: t('backoffice.table.renderjobs.columns.viewPoint'),
56250
+ field: 'viewPoint',
56251
+ sorter: 4,
56252
+ filter: 'advanced',
56253
+ width: 300
56254
+ }, {
56255
+ title: t('backoffice.table.renderjobs.columns.renderScene'),
56256
+ field: 'renderScene',
56257
+ sorter: 10,
56258
+ filter: 'advanced',
56259
+ width: 300
56260
+ }, {
56261
+ title: t('backoffice.table.renderjobs.columns.engine'),
56262
+ field: 'engine',
56263
+ sorter: 10,
56264
+ filter: 'advanced',
56265
+ width: 300
56266
+ }, {
56267
+ title: t('backoffice.table.renderjobs.columns.supplierName'),
56268
+ field: 'supplierName',
56269
+ width: 300,
56270
+ sorter: 11,
56271
+ filter: 'advanced'
56272
+ }, {
56273
+ title: t('backoffice.table.renderjobs.columns.catalogName'),
56274
+ field: 'catalogName',
56275
+ sorter: 14,
56276
+ filter: 'advanced',
56277
+ width: 300
56278
+ }, {
56279
+ title: t('backoffice.table.renderjobs.columns.organizationName'),
56280
+ field: 'organizationName',
56281
+ sorter: 13,
56282
+ filter: 'advanced',
56283
+ width: 400
56284
+ }, {
56285
+ title: t('backoffice.table.renderjobs.columns.createdByName'),
56286
+ field: 'createdByName',
56287
+ sorter: 14,
56288
+ filter: 'advanced',
56289
+ width: 200
56290
+ }, {
56291
+ title: t('backoffice.table.renderjobs.columns.lastUpdated'),
56292
+ field: 'lastUpdated',
56293
+ sorter: 15,
56294
+ type: 'unixTimeStamp',
56295
+ defaultSortOrder: 'descend',
56296
+ filter: 'interval',
56297
+ width: 200
56298
+ }, {
56299
+ title: t('backoffice.table.renderjobs.columns.dracoCompression'),
56300
+ field: 'dracoCompression',
56301
+ hidden: true
56302
+ }, {
56303
+ title: t('backoffice.table.renderjobs.columns.additionalPrompt'),
56304
+ field: 'additionalPrompt',
56305
+ hidden: true
56306
+ }, {
56307
+ title: t('backoffice.table.renderjobs.columns.prompt'),
56308
+ field: 'prompt',
56309
+ hidden: true
56310
+ }, {
56311
+ title: t('backoffice.table.renderjobs.columns.originPosition'),
56312
+ field: 'originPosition',
56313
+ hidden: true
56314
+ }, {
56315
+ title: t('backoffice.table.renderjobs.columns.originRotation'),
56316
+ field: 'originRotation',
56317
+ hidden: true
56318
+ }, {
56319
+ title: t('backoffice.table.renderjobs.columns.spawnLocation'),
56320
+ field: 'spawnLocation',
56321
+ hidden: true
56322
+ }, {
56323
+ title: t('backoffice.table.renderjobs.columns.product'),
56324
+ field: 'product',
56325
+ hidden: true
56326
+ }, {
56327
+ title: t('backoffice.table.renderjobs.columns.createdBy'),
56328
+ field: 'createdBy',
56329
+ hidden: true
56330
+ }, {
56331
+ title: t('backoffice.table.renderjobs.columns.createdByEmail'),
56332
+ field: 'createdByEmail',
56333
+ hidden: true
56334
+ }, {
56335
+ title: t('backoffice.table.renderjobs.columns.organization'),
56336
+ field: 'organization',
56337
+ hidden: true
56338
+ }, {
56339
+ title: '_id',
56340
+ field: '_id',
56341
+ hidden: true
56342
+ }, {
56343
+ title: 'fileName',
56344
+ field: 'fileName',
56345
+ hidden: true
56346
+ }, {
56347
+ title: 'fileFormat',
56348
+ field: 'fileFormat',
56349
+ hidden: true
56350
+ }, {
56351
+ title: 'arViewerSetting',
56352
+ field: 'arViewerSetting',
56353
+ hidden: true
56354
+ }, {
56355
+ title: 'mediaItems',
56356
+ field: 'mediaItems',
56357
+ hidden: true
56358
+ }, {
56359
+ title: 'alternativeRendering',
56360
+ field: 'alternativeRendering',
56361
+ hidden: true
56362
+ }, {
56363
+ title: 'borderCM',
56364
+ field: 'borderCM',
56365
+ hidden: true
56366
+ }, {
56367
+ title: 'doHideShadow',
56368
+ field: 'doHideShadow',
56369
+ hidden: true
56370
+ }, {
56371
+ title: 'doRenderDoubleResolution',
56372
+ field: 'doRenderDoubleResolution',
56373
+ hidden: true
56374
+ }, {
56375
+ title: 'useTransparency',
56376
+ field: 'useTransparency',
56377
+ hidden: true
56378
+ }, {
56379
+ title: 'fileUrl',
56380
+ field: 'fileUrl',
56381
+ hidden: true
56382
+ }, {
56383
+ title: 'stateHistory',
56384
+ field: 'stateHistory',
56385
+ hidden: true
56386
+ }, {
56387
+ title: 'debugUser',
56388
+ field: 'debugUser',
56389
+ hidden: true
56390
+ }],
56391
+ apiInterface: {
56392
+ read: {
56393
+ list: '${mediaService}/renderjobs',
56394
+ filterServerSide: true
56395
+ },
56396
+ update: {
56397
+ url: '${mediaService}/renderjobs/{_id}',
56398
+ method: 'PATCH',
56399
+ jsonPatch: true
56400
+ },
56401
+ "delete": '${mediaService}/renderjobs/${id}'
56402
+ },
56403
+ bulkActions: [{
56404
+ actionType: 'Modal',
56405
+ type: 'Form',
56406
+ id: 'FormRenderJobState',
56407
+ title: t('backoffice.table.renderjobs.bulkActions.FormRenderJobState.title'),
56408
+ label: t('backoffice.table.renderjobs.bulkActions.FormRenderJobState.label'),
56409
+ rule: [{
56410
+ match: {
56411
+ sourceField: 'state'
56412
+ }
56413
+ }],
56414
+ errorText: t('backoffice.table.renderjobs.bulkActions.FormRenderJobState.errorText'),
56415
+ apiInterface: {
56416
+ update: {
56417
+ url: '${mediaService}/renderjobs/{_id}/state',
56418
+ method: 'PATCH'
56419
+ }
56420
+ },
56421
+ showProgressBar: true
56422
+ }, {
56423
+ actionType: 'Modal',
56424
+ type: 'Form',
56425
+ id: 'FormNameAddition',
56426
+ title: t('backoffice.table.renderjobs.bulkActions.FormNameAddition.title'),
56427
+ label: t('backoffice.table.renderjobs.bulkActions.FormNameAddition.label'),
56428
+ errorText: t('backoffice.table.renderjobs.bulkActions.FormNameAddition.errorText'),
56429
+ apiInterface: {
56430
+ update: {
56431
+ url: '${mediaService}/renderjobs/{_id}',
56432
+ method: 'PATCH',
56433
+ jsonPatch: true
56434
+ }
56435
+ },
56436
+ rule: [{
56437
+ lt: {
56438
+ sourceField: 'state',
56439
+ value: 3
56440
+ }
56441
+ }],
56442
+ mapping: {
56443
+ type: 'body',
56444
+ map: [{
56445
+ targetField: 'addition',
56446
+ sourceField: 'addition'
56447
+ }, {
56448
+ sourceField: 'fileName',
56449
+ targetField: 'fileName'
56450
+ }]
56451
+ },
56452
+ apiCallbackMapping: {
56453
+ type: 'body',
56454
+ map: [{
56455
+ sourceField: 'addition',
56456
+ targetField: 'fileName',
56457
+ setType: 'addToSourceValue'
56458
+ }]
56459
+ },
56460
+ showProgressBar: true
56461
+ }, {
56462
+ actionType: 'Callback',
56463
+ id: 'OpenRenderApprove',
56464
+ label: t('backoffice.renderapprove.table.bulkAction.label'),
56465
+ rule: [{
56466
+ match: {
56467
+ sourceField: 'state',
56468
+ value: 7
56469
+ }
56470
+ }],
56471
+ errorText: 'backoffice.renderapprove.table.bulkAction.errorText',
56472
+ disableOnRuleMismatch: true,
56473
+ callback: function callback(selectedRenderJobs) {
56474
+ var renderJobIds = (selectedRenderJobs !== null && selectedRenderJobs !== void 0 ? selectedRenderJobs : []).map(function (job) {
56475
+ return job === null || job === void 0 ? void 0 : job._id;
56476
+ }).filter(Boolean);
56477
+ if (renderJobIds.length === 0) return;
56478
+ Modal$2.confirm({
56479
+ title: t('backoffice.renderapprove.table.bulkAction.title'),
56480
+ content: t('backoffice.renderapprove.table.bulkAction.content', {
56481
+ count: renderJobIds.length
56482
+ }),
56483
+ okText: t('backoffice.renderapprove.table.bulkAction.okText'),
56484
+ cancelText: t('backoffice.renderapprove.table.bulkAction.cancelText'),
56485
+ onOk: function onOk() {
56486
+ var search = "?renderJobIds=".concat(encodeURIComponent(renderJobIds.join(',')));
56487
+ root.navigate("/admin/renderjobs/renderapprove".concat(search));
56488
+ }
56489
+ });
56490
+ }
56491
+ }],
56492
+ deselectOnUpdate: false,
56493
+ copyAction: {
56494
+ apiInterface: {
56495
+ create: '${mediaService}/renderjobs/${_id}/copy'
56496
+ },
56497
+ mapping: {
56498
+ type: 'query',
56499
+ map: [{
56500
+ sourceField: '_id',
56501
+ targetField: '_id'
56502
+ }]
56503
+ }
56504
+ },
56505
+ downloadAction: [{
56506
+ actionType: 'Download',
56507
+ id: 'DownloadRenderjobAction',
56508
+ rule: [{
56509
+ match: {
56510
+ sourceField: 'state',
56511
+ value: [12, 9, 8, 7]
56512
+ }
56513
+ }],
56514
+ download: [{
56515
+ type: 'request',
56516
+ request: '${mediaService}/v1/assets/${mediaItems}/download',
56517
+ mediaType: 'file',
56518
+ mapping: {
56519
+ type: 'query',
56520
+ map: [{
56521
+ sourceField: 'mediaItemRef',
56522
+ targetField: 'mediaItems'
56523
+ }]
56524
+ }
56525
+ }]
56526
+ }],
56527
+ rowAction: [{
56528
+ actionType: 'Detail',
56529
+ type: 'Form',
56530
+ id: 'FormRenderjob',
56531
+ title: t('backoffice.table.renderjobs.rowAction.FormRenderjob.title'),
56532
+ description: [{
56533
+ text: t('backoffice.table.renderjobs.rowAction.FormRenderjob.description.text')
56534
+ }]
56535
+ }, {
56536
+ actionType: 'Detail',
56537
+ type: 'List',
56538
+ id: 'ListJobHistory',
56539
+ title: t('backoffice.table.renderjobs.rowAction.ListJobHistory.title'),
56540
+ label: t('backoffice.table.renderjobs.rowAction.ListJobHistory.label')
56541
+ }, {
56542
+ actionType: 'Detail',
56543
+ type: 'ImageCropper',
56544
+ id: 'CropperRenderJob',
56545
+ title: t('backoffice.table.renderjobs.rowAction.CropperRenderJob.title'),
56546
+ label: t('backoffice.table.renderjobs.rowAction.CropperRenderJob.label')
56547
+ }, {
56548
+ actionType: 'Callback',
56549
+ id: 'UploadRenderJobImage',
56550
+ label: t('backoffice.table.renderjobs.rowAction.UploadRenderJobImage.label', {
56551
+ defaultValue: 'Bild hochladen'
56552
+ }),
56553
+ callback: function callback(data) {
56554
+ if (!(data !== null && data !== void 0 && data._id)) return;
56555
+ onUploadRenderJob(data);
56556
+ }
56557
+ }, {
56558
+ actionType: 'Download',
56559
+ id: 'DownloadRequest',
56560
+ icon: 'DownloadOutlined',
56561
+ rule: [{
56562
+ match: {
56563
+ sourceField: 'state',
56564
+ value: [5, 6, 7, 8, 9, 10, 11, 12]
56565
+ }
56566
+ }],
56567
+ download: [{
56568
+ type: 'request',
56569
+ request: '${mediaService}/renderjobs/${_id}/hqRenderScript',
56570
+ mapping: {
56571
+ type: 'query',
56572
+ map: [{
56573
+ sourceField: '_id',
56574
+ targetField: '_id'
56575
+ }]
56576
+ },
56577
+ mediaType: 'json'
56578
+ }]
56579
+ }]
56580
+ };
56581
+ }
56582
+
56583
+ var TableRenderJobs = observer(function TableRenderJobs() {
56584
+ var root = useStore();
56585
+ var _useTranslation = useTranslation(),
56586
+ i18n = _useTranslation.i18n,
56587
+ t = _useTranslation.t;
56588
+ var _useState = useState(null),
56589
+ _useState2 = _slicedToArray(_useState, 2),
56590
+ uploadRenderJob = _useState2[0],
56591
+ setUploadRenderJob = _useState2[1];
56592
+ var config = useMemo(function () {
56593
+ var cfg = createTableRenderJobsConfig(t, root, setUploadRenderJob);
56594
+ replaceApiConfigPlaceholdersDeep(cfg, root.configurationStore.apiConfig);
56595
+ return cfg;
56596
+ }, [i18n.language]);
56597
+ var state = useTableData({
56598
+ id: 'TableRenderjobs',
56599
+ i18n: i18n,
56600
+ config: config
56601
+ });
56602
+ return /*#__PURE__*/jsxs(Fragment, {
56603
+ children: [/*#__PURE__*/jsx(BaseTable, {
56604
+ state: state
56605
+ }), /*#__PURE__*/jsx(UploadImageModal, {
56606
+ open: !!uploadRenderJob,
56607
+ renderJob: uploadRenderJob,
56608
+ onClose: function onClose() {
56609
+ return setUploadRenderJob(null);
56610
+ },
56611
+ onSuccess: function onSuccess() {
56612
+ setUploadRenderJob(null);
56613
+ state.triggerRefresh();
56614
+ }
56615
+ })]
56616
+ });
56617
+ });
56618
+
56110
56619
  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; }
56111
56620
  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; }
56112
56621
  var ContentWrapper = function ContentWrapper(_ref) {
@@ -56124,25 +56633,27 @@ var ContentWrapper = function ContentWrapper(_ref) {
56124
56633
  if (!current) {
56125
56634
  return null;
56126
56635
  }
56127
- return /*#__PURE__*/jsxs(Layout.Content, {
56128
- id: "contnet",
56129
- style: {
56130
- margin: 16,
56131
- position: 'relative',
56132
- minHeight: 'auto',
56133
- height: 'calc(100% - 32px)'
56134
- },
56135
- children: [current.configuration.type !== 'Group' && /*#__PURE__*/jsx(ContentCard, {
56136
- configId: current.id,
56137
- type: current.configuration.type,
56138
- inGroup: false,
56139
- readListUrl: menuRoute.readListUrl,
56140
- genericType: menuRoute.genericType,
56141
- tableInstanceKey: menuRoute.path
56142
- }), current.configuration.type == 'Group' && /*#__PURE__*/jsx(Group, {
56143
- id: current.id
56144
- })]
56145
- }, menuRoute.path + (root.dataStore.organizationId || ''));
56636
+ return /*#__PURE__*/jsx(Fragment, {
56637
+ children: /*#__PURE__*/jsxs(Layout.Content, {
56638
+ id: "contnet",
56639
+ style: {
56640
+ margin: 16,
56641
+ position: 'relative',
56642
+ minHeight: 'auto',
56643
+ height: 'calc(100% - 32px)'
56644
+ },
56645
+ children: [current.configuration.type !== 'Group' && /*#__PURE__*/jsx(ContentCard, {
56646
+ configId: current.id,
56647
+ type: current.configuration.type,
56648
+ inGroup: false,
56649
+ readListUrl: menuRoute.readListUrl,
56650
+ genericType: menuRoute.genericType,
56651
+ tableInstanceKey: menuRoute.path
56652
+ }), current.configuration.type == 'Group' && /*#__PURE__*/jsx(Group, {
56653
+ id: current.id
56654
+ })]
56655
+ }, menuRoute.path + (root.dataStore.organizationId || ''))
56656
+ });
56146
56657
  };
56147
56658
  var Group = observer(function (_ref2) {
56148
56659
  var _configuration$direct, _configuration$items;
@@ -56249,7 +56760,7 @@ var ContentCard = observer(function (_ref3) {
56249
56760
  }, configId), configuration.type == 'MediaTable' && /*#__PURE__*/jsx(MediaTable, {
56250
56761
  configuration: configuration,
56251
56762
  id: configId
56252
- }, configId), configuration.type == 'Maintenance' && /*#__PURE__*/jsx(Maintenance, {}, configId), configuration.type == 'MetaCampaignJotformSync' && /*#__PURE__*/jsx(MetaCampaignJotformSync$1, {}, configId), configuration.type == 'RenderApprove' && /*#__PURE__*/jsx(RenderApprove, {}, configId)]
56763
+ }, configId), configuration.type == 'Maintenance' && /*#__PURE__*/jsx(Maintenance, {}, configId), configuration.type == 'MetaCampaignJotformSync' && /*#__PURE__*/jsx(MetaCampaignJotformSync$1, {}, configId), configuration.type == 'RenderApprove' && /*#__PURE__*/jsx(RenderApprove, {}, configId), configuration.type == 'TableRenderJobs' && /*#__PURE__*/jsx(TableRenderJobs, {}, configId)]
56253
56764
  });
56254
56765
  });
56255
56766
  var Content = observer(ContentWrapper);