@crystaldesign/diva-backoffice 26.7.0-beta.1 → 26.7.0-beta.10

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 (81) hide show
  1. package/build/esm/index.js +1527 -872
  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/CommonComponents/useCatalogVersionDialog.d.ts +13 -0
  6. package/build/types/backoffice/src/ui/CommonComponents/useCatalogVersionDialog.d.ts.map +1 -0
  7. package/build/types/backoffice/src/ui/FileUploadOrders/index.d.ts.map +1 -1
  8. package/build/types/backoffice/src/ui/IDMCatalogEditor/Tables/CatalogVersions.d.ts.map +1 -1
  9. package/build/types/backoffice/src/ui/IDMCatalogEditor/Tables/IdmCatalogs.d.ts.map +1 -1
  10. package/build/types/backoffice/src/ui/IDMCatalogEditor/Tables/PartlistPos.d.ts.map +1 -1
  11. package/build/types/backoffice/src/ui/IDMEnricherEditor/modules/TablePackages/index.d.ts.map +1 -1
  12. package/build/types/backoffice/src/ui/Table/BaseTable/index.d.ts.map +1 -1
  13. package/build/types/backoffice/src/ui/Table/StandardTable/useTableData.d.ts +1 -1
  14. package/build/types/backoffice/src/ui/Table/StandardTable/useTableData.d.ts.map +1 -1
  15. package/build/types/backoffice/src/ui/Table/types.d.ts +2 -0
  16. package/build/types/backoffice/src/ui/Table/types.d.ts.map +1 -1
  17. package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs/components/RenderApprove}/components/ActionBar/index.d.ts +2 -1
  18. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/ActionBar/index.d.ts.map +1 -0
  19. package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs/components/RenderApprove}/components/FullscreenViewer/index.d.ts +1 -1
  20. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/FullscreenViewer/index.d.ts.map +1 -0
  21. package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs/components/RenderApprove}/components/ImagePanel/index.d.ts +1 -1
  22. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/ImagePanel/index.d.ts.map +1 -0
  23. package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs/components/RenderApprove}/components/LeftSlider/index.d.ts +1 -1
  24. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/LeftSlider/index.d.ts.map +1 -0
  25. package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs/components/RenderApprove}/components/MetadataPanel/index.d.ts +1 -1
  26. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/MetadataPanel/index.d.ts.map +1 -0
  27. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/RejectModal/index.d.ts.map +1 -0
  28. package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs/components/RenderApprove}/components/SessionHeader/index.d.ts +1 -1
  29. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/SessionHeader/index.d.ts.map +1 -0
  30. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/ShortcutLegend/index.d.ts.map +1 -0
  31. package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs/components/RenderApprove}/components/SideBySideViewer/index.d.ts +1 -1
  32. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/SideBySideViewer/index.d.ts.map +1 -0
  33. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/components/UndoNotification/index.d.ts.map +1 -0
  34. package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs/components/RenderApprove}/hooks/useKeyboardShortcuts.d.ts +1 -1
  35. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  36. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/hooks/useRenderApproveSession.d.ts.map +1 -0
  37. package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs/components/RenderApprove}/hooks/useRenderJobData.d.ts +2 -2
  38. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/hooks/useRenderJobData.d.ts.map +1 -0
  39. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/hooks/useUpdateRenderJobState.d.ts.map +1 -0
  40. package/build/types/backoffice/src/ui/TableRenderJobs/components/RenderApprove/index.d.ts.map +1 -0
  41. package/build/types/backoffice/src/ui/TableRenderJobs/components/UploadImageModal/index.d.ts +11 -0
  42. package/build/types/backoffice/src/ui/TableRenderJobs/components/UploadImageModal/index.d.ts.map +1 -0
  43. package/build/types/backoffice/src/ui/TableRenderJobs/config.d.ts +321 -0
  44. package/build/types/backoffice/src/ui/TableRenderJobs/config.d.ts.map +1 -0
  45. package/build/types/backoffice/src/ui/TableRenderJobs/constants.d.ts.map +1 -0
  46. package/build/types/backoffice/src/ui/TableRenderJobs/hooks/useUpdateRenderJobPatch.d.ts.map +1 -0
  47. package/build/types/backoffice/src/ui/TableRenderJobs/hooks/useUpdateRenderJobState.d.ts +7 -0
  48. package/build/types/backoffice/src/ui/TableRenderJobs/hooks/useUpdateRenderJobState.d.ts.map +1 -0
  49. package/build/types/backoffice/src/ui/TableRenderJobs/hooks/useUploadRenderJobImage.d.ts +14 -0
  50. package/build/types/backoffice/src/ui/TableRenderJobs/hooks/useUploadRenderJobImage.d.ts.map +1 -0
  51. package/build/types/backoffice/src/ui/TableRenderJobs/index.d.ts +4 -0
  52. package/build/types/backoffice/src/ui/TableRenderJobs/index.d.ts.map +1 -0
  53. package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs}/types.d.ts +3 -0
  54. package/build/types/backoffice/src/ui/TableRenderJobs/types.d.ts.map +1 -0
  55. package/package.json +9 -9
  56. package/build/types/backoffice/src/ui/RenderApprove/components/ActionBar/index.d.ts.map +0 -1
  57. package/build/types/backoffice/src/ui/RenderApprove/components/FullscreenViewer/index.d.ts.map +0 -1
  58. package/build/types/backoffice/src/ui/RenderApprove/components/ImagePanel/index.d.ts.map +0 -1
  59. package/build/types/backoffice/src/ui/RenderApprove/components/LeftSlider/index.d.ts.map +0 -1
  60. package/build/types/backoffice/src/ui/RenderApprove/components/MetadataPanel/index.d.ts.map +0 -1
  61. package/build/types/backoffice/src/ui/RenderApprove/components/RejectModal/index.d.ts.map +0 -1
  62. package/build/types/backoffice/src/ui/RenderApprove/components/SessionHeader/index.d.ts.map +0 -1
  63. package/build/types/backoffice/src/ui/RenderApprove/components/ShortcutLegend/index.d.ts.map +0 -1
  64. package/build/types/backoffice/src/ui/RenderApprove/components/SideBySideViewer/index.d.ts.map +0 -1
  65. package/build/types/backoffice/src/ui/RenderApprove/components/UndoNotification/index.d.ts.map +0 -1
  66. package/build/types/backoffice/src/ui/RenderApprove/constants.d.ts.map +0 -1
  67. package/build/types/backoffice/src/ui/RenderApprove/hooks/useKeyboardShortcuts.d.ts.map +0 -1
  68. package/build/types/backoffice/src/ui/RenderApprove/hooks/useRenderApproveSession.d.ts.map +0 -1
  69. package/build/types/backoffice/src/ui/RenderApprove/hooks/useRenderJobData.d.ts.map +0 -1
  70. package/build/types/backoffice/src/ui/RenderApprove/hooks/useUpdateRenderJobPatch.d.ts.map +0 -1
  71. package/build/types/backoffice/src/ui/RenderApprove/hooks/useUpdateRenderJobState.d.ts.map +0 -1
  72. package/build/types/backoffice/src/ui/RenderApprove/index.d.ts.map +0 -1
  73. package/build/types/backoffice/src/ui/RenderApprove/types.d.ts.map +0 -1
  74. /package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs/components/RenderApprove}/components/RejectModal/index.d.ts +0 -0
  75. /package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs/components/RenderApprove}/components/ShortcutLegend/index.d.ts +0 -0
  76. /package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs/components/RenderApprove}/components/UndoNotification/index.d.ts +0 -0
  77. /package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs/components/RenderApprove}/hooks/useRenderApproveSession.d.ts +0 -0
  78. /package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs/components/RenderApprove}/hooks/useUpdateRenderJobState.d.ts +0 -0
  79. /package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs/components/RenderApprove}/index.d.ts +0 -0
  80. /package/build/types/backoffice/src/ui/{RenderApprove → TableRenderJobs}/constants.d.ts +0 -0
  81. /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';
@@ -127,6 +127,7 @@ import WarningOutlined from '@ant-design/icons/lib/icons/WarningOutlined';
127
127
  import Modal$3 from 'antd/es/modal';
128
128
  import Spin$1 from 'antd/es/spin';
129
129
  import Flex from 'antd/es/flex';
130
+ import Radio$1 from 'antd/es/radio';
130
131
  import EyeOutlined$1 from '@ant-design/icons/lib/icons/EyeOutlined';
131
132
  import { useTranslation as useTranslation$1 } from 'react-i18next';
132
133
  import InboxOutlined$1 from '@ant-design/icons/lib/icons/InboxOutlined';
@@ -134,7 +135,6 @@ import JSZip from 'jszip';
134
135
  import UploadOutlined$1 from '@ant-design/icons/lib/icons/UploadOutlined';
135
136
  import { GridError } from '@crystaldesign/spreadsheet/errors';
136
137
  import { MediaDetailCard } from '@crystaldesign/assetmanager';
137
- import { DropzoneAreaBase } from 'react-mui-dropzone';
138
138
  import ArrowLeftOutlined from '@ant-design/icons/ArrowLeftOutlined';
139
139
  import { Navigation as Navigation$1, Pagination, Mousewheel } from 'swiper/modules';
140
140
  import { Swiper, SwiperSlide } from 'swiper/react';
@@ -6028,458 +6028,8 @@ function loadConfiguration(t, root, config, lang, apiConfig) {
6028
6028
  }]
6029
6029
  },
6030
6030
  TableRenderjobs: {
6031
- title: t('backoffice.table.renderjobs.title'),
6032
- type: 'Table',
6033
- canRefresh: true,
6034
- columns: [{
6035
- title: t('backoffice.table.renderjobs.columns.title'),
6036
- field: 'notes',
6037
- type: 'icon',
6038
- iconMapping: [{
6039
- icon: 'StopFilled',
6040
- value: 0,
6041
- message: t('backoffice.table.renderjobs.columns.iconmapping.renderjobold')
6042
- }, {
6043
- icon: 'ExclamationCircleFilled',
6044
- message: t('backoffice.table.renderjobs.columns.iconmapping.renderjobchangedoptions'),
6045
- value: 1
6046
- }],
6047
- sorter: 2,
6048
- width: 100,
6049
- align: 'center',
6050
- closeIcon: true
6051
- }, {
6052
- title: t('backoffice.table.renderjobs.columns.state'),
6053
- field: 'state',
6054
- sorter: 1,
6055
- color: [{
6056
- color: 'yellow',
6057
- onValues: ['Warning', 7],
6058
- operations: ['ct', 'eq'],
6059
- fields: ['stateHistory', 'state']
6060
- }, {
6061
- color: 'red',
6062
- onValues: ['Threat', 7],
6063
- operations: ['ct', 'eq'],
6064
- fields: ['stateHistory', 'state']
6065
- }],
6066
- filter: {
6067
- type: 'multiselect',
6068
- values: [{
6069
- value: 0,
6070
- label: 'renderjob.state.0'
6071
- }, {
6072
- value: 1,
6073
- label: 'renderjob.state.1'
6074
- }, {
6075
- value: 2,
6076
- label: 'renderjob.state.2'
6077
- }, {
6078
- value: 3,
6079
- label: 'renderjob.state.3'
6080
- }, {
6081
- value: 4,
6082
- label: 'renderjob.state.4'
6083
- }, {
6084
- value: 5,
6085
- label: 'renderjob.state.5'
6086
- }, {
6087
- value: 6,
6088
- label: 'renderjob.state.6'
6089
- }, {
6090
- value: 7,
6091
- label: 'renderjob.state.7'
6092
- }, {
6093
- value: 8,
6094
- label: 'renderjob.state.8'
6095
- }, {
6096
- value: 9,
6097
- label: 'renderjob.state.9'
6098
- }, {
6099
- value: 10,
6100
- label: 'renderjob.state.10'
6101
- }, {
6102
- value: 11,
6103
- label: 'renderjob.state.11'
6104
- }, {
6105
- value: 12,
6106
- label: 'renderjob.state.12'
6107
- }]
6108
- },
6109
- width: 200,
6110
- translationPrefix: 'renderjob.state',
6111
- type: 'string'
6112
- }, {
6113
- title: t('backoffice.table.renderjobs.columns.priority'),
6114
- sorter: 2,
6115
- filter: 'advanced',
6116
- field: 'priority',
6117
- width: 110
6118
- }, {
6119
- title: t('backoffice.table.renderjobs.columns.divaNr'),
6120
- field: 'divaNr',
6121
- filter: 'advanced',
6122
- sorter: 2,
6123
- width: 150
6124
- }, {
6125
- title: t('backoffice.table.renderjobs.columns.VariantId'),
6126
- field: 'divaNrVariantId',
6127
- filter: 'advanced',
6128
- sorter: 2,
6129
- width: 150
6130
- }, {
6131
- title: t('backoffice.table.renderjobs.columns.fileUrl'),
6132
- field: 'mediaItemRef',
6133
- width: 99,
6134
- type: 'mediaItem',
6135
- mediaItemViewerIdMode: 'ref',
6136
- align: 'center'
6137
- }, {
6138
- title: t('backoffice.table.renderjobs.columns.realTimeRenderUrl'),
6139
- field: 'realTimeRenderUrl',
6140
- width: 99,
6141
- type: 'media',
6142
- align: 'center'
6143
- }, {
6144
- title: t('backoffice.table.renderjobs.columns.job'),
6145
- field: 'job',
6146
- sorter: 3,
6147
- filter: 'advanced',
6148
- width: 200
6149
- }, {
6150
- title: t('backoffice.table.renderjobs.columns.fileName'),
6151
- field: 'fileName',
6152
- sorter: 3,
6153
- filter: 'advanced',
6154
- width: 200
6155
- }, {
6156
- title: t('backoffice.table.renderjobs.columns.group'),
6157
- field: 'group',
6158
- sorter: 11,
6159
- filter: 'advanced',
6160
- width: 300
6161
- }, {
6162
- title: t('backoffice.table.renderjobs.columns.viewPoint'),
6163
- field: 'viewPoint',
6164
- sorter: 4,
6165
- filter: 'advanced',
6166
- width: 300
6167
- }, {
6168
- title: t('backoffice.table.renderjobs.columns.renderScene'),
6169
- field: 'renderScene',
6170
- sorter: 10,
6171
- filter: 'advanced',
6172
- width: 300
6173
- }, {
6174
- title: t('backoffice.table.renderjobs.columns.engine'),
6175
- field: 'engine',
6176
- sorter: 10,
6177
- filter: 'advanced',
6178
- width: 300
6179
- }, {
6180
- title: t('backoffice.table.renderjobs.columns.supplierName'),
6181
- field: 'supplierName',
6182
- width: 300,
6183
- sorter: 11,
6184
- filter: 'advanced'
6185
- }, {
6186
- title: t('backoffice.table.renderjobs.columns.catalogName'),
6187
- field: 'catalogName',
6188
- sorter: 14,
6189
- filter: 'advanced',
6190
- width: 300
6191
- }, {
6192
- title: t('backoffice.table.renderjobs.columns.organizationName'),
6193
- field: 'organizationName',
6194
- sorter: 13,
6195
- filter: 'advanced',
6196
- width: 400
6197
- }, {
6198
- title: t('backoffice.table.renderjobs.columns.createdByName'),
6199
- field: 'createdByName',
6200
- sorter: 14,
6201
- filter: 'advanced',
6202
- width: 200
6203
- }, {
6204
- title: t('backoffice.table.renderjobs.columns.lastUpdated'),
6205
- field: 'lastUpdated',
6206
- sorter: 15,
6207
- type: 'unixTimeStamp',
6208
- defaultSortOrder: 'descend',
6209
- filter: 'interval',
6210
- width: 200
6211
- }, {
6212
- title: t('backoffice.table.renderjobs.columns.dracoCompression'),
6213
- field: 'dracoCompression',
6214
- hidden: true
6215
- }, {
6216
- title: t('backoffice.table.renderjobs.columns.additionalPrompt'),
6217
- field: 'additionalPrompt',
6218
- hidden: true
6219
- }, {
6220
- title: t('backoffice.table.renderjobs.columns.prompt'),
6221
- field: 'prompt',
6222
- hidden: true
6223
- }, {
6224
- title: t('backoffice.table.renderjobs.columns.originPosition'),
6225
- field: 'originPosition',
6226
- hidden: true
6227
- }, {
6228
- title: t('backoffice.table.renderjobs.columns.originRotation'),
6229
- field: 'originRotation',
6230
- hidden: true
6231
- }, {
6232
- title: t('backoffice.table.renderjobs.columns.spawnLocation'),
6233
- field: 'spawnLocation',
6234
- hidden: true
6235
- }, {
6236
- title: t('backoffice.table.renderjobs.columns.product'),
6237
- field: 'product',
6238
- hidden: true
6239
- }, {
6240
- title: t('backoffice.table.renderjobs.columns.createdBy'),
6241
- field: 'createdBy',
6242
- hidden: true
6243
- }, {
6244
- title: t('backoffice.table.renderjobs.columns.createdByEmail'),
6245
- field: 'createdByEmail',
6246
- hidden: true
6247
- }, {
6248
- title: t('backoffice.table.renderjobs.columns.organization'),
6249
- field: 'organization',
6250
- hidden: true
6251
- }, {
6252
- title: '_id',
6253
- field: '_id',
6254
- hidden: true
6255
- }, {
6256
- title: 'fileName',
6257
- field: 'fileName',
6258
- hidden: true
6259
- }, {
6260
- title: 'fileFormat',
6261
- field: 'fileFormat',
6262
- hidden: true
6263
- }, {
6264
- title: 'arViewerSetting',
6265
- field: 'arViewerSetting',
6266
- hidden: true
6267
- }, {
6268
- title: 'mediaItems',
6269
- field: 'mediaItems',
6270
- hidden: true
6271
- }, {
6272
- title: 'alternativeRendering',
6273
- field: 'alternativeRendering',
6274
- hidden: true
6275
- }, {
6276
- title: 'borderCM',
6277
- field: 'borderCM',
6278
- hidden: true
6279
- }, {
6280
- title: 'doHideShadow',
6281
- field: 'doHideShadow',
6282
- hidden: true
6283
- }, {
6284
- title: 'doRenderDoubleResolution',
6285
- field: 'doRenderDoubleResolution',
6286
- hidden: true
6287
- }, {
6288
- title: 'useTransparency',
6289
- field: 'useTransparency',
6290
- hidden: true
6291
- }, {
6292
- title: 'fileUrl',
6293
- field: 'fileUrl',
6294
- hidden: true
6295
- }, {
6296
- title: 'stateHistory',
6297
- field: 'stateHistory',
6298
- hidden: true
6299
- }, {
6300
- title: 'debugUser',
6301
- field: 'debugUser',
6302
- hidden: true
6303
- }],
6304
- apiInterface: {
6305
- read: {
6306
- list: '${mediaService}/renderjobs',
6307
- filterServerSide: true
6308
- },
6309
- update: {
6310
- url: '${mediaService}/renderjobs/{_id}',
6311
- method: 'PATCH',
6312
- jsonPatch: true
6313
- },
6314
- "delete": '${mediaService}/renderjobs/${id}'
6315
- },
6316
- bulkActions: [{
6317
- actionType: 'Modal',
6318
- type: 'Form',
6319
- id: 'FormRenderJobState',
6320
- title: t('backoffice.table.renderjobs.bulkActions.FormRenderJobState.title'),
6321
- label: t('backoffice.table.renderjobs.bulkActions.FormRenderJobState.label'),
6322
- rule: [{
6323
- match: {
6324
- sourceField: 'state'
6325
- }
6326
- }],
6327
- errorText: t('backoffice.table.renderjobs.bulkActions.FormRenderJobState.errorText'),
6328
- apiInterface: {
6329
- update: {
6330
- url: '${mediaService}/renderjobs/{_id}/state',
6331
- method: 'PATCH'
6332
- }
6333
- },
6334
- showProgressBar: true
6335
- }, {
6336
- actionType: 'Modal',
6337
- type: 'Form',
6338
- id: 'FormNameAddition',
6339
- title: t('backoffice.table.renderjobs.bulkActions.FormNameAddition.title'),
6340
- label: t('backoffice.table.renderjobs.bulkActions.FormNameAddition.label'),
6341
- errorText: t('backoffice.table.renderjobs.bulkActions.FormNameAddition.errorText'),
6342
- apiInterface: {
6343
- update: {
6344
- url: '${mediaService}/renderjobs/{_id}',
6345
- method: 'PATCH',
6346
- jsonPatch: true
6347
- }
6348
- },
6349
- rule: [{
6350
- lt: {
6351
- sourceField: 'state',
6352
- value: 3
6353
- }
6354
- }],
6355
- mapping: {
6356
- type: 'body',
6357
- map: [{
6358
- targetField: 'addition',
6359
- sourceField: 'addition'
6360
- }, {
6361
- sourceField: 'fileName',
6362
- targetField: 'fileName'
6363
- }]
6364
- },
6365
- apiCallbackMapping: {
6366
- type: 'body',
6367
- map: [{
6368
- sourceField: 'addition',
6369
- targetField: 'fileName',
6370
- setType: 'addToSourceValue'
6371
- }]
6372
- },
6373
- showProgressBar: true
6374
- }, {
6375
- actionType: 'Callback',
6376
- id: 'OpenRenderApprove',
6377
- label: t('backoffice.renderapprove.table.bulkAction.label'),
6378
- rule: [{
6379
- match: {
6380
- sourceField: 'state',
6381
- value: 7
6382
- }
6383
- }],
6384
- errorText: 'backoffice.renderapprove.table.bulkAction.errorText',
6385
- disableOnRuleMismatch: true,
6386
- callback: function callback(selectedRenderJobs) {
6387
- var renderJobIds = (selectedRenderJobs !== null && selectedRenderJobs !== void 0 ? selectedRenderJobs : []).map(function (job) {
6388
- return job === null || job === void 0 ? void 0 : job._id;
6389
- }).filter(Boolean);
6390
- if (renderJobIds.length === 0) return;
6391
- Modal$2.confirm({
6392
- title: t('backoffice.renderapprove.table.bulkAction.title'),
6393
- content: t('backoffice.renderapprove.table.bulkAction.content', {
6394
- count: renderJobIds.length
6395
- }),
6396
- okText: t('backoffice.renderapprove.table.bulkAction.okText'),
6397
- cancelText: t('backoffice.renderapprove.table.bulkAction.cancelText'),
6398
- onOk: function onOk() {
6399
- var search = "?renderJobIds=".concat(encodeURIComponent(renderJobIds.join(',')));
6400
- root.navigate("/admin/renderjobs/renderapprove".concat(search));
6401
- }
6402
- });
6403
- }
6404
- }],
6405
- deselectOnUpdate: false,
6406
- copyAction: {
6407
- apiInterface: {
6408
- create: '${mediaService}/renderjobs/${_id}/copy'
6409
- },
6410
- mapping: {
6411
- type: 'query',
6412
- map: [{
6413
- sourceField: '_id',
6414
- targetField: '_id'
6415
- }]
6416
- }
6417
- },
6418
- downloadAction: [{
6419
- actionType: 'Download',
6420
- id: 'DownloadRenderjobAction',
6421
- rule: [{
6422
- match: {
6423
- sourceField: 'state',
6424
- value: [12, 9, 8, 7]
6425
- }
6426
- }],
6427
- download: [{
6428
- type: 'request',
6429
- request: '${mediaService}/v1/assets/${mediaItems}/download',
6430
- mediaType: 'file',
6431
- mapping: {
6432
- type: 'query',
6433
- map: [{
6434
- sourceField: 'mediaItemRef',
6435
- targetField: 'mediaItems'
6436
- }]
6437
- }
6438
- }]
6439
- }],
6440
- rowAction: [{
6441
- actionType: 'Detail',
6442
- type: 'Form',
6443
- id: 'FormRenderjob',
6444
- title: t('backoffice.table.renderjobs.rowAction.FormRenderjob.title'),
6445
- description: [{
6446
- text: t('backoffice.table.renderjobs.rowAction.FormRenderjob.description.text')
6447
- }]
6448
- }, {
6449
- actionType: 'Detail',
6450
- type: 'List',
6451
- id: 'ListJobHistory',
6452
- title: t('backoffice.table.renderjobs.rowAction.ListJobHistory.title'),
6453
- label: t('backoffice.table.renderjobs.rowAction.ListJobHistory.label')
6454
- }, {
6455
- actionType: 'Detail',
6456
- type: 'ImageCropper',
6457
- id: 'CropperRenderJob',
6458
- title: t('backoffice.table.renderjobs.rowAction.CropperRenderJob.title'),
6459
- label: t('backoffice.table.renderjobs.rowAction.CropperRenderJob.label')
6460
- }, {
6461
- actionType: 'Download',
6462
- id: 'DownloadRequest',
6463
- icon: 'DownloadOutlined',
6464
- rule: [{
6465
- match: {
6466
- sourceField: 'state',
6467
- value: [5, 6, 7, 8, 9, 10, 11, 12]
6468
- }
6469
- }],
6470
- download: [{
6471
- type: 'request',
6472
- request: '${mediaService}/renderjobs/${_id}/hqRenderScript',
6473
- mapping: {
6474
- type: 'query',
6475
- map: [{
6476
- sourceField: '_id',
6477
- targetField: '_id'
6478
- }]
6479
- },
6480
- mediaType: 'json'
6481
- }]
6482
- }]
6031
+ type: 'TableRenderJobs',
6032
+ title: t('backoffice.table.renderjobs.title')
6483
6033
  },
6484
6034
  RenderApprove: {
6485
6035
  type: 'RenderApprove',
@@ -10251,7 +9801,7 @@ function loadConfiguration(t, root, config, lang, apiConfig) {
10251
9801
  tabgroup: t('backoffice.form.organizationdetails.campaignLandingPage'),
10252
9802
  type: 'colorPicker',
10253
9803
  hidden: function hidden(data) {
10254
- return (data === null || data === void 0 ? void 0 : data.type) !== 'CAMPAIGN' && (data === null || data === void 0 ? void 0 : data.type) !== 'RETAILERCHILD' && (data === null || data === void 0 ? void 0 : data.type) !== 'RETAILER' && (data === null || data === void 0 ? void 0 : data.parentType) !== 'RETAILER';
9804
+ return !showCampaignFields(data);
10255
9805
  }
10256
9806
  }, {
10257
9807
  name: ['settings', 'campaignSettings', 'theme', 'primaryColorLight'],
@@ -15114,7 +14664,7 @@ function getRenderjobMamStoragePredictionItems(t) {
15114
14664
  }];
15115
14665
  }
15116
14666
  var showCampaignFields = function showCampaignFields(data) {
15117
- return (data === null || data === void 0 ? void 0 : data.type) === 'CAMPAIGN' || (data === null || data === void 0 ? void 0 : data.type) === 'RETAILERCHILD' || (data === null || data === void 0 ? void 0 : data.type) === 'RETAILER' || (data === null || data === void 0 ? void 0 : data.parentType) === 'RETAILER';
14667
+ return (data === null || data === void 0 ? void 0 : data.type) !== 'SUPPLIER' && !((data === null || data === void 0 ? void 0 : data.parentType) === 'SUPPLIER' && (data === null || data === void 0 ? void 0 : data.type) === undefined);
15118
14668
  };
15119
14669
 
15120
14670
  function styleInject(css, ref) {
@@ -31749,15 +31299,25 @@ function useTableData (_ref) {
31749
31299
  parentData = _ref.parentData,
31750
31300
  parentMapping = _ref.parentMapping,
31751
31301
  readListUrlOverride = _ref.readListUrlOverride,
31752
- genericType = _ref.genericType;
31302
+ genericType = _ref.genericType,
31303
+ configProp = _ref.config;
31753
31304
  var root = useStore();
31754
31305
  var baseConfiguration = useMemo(function () {
31755
- return root.configurationStore.getConfiguration(id, 'Table');
31756
- }, [id, i18n.language]);
31306
+ return configProp !== null && configProp !== void 0 ? configProp : root.configurationStore.getConfiguration(id, 'Table');
31307
+ }, [id, configProp, i18n.language]);
31757
31308
  var configuration = useMemo(function () {
31758
31309
  return mergeTableConfiguration(baseConfiguration, readListUrlOverride, genericType);
31759
31310
  }, [baseConfiguration, readListUrlOverride, genericType]);
31760
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
+ }
31761
31321
  if (!readListUrlOverride) {
31762
31322
  return root.getApiHandler(id);
31763
31323
  }
@@ -31770,7 +31330,7 @@ function useTableData (_ref) {
31770
31330
  }));
31771
31331
  }
31772
31332
  return root.getApiHandler(id);
31773
- }, [id, readListUrlOverride, baseConfiguration, i18n.language, root]);
31333
+ }, [id, configProp, readListUrlOverride, baseConfiguration, i18n.language, root]);
31774
31334
  var _useState = useState(),
31775
31335
  _useState2 = _slicedToArray(_useState, 2),
31776
31336
  selectedData = _useState2[0],
@@ -32806,7 +32366,7 @@ var AGGrid = /*#__PURE__*/memo(function (_ref) {
32806
32366
  _useState2 = _slicedToArray(_useState, 2),
32807
32367
  img = _useState2[0],
32808
32368
  setImg = _useState2[1];
32809
- return /*#__PURE__*/jsx(Image, {
32369
+ return /*#__PURE__*/jsx(Image$1, {
32810
32370
  style: {
32811
32371
  height: '40px'
32812
32372
  },
@@ -36437,6 +35997,72 @@ var useLoadingModal = function useLoadingModal() {
36437
35997
  };
36438
35998
  };
36439
35999
 
36000
+ /**
36001
+ * Hook that provides a dialog to let the user choose the catalog download version (4.0 or 4.1).
36002
+ */
36003
+ var useCatalogVersionDialog = function useCatalogVersionDialog() {
36004
+ var _useTranslation = useTranslation(),
36005
+ t = _useTranslation.t;
36006
+ var _useState = useState(false),
36007
+ _useState2 = _slicedToArray(_useState, 2),
36008
+ open = _useState2[0],
36009
+ setOpen = _useState2[1];
36010
+ var _useState3 = useState('4.1'),
36011
+ _useState4 = _slicedToArray(_useState3, 2),
36012
+ version = _useState4[0],
36013
+ setVersion = _useState4[1];
36014
+ var resolveRef = useRef(null);
36015
+ var selectVersion = useCallback(function () {
36016
+ setVersion('4.1');
36017
+ setOpen(true);
36018
+ return new Promise(function (resolve) {
36019
+ resolveRef.current = resolve;
36020
+ });
36021
+ }, []);
36022
+ var handleOk = useCallback(function () {
36023
+ var _resolveRef$current;
36024
+ setOpen(false);
36025
+ (_resolveRef$current = resolveRef.current) === null || _resolveRef$current === void 0 || _resolveRef$current.call(resolveRef, version);
36026
+ resolveRef.current = null;
36027
+ }, [version]);
36028
+ var handleCancel = useCallback(function () {
36029
+ var _resolveRef$current2;
36030
+ setOpen(false);
36031
+ (_resolveRef$current2 = resolveRef.current) === null || _resolveRef$current2 === void 0 || _resolveRef$current2.call(resolveRef, undefined);
36032
+ resolveRef.current = null;
36033
+ }, []);
36034
+ var contextHolder = /*#__PURE__*/jsx(Modal$3, {
36035
+ open: open,
36036
+ title: t('backoffice.idmCatalog.download.versionDialog.title'),
36037
+ onOk: handleOk,
36038
+ onCancel: handleCancel,
36039
+ okText: t('backoffice.idmCatalog.download.versionDialog.ok'),
36040
+ cancelText: t('backoffice.idmCatalog.download.versionDialog.cancel'),
36041
+ centered: true,
36042
+ destroyOnClose: true,
36043
+ children: /*#__PURE__*/jsx(Radio$1.Group, {
36044
+ value: version,
36045
+ onChange: function onChange(e) {
36046
+ return setVersion(e.target.value);
36047
+ },
36048
+ children: /*#__PURE__*/jsxs(Space$1, {
36049
+ direction: "vertical",
36050
+ children: [/*#__PURE__*/jsx(Radio$1, {
36051
+ value: "4.1",
36052
+ children: t('backoffice.idmCatalog.download.versionDialog.v41')
36053
+ }), /*#__PURE__*/jsx(Radio$1, {
36054
+ value: "4.0",
36055
+ children: t('backoffice.idmCatalog.download.versionDialog.v40')
36056
+ })]
36057
+ })
36058
+ })
36059
+ });
36060
+ return {
36061
+ selectVersion: selectVersion,
36062
+ contextHolder: contextHolder
36063
+ };
36064
+ };
36065
+
36440
36066
  var TablePackages = observer(function () {
36441
36067
  var _root$dataStore$curre;
36442
36068
  var root = useStore();
@@ -36448,6 +36074,9 @@ var TablePackages = observer(function () {
36448
36074
  showErrorModal = modalState.showErrorModal,
36449
36075
  closeModal = modalState.closeModal,
36450
36076
  contextHolder = modalState.contextHolder;
36077
+ var _useCatalogVersionDia = useCatalogVersionDialog(),
36078
+ selectVersion = _useCatalogVersionDia.selectVersion,
36079
+ versionDialogContextHolder = _useCatalogVersionDia.contextHolder;
36451
36080
  var _useEnricherContext = useEnricherContext([]),
36452
36081
  setSelectedPackage = _useEnricherContext.setSelectedPackage;
36453
36082
  var organizationId = root.dataStore.organizationId;
@@ -36516,36 +36145,59 @@ var TablePackages = observer(function () {
36516
36145
  action: function () {
36517
36146
  var _action = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref4) {
36518
36147
  var _selectedNodes$0$data9, _selectedNodes$0$data10, _selectedNodes$0$data11, _selectedNodes$0$data12, _selectedNodes$0$data13;
36519
- var selectedNodes, url, alertTimeout, _selectedNodes$0$data14;
36148
+ var selectedNodes, major, minor, isV41, version, selected, url, alertTimeout, _selectedNodes$0$data14;
36520
36149
  return _regeneratorRuntime.wrap(function _callee$(_context) {
36521
36150
  while (1) switch (_context.prev = _context.next) {
36522
36151
  case 0:
36523
36152
  selectedNodes = _ref4.selectedNodes;
36524
- url = apiConfig.enricherService + '/packages/' + ((_selectedNodes$0$data9 = selectedNodes[0].data) === null || _selectedNodes$0$data9 === void 0 ? void 0 : _selectedNodes$0$data9._id) + '/catalog/v' + ((_selectedNodes$0$data10 = (_selectedNodes$0$data11 = selectedNodes[0].data) === null || _selectedNodes$0$data11 === void 0 ? void 0 : _selectedNodes$0$data11.major) !== null && _selectedNodes$0$data10 !== void 0 ? _selectedNodes$0$data10 : '3') + '.' + ((_selectedNodes$0$data12 = (_selectedNodes$0$data13 = selectedNodes[0].data) === null || _selectedNodes$0$data13 === void 0 ? void 0 : _selectedNodes$0$data13.minor) !== null && _selectedNodes$0$data12 !== void 0 ? _selectedNodes$0$data12 : '0'); // Show modal if download takes more than 3 seconds
36153
+ major = (_selectedNodes$0$data9 = (_selectedNodes$0$data10 = selectedNodes[0].data) === null || _selectedNodes$0$data10 === void 0 ? void 0 : _selectedNodes$0$data10.major) !== null && _selectedNodes$0$data9 !== void 0 ? _selectedNodes$0$data9 : 3;
36154
+ minor = (_selectedNodes$0$data11 = (_selectedNodes$0$data12 = selectedNodes[0].data) === null || _selectedNodes$0$data12 === void 0 ? void 0 : _selectedNodes$0$data12.minor) !== null && _selectedNodes$0$data11 !== void 0 ? _selectedNodes$0$data11 : 0;
36155
+ isV41 = Number(major) === 4 && Number(minor) === 1;
36156
+ if (!isV41) {
36157
+ _context.next = 13;
36158
+ break;
36159
+ }
36160
+ _context.next = 7;
36161
+ return selectVersion();
36162
+ case 7:
36163
+ selected = _context.sent;
36164
+ if (selected) {
36165
+ _context.next = 10;
36166
+ break;
36167
+ }
36168
+ return _context.abrupt("return");
36169
+ case 10:
36170
+ version = selected;
36171
+ _context.next = 14;
36172
+ break;
36173
+ case 13:
36174
+ version = major + '.' + minor;
36175
+ case 14:
36176
+ url = apiConfig.enricherService + '/packages/' + ((_selectedNodes$0$data13 = selectedNodes[0].data) === null || _selectedNodes$0$data13 === void 0 ? void 0 : _selectedNodes$0$data13._id) + '/catalog/v' + version; // Show modal if download takes more than 3 seconds
36525
36177
  alertTimeout = setTimeout(function () {
36526
36178
  showLoadingModal(t('backoffice.idmEnricher.export.modaltext'));
36527
36179
  }, 3000);
36528
- _context.prev = 3;
36529
- _context.next = 6;
36180
+ _context.prev = 16;
36181
+ _context.next = 19;
36530
36182
  return downloadFile(url, root.dataStore.jwt, 'application/zip', ((_selectedNodes$0$data14 = selectedNodes[0].data) === null || _selectedNodes$0$data14 === void 0 ? void 0 : _selectedNodes$0$data14.name) + '.zip');
36531
- case 6:
36183
+ case 19:
36532
36184
  closeModal();
36533
- _context.next = 12;
36185
+ _context.next = 25;
36534
36186
  break;
36535
- case 9:
36536
- _context.prev = 9;
36537
- _context.t0 = _context["catch"](3);
36187
+ case 22:
36188
+ _context.prev = 22;
36189
+ _context.t0 = _context["catch"](16);
36538
36190
  showErrorModal('File download failed:' + _context.t0);
36539
- case 12:
36540
- _context.prev = 12;
36191
+ case 25:
36192
+ _context.prev = 25;
36541
36193
  // Clear the alert timeout once the download is complete or fails
36542
36194
  clearTimeout(alertTimeout);
36543
- return _context.finish(12);
36544
- case 15:
36195
+ return _context.finish(25);
36196
+ case 28:
36545
36197
  case "end":
36546
36198
  return _context.stop();
36547
36199
  }
36548
- }, _callee, null, [[3, 9, 12, 15]]);
36200
+ }, _callee, null, [[16, 22, 25, 28]]);
36549
36201
  }));
36550
36202
  function action(_x) {
36551
36203
  return _action.apply(this, arguments);
@@ -36553,7 +36205,7 @@ var TablePackages = observer(function () {
36553
36205
  return action;
36554
36206
  }()
36555
36207
  }];
36556
- }, [apiConfig.enricherService, root.dataStore.jwt, canOpen, canDownload, getOpenIcon, getOpenTooltip, getDownloadTooltip, setSelectedPackage, showLoadingModal, showErrorModal, closeModal, t]);
36208
+ }, [apiConfig.enricherService, root.dataStore.jwt, canOpen, canDownload, getOpenIcon, getOpenTooltip, getDownloadTooltip, setSelectedPackage, showLoadingModal, showErrorModal, closeModal, selectVersion, t]);
36557
36209
  var apiInterface = useMemo(function () {
36558
36210
  return {
36559
36211
  read: apiConfig.enricherService + '/packages?organizationId=' + organizationId,
@@ -36881,7 +36533,7 @@ var TablePackages = observer(function () {
36881
36533
  rowActions: rowActions,
36882
36534
  configuration: configuration,
36883
36535
  isRowEditable: isRowEditable
36884
- }), contextHolder]
36536
+ }), contextHolder, versionDialogContextHolder]
36885
36537
  });
36886
36538
  });
36887
36539
 
@@ -41697,6 +41349,9 @@ var Catalogs = /*#__PURE__*/forwardRef(function Catalogs(_ref, ref) {
41697
41349
  showErrorModal = _useLoadingModal.showErrorModal,
41698
41350
  closeModal = _useLoadingModal.closeModal,
41699
41351
  contextHolder = _useLoadingModal.contextHolder;
41352
+ var _useCatalogVersionDia = useCatalogVersionDialog(),
41353
+ selectVersion = _useCatalogVersionDia.selectVersion,
41354
+ versionDialogContextHolder = _useCatalogVersionDia.contextHolder;
41700
41355
  var applicationData = useMemo(function () {
41701
41356
  return {
41702
41357
  organizationId: organizationId,
@@ -41715,35 +41370,57 @@ var Catalogs = /*#__PURE__*/forwardRef(function Catalogs(_ref, ref) {
41715
41370
  icon: /*#__PURE__*/jsx(DownloadOutlined$1, {}),
41716
41371
  action: function () {
41717
41372
  var _action = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref3) {
41718
- var selectedNodes, url, alertTimeout;
41373
+ var selectedNodes, _selectedNodes$0$data, major, minor, isV41, version, selected, url, alertTimeout;
41719
41374
  return _regeneratorRuntime.wrap(function _callee$(_context) {
41720
41375
  while (1) switch (_context.prev = _context.next) {
41721
41376
  case 0:
41722
41377
  selectedNodes = _ref3.selectedNodes;
41723
- url = apiConfig.idmService + '/catalogs/' + selectedNodes[0].data._id + '/complete/v' + selectedNodes[0].data.major + '.' + selectedNodes[0].data.minor;
41378
+ _selectedNodes$0$data = selectedNodes[0].data, major = _selectedNodes$0$data.major, minor = _selectedNodes$0$data.minor;
41379
+ isV41 = major === 4 && minor === 1;
41380
+ if (!isV41) {
41381
+ _context.next = 12;
41382
+ break;
41383
+ }
41384
+ _context.next = 6;
41385
+ return selectVersion();
41386
+ case 6:
41387
+ selected = _context.sent;
41388
+ if (selected) {
41389
+ _context.next = 9;
41390
+ break;
41391
+ }
41392
+ return _context.abrupt("return");
41393
+ case 9:
41394
+ version = selected;
41395
+ _context.next = 13;
41396
+ break;
41397
+ case 12:
41398
+ version = major + '.' + minor;
41399
+ case 13:
41400
+ url = apiConfig.idmService + '/catalogs/' + selectedNodes[0].data._id + '/complete/v' + version;
41724
41401
  alertTimeout = setTimeout(function () {
41725
41402
  showLoadingModal(t('backoffice.idmEnricher.export.modaltext'));
41726
41403
  }, 3000);
41727
- _context.prev = 3;
41728
- _context.next = 6;
41404
+ _context.prev = 15;
41405
+ _context.next = 18;
41729
41406
  return downloadFile(url, root.dataStore.jwt, 'application/zip', selectedNodes[0].data.name + '.zip');
41730
- case 6:
41407
+ case 18:
41731
41408
  closeModal();
41732
- _context.next = 12;
41409
+ _context.next = 24;
41733
41410
  break;
41734
- case 9:
41735
- _context.prev = 9;
41736
- _context.t0 = _context["catch"](3);
41411
+ case 21:
41412
+ _context.prev = 21;
41413
+ _context.t0 = _context["catch"](15);
41737
41414
  showErrorModal('File download failed:' + _context.t0);
41738
- case 12:
41739
- _context.prev = 12;
41415
+ case 24:
41416
+ _context.prev = 24;
41740
41417
  clearTimeout(alertTimeout);
41741
- return _context.finish(12);
41742
- case 15:
41418
+ return _context.finish(24);
41419
+ case 27:
41743
41420
  case "end":
41744
41421
  return _context.stop();
41745
41422
  }
41746
- }, _callee, null, [[3, 9, 12, 15]]);
41423
+ }, _callee, null, [[15, 21, 24, 27]]);
41747
41424
  }));
41748
41425
  function action(_x) {
41749
41426
  return _action.apply(this, arguments);
@@ -41790,7 +41467,7 @@ var Catalogs = /*#__PURE__*/forwardRef(function Catalogs(_ref, ref) {
41790
41467
  return action;
41791
41468
  }()
41792
41469
  }];
41793
- }, [setSelectedCatalog, apiConfig, showLoadingModal, showErrorModal, closeModal, t, root.dataStore.jwt]);
41470
+ }, [setSelectedCatalog, apiConfig, showLoadingModal, showErrorModal, closeModal, selectVersion, t, root.dataStore.jwt]);
41794
41471
  var configuration = useMemo(function () {
41795
41472
  var versionsBase = apiConfig.idmService + '/catalogs/${_id}/versions';
41796
41473
  var apiInterface = {
@@ -42521,7 +42198,7 @@ var Catalogs = /*#__PURE__*/forwardRef(function Catalogs(_ref, ref) {
42521
42198
  rowActions: rowActions,
42522
42199
  configuration: configuration,
42523
42200
  hooks: hooks
42524
- }), contextHolder]
42201
+ }), contextHolder, versionDialogContextHolder]
42525
42202
  });
42526
42203
  });
42527
42204
 
@@ -42543,6 +42220,9 @@ var IdmCatalogs = /*#__PURE__*/forwardRef(function IdmCatalogs(_ref, ref) {
42543
42220
  showErrorModal = _useLoadingModal.showErrorModal,
42544
42221
  closeModal = _useLoadingModal.closeModal,
42545
42222
  contextHolder = _useLoadingModal.contextHolder;
42223
+ var _useCatalogVersionDia = useCatalogVersionDialog(),
42224
+ selectVersion = _useCatalogVersionDia.selectVersion,
42225
+ versionDialogContextHolder = _useCatalogVersionDia.contextHolder;
42546
42226
  var applicationData = useMemo(function () {
42547
42227
  return {
42548
42228
  organizationId: organizationId
@@ -42580,35 +42260,57 @@ var IdmCatalogs = /*#__PURE__*/forwardRef(function IdmCatalogs(_ref, ref) {
42580
42260
  icon: /*#__PURE__*/jsx(DownloadOutlined$1, {}),
42581
42261
  action: function () {
42582
42262
  var _action = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref3) {
42583
- var selectedNodes, url, alertTimeout;
42263
+ var selectedNodes, _selectedNodes$0$data, major, minor, isV41, version, selected, url, alertTimeout;
42584
42264
  return _regeneratorRuntime.wrap(function _callee$(_context) {
42585
42265
  while (1) switch (_context.prev = _context.next) {
42586
42266
  case 0:
42587
42267
  selectedNodes = _ref3.selectedNodes;
42588
- url = apiConfig.idmService + '/catalogs/' + selectedNodes[0].data._id + '/complete/v' + selectedNodes[0].data.major + '.' + selectedNodes[0].data.minor;
42268
+ _selectedNodes$0$data = selectedNodes[0].data, major = _selectedNodes$0$data.major, minor = _selectedNodes$0$data.minor;
42269
+ isV41 = major === 4 && minor === 1;
42270
+ if (!isV41) {
42271
+ _context.next = 12;
42272
+ break;
42273
+ }
42274
+ _context.next = 6;
42275
+ return selectVersion();
42276
+ case 6:
42277
+ selected = _context.sent;
42278
+ if (selected) {
42279
+ _context.next = 9;
42280
+ break;
42281
+ }
42282
+ return _context.abrupt("return");
42283
+ case 9:
42284
+ version = selected;
42285
+ _context.next = 13;
42286
+ break;
42287
+ case 12:
42288
+ version = major + '.' + minor;
42289
+ case 13:
42290
+ url = apiConfig.idmService + '/catalogs/' + selectedNodes[0].data._id + '/complete/v' + version;
42589
42291
  alertTimeout = setTimeout(function () {
42590
42292
  showLoadingModal(t('backoffice.idmEnricher.export.modaltext'));
42591
42293
  }, 3000);
42592
- _context.prev = 3;
42593
- _context.next = 6;
42294
+ _context.prev = 15;
42295
+ _context.next = 18;
42594
42296
  return downloadFile(url, root.dataStore.jwt, 'application/zip', selectedNodes[0].data.name + '.zip');
42595
- case 6:
42297
+ case 18:
42596
42298
  closeModal();
42597
- _context.next = 12;
42299
+ _context.next = 24;
42598
42300
  break;
42599
- case 9:
42600
- _context.prev = 9;
42601
- _context.t0 = _context["catch"](3);
42301
+ case 21:
42302
+ _context.prev = 21;
42303
+ _context.t0 = _context["catch"](15);
42602
42304
  showErrorModal('File download failed:' + _context.t0);
42603
- case 12:
42604
- _context.prev = 12;
42305
+ case 24:
42306
+ _context.prev = 24;
42605
42307
  clearTimeout(alertTimeout);
42606
- return _context.finish(12);
42607
- case 15:
42308
+ return _context.finish(24);
42309
+ case 27:
42608
42310
  case "end":
42609
42311
  return _context.stop();
42610
42312
  }
42611
- }, _callee, null, [[3, 9, 12, 15]]);
42313
+ }, _callee, null, [[15, 21, 24, 27]]);
42612
42314
  }));
42613
42315
  function action(_x) {
42614
42316
  return _action.apply(this, arguments);
@@ -42655,7 +42357,7 @@ var IdmCatalogs = /*#__PURE__*/forwardRef(function IdmCatalogs(_ref, ref) {
42655
42357
  return action;
42656
42358
  }()
42657
42359
  }];
42658
- }, [setSelectedCatalog, apiConfig, showLoadingModal, showErrorModal, closeModal, t, root.dataStore.jwt]);
42360
+ }, [setSelectedCatalog, apiConfig, showLoadingModal, showErrorModal, closeModal, selectVersion, t, root.dataStore.jwt]);
42659
42361
  var contextMenuItems = useMemo(function () {
42660
42362
  var cloneCatalogItem = function cloneCatalogItem(_ref5) {
42661
42363
  var selectedNodes = _ref5.selectedNodes;
@@ -42988,7 +42690,7 @@ var IdmCatalogs = /*#__PURE__*/forwardRef(function IdmCatalogs(_ref, ref) {
42988
42690
  configuration: configuration,
42989
42691
  contextMenuItems: contextMenuItems,
42990
42692
  hooks: hooks
42991
- }), contextHolder]
42693
+ }), contextHolder, versionDialogContextHolder]
42992
42694
  });
42993
42695
  });
42994
42696
 
@@ -48343,7 +48045,8 @@ function PartlistPos(_ref) {
48343
48045
  create: apiConfig.idmService + '/catalogs/${catalogId}/partlists/${partlistId}/partlistpos',
48344
48046
  restore: apiConfig.idmService + '/catalogs/${catalogId}/partlists/${partlistId}/partlistpos',
48345
48047
  "delete": apiConfig.idmService + '/catalogs/${catalogId}/partlists/${partlistId}/partlistpos/${_id}',
48346
- update: apiConfig.idmService + '/catalogs/${catalogId}/partlists/${partlistId}/partlistpos/${_id}'
48048
+ update: apiConfig.idmService + '/catalogs/${catalogId}/partlists/${partlistId}/partlistpos/${_id}',
48049
+ bulk: apiConfig.idmService + '/catalogs/${catalogId}/partlists/${partlistId}/partlistpos/bulk'
48347
48050
  };
48348
48051
  }, []);
48349
48052
  var configuration = useMemo(function () {
@@ -50726,42 +50429,41 @@ var FileUploadWrapper = function FileUploadWrapper(_ref) {
50726
50429
  var config = root.configurationStore.getConfiguration(id);
50727
50430
  var _useState = useState([]),
50728
50431
  _useState2 = _slicedToArray(_useState, 2),
50729
- files = _useState2[0],
50730
- setFiles = _useState2[1];
50731
- var _useState3 = useState(false),
50432
+ fileList = _useState2[0],
50433
+ setFileList = _useState2[1];
50434
+ var _useState3 = useState(),
50732
50435
  _useState4 = _slicedToArray(_useState3, 2),
50733
- loading = _useState4[0],
50734
- setLoading = _useState4[1];
50436
+ selectedFile = _useState4[0],
50437
+ setSelectedFile = _useState4[1];
50438
+ var _useState5 = useState(false),
50439
+ _useState6 = _slicedToArray(_useState5, 2),
50440
+ loading = _useState6[0],
50441
+ setLoading = _useState6[1];
50735
50442
  var _useTranslation = useTranslation(),
50736
50443
  t = _useTranslation.t;
50737
- var _useState5 = useState(),
50738
- _useState6 = _slicedToArray(_useState5, 2),
50739
- success = _useState6[0],
50740
- setSuccess = _useState6[1];
50741
50444
  var _useState7 = useState(),
50742
50445
  _useState8 = _slicedToArray(_useState7, 2),
50743
- error = _useState8[0],
50744
- setError = _useState8[1];
50446
+ success = _useState8[0],
50447
+ setSuccess = _useState8[1];
50745
50448
  var _useState9 = useState(),
50746
50449
  _useState10 = _slicedToArray(_useState9, 2),
50747
- columnName = _useState10[0],
50748
- setColumnName = _useState10[1];
50749
- var _useState11 = useState(undefined),
50450
+ error = _useState10[0],
50451
+ setError = _useState10[1];
50452
+ var _useState11 = useState(),
50750
50453
  _useState12 = _slicedToArray(_useState11, 2),
50751
- response = _useState12[0],
50752
- setResponse = _useState12[1];
50753
- var handleDelete = function handleDelete(deletedFile) {
50754
- setFiles(files.filter(function (file) {
50755
- return file.file.name !== deletedFile.file.name;
50756
- }));
50757
- };
50454
+ columnName = _useState12[0],
50455
+ setColumnName = _useState12[1];
50456
+ var _useState13 = useState(undefined),
50457
+ _useState14 = _slicedToArray(_useState13, 2),
50458
+ response = _useState14[0],
50459
+ setResponse = _useState14[1];
50758
50460
  var handleSubmit = /*#__PURE__*/function () {
50759
50461
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
50760
50462
  var formData, url, _response, jsonResponse;
50761
50463
  return _regeneratorRuntime.wrap(function _callee$(_context) {
50762
50464
  while (1) switch (_context.prev = _context.next) {
50763
50465
  case 0:
50764
- if (files.length) {
50466
+ if (selectedFile) {
50765
50467
  _context.next = 3;
50766
50468
  break;
50767
50469
  }
@@ -50780,7 +50482,7 @@ var FileUploadWrapper = function FileUploadWrapper(_ref) {
50780
50482
  setSuccess(undefined);
50781
50483
  formData = new FormData();
50782
50484
  formData.append('columnName', columnName);
50783
- formData.append('file', files[0].file);
50485
+ formData.append('file', selectedFile);
50784
50486
  url = config.apiInterface;
50785
50487
  _context.prev = 13;
50786
50488
  _context.next = 16;
@@ -50811,24 +50513,25 @@ var FileUploadWrapper = function FileUploadWrapper(_ref) {
50811
50513
  case 27:
50812
50514
  jsonResponse = _context.sent;
50813
50515
  setSuccess(t('backoffice.fileupload.success'));
50814
- setFiles([]);
50516
+ setFileList([]);
50517
+ setSelectedFile(undefined);
50815
50518
  setColumnName('');
50816
50519
  setResponse(jsonResponse);
50817
- _context.next = 37;
50520
+ _context.next = 38;
50818
50521
  break;
50819
- case 34:
50820
- _context.prev = 34;
50522
+ case 35:
50523
+ _context.prev = 35;
50821
50524
  _context.t4 = _context["catch"](13);
50822
50525
  setError(_context.t4.message || t('backoffice.fileupload.error'));
50823
- case 37:
50824
- _context.prev = 37;
50526
+ case 38:
50527
+ _context.prev = 38;
50825
50528
  setLoading(false);
50826
- return _context.finish(37);
50827
- case 40:
50529
+ return _context.finish(38);
50530
+ case 41:
50828
50531
  case "end":
50829
50532
  return _context.stop();
50830
50533
  }
50831
- }, _callee, null, [[13, 34, 37, 40]]);
50534
+ }, _callee, null, [[13, 35, 38, 41]]);
50832
50535
  }));
50833
50536
  return function handleSubmit() {
50834
50537
  return _ref2.apply(this, arguments);
@@ -50855,22 +50558,31 @@ var FileUploadWrapper = function FileUploadWrapper(_ref) {
50855
50558
  }
50856
50559
  }), /*#__PURE__*/jsxs(Spin, {
50857
50560
  spinning: loading,
50858
- children: [/*#__PURE__*/jsx(DropzoneAreaBase, {
50859
- fileObjects: files,
50860
- onAdd: function onAdd(newFiles) {
50861
- setFiles([].concat(_toConsumableArray(files), _toConsumableArray(newFiles))); // Update state with new files
50862
- },
50863
- onDelete: handleDelete,
50864
- acceptedFiles: ['application/vnd.ms-excel',
50865
- // .xls
50866
- 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
50867
- // .xlsx
50868
- 'text/csv',
50869
- // .csv
50870
- '.xls', '.xlsx', '.csv'],
50871
- maxFileSize: 5000000,
50872
- showPreviewsInDropzone: true,
50873
- dropzoneText: t('fileuploadorderes.dropzoneText')
50561
+ children: [/*#__PURE__*/jsx(Upload$2.Dragger, {
50562
+ accept: ".xls,.xlsx,.csv",
50563
+ maxCount: 1,
50564
+ fileList: fileList,
50565
+ beforeUpload: function beforeUpload(file) {
50566
+ if (file.size > 5000000) {
50567
+ message.error(t('backoffice.fileupload.error'));
50568
+ return Upload$2.LIST_IGNORE;
50569
+ }
50570
+ setSelectedFile(file);
50571
+ setFileList([{
50572
+ uid: file.uid,
50573
+ name: file.name,
50574
+ status: 'done'
50575
+ }]);
50576
+ return false;
50577
+ },
50578
+ onRemove: function onRemove() {
50579
+ setSelectedFile(undefined);
50580
+ setFileList([]);
50581
+ },
50582
+ children: /*#__PURE__*/jsx("p", {
50583
+ className: "ant-upload-text",
50584
+ children: t('fileuploadorderes.dropzoneText')
50585
+ })
50874
50586
  }), /*#__PURE__*/jsx("div", {
50875
50587
  style: {
50876
50588
  marginTop: 18
@@ -52937,31 +52649,31 @@ function MetaCampaignJotformSync() {
52937
52649
  }
52938
52650
  var MetaCampaignJotformSync$1 = observer(MetaCampaignJotformSync);
52939
52651
 
52940
- var root$7 = "root-qZi3I";
52941
- var topRow = "topRow-OB0pQ";
52942
- var backButton = "backButton-ZM3wo";
52943
- var jobInfo = "jobInfo-8wPNt";
52944
- var jobInfoItem = "jobInfoItem-hk3Rb";
52945
- var jobInfoLabel = "jobInfoLabel-Btclx";
52946
- var jobInfoValue = "jobInfoValue-xANoB";
52947
- var progressSection = "progressSection-fMRn8";
52948
- var progressHeader = "progressHeader-qrEDM";
52949
- var progressPosition = "progressPosition-5eopM";
52950
- var progressPercent = "progressPercent-PdsVG";
52951
- var progressTrack = "progressTrack-S1gS1";
52952
- var progressSegment = "progressSegment-eDBeh";
52953
- var progressApproved = "progressApproved-iNJZn";
52954
- var progressRejected = "progressRejected-7UJN7";
52955
- var progressOpen = "progressOpen-q-vtv";
52956
- var bottomRow = "bottomRow-kzM6o";
52957
- var summaryStats = "summaryStats-44tNe";
52958
- var statBadge = "statBadge-2F612";
52959
- var statApproved = "statApproved-TeFyK";
52960
- var statRejected = "statRejected-yfXJq";
52961
- var statRemaining = "statRemaining-1yUpc";
52962
- var statChanged = "statChanged-WAi9N";
52963
- var skipCheckbox = "skipCheckbox-LKckf";
52964
- 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";
52652
+ var root$7 = "root-7Tfio";
52653
+ var topRow = "topRow-PBU6G";
52654
+ var backButton = "backButton-FAXI7";
52655
+ var jobInfo = "jobInfo-M65Y0";
52656
+ var jobInfoItem = "jobInfoItem-OYxkA";
52657
+ var jobInfoLabel = "jobInfoLabel-MH1sL";
52658
+ var jobInfoValue = "jobInfoValue-En0nn";
52659
+ var progressSection = "progressSection-jDlWb";
52660
+ var progressHeader = "progressHeader-dJp1s";
52661
+ var progressPosition = "progressPosition-3DTnf";
52662
+ var progressPercent = "progressPercent-0D8b-";
52663
+ var progressTrack = "progressTrack-45tuc";
52664
+ var progressSegment = "progressSegment-eXone";
52665
+ var progressApproved = "progressApproved-JbJR1";
52666
+ var progressRejected = "progressRejected-qGOTN";
52667
+ var progressOpen = "progressOpen-oWm4h";
52668
+ var bottomRow = "bottomRow-j2rQ-";
52669
+ var summaryStats = "summaryStats-jvqoJ";
52670
+ var statBadge = "statBadge-xOJvU";
52671
+ var statApproved = "statApproved-XaXrf";
52672
+ var statRejected = "statRejected-xIvPi";
52673
+ var statRemaining = "statRemaining-lhHD1";
52674
+ var statChanged = "statChanged-Yi-hD";
52675
+ var skipCheckbox = "skipCheckbox-6f6xL";
52676
+ 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";
52965
52677
  styleInject(css_248z$k);
52966
52678
 
52967
52679
  function buildInfoItems(job) {
@@ -53101,15 +52813,15 @@ function SessionHeader(_ref) {
53101
52813
  });
53102
52814
  }
53103
52815
 
53104
- var root$6 = "root-sKepy";
53105
- var header = "header-po1yY";
53106
- var content$1 = "content--O6Lw";
53107
- var contentImage = "contentImage-pYzTb";
53108
- var contentAr = "contentAr-mN2Zf";
53109
- var image$1 = "image-A5M7-";
53110
- var imageLoaded = "imageLoaded-V4fd-";
53111
- var imageClickable = "imageClickable-O-9TC";
53112
- 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";
52816
+ var root$6 = "root-bbDdW";
52817
+ var header = "header--owh8";
52818
+ var content$1 = "content-q2m1c";
52819
+ var contentImage = "contentImage-vn5YC";
52820
+ var contentAr = "contentAr-iUuog";
52821
+ var image$1 = "image-UQwwt";
52822
+ var imageLoaded = "imageLoaded--oFrG";
52823
+ var imageClickable = "imageClickable-9AVC0";
52824
+ 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";
53113
52825
  styleInject(css_248z$j);
53114
52826
 
53115
52827
  function isAr$1(media) {
@@ -53215,9 +52927,9 @@ function ImagePanel(_ref) {
53215
52927
  });
53216
52928
  }
53217
52929
 
53218
- var root$5 = "root-POW7v";
53219
- var swiper = "swiper-HMX89";
53220
- 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";
52930
+ var root$5 = "root-iS23R";
52931
+ var swiper = "swiper-3uKmT";
52932
+ 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";
53221
52933
  styleInject(css_248z$i);
53222
52934
 
53223
52935
  /**
@@ -53278,17 +52990,17 @@ function LeftSlider(_ref) {
53278
52990
  });
53279
52991
  }
53280
52992
 
53281
- var root$4 = "root-LGYaK";
53282
- var viewerPanels = "viewerPanels-5z1Fc";
53283
- var decisionOverlay = "decisionOverlay-SB2W1";
53284
- var overlayApproved = "overlayApproved-D5sTT";
53285
- var overlayRejected = "overlayRejected-dbYCZ";
53286
- var overlayChangedReadyForRenderer = "overlayChangedReadyForRenderer-frQb-";
53287
- var overlayLabel = "overlayLabel-evTkb";
53288
- var overlayLabelApproved = "overlayLabelApproved-Qt93C";
53289
- var overlayLabelRejected = "overlayLabelRejected-x8GSu";
53290
- var overlayLabelChangedReadyForRenderer = "overlayLabelChangedReadyForRenderer-qRLcy";
53291
- 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";
52993
+ var root$4 = "root-16ADu";
52994
+ var viewerPanels = "viewerPanels-Lntpx";
52995
+ var decisionOverlay = "decisionOverlay-8mr9P";
52996
+ var overlayApproved = "overlayApproved-hAkZi";
52997
+ var overlayRejected = "overlayRejected-UqBPC";
52998
+ var overlayChangedReadyForRenderer = "overlayChangedReadyForRenderer-ignKB";
52999
+ var overlayLabel = "overlayLabel-MfzIQ";
53000
+ var overlayLabelApproved = "overlayLabelApproved-Dn09n";
53001
+ var overlayLabelRejected = "overlayLabelRejected-IdRHs";
53002
+ var overlayLabelChangedReadyForRenderer = "overlayLabelChangedReadyForRenderer-e7Fdw";
53003
+ 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";
53292
53004
  styleInject(css_248z$h);
53293
53005
 
53294
53006
  function SideBySideViewer(_ref) {
@@ -53344,12 +53056,12 @@ function SideBySideViewer(_ref) {
53344
53056
  });
53345
53057
  }
53346
53058
 
53347
- var root$3 = "root-xBnOW";
53348
- var item = "item-B2JHr";
53349
- var keys = "keys-Bg5oO";
53350
- var keyChip = "keyChip-RqeHp";
53351
- var label = "label-in3f5";
53352
- 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";
53059
+ var root$3 = "root-9FUw-";
53060
+ var item = "item-jn9Ok";
53061
+ var keys = "keys-ev62a";
53062
+ var keyChip = "keyChip-gS8Cz";
53063
+ var label = "label-bmm2i";
53064
+ 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";
53353
53065
  styleInject(css_248z$g);
53354
53066
 
53355
53067
  var BASE_ITEMS = [{
@@ -53416,9 +53128,9 @@ function ShortcutLegend(_ref) {
53416
53128
  });
53417
53129
  }
53418
53130
 
53419
- var root$2 = "root-QOVsq";
53420
- var legendContainer = "legendContainer-2uhkx";
53421
- 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";
53131
+ var root$2 = "root-AeU29";
53132
+ var legendContainer = "legendContainer--qZEQ";
53133
+ 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";
53422
53134
  styleInject(css_248z$f);
53423
53135
 
53424
53136
  function ActionBar(_ref) {
@@ -53430,7 +53142,8 @@ function ActionBar(_ref) {
53430
53142
  onApprove = _ref.onApprove,
53431
53143
  onReject = _ref.onReject,
53432
53144
  onPrev = _ref.onPrev,
53433
- onNext = _ref.onNext;
53145
+ onNext = _ref.onNext,
53146
+ onUpload = _ref.onUpload;
53434
53147
  var _useTranslation = useTranslation(),
53435
53148
  t = _useTranslation.t;
53436
53149
  var blocked = disabled || busy;
@@ -53464,6 +53177,18 @@ function ActionBar(_ref) {
53464
53177
  disabled: actionsBlocked || !onApprove,
53465
53178
  children: "".concat(t('backoffice.renderapprove.actions.approve'), " (Enter)")
53466
53179
  })
53180
+ }), onUpload && /*#__PURE__*/jsx(Tooltip$1, {
53181
+ title: t('backoffice.renderapprove.tooltips.upload', {
53182
+ defaultValue: 'Externes Bild hochladen'
53183
+ }),
53184
+ children: /*#__PURE__*/jsx(Button, {
53185
+ icon: /*#__PURE__*/jsx(UploadOutlined, {}),
53186
+ onClick: onUpload,
53187
+ disabled: blocked,
53188
+ children: t('backoffice.renderapprove.actions.upload', {
53189
+ defaultValue: 'Hochladen'
53190
+ })
53191
+ })
53467
53192
  })]
53468
53193
  }), /*#__PURE__*/jsx("div", {
53469
53194
  className: legendContainer,
@@ -53575,10 +53300,10 @@ var KEY_MAP = {
53575
53300
  */
53576
53301
  var UNDO_TIMEOUT_MS = 5000;
53577
53302
 
53578
- var content = "content-iN9-c";
53579
- var reasonGroup = "reasonGroup-lYcpG";
53580
- var commentInput = "commentInput-DGAxu";
53581
- 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";
53303
+ var content = "content-Zf-od";
53304
+ var reasonGroup = "reasonGroup-XDHiq";
53305
+ var commentInput = "commentInput-9VKDH";
53306
+ 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";
53582
53307
  styleInject(css_248z$e);
53583
53308
 
53584
53309
  var _REJECTION_REASONS$;
@@ -53724,30 +53449,30 @@ function RejectModal(_ref) {
53724
53449
  });
53725
53450
  }
53726
53451
 
53727
- var panelRoot = "panelRoot-AWIep";
53728
- var toolbar = "toolbar-FekpW";
53729
- var toolbarActions = "toolbarActions-2drTW";
53730
- var workspace = "workspace-Bu3fK";
53731
- var main = "main-1Mh97";
53732
- var primaryFields = "primaryFields-NF5XM";
53733
- var primaryFieldItem = "primaryFieldItem-s0HPE";
53734
- var primaryFieldLabel = "primaryFieldLabel-TBIEZ";
53735
- var primaryFieldValue = "primaryFieldValue-kbxwM";
53736
- var sidebar$1 = "sidebar-fE64h";
53737
- var sidebarDual = "sidebarDual-DNdG-";
53738
- var sidebarCollapsed$1 = "sidebarCollapsed-Ozy2s";
53739
- var sidebarInner = "sidebarInner-6o9F-";
53740
- var panelColumns = "panelColumns-Xu41x";
53741
- var panelColumnsDual = "panelColumnsDual-Ap0mc";
53742
- var sidebarTitle$1 = "sidebarTitle-sxyE6";
53743
- var section = "section-d7Cy-";
53744
- var panelSection = "panelSection-SJxK1";
53745
- var promptText = "promptText-niuC2";
53746
- var promptActions = "promptActions-usGCT";
53747
- var promptEditor = "promptEditor-0OFKp";
53748
- var promptWarning = "promptWarning-9MlhH";
53749
- var promptEditActions = "promptEditActions-g4gce";
53750
- 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";
53452
+ var panelRoot = "panelRoot-gfLcR";
53453
+ var toolbar = "toolbar-Y7oCe";
53454
+ var toolbarActions = "toolbarActions-L-u0R";
53455
+ var workspace = "workspace-4rfzU";
53456
+ var main = "main-OZ7rC";
53457
+ var primaryFields = "primaryFields-6QkPL";
53458
+ var primaryFieldItem = "primaryFieldItem-6-wLB";
53459
+ var primaryFieldLabel = "primaryFieldLabel-xmQ2Q";
53460
+ var primaryFieldValue = "primaryFieldValue-CY9eJ";
53461
+ var sidebar$1 = "sidebar-3A7Z2";
53462
+ var sidebarDual = "sidebarDual-BTYOM";
53463
+ var sidebarCollapsed$1 = "sidebarCollapsed-uMA2I";
53464
+ var sidebarInner = "sidebarInner-MpQjT";
53465
+ var panelColumns = "panelColumns-aYOq4";
53466
+ var panelColumnsDual = "panelColumnsDual-u8Gml";
53467
+ var sidebarTitle$1 = "sidebarTitle-dIltG";
53468
+ var section = "section-895Lv";
53469
+ var panelSection = "panelSection-cniRE";
53470
+ var promptText = "promptText-2-Sjb";
53471
+ var promptActions = "promptActions-QgHWm";
53472
+ var promptEditor = "promptEditor-0tZzL";
53473
+ var promptWarning = "promptWarning-OGH7p";
53474
+ var promptEditActions = "promptEditActions-bYvcD";
53475
+ 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";
53751
53476
  styleInject(css_248z$d);
53752
53477
 
53753
53478
  var BYTES_IN_KIB = 1024;
@@ -54130,9 +53855,9 @@ function MetadataPanel(_ref) {
54130
53855
  });
54131
53856
  }
54132
53857
 
54133
- var fullscreenModal = "fullscreenModal-egfju";
54134
- var image = "image-JGVCx";
54135
- 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";
53858
+ var fullscreenModal = "fullscreenModal-QnN1o";
53859
+ var image = "image-kk9AH";
53860
+ 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";
54136
53861
  styleInject(css_248z$c);
54137
53862
 
54138
53863
  function isAr(media) {
@@ -54196,9 +53921,9 @@ function FullscreenViewer(_ref) {
54196
53921
  });
54197
53922
  }
54198
53923
 
54199
- var notice = "notice-s4ApS";
54200
- var undoButton = "undoButton-jK0Jb";
54201
- 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";
53924
+ var notice = "notice-IHLLb";
53925
+ var undoButton = "undoButton-HMSsR";
53926
+ 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";
54202
53927
  styleInject(css_248z$b);
54203
53928
 
54204
53929
  var NOTIFICATION_KEY = 'renderapprove-undo';
@@ -54254,6 +53979,570 @@ function UndoNotification(_ref) {
54254
53979
  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; }
54255
53980
  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; }
54256
53981
  var LOG$6 = getLogger('Backoffice', 'RenderApprove');
53982
+ /**
53983
+ * Thin wrapper around `PATCH ${mediaService}/renderjobs/:id` with the
53984
+ * repository-wide JSON Patch envelope `{ patch: [...] }`.
53985
+ */
53986
+ function useUpdateRenderJobPatch() {
53987
+ var _root$configurationSt;
53988
+ var root = useStore();
53989
+ var baseUrl = (_root$configurationSt = root.configurationStore.apiConfig) === null || _root$configurationSt === void 0 ? void 0 : _root$configurationSt.mediaService;
53990
+ var jwt = root.dataStore.jwt;
53991
+ return useCallback(/*#__PURE__*/function () {
53992
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(id, patch) {
53993
+ var response, text, err, raw;
53994
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
53995
+ while (1) switch (_context.prev = _context.next) {
53996
+ case 0:
53997
+ if (baseUrl) {
53998
+ _context.next = 2;
53999
+ break;
54000
+ }
54001
+ throw new DivaError('Media service URL is not configured.', {
54002
+ code: 'MEDIA_SERVICE_NO_BASE_URL'
54003
+ });
54004
+ case 2:
54005
+ _context.next = 4;
54006
+ return fetch("".concat(baseUrl, "/renderjobs/").concat(encodeURIComponent(id)), {
54007
+ method: 'PATCH',
54008
+ headers: _objectSpread$g({
54009
+ 'Content-Type': 'application/json'
54010
+ }, jwt ? {
54011
+ Authorization: "Bearer ".concat(jwt)
54012
+ } : {}),
54013
+ body: JSON.stringify({
54014
+ patch: patch
54015
+ })
54016
+ });
54017
+ case 4:
54018
+ response = _context.sent;
54019
+ if (response.ok) {
54020
+ _context.next = 12;
54021
+ break;
54022
+ }
54023
+ _context.next = 8;
54024
+ return response.text()["catch"](function () {
54025
+ return '';
54026
+ });
54027
+ case 8:
54028
+ text = _context.sent;
54029
+ err = new DivaError("Renderjob patch failed: ".concat(response.status, " ").concat(response.statusText).concat(text ? " - ".concat(text) : ''), {
54030
+ code: 'MEDIA_RENDERJOB_PATCH_FAILED'
54031
+ });
54032
+ LOG$6.error(err);
54033
+ throw err;
54034
+ case 12:
54035
+ _context.next = 14;
54036
+ return response.text();
54037
+ case 14:
54038
+ raw = _context.sent;
54039
+ _context.prev = 15;
54040
+ return _context.abrupt("return", raw ? JSON.parse(raw) : undefined);
54041
+ case 19:
54042
+ _context.prev = 19;
54043
+ _context.t0 = _context["catch"](15);
54044
+ return _context.abrupt("return", undefined);
54045
+ case 22:
54046
+ case "end":
54047
+ return _context.stop();
54048
+ }
54049
+ }, _callee, null, [[15, 19]]);
54050
+ }));
54051
+ return function (_x, _x2) {
54052
+ return _ref.apply(this, arguments);
54053
+ };
54054
+ }(), [baseUrl, jwt]);
54055
+ }
54056
+
54057
+ 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; }
54058
+ 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; }
54059
+ var LOG$5 = getLogger('Backoffice', 'RenderApprove');
54060
+
54061
+ /**
54062
+ * Thin wrapper around `PATCH ${mediaService}/renderjobs/:id/state`.
54063
+ * Lives in its own hook so the session orchestrator can stay independent of
54064
+ * `useRenderJobData` (which is bound to a single currently-loaded job).
54065
+ */
54066
+ function useUpdateRenderJobState() {
54067
+ var _root$configurationSt;
54068
+ var root = useStore();
54069
+ var baseUrl = (_root$configurationSt = root.configurationStore.apiConfig) === null || _root$configurationSt === void 0 ? void 0 : _root$configurationSt.mediaService;
54070
+ var jwt = root.dataStore.jwt;
54071
+ return useCallback(/*#__PURE__*/function () {
54072
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(id, state, message, keepalive) {
54073
+ var response, text, err, raw;
54074
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
54075
+ while (1) switch (_context.prev = _context.next) {
54076
+ case 0:
54077
+ if (baseUrl) {
54078
+ _context.next = 2;
54079
+ break;
54080
+ }
54081
+ throw new DivaError('Media service URL is not configured.', {
54082
+ code: 'RENDERAPPROVE_NO_BASE_URL'
54083
+ });
54084
+ case 2:
54085
+ _context.next = 4;
54086
+ return fetch("".concat(baseUrl, "/renderjobs/").concat(encodeURIComponent(id), "/state"), _objectSpread$f({
54087
+ method: 'PATCH',
54088
+ headers: _objectSpread$f({
54089
+ 'Content-Type': 'application/json'
54090
+ }, jwt ? {
54091
+ Authorization: "Bearer ".concat(jwt)
54092
+ } : {}),
54093
+ body: JSON.stringify(_objectSpread$f({
54094
+ state: state
54095
+ }, message ? {
54096
+ message: message
54097
+ } : {}))
54098
+ }, keepalive === true ? {
54099
+ keepalive: true
54100
+ } : {}));
54101
+ case 4:
54102
+ response = _context.sent;
54103
+ if (response.ok) {
54104
+ _context.next = 12;
54105
+ break;
54106
+ }
54107
+ _context.next = 8;
54108
+ return response.text()["catch"](function () {
54109
+ return '';
54110
+ });
54111
+ case 8:
54112
+ text = _context.sent;
54113
+ err = new DivaError("State update failed: ".concat(response.status, " ").concat(response.statusText).concat(text ? " - ".concat(text) : ''), {
54114
+ code: 'RENDERAPPROVE_UPDATE_STATE_FAILED'
54115
+ });
54116
+ LOG$5.error(err);
54117
+ throw err;
54118
+ case 12:
54119
+ _context.next = 14;
54120
+ return response.text();
54121
+ case 14:
54122
+ raw = _context.sent;
54123
+ _context.prev = 15;
54124
+ return _context.abrupt("return", raw ? JSON.parse(raw) : undefined);
54125
+ case 19:
54126
+ _context.prev = 19;
54127
+ _context.t0 = _context["catch"](15);
54128
+ return _context.abrupt("return", undefined);
54129
+ case 22:
54130
+ case "end":
54131
+ return _context.stop();
54132
+ }
54133
+ }, _callee, null, [[15, 19]]);
54134
+ }));
54135
+ return function (_x, _x2, _x3, _x4) {
54136
+ return _ref.apply(this, arguments);
54137
+ };
54138
+ }(), [baseUrl, jwt]);
54139
+ }
54140
+
54141
+ function getImageDimensions(file) {
54142
+ return new Promise(function (resolve, reject) {
54143
+ var url = URL.createObjectURL(file);
54144
+ var img = new Image();
54145
+ img.onload = function () {
54146
+ resolve({
54147
+ width: img.naturalWidth,
54148
+ height: img.naturalHeight
54149
+ });
54150
+ URL.revokeObjectURL(url);
54151
+ };
54152
+ img.onerror = function () {
54153
+ URL.revokeObjectURL(url);
54154
+ reject(new Error('Could not read image dimensions'));
54155
+ };
54156
+ img.src = url;
54157
+ });
54158
+ }
54159
+
54160
+ /**
54161
+ * Validates the file against the render job's expected format and resolution.
54162
+ * Returns a list of human-readable warning strings (empty = no deviations).
54163
+ * Exported so the modal can run pre-upload validation on file selection.
54164
+ */
54165
+ function validateImageFile(_x, _x2, _x3) {
54166
+ return _validateImageFile.apply(this, arguments);
54167
+ }
54168
+ function _validateImageFile() {
54169
+ _validateImageFile = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(file, job, t) {
54170
+ var _file$name$split$pop$2, _file$name$split$pop2, _job$fileFormat$toLow2, _job$fileFormat2;
54171
+ var warnings, fileExt, expectedExt, parts, expectedW, expectedH, _yield$getImageDimens, width, height;
54172
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
54173
+ while (1) switch (_context2.prev = _context2.next) {
54174
+ case 0:
54175
+ warnings = [];
54176
+ 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 : '';
54177
+ 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 : '';
54178
+ if (expectedExt && fileExt !== expectedExt) {
54179
+ warnings.push(t('backoffice.table.renderapprove.upload.validation.fileTypeDeviation', {
54180
+ expected: expectedExt,
54181
+ actual: fileExt
54182
+ }));
54183
+ }
54184
+ if (!job.renderResolution) {
54185
+ _context2.next = 21;
54186
+ break;
54187
+ }
54188
+ parts = job.renderResolution.toLowerCase().split('x');
54189
+ if (!(parts.length === 2)) {
54190
+ _context2.next = 21;
54191
+ break;
54192
+ }
54193
+ expectedW = parseInt(parts[0], 10);
54194
+ expectedH = parseInt(parts[1], 10);
54195
+ if (!(!isNaN(expectedW) && !isNaN(expectedH))) {
54196
+ _context2.next = 21;
54197
+ break;
54198
+ }
54199
+ _context2.prev = 10;
54200
+ _context2.next = 13;
54201
+ return getImageDimensions(file);
54202
+ case 13:
54203
+ _yield$getImageDimens = _context2.sent;
54204
+ width = _yield$getImageDimens.width;
54205
+ height = _yield$getImageDimens.height;
54206
+ if (width !== expectedW || height !== expectedH) {
54207
+ warnings.push(t('backoffice.table.renderapprove.upload.validation.resolutionDeviation', {
54208
+ expected: job.renderResolution,
54209
+ actual: "".concat(width, "x").concat(height)
54210
+ }));
54211
+ }
54212
+ _context2.next = 21;
54213
+ break;
54214
+ case 19:
54215
+ _context2.prev = 19;
54216
+ _context2.t0 = _context2["catch"](10);
54217
+ case 21:
54218
+ return _context2.abrupt("return", warnings);
54219
+ case 22:
54220
+ case "end":
54221
+ return _context2.stop();
54222
+ }
54223
+ }, _callee2, null, [[10, 19]]);
54224
+ }));
54225
+ return _validateImageFile.apply(this, arguments);
54226
+ }
54227
+ function useUploadRenderJobImage() {
54228
+ var _root$configurationSt, _root$configurationSt2, _root$dataStore$jwt;
54229
+ var _useTranslation = useTranslation(),
54230
+ t = _useTranslation.t;
54231
+ var root = useStore();
54232
+ 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 : '';
54233
+ var jwt = (_root$dataStore$jwt = root.dataStore.jwt) !== null && _root$dataStore$jwt !== void 0 ? _root$dataStore$jwt : '';
54234
+ var patchJob = useUpdateRenderJobPatch();
54235
+ var updateState = useUpdateRenderJobState();
54236
+ var _useState = useState(false),
54237
+ _useState2 = _slicedToArray(_useState, 2),
54238
+ uploading = _useState2[0],
54239
+ setUploading = _useState2[1];
54240
+ var _useState3 = useState(null),
54241
+ _useState4 = _slicedToArray(_useState3, 2),
54242
+ error = _useState4[0],
54243
+ setError = _useState4[1];
54244
+ var upload = useCallback(/*#__PURE__*/function () {
54245
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(file, job) {
54246
+ 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;
54247
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
54248
+ while (1) switch (_context.prev = _context.next) {
54249
+ case 0:
54250
+ setUploading(true);
54251
+ setError(null);
54252
+ _context.prev = 2;
54253
+ 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$ : '';
54254
+ 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 : '';
54255
+ typeDeviates = Boolean(expectedExt && fileExt !== expectedExt);
54256
+ dimsDeviate = false;
54257
+ if (!job.renderResolution) {
54258
+ _context.next = 22;
54259
+ break;
54260
+ }
54261
+ parts = job.renderResolution.toLowerCase().split('x');
54262
+ if (!(parts.length === 2)) {
54263
+ _context.next = 22;
54264
+ break;
54265
+ }
54266
+ expectedW = parseInt(parts[0], 10);
54267
+ expectedH = parseInt(parts[1], 10);
54268
+ if (!(!isNaN(expectedW) && !isNaN(expectedH))) {
54269
+ _context.next = 22;
54270
+ break;
54271
+ }
54272
+ _context.prev = 13;
54273
+ _context.next = 16;
54274
+ return getImageDimensions(file);
54275
+ case 16:
54276
+ actualDims = _context.sent;
54277
+ dimsDeviate = actualDims.width !== expectedW || actualDims.height !== expectedH;
54278
+ _context.next = 22;
54279
+ break;
54280
+ case 20:
54281
+ _context.prev = 20;
54282
+ _context.t0 = _context["catch"](13);
54283
+ case 22:
54284
+ // Rename to the render job's expected filename (automatic filename correction)
54285
+ correctedName = (_job$fileName = job.fileName) !== null && _job$fileName !== void 0 ? _job$fileName : file.name;
54286
+ renamedFile = new File([file], correctedName, {
54287
+ type: file.type
54288
+ });
54289
+ _context.next = 26;
54290
+ return uploadMediaItem(baseUrl, jwt, {
54291
+ organizationId: (_job$organization = job.organization) !== null && _job$organization !== void 0 ? _job$organization : '',
54292
+ file: renamedFile,
54293
+ mediaType: 'PCT',
54294
+ functionType: 'R3D'
54295
+ });
54296
+ case 26:
54297
+ result = _context.sent;
54298
+ _context.next = 29;
54299
+ return patchJob(job._id, [{
54300
+ op: 'replace',
54301
+ path: '/mediaItemRef',
54302
+ value: result.ref._id
54303
+ }]);
54304
+ case 29:
54305
+ // Build history message with deviation details
54306
+ deviations = [];
54307
+ if (typeDeviates) deviations.push(t('backoffice.table.renderapprove.upload.deviation.fileType', {
54308
+ expected: expectedExt,
54309
+ actual: fileExt
54310
+ }));
54311
+ if (dimsDeviate && actualDims) deviations.push(t('backoffice.table.renderapprove.upload.deviation.resolution', {
54312
+ expected: job.renderResolution,
54313
+ actual: "".concat(actualDims.width, "x").concat(actualDims.height)
54314
+ }));
54315
+ stateMessage = deviations.length > 0 ? t('backoffice.table.renderapprove.upload.manualUploadWithDeviations', {
54316
+ deviations: deviations.join('; ')
54317
+ }) : t('backoffice.table.renderapprove.upload.manualUpload');
54318
+ _context.next = 35;
54319
+ return updateState(job._id, RENDER_JOB_STATE.inChecking, stateMessage);
54320
+ case 35:
54321
+ _context.next = 42;
54322
+ break;
54323
+ case 37:
54324
+ _context.prev = 37;
54325
+ _context.t1 = _context["catch"](2);
54326
+ err = _context.t1;
54327
+ setError(err);
54328
+ throw err;
54329
+ case 42:
54330
+ _context.prev = 42;
54331
+ setUploading(false);
54332
+ return _context.finish(42);
54333
+ case 45:
54334
+ case "end":
54335
+ return _context.stop();
54336
+ }
54337
+ }, _callee, null, [[2, 37, 42, 45], [13, 20]]);
54338
+ }));
54339
+ return function (_x4, _x5) {
54340
+ return _ref.apply(this, arguments);
54341
+ };
54342
+ }(), [baseUrl, jwt, patchJob, updateState, t]);
54343
+ return {
54344
+ upload: upload,
54345
+ uploading: uploading,
54346
+ error: error
54347
+ };
54348
+ }
54349
+
54350
+ function UploadImageModal(_ref) {
54351
+ var open = _ref.open,
54352
+ renderJob = _ref.renderJob,
54353
+ onClose = _ref.onClose,
54354
+ onSuccess = _ref.onSuccess;
54355
+ var _useTranslation = useTranslation(),
54356
+ t = _useTranslation.t;
54357
+ var _useUploadRenderJobIm = useUploadRenderJobImage(),
54358
+ upload = _useUploadRenderJobIm.upload,
54359
+ uploading = _useUploadRenderJobIm.uploading;
54360
+ var _useState = useState(null),
54361
+ _useState2 = _slicedToArray(_useState, 2),
54362
+ selectedFile = _useState2[0],
54363
+ setSelectedFile = _useState2[1];
54364
+ var _useState3 = useState([]),
54365
+ _useState4 = _slicedToArray(_useState3, 2),
54366
+ warnings = _useState4[0],
54367
+ setWarnings = _useState4[1];
54368
+ var _useState5 = useState(false),
54369
+ _useState6 = _slicedToArray(_useState5, 2),
54370
+ validating = _useState6[0],
54371
+ setValidating = _useState6[1];
54372
+ var _useState7 = useState(null),
54373
+ _useState8 = _slicedToArray(_useState7, 2),
54374
+ uploadError = _useState8[0],
54375
+ setUploadError = _useState8[1];
54376
+ var reset = function reset() {
54377
+ setSelectedFile(null);
54378
+ setWarnings([]);
54379
+ setUploadError(null);
54380
+ };
54381
+ var handleClose = function handleClose() {
54382
+ if (uploading) return;
54383
+ reset();
54384
+ onClose();
54385
+ };
54386
+ var handleFileSelect = /*#__PURE__*/function () {
54387
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(file) {
54388
+ var w;
54389
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
54390
+ while (1) switch (_context.prev = _context.next) {
54391
+ case 0:
54392
+ setSelectedFile(file);
54393
+ setUploadError(null);
54394
+ setWarnings([]);
54395
+ if (!renderJob) {
54396
+ _context.next = 13;
54397
+ break;
54398
+ }
54399
+ setValidating(true);
54400
+ _context.prev = 5;
54401
+ _context.next = 8;
54402
+ return validateImageFile(file, renderJob, t);
54403
+ case 8:
54404
+ w = _context.sent;
54405
+ setWarnings(w);
54406
+ case 10:
54407
+ _context.prev = 10;
54408
+ setValidating(false);
54409
+ return _context.finish(10);
54410
+ case 13:
54411
+ return _context.abrupt("return", false);
54412
+ case 14:
54413
+ case "end":
54414
+ return _context.stop();
54415
+ }
54416
+ }, _callee, null, [[5,, 10, 13]]);
54417
+ }));
54418
+ return function handleFileSelect(_x) {
54419
+ return _ref2.apply(this, arguments);
54420
+ };
54421
+ }();
54422
+ var handleUpload = /*#__PURE__*/function () {
54423
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
54424
+ var _message;
54425
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
54426
+ while (1) switch (_context2.prev = _context2.next) {
54427
+ case 0:
54428
+ if (!(!selectedFile || !renderJob)) {
54429
+ _context2.next = 2;
54430
+ break;
54431
+ }
54432
+ return _context2.abrupt("return");
54433
+ case 2:
54434
+ setUploadError(null);
54435
+ _context2.prev = 3;
54436
+ _context2.next = 6;
54437
+ return upload(selectedFile, renderJob);
54438
+ case 6:
54439
+ reset();
54440
+ onSuccess === null || onSuccess === void 0 || onSuccess();
54441
+ _context2.next = 13;
54442
+ break;
54443
+ case 10:
54444
+ _context2.prev = 10;
54445
+ _context2.t0 = _context2["catch"](3);
54446
+ setUploadError((_message = _context2.t0 === null || _context2.t0 === void 0 ? void 0 : _context2.t0.message) !== null && _message !== void 0 ? _message : t('backoffice.renderapprove.uploadModal.uploadFailed', {
54447
+ defaultValue: 'Upload fehlgeschlagen'
54448
+ }));
54449
+ case 13:
54450
+ case "end":
54451
+ return _context2.stop();
54452
+ }
54453
+ }, _callee2, null, [[3, 10]]);
54454
+ }));
54455
+ return function handleUpload() {
54456
+ return _ref3.apply(this, arguments);
54457
+ };
54458
+ }();
54459
+ return /*#__PURE__*/jsx(Modal$2, {
54460
+ open: open,
54461
+ title: t('backoffice.renderapprove.uploadModal.title', {
54462
+ defaultValue: 'Bild hochladen'
54463
+ }),
54464
+ onCancel: handleClose,
54465
+ onOk: handleUpload,
54466
+ okText: t('backoffice.renderapprove.uploadModal.upload', {
54467
+ defaultValue: 'Hochladen'
54468
+ }),
54469
+ cancelText: t('backoffice.renderapprove.common.cancel', {
54470
+ defaultValue: 'Abbrechen'
54471
+ }),
54472
+ okButtonProps: {
54473
+ disabled: !selectedFile || validating,
54474
+ loading: uploading
54475
+ },
54476
+ afterClose: reset,
54477
+ destroyOnClose: true,
54478
+ children: /*#__PURE__*/jsxs(Spin, {
54479
+ spinning: validating || uploading,
54480
+ children: [/*#__PURE__*/jsxs(Upload$2.Dragger, {
54481
+ accept: "image/*",
54482
+ beforeUpload: handleFileSelect,
54483
+ maxCount: 1,
54484
+ showUploadList: !!selectedFile,
54485
+ fileList: selectedFile ? [{
54486
+ uid: '1',
54487
+ name: selectedFile.name,
54488
+ status: 'done',
54489
+ size: selectedFile.size,
54490
+ type: selectedFile.type
54491
+ }] : [],
54492
+ onRemove: function onRemove() {
54493
+ setSelectedFile(null);
54494
+ setWarnings([]);
54495
+ },
54496
+ children: [/*#__PURE__*/jsx("p", {
54497
+ className: "ant-upload-drag-icon",
54498
+ children: /*#__PURE__*/jsx(UploadOutlined, {})
54499
+ }), /*#__PURE__*/jsx("p", {
54500
+ className: "ant-upload-text",
54501
+ children: t('backoffice.renderapprove.uploadModal.dragText', {
54502
+ defaultValue: 'Datei hierher ziehen oder klicken zum Auswählen'
54503
+ })
54504
+ })]
54505
+ }), warnings.length > 0 && /*#__PURE__*/jsx(Alert, {
54506
+ style: {
54507
+ marginTop: 12
54508
+ },
54509
+ type: "warning",
54510
+ showIcon: true,
54511
+ message: t('backoffice.renderapprove.uploadModal.warningTitle', {
54512
+ defaultValue: 'Abweichung festgestellt'
54513
+ }),
54514
+ description: /*#__PURE__*/jsxs(Fragment, {
54515
+ children: [/*#__PURE__*/jsx("div", {
54516
+ children: t('backoffice.renderapprove.uploadModal.warningDescription', {
54517
+ defaultValue: 'Der Dateityp oder die Bildauflösung entspricht nicht den Vorgaben des Renderjobs. Der Upload kann trotzdem fortgesetzt werden.'
54518
+ })
54519
+ }), /*#__PURE__*/jsx("ul", {
54520
+ style: {
54521
+ marginTop: 4,
54522
+ paddingLeft: 16
54523
+ },
54524
+ children: warnings.map(function (w, i) {
54525
+ return /*#__PURE__*/jsx("li", {
54526
+ children: w
54527
+ }, i);
54528
+ })
54529
+ })]
54530
+ })
54531
+ }), uploadError && /*#__PURE__*/jsx(Alert, {
54532
+ style: {
54533
+ marginTop: 12
54534
+ },
54535
+ type: "error",
54536
+ showIcon: true,
54537
+ message: uploadError
54538
+ })]
54539
+ })
54540
+ });
54541
+ }
54542
+
54543
+ 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; }
54544
+ 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; }
54545
+ var LOG$4 = getLogger('Backoffice', 'RenderApprove');
54257
54546
  function isProcessedDecision(decision) {
54258
54547
  return decision === 'approve' || decision === 'reject' || decision === 'changedReadyForRenderer';
54259
54548
  }
@@ -54302,7 +54591,7 @@ function _fetchRenderJobState() {
54302
54591
  case 0:
54303
54592
  _context6.next = 2;
54304
54593
  return fetch("".concat(baseUrl, "/renderjobs/").concat(encodeURIComponent(id)), {
54305
- headers: _objectSpread$g({
54594
+ headers: _objectSpread$e({
54306
54595
  'Content-Type': 'application/json'
54307
54596
  }, jwt ? {
54308
54597
  Authorization: "Bearer ".concat(jwt)
@@ -54504,7 +54793,7 @@ function useRenderApproveSession(_ref) {
54504
54793
  return _context.abrupt("return");
54505
54794
  case 19:
54506
54795
  detail = (_message = _context.t0 === null || _context.t0 === void 0 ? void 0 : _context.t0.message) !== null && _message !== void 0 ? _message : 'Unknown error';
54507
- LOG$6.error(new DivaError("RenderApprove selection validation failed: ".concat(detail), {
54796
+ LOG$4.error(new DivaError("RenderApprove selection validation failed: ".concat(detail), {
54508
54797
  code: 'RENDERAPPROVE_SELECTION_INVALID'
54509
54798
  }));
54510
54799
  setIds([]);
@@ -54552,7 +54841,7 @@ function useRenderApproveSession(_ref) {
54552
54841
  _context2.prev = 6;
54553
54842
  _context2.t0 = _context2["catch"](1);
54554
54843
  detail = (_message2 = _context2.t0 === null || _context2.t0 === void 0 ? void 0 : _context2.t0.message) !== null && _message2 !== void 0 ? _message2 : 'Unknown error';
54555
- LOG$6.error(new DivaError("RenderApprove deferred flush failed for ".concat(pending.jobId, ": ").concat(detail), {
54844
+ LOG$4.error(new DivaError("RenderApprove deferred flush failed for ".concat(pending.jobId, ": ").concat(detail), {
54556
54845
  code: 'RENDERAPPROVE_FLUSH_FAILED'
54557
54846
  }));
54558
54847
  message.error(t('backoffice.renderapprove.messages.pendingActionSaveFailed', {
@@ -54652,7 +54941,7 @@ function useRenderApproveSession(_ref) {
54652
54941
  return _context3.abrupt("return");
54653
54942
  case 2:
54654
54943
  previousDecision = decisions[currentId];
54655
- nextDecisions = _objectSpread$g(_objectSpread$g({}, decisions), {}, _defineProperty({}, currentId, 'approve'));
54944
+ nextDecisions = _objectSpread$e(_objectSpread$e({}, decisions), {}, _defineProperty({}, currentId, 'approve'));
54656
54945
  enqueuePending({
54657
54946
  jobId: currentId,
54658
54947
  action: 'approve',
@@ -54684,7 +54973,7 @@ function useRenderApproveSession(_ref) {
54684
54973
  return _context4.abrupt("return");
54685
54974
  case 2:
54686
54975
  previousDecision = decisions[currentId];
54687
- nextDecisions = _objectSpread$g(_objectSpread$g({}, decisions), {}, _defineProperty({}, currentId, 'reject'));
54976
+ nextDecisions = _objectSpread$e(_objectSpread$e({}, decisions), {}, _defineProperty({}, currentId, 'reject'));
54688
54977
  enqueuePending({
54689
54978
  jobId: currentId,
54690
54979
  action: 'reject',
@@ -54710,7 +54999,7 @@ function useRenderApproveSession(_ref) {
54710
54999
  }(), [currentId, decisions, enqueuePending, ids, isCurrentReadOnly, safeIndex, skipProcessedJobs, t, total]);
54711
55000
  var skip = useCallback(function () {
54712
55001
  if (isEmpty || !currentId || isCurrentReadOnly) return;
54713
- var nextDecisions = _objectSpread$g(_objectSpread$g({}, decisions), {}, _defineProperty({}, currentId, 'skip'));
55002
+ var nextDecisions = _objectSpread$e(_objectSpread$e({}, decisions), {}, _defineProperty({}, currentId, 'skip'));
54714
55003
  setDecisions(nextDecisions);
54715
55004
  message.info(t('backoffice.renderapprove.messages.jobSkipped'));
54716
55005
  var next = findNextNavigableIndex(ids, safeIndex + 1, nextDecisions, skipProcessedJobs);
@@ -54718,7 +55007,7 @@ function useRenderApproveSession(_ref) {
54718
55007
  }, [currentId, decisions, ids, isCurrentReadOnly, isEmpty, safeIndex, skipProcessedJobs, t, total]);
54719
55008
  var markChangedReadyForRenderer = useCallback(function () {
54720
55009
  if (isEmpty || !currentId || isCurrentReadOnly) return;
54721
- var nextDecisions = _objectSpread$g(_objectSpread$g({}, decisions), {}, _defineProperty({}, currentId, 'changedReadyForRenderer'));
55010
+ var nextDecisions = _objectSpread$e(_objectSpread$e({}, decisions), {}, _defineProperty({}, currentId, 'changedReadyForRenderer'));
54722
55011
  setDecisions(nextDecisions);
54723
55012
  var next = findNextNavigableIndex(ids, safeIndex + 1, nextDecisions, skipProcessedJobs);
54724
55013
  setCurrentIndex(next !== null && next !== void 0 ? next : total);
@@ -54735,11 +55024,11 @@ function useRenderApproveSession(_ref) {
54735
55024
  setPendingAction(null);
54736
55025
  setDecisions(function (prev) {
54737
55026
  if (!pending.previousDecision) {
54738
- var next = _objectSpread$g({}, prev);
55027
+ var next = _objectSpread$e({}, prev);
54739
55028
  delete next[pending.jobId];
54740
55029
  return next;
54741
55030
  }
54742
- return _objectSpread$g(_objectSpread$g({}, prev), {}, _defineProperty({}, pending.jobId, pending.previousDecision));
55031
+ return _objectSpread$e(_objectSpread$e({}, prev), {}, _defineProperty({}, pending.jobId, pending.previousDecision));
54743
55032
  });
54744
55033
  setCurrentIndex(pending.indexAtAction);
54745
55034
  message.info(t('backoffice.renderapprove.messages.actionUndone'));
@@ -54822,9 +55111,9 @@ function useRenderApproveSession(_ref) {
54822
55111
  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; } } }; }
54823
55112
  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; } }
54824
55113
  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; }
54825
- 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; }
54826
- 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; }
54827
- var LOG$5 = getLogger('Backoffice', 'RenderApprove');
55114
+ 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; }
55115
+ 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; }
55116
+ var LOG$3 = getLogger('Backoffice', 'RenderApprove');
54828
55117
  function getMediaItemId(job) {
54829
55118
  var list = job === null || job === void 0 ? void 0 : job.mediaItems;
54830
55119
  if (!list || list.length === 0) return undefined;
@@ -54843,7 +55132,7 @@ function _fetchJson() {
54843
55132
  case 0:
54844
55133
  _context2.next = 2;
54845
55134
  return fetch(url, {
54846
- headers: _objectSpread$f({
55135
+ headers: _objectSpread$d({
54847
55136
  'Content-Type': 'application/json'
54848
55137
  }, jwt ? {
54849
55138
  Authorization: "Bearer ".concat(jwt)
@@ -55000,12 +55289,12 @@ function _resolveMediaItem() {
55000
55289
  return _regeneratorRuntime.wrap(function _callee4$(_context4) {
55001
55290
  while (1) switch (_context4.prev = _context4.next) {
55002
55291
  case 0:
55003
- if (!mediaItemId) {
55292
+ if (!mediaItemRef) {
55004
55293
  _context4.next = 7;
55005
55294
  break;
55006
55295
  }
55007
55296
  _context4.next = 3;
55008
- return fetchJson("".concat(baseUrl, "/v1/mediaitems/").concat(encodeURIComponent(mediaItemId)), jwt);
55297
+ return fetchJson("".concat(baseUrl, "/v1/mediaitemref/").concat(encodeURIComponent(mediaItemRef), "/mediaitem"), jwt);
55009
55298
  case 3:
55010
55299
  item = _context4.sent;
55011
55300
  media = toMedia(item);
@@ -55015,12 +55304,12 @@ function _resolveMediaItem() {
55015
55304
  }
55016
55305
  return _context4.abrupt("return", media);
55017
55306
  case 7:
55018
- if (!mediaItemRef) {
55307
+ if (!mediaItemId) {
55019
55308
  _context4.next = 14;
55020
55309
  break;
55021
55310
  }
55022
55311
  _context4.next = 10;
55023
- return fetchJson("".concat(baseUrl, "/v1/mediaitemref/").concat(encodeURIComponent(mediaItemRef), "/mediaitem"), jwt);
55312
+ return fetchJson("".concat(baseUrl, "/v1/mediaitems/").concat(encodeURIComponent(mediaItemId)), jwt);
55024
55313
  case 10:
55025
55314
  _item = _context4.sent;
55026
55315
  _media = toMedia(_item);
@@ -55039,7 +55328,7 @@ function _resolveMediaItem() {
55039
55328
  }));
55040
55329
  return _resolveMediaItem.apply(this, arguments);
55041
55330
  }
55042
- function useRenderJobData(id) {
55331
+ function useRenderJobData(id, refreshKey) {
55043
55332
  var _root$configurationSt, _root$configurationSt2;
55044
55333
  var root = useStore();
55045
55334
  var _useTranslation = useTranslation(),
@@ -55133,7 +55422,7 @@ function useRenderJobData(id) {
55133
55422
  url: null
55134
55423
  };
55135
55424
  } else {
55136
- 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));
55425
+ 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));
55137
55426
  right = {
55138
55427
  url: null
55139
55428
  };
@@ -55142,7 +55431,7 @@ function useRenderJobData(id) {
55142
55431
  if (productResult.status === 'fulfilled') {
55143
55432
  productMedia = productResult.value;
55144
55433
  } else {
55145
- 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));
55434
+ 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));
55146
55435
  }
55147
55436
  leftSlides = [left].concat(_toConsumableArray(productMedia));
55148
55437
  setImages({
@@ -55162,7 +55451,7 @@ function useRenderJobData(id) {
55162
55451
  return _context.abrupt("return");
55163
55452
  case 34:
55164
55453
  message = (_message = _context.t0 === null || _context.t0 === void 0 ? void 0 : _context.t0.message) !== null && _message !== void 0 ? _message : 'Unknown error';
55165
- LOG$5.error(new DivaError("Failed to load render job ".concat(id, ": ").concat(message), {
55454
+ LOG$3.error(new DivaError("Failed to load render job ".concat(id, ": ").concat(message), {
55166
55455
  code: 'RENDERAPPROVE_LOAD_JOB'
55167
55456
  }));
55168
55457
  setError(message);
@@ -55179,7 +55468,7 @@ function useRenderJobData(id) {
55179
55468
  return function () {
55180
55469
  cancelled = true;
55181
55470
  };
55182
- }, [id, baseUrl, catalogService, jwt, t]);
55471
+ }, [id, baseUrl, catalogService, jwt, t, refreshKey]);
55183
55472
  return useMemo(function () {
55184
55473
  return {
55185
55474
  job: job,
@@ -55190,168 +55479,6 @@ function useRenderJobData(id) {
55190
55479
  }, [job, images, loading, error]);
55191
55480
  }
55192
55481
 
55193
- 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; }
55194
- 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; }
55195
- var LOG$4 = getLogger('Backoffice', 'RenderApprove');
55196
-
55197
- /**
55198
- * Thin wrapper around `PATCH ${mediaService}/renderjobs/:id/state`.
55199
- * Lives in its own hook so the session orchestrator can stay independent of
55200
- * `useRenderJobData` (which is bound to a single currently-loaded job).
55201
- */
55202
- function useUpdateRenderJobState() {
55203
- var _root$configurationSt;
55204
- var root = useStore();
55205
- var baseUrl = (_root$configurationSt = root.configurationStore.apiConfig) === null || _root$configurationSt === void 0 ? void 0 : _root$configurationSt.mediaService;
55206
- var jwt = root.dataStore.jwt;
55207
- return useCallback(/*#__PURE__*/function () {
55208
- var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(id, state, message, keepalive) {
55209
- var response, text, err, raw;
55210
- return _regeneratorRuntime.wrap(function _callee$(_context) {
55211
- while (1) switch (_context.prev = _context.next) {
55212
- case 0:
55213
- if (baseUrl) {
55214
- _context.next = 2;
55215
- break;
55216
- }
55217
- throw new DivaError('Media service URL is not configured.', {
55218
- code: 'RENDERAPPROVE_NO_BASE_URL'
55219
- });
55220
- case 2:
55221
- _context.next = 4;
55222
- return fetch("".concat(baseUrl, "/renderjobs/").concat(encodeURIComponent(id), "/state"), _objectSpread$e({
55223
- method: 'PATCH',
55224
- headers: _objectSpread$e({
55225
- 'Content-Type': 'application/json'
55226
- }, jwt ? {
55227
- Authorization: "Bearer ".concat(jwt)
55228
- } : {}),
55229
- body: JSON.stringify(_objectSpread$e({
55230
- state: state
55231
- }, message ? {
55232
- message: message
55233
- } : {}))
55234
- }, keepalive === true ? {
55235
- keepalive: true
55236
- } : {}));
55237
- case 4:
55238
- response = _context.sent;
55239
- if (response.ok) {
55240
- _context.next = 12;
55241
- break;
55242
- }
55243
- _context.next = 8;
55244
- return response.text()["catch"](function () {
55245
- return '';
55246
- });
55247
- case 8:
55248
- text = _context.sent;
55249
- err = new DivaError("State update failed: ".concat(response.status, " ").concat(response.statusText).concat(text ? " - ".concat(text) : ''), {
55250
- code: 'RENDERAPPROVE_UPDATE_STATE_FAILED'
55251
- });
55252
- LOG$4.error(err);
55253
- throw err;
55254
- case 12:
55255
- _context.next = 14;
55256
- return response.text();
55257
- case 14:
55258
- raw = _context.sent;
55259
- _context.prev = 15;
55260
- return _context.abrupt("return", raw ? JSON.parse(raw) : undefined);
55261
- case 19:
55262
- _context.prev = 19;
55263
- _context.t0 = _context["catch"](15);
55264
- return _context.abrupt("return", undefined);
55265
- case 22:
55266
- case "end":
55267
- return _context.stop();
55268
- }
55269
- }, _callee, null, [[15, 19]]);
55270
- }));
55271
- return function (_x, _x2, _x3, _x4) {
55272
- return _ref.apply(this, arguments);
55273
- };
55274
- }(), [baseUrl, jwt]);
55275
- }
55276
-
55277
- 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; }
55278
- 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; }
55279
- var LOG$3 = getLogger('Backoffice', 'RenderApprove');
55280
- /**
55281
- * Thin wrapper around `PATCH ${mediaService}/renderjobs/:id` with the
55282
- * repository-wide JSON Patch envelope `{ patch: [...] }`.
55283
- */
55284
- function useUpdateRenderJobPatch() {
55285
- var _root$configurationSt;
55286
- var root = useStore();
55287
- var baseUrl = (_root$configurationSt = root.configurationStore.apiConfig) === null || _root$configurationSt === void 0 ? void 0 : _root$configurationSt.mediaService;
55288
- var jwt = root.dataStore.jwt;
55289
- return useCallback(/*#__PURE__*/function () {
55290
- var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(id, patch) {
55291
- var response, text, err, raw;
55292
- return _regeneratorRuntime.wrap(function _callee$(_context) {
55293
- while (1) switch (_context.prev = _context.next) {
55294
- case 0:
55295
- if (baseUrl) {
55296
- _context.next = 2;
55297
- break;
55298
- }
55299
- throw new DivaError('Media service URL is not configured.', {
55300
- code: 'RENDERAPPROVE_NO_BASE_URL'
55301
- });
55302
- case 2:
55303
- _context.next = 4;
55304
- return fetch("".concat(baseUrl, "/renderjobs/").concat(encodeURIComponent(id)), {
55305
- method: 'PATCH',
55306
- headers: _objectSpread$d({
55307
- 'Content-Type': 'application/json'
55308
- }, jwt ? {
55309
- Authorization: "Bearer ".concat(jwt)
55310
- } : {}),
55311
- body: JSON.stringify({
55312
- patch: patch
55313
- })
55314
- });
55315
- case 4:
55316
- response = _context.sent;
55317
- if (response.ok) {
55318
- _context.next = 12;
55319
- break;
55320
- }
55321
- _context.next = 8;
55322
- return response.text()["catch"](function () {
55323
- return '';
55324
- });
55325
- case 8:
55326
- text = _context.sent;
55327
- err = new DivaError("Renderjob patch failed: ".concat(response.status, " ").concat(response.statusText).concat(text ? " - ".concat(text) : ''), {
55328
- code: 'RENDERAPPROVE_PATCH_JOB_FAILED'
55329
- });
55330
- LOG$3.error(err);
55331
- throw err;
55332
- case 12:
55333
- _context.next = 14;
55334
- return response.text();
55335
- case 14:
55336
- raw = _context.sent;
55337
- _context.prev = 15;
55338
- return _context.abrupt("return", raw ? JSON.parse(raw) : undefined);
55339
- case 19:
55340
- _context.prev = 19;
55341
- _context.t0 = _context["catch"](15);
55342
- return _context.abrupt("return", undefined);
55343
- case 22:
55344
- case "end":
55345
- return _context.stop();
55346
- }
55347
- }, _callee, null, [[15, 19]]);
55348
- }));
55349
- return function (_x, _x2) {
55350
- return _ref.apply(this, arguments);
55351
- };
55352
- }(), [baseUrl, jwt]);
55353
- }
55354
-
55355
55482
  /** Return `false` when the shortcut should not run (e.g. modal open) so default browser behavior is preserved. */
55356
55483
 
55357
55484
  // RenderApprove currently only has free-typing in RejectModal's TextArea.
@@ -55438,21 +55565,21 @@ function useKeyboardShortcuts(_ref) {
55438
55565
  }, [disabled]);
55439
55566
  }
55440
55567
 
55441
- var root$1 = "root-aKShd";
55442
- var emptyStateContainer = "emptyStateContainer--GM0f";
55443
- var finishedContainer = "finishedContainer-lY-P9";
55444
- var finishedSummary = "finishedSummary-I0j--";
55445
- var finishedStats = "finishedStats-ZTCbP";
55446
- var finishedStat = "finishedStat-zC-fQ";
55447
- var finishedStatApproved = "finishedStatApproved-cewMf";
55448
- var finishedStatRejected = "finishedStatRejected-QLbLX";
55449
- var finishedStatOpen = "finishedStatOpen-5tR1r";
55450
- var finishedStatChanged = "finishedStatChanged-UCoYi";
55451
- var finishedWarning = "finishedWarning-mChts";
55452
- var finishedActions = "finishedActions-Ja-V9";
55453
- var errorAlert = "errorAlert-bRo-U";
55454
- var notFoundContainer = "notFoundContainer-g-pxe";
55455
- 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";
55568
+ var root$1 = "root-XQQT2";
55569
+ var emptyStateContainer = "emptyStateContainer-155hD";
55570
+ var finishedContainer = "finishedContainer-ius-c";
55571
+ var finishedSummary = "finishedSummary-7q4Vm";
55572
+ var finishedStats = "finishedStats-r-MZt";
55573
+ var finishedStat = "finishedStat-EXeCH";
55574
+ var finishedStatApproved = "finishedStatApproved-aumiA";
55575
+ var finishedStatRejected = "finishedStatRejected-M2PWK";
55576
+ var finishedStatOpen = "finishedStatOpen-jRasI";
55577
+ var finishedStatChanged = "finishedStatChanged-viPzT";
55578
+ var finishedWarning = "finishedWarning-JuCh0";
55579
+ var finishedActions = "finishedActions-dT6SX";
55580
+ var errorAlert = "errorAlert-d4AdZ";
55581
+ var notFoundContainer = "notFoundContainer-xbFHj";
55582
+ 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";
55456
55583
  styleInject(css_248z$a);
55457
55584
 
55458
55585
  var RENDERJOBS_PATH = '/admin/renderjobs';
@@ -55476,7 +55603,7 @@ function focusBackConfirmButton(button) {
55476
55603
  ok === null || ok === void 0 || ok.focus();
55477
55604
  }
55478
55605
  function RenderApprove() {
55479
- var _data$job, _data$images$right2, _data$images$right3;
55606
+ var _data$job, _data$images$right2, _data$images$right3, _data$job2;
55480
55607
  var store = useStore();
55481
55608
  var navigate = useNavigate();
55482
55609
  var _useTranslation = useTranslation(),
@@ -55486,7 +55613,6 @@ function RenderApprove() {
55486
55613
  var session = useRenderApproveSession({
55487
55614
  updateState: updateState
55488
55615
  });
55489
- var data = useRenderJobData(session.currentId);
55490
55616
  var _useState = useState(false),
55491
55617
  _useState2 = _slicedToArray(_useState, 2),
55492
55618
  rejectOpen = _useState2[0],
@@ -55511,6 +55637,15 @@ function RenderApprove() {
55511
55637
  _useState12 = _slicedToArray(_useState11, 2),
55512
55638
  promptRestarting = _useState12[0],
55513
55639
  setPromptRestarting = _useState12[1];
55640
+ var _useState13 = useState(false),
55641
+ _useState14 = _slicedToArray(_useState13, 2),
55642
+ uploadOpen = _useState14[0],
55643
+ setUploadOpen = _useState14[1];
55644
+ var _useState15 = useState(0),
55645
+ _useState16 = _slicedToArray(_useState15, 2),
55646
+ dataRefreshKey = _useState16[0],
55647
+ setDataRefreshKey = _useState16[1];
55648
+ var data = useRenderJobData(session.currentId, dataRefreshKey);
55514
55649
  var leftSwiperRef = useRef(null);
55515
55650
  var isAiJob = typeof ((_data$job = data.job) === null || _data$job === void 0 ? void 0 : _data$job.engine) === 'string' && data.job.engine.trim().toLowerCase() === 'ai';
55516
55651
  var closeReject = function closeReject() {
@@ -55944,7 +56079,10 @@ function RenderApprove() {
55944
56079
  },
55945
56080
  onReject: openReject,
55946
56081
  onPrev: session.goPrev,
55947
- onNext: session.goNext
56082
+ onNext: session.goNext,
56083
+ onUpload: function onUpload() {
56084
+ return setUploadOpen(true);
56085
+ }
55948
56086
  })]
55949
56087
  })]
55950
56088
  }), /*#__PURE__*/jsx(RejectModal, {
@@ -55952,6 +56090,18 @@ function RenderApprove() {
55952
56090
  loading: session.isUpdating,
55953
56091
  onCancel: closeReject,
55954
56092
  onConfirm: onRejectConfirm
56093
+ }), /*#__PURE__*/jsx(UploadImageModal, {
56094
+ open: uploadOpen,
56095
+ renderJob: (_data$job2 = data.job) !== null && _data$job2 !== void 0 ? _data$job2 : null,
56096
+ onClose: function onClose() {
56097
+ return setUploadOpen(false);
56098
+ },
56099
+ onSuccess: function onSuccess() {
56100
+ setUploadOpen(false);
56101
+ setDataRefreshKey(function (k) {
56102
+ return k + 1;
56103
+ });
56104
+ }
55955
56105
  }), /*#__PURE__*/jsx(FullscreenViewer, {
55956
56106
  open: fullscreenSide !== null,
55957
56107
  media: fullscreenMedia,
@@ -55964,6 +56114,509 @@ function RenderApprove() {
55964
56114
  });
55965
56115
  }
55966
56116
 
56117
+ function createTableRenderJobsConfig(t, root, onUploadRenderJob) {
56118
+ return {
56119
+ title: t('backoffice.table.renderjobs.title'),
56120
+ type: 'TableRenderJobs',
56121
+ canRefresh: true,
56122
+ columns: [{
56123
+ title: t('backoffice.table.renderjobs.columns.title'),
56124
+ field: 'notes',
56125
+ type: 'icon',
56126
+ iconMapping: [{
56127
+ icon: 'StopFilled',
56128
+ value: 0,
56129
+ message: t('backoffice.table.renderjobs.columns.iconmapping.renderjobold')
56130
+ }, {
56131
+ icon: 'ExclamationCircleFilled',
56132
+ message: t('backoffice.table.renderjobs.columns.iconmapping.renderjobchangedoptions'),
56133
+ value: 1
56134
+ }],
56135
+ sorter: 2,
56136
+ width: 100,
56137
+ align: 'center',
56138
+ closeIcon: true
56139
+ }, {
56140
+ title: t('backoffice.table.renderjobs.columns.state'),
56141
+ field: 'state',
56142
+ sorter: 1,
56143
+ color: [{
56144
+ color: 'yellow',
56145
+ onValues: ['Warning', 7],
56146
+ operations: ['ct', 'eq'],
56147
+ fields: ['stateHistory', 'state']
56148
+ }, {
56149
+ color: 'red',
56150
+ onValues: ['Threat', 7],
56151
+ operations: ['ct', 'eq'],
56152
+ fields: ['stateHistory', 'state']
56153
+ }],
56154
+ filter: {
56155
+ type: 'multiselect',
56156
+ values: [{
56157
+ value: 0,
56158
+ label: 'renderjob.state.0'
56159
+ }, {
56160
+ value: 1,
56161
+ label: 'renderjob.state.1'
56162
+ }, {
56163
+ value: 2,
56164
+ label: 'renderjob.state.2'
56165
+ }, {
56166
+ value: 3,
56167
+ label: 'renderjob.state.3'
56168
+ }, {
56169
+ value: 4,
56170
+ label: 'renderjob.state.4'
56171
+ }, {
56172
+ value: 5,
56173
+ label: 'renderjob.state.5'
56174
+ }, {
56175
+ value: 6,
56176
+ label: 'renderjob.state.6'
56177
+ }, {
56178
+ value: 7,
56179
+ label: 'renderjob.state.7'
56180
+ }, {
56181
+ value: 8,
56182
+ label: 'renderjob.state.8'
56183
+ }, {
56184
+ value: 9,
56185
+ label: 'renderjob.state.9'
56186
+ }, {
56187
+ value: 10,
56188
+ label: 'renderjob.state.10'
56189
+ }, {
56190
+ value: 11,
56191
+ label: 'renderjob.state.11'
56192
+ }, {
56193
+ value: 12,
56194
+ label: 'renderjob.state.12'
56195
+ }]
56196
+ },
56197
+ width: 200,
56198
+ translationPrefix: 'renderjob.state',
56199
+ type: 'string'
56200
+ }, {
56201
+ title: t('backoffice.table.renderjobs.columns.priority'),
56202
+ sorter: 2,
56203
+ filter: 'advanced',
56204
+ field: 'priority',
56205
+ width: 110
56206
+ }, {
56207
+ title: t('backoffice.table.renderjobs.columns.divaNr'),
56208
+ field: 'divaNr',
56209
+ filter: 'advanced',
56210
+ sorter: 2,
56211
+ width: 150
56212
+ }, {
56213
+ title: t('backoffice.table.renderjobs.columns.VariantId'),
56214
+ field: 'divaNrVariantId',
56215
+ filter: 'advanced',
56216
+ sorter: 2,
56217
+ width: 150
56218
+ }, {
56219
+ title: t('backoffice.table.renderjobs.columns.fileUrl'),
56220
+ field: 'mediaItemRef',
56221
+ width: 99,
56222
+ type: 'mediaItem',
56223
+ mediaItemViewerIdMode: 'ref',
56224
+ align: 'center'
56225
+ }, {
56226
+ title: t('backoffice.table.renderjobs.columns.realTimeRenderUrl'),
56227
+ field: 'realTimeRenderUrl',
56228
+ width: 99,
56229
+ type: 'media',
56230
+ align: 'center'
56231
+ }, {
56232
+ title: t('backoffice.table.renderjobs.columns.job'),
56233
+ field: 'job',
56234
+ sorter: 3,
56235
+ filter: 'advanced',
56236
+ width: 200
56237
+ }, {
56238
+ title: t('backoffice.table.renderjobs.columns.fileName'),
56239
+ field: 'fileName',
56240
+ sorter: 3,
56241
+ filter: 'advanced',
56242
+ width: 200
56243
+ }, {
56244
+ title: t('backoffice.table.renderjobs.columns.group'),
56245
+ field: 'group',
56246
+ sorter: 11,
56247
+ filter: 'advanced',
56248
+ width: 300
56249
+ }, {
56250
+ title: t('backoffice.table.renderjobs.columns.viewPoint'),
56251
+ field: 'viewPoint',
56252
+ sorter: 4,
56253
+ filter: 'advanced',
56254
+ width: 300
56255
+ }, {
56256
+ title: t('backoffice.table.renderjobs.columns.renderScene'),
56257
+ field: 'renderScene',
56258
+ sorter: 10,
56259
+ filter: 'advanced',
56260
+ width: 300
56261
+ }, {
56262
+ title: t('backoffice.table.renderjobs.columns.engine'),
56263
+ field: 'engine',
56264
+ sorter: 10,
56265
+ filter: 'advanced',
56266
+ width: 300
56267
+ }, {
56268
+ title: t('backoffice.table.renderjobs.columns.supplierName'),
56269
+ field: 'supplierName',
56270
+ width: 300,
56271
+ sorter: 11,
56272
+ filter: 'advanced'
56273
+ }, {
56274
+ title: t('backoffice.table.renderjobs.columns.catalogName'),
56275
+ field: 'catalogName',
56276
+ sorter: 14,
56277
+ filter: 'advanced',
56278
+ width: 300
56279
+ }, {
56280
+ title: t('backoffice.table.renderjobs.columns.organizationName'),
56281
+ field: 'organizationName',
56282
+ sorter: 13,
56283
+ filter: 'advanced',
56284
+ width: 400
56285
+ }, {
56286
+ title: t('backoffice.table.renderjobs.columns.createdByName'),
56287
+ field: 'createdByName',
56288
+ sorter: 14,
56289
+ filter: 'advanced',
56290
+ width: 200
56291
+ }, {
56292
+ title: t('backoffice.table.renderjobs.columns.lastUpdated'),
56293
+ field: 'lastUpdated',
56294
+ sorter: 15,
56295
+ type: 'unixTimeStamp',
56296
+ defaultSortOrder: 'descend',
56297
+ filter: 'interval',
56298
+ width: 200
56299
+ }, {
56300
+ title: t('backoffice.table.renderjobs.columns.dracoCompression'),
56301
+ field: 'dracoCompression',
56302
+ hidden: true
56303
+ }, {
56304
+ title: t('backoffice.table.renderjobs.columns.additionalPrompt'),
56305
+ field: 'additionalPrompt',
56306
+ hidden: true
56307
+ }, {
56308
+ title: t('backoffice.table.renderjobs.columns.prompt'),
56309
+ field: 'prompt',
56310
+ hidden: true
56311
+ }, {
56312
+ title: t('backoffice.table.renderjobs.columns.originPosition'),
56313
+ field: 'originPosition',
56314
+ hidden: true
56315
+ }, {
56316
+ title: t('backoffice.table.renderjobs.columns.originRotation'),
56317
+ field: 'originRotation',
56318
+ hidden: true
56319
+ }, {
56320
+ title: t('backoffice.table.renderjobs.columns.spawnLocation'),
56321
+ field: 'spawnLocation',
56322
+ hidden: true
56323
+ }, {
56324
+ title: t('backoffice.table.renderjobs.columns.product'),
56325
+ field: 'product',
56326
+ hidden: true
56327
+ }, {
56328
+ title: t('backoffice.table.renderjobs.columns.createdBy'),
56329
+ field: 'createdBy',
56330
+ hidden: true
56331
+ }, {
56332
+ title: t('backoffice.table.renderjobs.columns.createdByEmail'),
56333
+ field: 'createdByEmail',
56334
+ hidden: true
56335
+ }, {
56336
+ title: t('backoffice.table.renderjobs.columns.organization'),
56337
+ field: 'organization',
56338
+ hidden: true
56339
+ }, {
56340
+ title: '_id',
56341
+ field: '_id',
56342
+ hidden: true
56343
+ }, {
56344
+ title: 'fileName',
56345
+ field: 'fileName',
56346
+ hidden: true
56347
+ }, {
56348
+ title: 'fileFormat',
56349
+ field: 'fileFormat',
56350
+ hidden: true
56351
+ }, {
56352
+ title: 'arViewerSetting',
56353
+ field: 'arViewerSetting',
56354
+ hidden: true
56355
+ }, {
56356
+ title: 'mediaItems',
56357
+ field: 'mediaItems',
56358
+ hidden: true
56359
+ }, {
56360
+ title: 'alternativeRendering',
56361
+ field: 'alternativeRendering',
56362
+ hidden: true
56363
+ }, {
56364
+ title: 'borderCM',
56365
+ field: 'borderCM',
56366
+ hidden: true
56367
+ }, {
56368
+ title: 'doHideShadow',
56369
+ field: 'doHideShadow',
56370
+ hidden: true
56371
+ }, {
56372
+ title: 'doRenderDoubleResolution',
56373
+ field: 'doRenderDoubleResolution',
56374
+ hidden: true
56375
+ }, {
56376
+ title: 'useTransparency',
56377
+ field: 'useTransparency',
56378
+ hidden: true
56379
+ }, {
56380
+ title: 'fileUrl',
56381
+ field: 'fileUrl',
56382
+ hidden: true
56383
+ }, {
56384
+ title: 'stateHistory',
56385
+ field: 'stateHistory',
56386
+ hidden: true
56387
+ }, {
56388
+ title: 'debugUser',
56389
+ field: 'debugUser',
56390
+ hidden: true
56391
+ }],
56392
+ apiInterface: {
56393
+ read: {
56394
+ list: '${mediaService}/renderjobs',
56395
+ filterServerSide: true
56396
+ },
56397
+ update: {
56398
+ url: '${mediaService}/renderjobs/{_id}',
56399
+ method: 'PATCH',
56400
+ jsonPatch: true
56401
+ },
56402
+ "delete": '${mediaService}/renderjobs/${id}'
56403
+ },
56404
+ bulkActions: [{
56405
+ actionType: 'Modal',
56406
+ type: 'Form',
56407
+ id: 'FormRenderJobState',
56408
+ title: t('backoffice.table.renderjobs.bulkActions.FormRenderJobState.title'),
56409
+ label: t('backoffice.table.renderjobs.bulkActions.FormRenderJobState.label'),
56410
+ rule: [{
56411
+ match: {
56412
+ sourceField: 'state'
56413
+ }
56414
+ }],
56415
+ errorText: t('backoffice.table.renderjobs.bulkActions.FormRenderJobState.errorText'),
56416
+ apiInterface: {
56417
+ update: {
56418
+ url: '${mediaService}/renderjobs/{_id}/state',
56419
+ method: 'PATCH'
56420
+ }
56421
+ },
56422
+ showProgressBar: true
56423
+ }, {
56424
+ actionType: 'Modal',
56425
+ type: 'Form',
56426
+ id: 'FormNameAddition',
56427
+ title: t('backoffice.table.renderjobs.bulkActions.FormNameAddition.title'),
56428
+ label: t('backoffice.table.renderjobs.bulkActions.FormNameAddition.label'),
56429
+ errorText: t('backoffice.table.renderjobs.bulkActions.FormNameAddition.errorText'),
56430
+ apiInterface: {
56431
+ update: {
56432
+ url: '${mediaService}/renderjobs/{_id}',
56433
+ method: 'PATCH',
56434
+ jsonPatch: true
56435
+ }
56436
+ },
56437
+ rule: [{
56438
+ lt: {
56439
+ sourceField: 'state',
56440
+ value: 3
56441
+ }
56442
+ }],
56443
+ mapping: {
56444
+ type: 'body',
56445
+ map: [{
56446
+ targetField: 'addition',
56447
+ sourceField: 'addition'
56448
+ }, {
56449
+ sourceField: 'fileName',
56450
+ targetField: 'fileName'
56451
+ }]
56452
+ },
56453
+ apiCallbackMapping: {
56454
+ type: 'body',
56455
+ map: [{
56456
+ sourceField: 'addition',
56457
+ targetField: 'fileName',
56458
+ setType: 'addToSourceValue'
56459
+ }]
56460
+ },
56461
+ showProgressBar: true
56462
+ }, {
56463
+ actionType: 'Callback',
56464
+ id: 'OpenRenderApprove',
56465
+ label: t('backoffice.renderapprove.table.bulkAction.label'),
56466
+ rule: [{
56467
+ match: {
56468
+ sourceField: 'state',
56469
+ value: 7
56470
+ }
56471
+ }],
56472
+ errorText: 'backoffice.renderapprove.table.bulkAction.errorText',
56473
+ disableOnRuleMismatch: true,
56474
+ callback: function callback(selectedRenderJobs) {
56475
+ var renderJobIds = (selectedRenderJobs !== null && selectedRenderJobs !== void 0 ? selectedRenderJobs : []).map(function (job) {
56476
+ return job === null || job === void 0 ? void 0 : job._id;
56477
+ }).filter(Boolean);
56478
+ if (renderJobIds.length === 0) return;
56479
+ Modal$2.confirm({
56480
+ title: t('backoffice.renderapprove.table.bulkAction.title'),
56481
+ content: t('backoffice.renderapprove.table.bulkAction.content', {
56482
+ count: renderJobIds.length
56483
+ }),
56484
+ okText: t('backoffice.renderapprove.table.bulkAction.okText'),
56485
+ cancelText: t('backoffice.renderapprove.table.bulkAction.cancelText'),
56486
+ onOk: function onOk() {
56487
+ var search = "?renderJobIds=".concat(encodeURIComponent(renderJobIds.join(',')));
56488
+ root.navigate("/admin/renderjobs/renderapprove".concat(search));
56489
+ }
56490
+ });
56491
+ }
56492
+ }],
56493
+ deselectOnUpdate: false,
56494
+ copyAction: {
56495
+ apiInterface: {
56496
+ create: '${mediaService}/renderjobs/${_id}/copy'
56497
+ },
56498
+ mapping: {
56499
+ type: 'query',
56500
+ map: [{
56501
+ sourceField: '_id',
56502
+ targetField: '_id'
56503
+ }]
56504
+ }
56505
+ },
56506
+ downloadAction: [{
56507
+ actionType: 'Download',
56508
+ id: 'DownloadRenderjobAction',
56509
+ rule: [{
56510
+ match: {
56511
+ sourceField: 'state',
56512
+ value: [12, 9, 8, 7]
56513
+ }
56514
+ }],
56515
+ download: [{
56516
+ type: 'request',
56517
+ request: '${mediaService}/v1/assets/${mediaItems}/download',
56518
+ mediaType: 'file',
56519
+ mapping: {
56520
+ type: 'query',
56521
+ map: [{
56522
+ sourceField: 'mediaItemRef',
56523
+ targetField: 'mediaItems'
56524
+ }]
56525
+ }
56526
+ }]
56527
+ }],
56528
+ rowAction: [{
56529
+ actionType: 'Detail',
56530
+ type: 'Form',
56531
+ id: 'FormRenderjob',
56532
+ title: t('backoffice.table.renderjobs.rowAction.FormRenderjob.title'),
56533
+ description: [{
56534
+ text: t('backoffice.table.renderjobs.rowAction.FormRenderjob.description.text')
56535
+ }]
56536
+ }, {
56537
+ actionType: 'Detail',
56538
+ type: 'List',
56539
+ id: 'ListJobHistory',
56540
+ title: t('backoffice.table.renderjobs.rowAction.ListJobHistory.title'),
56541
+ label: t('backoffice.table.renderjobs.rowAction.ListJobHistory.label')
56542
+ }, {
56543
+ actionType: 'Detail',
56544
+ type: 'ImageCropper',
56545
+ id: 'CropperRenderJob',
56546
+ title: t('backoffice.table.renderjobs.rowAction.CropperRenderJob.title'),
56547
+ label: t('backoffice.table.renderjobs.rowAction.CropperRenderJob.label')
56548
+ }, {
56549
+ actionType: 'Callback',
56550
+ id: 'UploadRenderJobImage',
56551
+ label: t('backoffice.table.renderjobs.rowAction.UploadRenderJobImage.label', {
56552
+ defaultValue: 'Bild hochladen'
56553
+ }),
56554
+ callback: function callback(data) {
56555
+ if (!(data !== null && data !== void 0 && data._id)) return;
56556
+ onUploadRenderJob(data);
56557
+ }
56558
+ }, {
56559
+ actionType: 'Download',
56560
+ id: 'DownloadRequest',
56561
+ icon: 'DownloadOutlined',
56562
+ rule: [{
56563
+ match: {
56564
+ sourceField: 'state',
56565
+ value: [5, 6, 7, 8, 9, 10, 11, 12]
56566
+ }
56567
+ }],
56568
+ download: [{
56569
+ type: 'request',
56570
+ request: '${mediaService}/renderjobs/${_id}/hqRenderScript',
56571
+ mapping: {
56572
+ type: 'query',
56573
+ map: [{
56574
+ sourceField: '_id',
56575
+ targetField: '_id'
56576
+ }]
56577
+ },
56578
+ mediaType: 'json'
56579
+ }]
56580
+ }]
56581
+ };
56582
+ }
56583
+
56584
+ var TableRenderJobs = observer(function TableRenderJobs() {
56585
+ var root = useStore();
56586
+ var _useTranslation = useTranslation(),
56587
+ i18n = _useTranslation.i18n,
56588
+ t = _useTranslation.t;
56589
+ var _useState = useState(null),
56590
+ _useState2 = _slicedToArray(_useState, 2),
56591
+ uploadRenderJob = _useState2[0],
56592
+ setUploadRenderJob = _useState2[1];
56593
+ var config = useMemo(function () {
56594
+ var cfg = createTableRenderJobsConfig(t, root, setUploadRenderJob);
56595
+ replaceApiConfigPlaceholdersDeep(cfg, root.configurationStore.apiConfig);
56596
+ return cfg;
56597
+ }, [i18n.language]);
56598
+ var state = useTableData({
56599
+ id: 'TableRenderjobs',
56600
+ i18n: i18n,
56601
+ config: config
56602
+ });
56603
+ return /*#__PURE__*/jsxs(Fragment, {
56604
+ children: [/*#__PURE__*/jsx(BaseTable, {
56605
+ state: state
56606
+ }), /*#__PURE__*/jsx(UploadImageModal, {
56607
+ open: !!uploadRenderJob,
56608
+ renderJob: uploadRenderJob,
56609
+ onClose: function onClose() {
56610
+ return setUploadRenderJob(null);
56611
+ },
56612
+ onSuccess: function onSuccess() {
56613
+ setUploadRenderJob(null);
56614
+ state.triggerRefresh();
56615
+ }
56616
+ })]
56617
+ });
56618
+ });
56619
+
55967
56620
  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; }
55968
56621
  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; }
55969
56622
  var ContentWrapper = function ContentWrapper(_ref) {
@@ -55981,25 +56634,27 @@ var ContentWrapper = function ContentWrapper(_ref) {
55981
56634
  if (!current) {
55982
56635
  return null;
55983
56636
  }
55984
- return /*#__PURE__*/jsxs(Layout.Content, {
55985
- id: "contnet",
55986
- style: {
55987
- margin: 16,
55988
- position: 'relative',
55989
- minHeight: 'auto',
55990
- height: 'calc(100% - 32px)'
55991
- },
55992
- children: [current.configuration.type !== 'Group' && /*#__PURE__*/jsx(ContentCard, {
55993
- configId: current.id,
55994
- type: current.configuration.type,
55995
- inGroup: false,
55996
- readListUrl: menuRoute.readListUrl,
55997
- genericType: menuRoute.genericType,
55998
- tableInstanceKey: menuRoute.path
55999
- }), current.configuration.type == 'Group' && /*#__PURE__*/jsx(Group, {
56000
- id: current.id
56001
- })]
56002
- }, menuRoute.path + (root.dataStore.organizationId || ''));
56637
+ return /*#__PURE__*/jsx(Fragment, {
56638
+ children: /*#__PURE__*/jsxs(Layout.Content, {
56639
+ id: "contnet",
56640
+ style: {
56641
+ margin: 16,
56642
+ position: 'relative',
56643
+ minHeight: 'auto',
56644
+ height: 'calc(100% - 32px)'
56645
+ },
56646
+ children: [current.configuration.type !== 'Group' && /*#__PURE__*/jsx(ContentCard, {
56647
+ configId: current.id,
56648
+ type: current.configuration.type,
56649
+ inGroup: false,
56650
+ readListUrl: menuRoute.readListUrl,
56651
+ genericType: menuRoute.genericType,
56652
+ tableInstanceKey: menuRoute.path
56653
+ }), current.configuration.type == 'Group' && /*#__PURE__*/jsx(Group, {
56654
+ id: current.id
56655
+ })]
56656
+ }, menuRoute.path + (root.dataStore.organizationId || ''))
56657
+ });
56003
56658
  };
56004
56659
  var Group = observer(function (_ref2) {
56005
56660
  var _configuration$direct, _configuration$items;
@@ -56106,7 +56761,7 @@ var ContentCard = observer(function (_ref3) {
56106
56761
  }, configId), configuration.type == 'MediaTable' && /*#__PURE__*/jsx(MediaTable, {
56107
56762
  configuration: configuration,
56108
56763
  id: configId
56109
- }, configId), configuration.type == 'Maintenance' && /*#__PURE__*/jsx(Maintenance, {}, configId), configuration.type == 'MetaCampaignJotformSync' && /*#__PURE__*/jsx(MetaCampaignJotformSync$1, {}, configId), configuration.type == 'RenderApprove' && /*#__PURE__*/jsx(RenderApprove, {}, configId)]
56764
+ }, 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)]
56110
56765
  });
56111
56766
  });
56112
56767
  var Content = observer(ContentWrapper);