@pimcore/studio-ui-bundle 2026.1.0 → 2026.1.2

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 (172) hide show
  1. package/dist/build/types/src/core/app/api/pimcore/tags.d.ts +5 -0
  2. package/dist/build/types/src/core/app/config/services/service-ids.d.ts +5 -0
  3. package/dist/build/types/src/core/app/i18n/iframe-i18n.d.ts +0 -3
  4. package/dist/build/types/src/core/bootstrap.d.ts +2 -0
  5. package/dist/build/types/src/core/components/background/background.d.ts +5 -1
  6. package/dist/build/types/src/core/components/background/background.stories.d.ts +7 -3
  7. package/dist/build/types/src/core/components/background/background.styles.d.ts +11 -1
  8. package/dist/build/types/src/core/components/dropdown/dropdown.stories.d.ts +1 -1
  9. package/dist/build/types/src/core/components/element-tree/element-tree-slice.d.ts +11 -3
  10. package/dist/build/types/src/core/components/grid/grid-cell/grid-row.d.ts +2 -1
  11. package/dist/build/types/src/core/components/import-modal/components/selected-file-view/selected-file-view.d.ts +2 -1
  12. package/dist/build/types/src/core/components/import-modal/hooks/use-file-upload.d.ts +14 -2
  13. package/dist/build/types/src/core/components/import-modal/import-modal.d.ts +2 -22
  14. package/dist/build/types/src/core/components/import-modal/index.d.ts +2 -1
  15. package/dist/build/types/src/core/components/import-modal/types.d.ts +48 -0
  16. package/dist/build/types/src/core/components/many-to-many-relation/grid.d.ts +1 -0
  17. package/dist/build/types/src/core/components/many-to-many-relation/grid.styles.d.ts +15 -0
  18. package/dist/build/types/src/core/components/many-to-many-relation/many-to-many-relation.d.ts +1 -0
  19. package/dist/build/types/src/core/components/operational-grid/csv-import-button/csv-import-button.d.ts +11 -0
  20. package/dist/build/types/src/core/components/operational-grid/csv-import-modal/csv-import-modal.d.ts +19 -0
  21. package/dist/build/types/src/core/components/pql-query-input/pql-query-input.d.ts +2 -2
  22. package/dist/build/types/src/core/components/pql-query-input/pql-query-input.stories.d.ts +12 -0
  23. package/dist/build/types/src/core/components/pql-query-input/pql-query-input.styles.d.ts +1 -0
  24. package/dist/build/types/src/core/components/tabs/tab-context-menu.d.ts +16 -0
  25. package/dist/build/types/src/core/modules/app/app-loader/app-loader.d.ts +1 -0
  26. package/dist/build/types/src/core/modules/app/app-loader/context/app-loading-context.d.ts +27 -0
  27. package/dist/build/types/src/core/modules/app/app-loader/index.d.ts +10 -0
  28. package/dist/build/types/src/core/modules/app/component-registry/component-config.d.ts +6 -0
  29. package/dist/build/types/src/core/modules/app/error-handler/constants/errorTypes.d.ts +3 -1
  30. package/dist/build/types/src/core/modules/app/error-handler/types.d.ts +2 -0
  31. package/dist/build/types/src/core/modules/app/settings/settings-slice-enhanced.d.ts +14 -14
  32. package/dist/build/types/src/core/modules/app/settings/settings-slice.gen.d.ts +14 -14
  33. package/dist/build/types/src/core/modules/app/translations/translations-api-slice-enhanced.d.ts +6 -6
  34. package/dist/build/types/src/core/modules/app/translations/translations-api-slice.gen.d.ts +6 -6
  35. package/dist/build/types/src/core/modules/application-logger/application-logger-api-slice-enhanced.d.ts +6 -6
  36. package/dist/build/types/src/core/modules/application-logger/application-logger-api-slice.gen.d.ts +6 -6
  37. package/dist/build/types/src/core/modules/asset/asset-api-slice-enhanced.d.ts +22 -22
  38. package/dist/build/types/src/core/modules/asset/asset-api-slice.gen.d.ts +65 -65
  39. package/dist/build/types/src/core/modules/asset/editor/shared-tab-manager/tabs/custom-metadata/metadata-api-slice-enhanced.d.ts +6 -6
  40. package/dist/build/types/src/core/modules/asset/editor/shared-tab-manager/tabs/custom-metadata/metadata-api-slice.gen.d.ts +6 -6
  41. package/dist/build/types/src/core/modules/asset/editor/types/asset-thumbnails-api-slice.gen.d.ts +12 -12
  42. package/dist/build/types/src/core/modules/asset/listing/decorator/tag-filter/view-layer/components/sidebar/tabs/tag-filters/tags-tree-filters-container.d.ts +7 -5
  43. package/dist/build/types/src/core/modules/asset/listing/listing-container.d.ts +2 -2
  44. package/dist/build/types/src/core/modules/auth/enums/user-permission.d.ts +2 -0
  45. package/dist/build/types/src/core/modules/auth/hooks/use-user-content-language.d.ts +11 -0
  46. package/dist/build/types/src/core/modules/auth/user/user-api-slice-enhanced.d.ts +2 -2
  47. package/dist/build/types/src/core/modules/auth/user/user-api-slice.gen.d.ts +22 -22
  48. package/dist/build/types/src/core/modules/class-definition/class-definition-slice-enhanced.d.ts +82 -82
  49. package/dist/build/types/src/core/modules/class-definition/class-definition-slice.gen.d.ts +84 -84
  50. package/dist/build/types/src/core/modules/data-object/classification-store/classification-store-api-slice-enhanced.d.ts +30 -30
  51. package/dist/build/types/src/core/modules/data-object/classification-store/classification-store-api-slice.gen.d.ts +28 -28
  52. package/dist/build/types/src/core/modules/data-object/data-object-api-slice-enhanced.d.ts +9 -9
  53. package/dist/build/types/src/core/modules/data-object/data-object-api-slice.gen.d.ts +40 -38
  54. package/dist/build/types/src/core/modules/data-object/editor/types/object/tab-manager/tabs/edit/providers/edit-form-provider/edit-form-provider.d.ts +1 -0
  55. package/dist/build/types/src/core/modules/data-object/editor/types/object/tab-manager/tabs/edit/providers/edit-form-provider/utils/build-field-type-map.d.ts +10 -0
  56. package/dist/build/types/src/core/modules/data-object/editor/types/object/tab-manager/tabs/edit/providers/edit-form-provider/utils/build-field-type-map.test.d.ts +10 -0
  57. package/dist/build/types/src/core/modules/data-object/editor/types/object/tab-manager/tabs/edit/providers/edit-form-provider/utils/merge-form-changes.d.ts +20 -0
  58. package/dist/build/types/src/core/modules/data-object/editor/types/object/tab-manager/tabs/edit/providers/edit-form-provider/utils/merge-form-changes.test.d.ts +10 -0
  59. package/dist/build/types/src/core/modules/data-object/listing/listing-container.d.ts +3 -3
  60. package/dist/build/types/src/core/modules/data-object/unit-slice-enhanced.d.ts +12 -12
  61. package/dist/build/types/src/core/modules/data-object/unit-slice.gen.d.ts +10 -10
  62. package/dist/build/types/src/core/modules/data-object/utils/provider/class-defintions/class-definitions-provider.d.ts +2 -1
  63. package/dist/build/types/src/core/modules/document/actions/site/provider/site-modal.d.ts +0 -1
  64. package/dist/build/types/src/core/modules/document/actions/translations/components/link-translation-modal.d.ts +2 -1
  65. package/dist/build/types/src/core/modules/document/actions/translations/components/translation-error-alert.d.ts +16 -0
  66. package/dist/build/types/src/core/modules/document/document-api-slice-enhanced.d.ts +39 -39
  67. package/dist/build/types/src/core/modules/document/document-api-slice.gen.d.ts +38 -38
  68. package/dist/build/types/src/core/modules/document/document-draft-slice.d.ts +24 -24
  69. package/dist/build/types/src/core/modules/document/document-editor-slice.d.ts +6 -6
  70. package/dist/build/types/src/core/modules/document/editor/shared-tab-manager/tabs/edit/components/editables-dialog/types.d.ts +6 -1
  71. package/dist/build/types/src/core/modules/element/actions/index.d.ts +2 -1
  72. package/dist/build/types/src/core/modules/element/components/system-info-modal/system-info-modal.d.ts +5 -0
  73. package/dist/build/types/src/core/modules/element/dynamic-types/definitions/document/editable/components/areablock-editable/areablock-editable.d.ts +2 -1
  74. package/dist/build/types/src/core/modules/element/dynamic-types/definitions/document/editable/components/areablock-editable/utils/areablock-manager.d.ts +3 -0
  75. package/dist/build/types/src/core/modules/element/dynamic-types/definitions/document/editable/components/areablock-editable/utils/areablock-utils.d.ts +1 -1
  76. package/dist/build/types/src/core/modules/element/dynamic-types/definitions/document/editable/types/dynamic-type-document-editable-table.d.ts +1 -0
  77. package/dist/build/types/src/core/modules/element/dynamic-types/definitions/document/editable/utils/select-options.d.ts +14 -1
  78. package/dist/build/types/src/core/modules/element/dynamic-types/definitions/grid-cell/types/checkbox/dynamic-type-grid-cell-checkbox.d.ts +1 -1
  79. package/dist/build/types/src/core/modules/element/dynamic-types/definitions/grid-cell/types/date-time/dynamic-type-grid-cell-date-time.d.ts +1 -1
  80. package/dist/build/types/src/core/modules/element/dynamic-types/definitions/grid-cell/types/system-boolean/dynamic-type-grid-cell-system-boolean.d.ts +13 -0
  81. package/dist/build/types/src/core/modules/element/dynamic-types/definitions/grid-cell/types/system-datetime/dynamic-type-grid-cell-system-datetime.d.ts +13 -0
  82. package/dist/build/types/src/core/modules/element/dynamic-types/definitions/grid-cell/types/system-id/dynamic-type-grid-cell-system-id.d.ts +13 -0
  83. package/dist/build/types/src/core/modules/element/dynamic-types/definitions/grid-cell/types/system-integer/dynamic-type-grid-cell-system-integer.d.ts +13 -0
  84. package/dist/build/types/src/core/modules/element/dynamic-types/definitions/grid-cell/types/system-string/dynamic-type-grid-cell-system-string.d.ts +13 -0
  85. package/dist/build/types/src/core/modules/element/dynamic-types/definitions/objects/data-related/components/many-to-many-object-relation/hooks/use-data-object-grids.d.ts +3 -1
  86. package/dist/build/types/src/core/modules/element/dynamic-types/definitions/objects/data-related/components/many-to-many-object-relation/utils/column-definition.d.ts +7 -1
  87. package/dist/build/types/src/core/modules/element/dynamic-types/definitions/objects/data-related/dynamic-type-object-data-abstract.d.ts +17 -0
  88. package/dist/build/types/src/core/modules/element/dynamic-types/definitions/objects/data-related/types/dynamic-type-object-data-image.d.ts +2 -1
  89. package/dist/build/types/src/core/modules/element/dynamic-types/definitions/objects/data-related/types/dynamic-type-object-data-localized-fields.d.ts +12 -0
  90. package/dist/build/types/src/core/modules/element/dynamic-types/definitions/objects/data-related/types/dynamic-type-object-data-localized-fields.test.d.ts +13 -0
  91. package/dist/build/types/src/core/modules/element/editor/shared-tab-manager/tabs/dependencies/dependencies-api-slice-enhanced.d.ts +2 -2
  92. package/dist/build/types/src/core/modules/element/editor/shared-tab-manager/tabs/dependencies/dependencies-api-slice.gen.d.ts +2 -2
  93. package/dist/build/types/src/core/modules/element/editor/shared-tab-manager/tabs/notes-and-events/notes-and-events-api-slice-enhanced.d.ts +6 -6
  94. package/dist/build/types/src/core/modules/element/editor/shared-tab-manager/tabs/notes-and-events/notes-and-events-api-slice.gen.d.ts +6 -6
  95. package/dist/build/types/src/core/modules/element/editor/shared-tab-manager/tabs/properties/properties-api-slice-enhanced.d.ts +4 -4
  96. package/dist/build/types/src/core/modules/element/editor/shared-tab-manager/tabs/properties/properties-api-slice.gen.d.ts +4 -4
  97. package/dist/build/types/src/core/modules/element/editor/shared-tab-manager/tabs/schedule/schedule-api-slice-enhanced.d.ts +4 -4
  98. package/dist/build/types/src/core/modules/element/editor/shared-tab-manager/tabs/schedule/schedule-api-slice.gen.d.ts +4 -4
  99. package/dist/build/types/src/core/modules/element/editor/shared-tab-manager/tabs/tags/components/assigned-tags/assigned-tags.d.ts +1 -1
  100. package/dist/build/types/src/core/modules/element/editor/shared-tab-manager/tabs/tags/components/tags-tree/create-tree-structure.d.ts +5 -0
  101. package/dist/build/types/src/core/modules/element/editor/shared-tab-manager/tabs/tags/hooks/use-optimistic-update.d.ts +4 -0
  102. package/dist/build/types/src/core/modules/element/editor/shared-tab-manager/tabs/tags/tags-api-slice-enhanced.d.ts +4 -4
  103. package/dist/build/types/src/core/modules/element/editor/shared-tab-manager/tabs/tags/tags-api-slice.gen.d.ts +6 -6
  104. package/dist/build/types/src/core/modules/element/editor/shared-tab-manager/tabs/versions/version-api-slice-enhanced.d.ts +6 -6
  105. package/dist/build/types/src/core/modules/element/editor/shared-tab-manager/tabs/versions/version-api-slice.gen.d.ts +10 -10
  106. package/dist/build/types/src/core/modules/element/editor/shared-tab-manager/tabs/workflow/workflow-api-slice-enhanced.d.ts +2 -2
  107. package/dist/build/types/src/core/modules/element/editor/shared-tab-manager/tabs/workflow/workflow-api-slice.gen.d.ts +2 -2
  108. package/dist/build/types/src/core/modules/element/element-api-slice-enhanced.d.ts +19 -19
  109. package/dist/build/types/src/core/modules/element/element-api-slice.gen.d.ts +21 -21
  110. package/dist/build/types/src/core/modules/element/export-api-slice.gen.d.ts +14 -10
  111. package/dist/build/types/src/core/modules/element/listing/abstract/configuration-layer/provider/selected-columns/selected-columns-provider.d.ts +2 -1
  112. package/dist/build/types/src/core/modules/element/listing/decorators/general-filters/view-layer/components/sidebar/tabs/filters/filter-container.d.ts +1 -6
  113. package/dist/build/types/src/core/modules/element/search-replace-assignments/usage-api-slice-enhanced.d.ts +2 -2
  114. package/dist/build/types/src/core/modules/element/search-replace-assignments/usage-api-slice.gen.d.ts +2 -2
  115. package/dist/build/types/src/core/modules/email/emails-api-slice-enhanced.d.ts +12 -12
  116. package/dist/build/types/src/core/modules/email/emails-api-slice.gen.d.ts +12 -12
  117. package/dist/build/types/src/core/modules/execution-engine/execution-engine-api-slice-enhanced.d.ts +2 -2
  118. package/dist/build/types/src/core/modules/execution-engine/execution-engine-api-slice.gen.d.ts +2 -2
  119. package/dist/build/types/src/core/modules/execution-engine/jobs/batch-edit/abstract-batch-edit-job.d.ts +2 -0
  120. package/dist/build/types/src/core/modules/execution-engine/jobs/batch-edit/abstract-folder-batch-edit-job.d.ts +15 -0
  121. package/dist/build/types/src/core/modules/execution-engine/jobs/batch-edit/asset-folder-batch-edit-job.d.ts +3 -2
  122. package/dist/build/types/src/core/modules/execution-engine/jobs/batch-edit/data-object-folder-batch-edit-job.d.ts +3 -2
  123. package/dist/build/types/src/core/modules/execution-engine/jobs/download/download-job.d.ts +6 -0
  124. package/dist/build/types/src/core/modules/execution-engine/message-handlers/message-bus-job/message-bus-job-handler-types.d.ts +41 -0
  125. package/dist/build/types/src/core/modules/execution-engine/message-handlers/message-bus-job/message-bus-job-handler.d.ts +6 -38
  126. package/dist/build/types/src/core/modules/execution-engine/message-handlers/message-bus-job/message-bus-job-notification.d.ts +1 -0
  127. package/dist/build/types/src/core/modules/execution-engine/message-handlers/message-bus-job/progress-calculator/progress-calculator.interface.d.ts +46 -0
  128. package/dist/build/types/src/core/modules/execution-engine/message-handlers/message-bus-job/progress-calculator/progress-field-calculator.d.ts +30 -0
  129. package/dist/build/types/src/core/modules/execution-engine/message-handlers/message-bus-job/progress-calculator/step-completion-calculator.d.ts +29 -0
  130. package/dist/build/types/src/core/modules/execution-engine/message-handlers/message-bus-job/step-tracker/child-job-step-tracker.d.ts +40 -0
  131. package/dist/build/types/src/core/modules/execution-engine/message-handlers/message-bus-job/step-tracker/default-step-tracker.d.ts +43 -0
  132. package/dist/build/types/src/core/modules/execution-engine/message-handlers/message-bus-job/step-tracker/step-tracker.interface.d.ts +35 -0
  133. package/dist/build/types/src/core/modules/execution-engine/notification/job/job-view.d.ts +2 -0
  134. package/dist/build/types/src/core/modules/gdpr-data-extractor/gdpr-data-extractor-api-slice.gen.d.ts +6 -6
  135. package/dist/build/types/src/core/modules/gdpr-data-extractor/gdpr-data-extractor-slice-enhanced.d.ts +10 -10
  136. package/dist/build/types/src/core/modules/notifications/actions/share-via-notification/use-share-via-notification.d.ts +17 -0
  137. package/dist/build/types/src/core/modules/notifications/notifications-slice-enhanced.d.ts +4 -4
  138. package/dist/build/types/src/core/modules/notifications/notifications-slice.gen.d.ts +8 -8
  139. package/dist/build/types/src/core/modules/notifications/send-notification/send-notification-modal.d.ts +3 -1
  140. package/dist/build/types/src/core/modules/perspectives/enums/nav-permission.d.ts +1 -0
  141. package/dist/build/types/src/core/modules/perspectives/perspectives-slice.enhanced.d.ts +13 -13
  142. package/dist/build/types/src/core/modules/perspectives/perspectives-slice.gen.d.ts +13 -13
  143. package/dist/build/types/src/core/modules/quantity-value/table/table.d.ts +4 -1
  144. package/dist/build/types/src/core/modules/recycle-bin/recycle-bin-api-slice-enhanced.d.ts +2 -2
  145. package/dist/build/types/src/core/modules/recycle-bin/recycle-bin-api-slice.gen.d.ts +2 -2
  146. package/dist/build/types/src/core/modules/redirects/hooks/use-redirect-options.d.ts +18 -0
  147. package/dist/build/types/src/core/modules/redirects/seo-api-slice-enhanced.d.ts +355 -11
  148. package/dist/build/types/src/core/modules/redirects/seo-api-slice.gen.d.ts +12 -12
  149. package/dist/build/types/src/core/modules/reports/custom-reports-api-slice-enhanced.d.ts +28 -28
  150. package/dist/build/types/src/core/modules/reports/custom-reports-api-slice.gen.d.ts +49 -41
  151. package/dist/build/types/src/core/modules/reports/reports-editor/components/helpers.d.ts +11 -0
  152. package/dist/build/types/src/core/modules/reports/reports-editor/reports-editor.styles.d.ts +1 -3
  153. package/dist/build/types/src/core/modules/robots-txt/components/robots-txt-site-editor.d.ts +16 -0
  154. package/dist/build/types/src/core/modules/robots-txt/components/robots-txt-site-editor.styles.d.ts +12 -0
  155. package/dist/build/types/src/core/modules/robots-txt/index.d.ts +11 -0
  156. package/dist/build/types/src/core/modules/robots-txt/robots-txt-container.d.ts +11 -0
  157. package/dist/build/types/src/core/modules/robots-txt/robots-txt-container.styles.d.ts +12 -0
  158. package/dist/build/types/src/core/modules/search/search-api-slice-enhanced.d.ts +2 -2
  159. package/dist/build/types/src/core/modules/search/search-api-slice.gen.d.ts +14 -14
  160. package/dist/build/types/src/core/modules/select-option/components/tree/tree-container.d.ts +1 -1
  161. package/dist/build/types/src/core/modules/user/roles/roles-api-slice-enhanced.d.ts +4 -4
  162. package/dist/build/types/src/core/modules/user/roles/roles-api-slice.gen.d.ts +12 -12
  163. package/dist/build/types/src/core/modules/user/user-api-slice-enhanced.d.ts +22 -22
  164. package/dist/build/types/src/core/modules/website-settings/table/table.d.ts +4 -1
  165. package/dist/build/types/src/core/modules/website-settings/website-settings-api-slice-enhanced.d.ts +4 -4
  166. package/dist/build/types/src/core/modules/website-settings/website-settings-api-slice.gen.d.ts +4 -4
  167. package/dist/build/types/src/core/modules/widget-editor/hooks/use-widget-editor.d.ts +1 -1
  168. package/dist/build/types/src/sdk/components/index.d.ts +1 -0
  169. package/dist/build/types/src/sdk/modules/app/index.d.ts +3 -0
  170. package/dist/build/types/test-utils/mocks/style-mock.d.ts +11 -0
  171. package/dist/build/types/test-utils/mocks/svg-react-mock.d.ts +12 -0
  172. package/package.json +6 -5
@@ -33,5 +33,6 @@ export interface SelectedColumnsContextProps {
33
33
  export declare const SelectedColumnsContext: React.Context<SelectedColumnsContextProps>;
34
34
  export interface SelectedColumnsProviderProps {
35
35
  children: React.ReactNode;
36
+ columns?: SelectedColumn[];
36
37
  }
37
- export declare const SelectedColumnsProvider: ({ children }: SelectedColumnsProviderProps) => React.JSX.Element;
38
+ export declare const SelectedColumnsProvider: ({ children, columns: controlledColumns }: SelectedColumnsProviderProps) => React.JSX.Element;
@@ -8,9 +8,4 @@
8
8
  * @license Pimcore Open Core License (POCL)
9
9
  */
10
10
  import React from 'react';
11
- import { type FetchBaseQueryError } from '@reduxjs/toolkit/query';
12
- interface IFilterContainerProps {
13
- errorData?: FetchBaseQueryError;
14
- }
15
- export declare const FilterContainer: ({ errorData }: IFilterContainerProps) => React.JSX.Element;
16
- export {};
11
+ export declare const FilterContainer: () => React.JSX.Element;
@@ -68,7 +68,7 @@ export declare const useLazyElementGetUsageQuery: <R extends Record<string, any>
68
68
  isFetching: false;
69
69
  isSuccess: false;
70
70
  isError: false;
71
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
71
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
72
72
  isSuccess: true;
73
73
  isFetching: false;
74
74
  error: undefined;
@@ -158,7 +158,7 @@ export declare const useLazyElementGetUsageQuery: <R extends Record<string, any>
158
158
  isFetching: false;
159
159
  isSuccess: false;
160
160
  isError: false;
161
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
161
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
162
162
  isSuccess: true;
163
163
  isFetching: false;
164
164
  error: undefined;
@@ -130,7 +130,7 @@ export declare const useElementGetUsageQuery: <R extends Record<string, any> = i
130
130
  isFetching: false;
131
131
  isSuccess: false;
132
132
  isError: false;
133
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
133
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
134
134
  isSuccess: true;
135
135
  isFetching: false;
136
136
  error: undefined;
@@ -223,7 +223,7 @@ export declare const useElementGetUsageQuery: <R extends Record<string, any> = i
223
223
  isFetching: false;
224
224
  isSuccess: false;
225
225
  isError: false;
226
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
226
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
227
227
  isSuccess: true;
228
228
  isFetching: false;
229
229
  error: undefined;
@@ -78,7 +78,7 @@ export declare const useEmailBlocklistGetCollectionQuery: <R extends Record<stri
78
78
  isFetching: false;
79
79
  isSuccess: false;
80
80
  isError: false;
81
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
81
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
82
82
  isSuccess: true;
83
83
  isFetching: false;
84
84
  error: undefined;
@@ -171,7 +171,7 @@ export declare const useEmailBlocklistGetCollectionQuery: <R extends Record<stri
171
171
  isFetching: false;
172
172
  isSuccess: false;
173
173
  isError: false;
174
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
174
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
175
175
  isSuccess: true;
176
176
  isFetching: false;
177
177
  error: undefined;
@@ -582,7 +582,7 @@ export declare const useEmailBlocklistGetCollectionQuery: <R extends Record<stri
582
582
  isFetching: false;
583
583
  isSuccess: false;
584
584
  isError: false;
585
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
585
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
586
586
  isSuccess: true;
587
587
  isFetching: false;
588
588
  error: undefined;
@@ -675,7 +675,7 @@ export declare const useEmailBlocklistGetCollectionQuery: <R extends Record<stri
675
675
  isFetching: false;
676
676
  isSuccess: false;
677
677
  isError: false;
678
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
678
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
679
679
  isSuccess: true;
680
680
  isFetching: false;
681
681
  error: undefined;
@@ -766,7 +766,7 @@ export declare const useEmailBlocklistGetCollectionQuery: <R extends Record<stri
766
766
  isFetching: false;
767
767
  isSuccess: false;
768
768
  isError: false;
769
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
769
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
770
770
  isSuccess: true;
771
771
  isFetching: false;
772
772
  error: undefined;
@@ -859,7 +859,7 @@ export declare const useEmailBlocklistGetCollectionQuery: <R extends Record<stri
859
859
  isFetching: false;
860
860
  isSuccess: false;
861
861
  isError: false;
862
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
862
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
863
863
  isSuccess: true;
864
864
  isFetching: false;
865
865
  error: undefined;
@@ -1110,7 +1110,7 @@ export declare const useEmailBlocklistGetCollectionQuery: <R extends Record<stri
1110
1110
  isFetching: false;
1111
1111
  isSuccess: false;
1112
1112
  isError: false;
1113
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
1113
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
1114
1114
  isSuccess: true;
1115
1115
  isFetching: false;
1116
1116
  error: undefined;
@@ -1203,7 +1203,7 @@ export declare const useEmailBlocklistGetCollectionQuery: <R extends Record<stri
1203
1203
  isFetching: false;
1204
1204
  isSuccess: false;
1205
1205
  isError: false;
1206
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
1206
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
1207
1207
  isSuccess: true;
1208
1208
  isFetching: false;
1209
1209
  error: undefined;
@@ -1294,7 +1294,7 @@ export declare const useEmailBlocklistGetCollectionQuery: <R extends Record<stri
1294
1294
  isFetching: false;
1295
1295
  isSuccess: false;
1296
1296
  isError: false;
1297
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
1297
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
1298
1298
  isSuccess: true;
1299
1299
  isFetching: false;
1300
1300
  error: undefined;
@@ -1387,7 +1387,7 @@ export declare const useEmailBlocklistGetCollectionQuery: <R extends Record<stri
1387
1387
  isFetching: false;
1388
1388
  isSuccess: false;
1389
1389
  isError: false;
1390
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
1390
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
1391
1391
  isSuccess: true;
1392
1392
  isFetching: false;
1393
1393
  error: undefined;
@@ -1478,7 +1478,7 @@ export declare const useEmailBlocklistGetCollectionQuery: <R extends Record<stri
1478
1478
  isFetching: false;
1479
1479
  isSuccess: false;
1480
1480
  isError: false;
1481
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
1481
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
1482
1482
  isSuccess: true;
1483
1483
  isFetching: false;
1484
1484
  error: undefined;
@@ -1571,7 +1571,7 @@ export declare const useEmailBlocklistGetCollectionQuery: <R extends Record<stri
1571
1571
  isFetching: false;
1572
1572
  isSuccess: false;
1573
1573
  isError: false;
1574
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
1574
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
1575
1575
  isSuccess: true;
1576
1576
  isFetching: false;
1577
1577
  error: undefined;
@@ -256,7 +256,7 @@ export declare const useEmailBlocklistGetCollectionQuery: <R extends Record<stri
256
256
  isFetching: false;
257
257
  isSuccess: false;
258
258
  isError: false;
259
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
259
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
260
260
  isSuccess: true;
261
261
  isFetching: false;
262
262
  error: undefined;
@@ -349,7 +349,7 @@ export declare const useEmailBlocklistGetCollectionQuery: <R extends Record<stri
349
349
  isFetching: false;
350
350
  isSuccess: false;
351
351
  isError: false;
352
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
352
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
353
353
  isSuccess: true;
354
354
  isFetching: false;
355
355
  error: undefined;
@@ -760,7 +760,7 @@ export declare const useEmailBlocklistGetCollectionQuery: <R extends Record<stri
760
760
  isFetching: false;
761
761
  isSuccess: false;
762
762
  isError: false;
763
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
763
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
764
764
  isSuccess: true;
765
765
  isFetching: false;
766
766
  error: undefined;
@@ -853,7 +853,7 @@ export declare const useEmailBlocklistGetCollectionQuery: <R extends Record<stri
853
853
  isFetching: false;
854
854
  isSuccess: false;
855
855
  isError: false;
856
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
856
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
857
857
  isSuccess: true;
858
858
  isFetching: false;
859
859
  error: undefined;
@@ -944,7 +944,7 @@ export declare const useEmailBlocklistGetCollectionQuery: <R extends Record<stri
944
944
  isFetching: false;
945
945
  isSuccess: false;
946
946
  isError: false;
947
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
947
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
948
948
  isSuccess: true;
949
949
  isFetching: false;
950
950
  error: undefined;
@@ -1037,7 +1037,7 @@ export declare const useEmailBlocklistGetCollectionQuery: <R extends Record<stri
1037
1037
  isFetching: false;
1038
1038
  isSuccess: false;
1039
1039
  isError: false;
1040
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
1040
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
1041
1041
  isSuccess: true;
1042
1042
  isFetching: false;
1043
1043
  error: undefined;
@@ -1288,7 +1288,7 @@ export declare const useEmailBlocklistGetCollectionQuery: <R extends Record<stri
1288
1288
  isFetching: false;
1289
1289
  isSuccess: false;
1290
1290
  isError: false;
1291
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
1291
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
1292
1292
  isSuccess: true;
1293
1293
  isFetching: false;
1294
1294
  error: undefined;
@@ -1381,7 +1381,7 @@ export declare const useEmailBlocklistGetCollectionQuery: <R extends Record<stri
1381
1381
  isFetching: false;
1382
1382
  isSuccess: false;
1383
1383
  isError: false;
1384
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
1384
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
1385
1385
  isSuccess: true;
1386
1386
  isFetching: false;
1387
1387
  error: undefined;
@@ -1472,7 +1472,7 @@ export declare const useEmailBlocklistGetCollectionQuery: <R extends Record<stri
1472
1472
  isFetching: false;
1473
1473
  isSuccess: false;
1474
1474
  isError: false;
1475
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
1475
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
1476
1476
  isSuccess: true;
1477
1477
  isFetching: false;
1478
1478
  error: undefined;
@@ -1565,7 +1565,7 @@ export declare const useEmailBlocklistGetCollectionQuery: <R extends Record<stri
1565
1565
  isFetching: false;
1566
1566
  isSuccess: false;
1567
1567
  isError: false;
1568
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
1568
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
1569
1569
  isSuccess: true;
1570
1570
  isFetching: false;
1571
1571
  error: undefined;
@@ -1656,7 +1656,7 @@ export declare const useEmailBlocklistGetCollectionQuery: <R extends Record<stri
1656
1656
  isFetching: false;
1657
1657
  isSuccess: false;
1658
1658
  isError: false;
1659
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
1659
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
1660
1660
  isSuccess: true;
1661
1661
  isFetching: false;
1662
1662
  error: undefined;
@@ -1749,7 +1749,7 @@ export declare const useEmailBlocklistGetCollectionQuery: <R extends Record<stri
1749
1749
  isFetching: false;
1750
1750
  isSuccess: false;
1751
1751
  isError: false;
1752
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
1752
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
1753
1753
  isSuccess: true;
1754
1754
  isFetching: false;
1755
1755
  error: undefined;
@@ -384,7 +384,7 @@ export declare const useExecutionEngineAbortJobRunByIdMutation: <R extends Recor
384
384
  isFetching: false;
385
385
  isSuccess: false;
386
386
  isError: false;
387
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
387
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
388
388
  isSuccess: true;
389
389
  isFetching: false;
390
390
  error: undefined;
@@ -477,7 +477,7 @@ export declare const useExecutionEngineAbortJobRunByIdMutation: <R extends Recor
477
477
  isFetching: false;
478
478
  isSuccess: false;
479
479
  isError: false;
480
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
480
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
481
481
  isSuccess: true;
482
482
  isFetching: false;
483
483
  error: undefined;
@@ -444,7 +444,7 @@ export declare const useExecutionEngineAbortJobRunByIdMutation: <R extends Recor
444
444
  isFetching: false;
445
445
  isSuccess: false;
446
446
  isError: false;
447
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
447
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
448
448
  isSuccess: true;
449
449
  isFetching: false;
450
450
  error: undefined;
@@ -537,7 +537,7 @@ export declare const useExecutionEngineAbortJobRunByIdMutation: <R extends Recor
537
537
  isFetching: false;
538
538
  isSuccess: false;
539
539
  isError: false;
540
- }, "data" | "error" | "fulfilledTimeStamp" | "isFetching" | "isSuccess" | "currentData"> & {
540
+ }, "data" | "error" | "fulfilledTimeStamp" | "currentData" | "isFetching" | "isSuccess"> & {
541
541
  isSuccess: true;
542
542
  isFetching: false;
543
543
  error: undefined;
@@ -8,6 +8,7 @@
8
8
  * @license Pimcore Open Core License (POCL)
9
9
  */
10
10
  import { type JobInterface, type JobRunOptions } from '../job-interface';
11
+ import { MessageBusJobHandler, type MessageBusJobHandlerOptions } from '../../message-handlers/message-bus-job/message-bus-job-handler';
11
12
  export interface AbstractBatchEditJobOptions {
12
13
  title: string;
13
14
  assetContextId: number;
@@ -21,6 +22,7 @@ export declare abstract class AbstractBatchEditJob implements JobInterface {
21
22
  protected readonly refreshGrid: () => Promise<void>;
22
23
  constructor(options: AbstractBatchEditJobOptions);
23
24
  run(options: JobRunOptions): Promise<void>;
25
+ protected createHandler(options: MessageBusJobHandlerOptions): MessageBusJobHandler;
24
26
  protected abstract executeEditRequest(): Promise<number | null>;
25
27
  protected handleCompletion(): Promise<void>;
26
28
  protected handleJobFailure(error: any): Promise<void>;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * This source file is available under the terms of the
3
+ * Pimcore Open Core License (POCL)
4
+ * Full copyright and license information is available in
5
+ * LICENSE.md which is distributed with this source code.
6
+ *
7
+ * @copyright Copyright (c) Pimcore GmbH (https://www.pimcore.com)
8
+ * @license Pimcore Open Core License (POCL)
9
+ */
10
+ import { AbstractBatchEditJob, type AbstractBatchEditJobOptions } from './abstract-batch-edit-job';
11
+ import { MessageBusJobHandler, type MessageBusJobHandlerOptions } from '../../message-handlers/message-bus-job/message-bus-job-handler';
12
+ export type AbstractFolderBatchEditJobOptions = AbstractBatchEditJobOptions;
13
+ export declare abstract class AbstractFolderBatchEditJob extends AbstractBatchEditJob {
14
+ protected createHandler(options: MessageBusJobHandlerOptions): MessageBusJobHandler;
15
+ }
@@ -7,14 +7,15 @@
7
7
  * @copyright Copyright (c) Pimcore GmbH (https://www.pimcore.com)
8
8
  * @license Pimcore Open Core License (POCL)
9
9
  */
10
- import { AbstractBatchEditJob, type AbstractBatchEditJobOptions } from './abstract-batch-edit-job';
10
+ import { AbstractFolderBatchEditJob } from './abstract-folder-batch-edit-job';
11
+ import { type AbstractBatchEditJobOptions } from './abstract-batch-edit-job';
11
12
  export interface AssetFolderBatchEditJobOptions extends AbstractBatchEditJobOptions {
12
13
  patchAssetsInFolder: (args: any) => Promise<any>;
13
14
  folderId: number;
14
15
  patches: any[];
15
16
  filters: any;
16
17
  }
17
- export declare class AssetFolderBatchEditJob extends AbstractBatchEditJob {
18
+ export declare class AssetFolderBatchEditJob extends AbstractFolderBatchEditJob {
18
19
  private readonly patchAssetsInFolder;
19
20
  private readonly folderId;
20
21
  private readonly patches;
@@ -7,7 +7,8 @@
7
7
  * @copyright Copyright (c) Pimcore GmbH (https://www.pimcore.com)
8
8
  * @license Pimcore Open Core License (POCL)
9
9
  */
10
- import { AbstractBatchEditJob, type AbstractBatchEditJobOptions } from './abstract-batch-edit-job';
10
+ import { AbstractFolderBatchEditJob } from './abstract-folder-batch-edit-job';
11
+ import { type AbstractBatchEditJobOptions } from './abstract-batch-edit-job';
11
12
  export interface DataObjectFolderBatchEditJobOptions extends AbstractBatchEditJobOptions {
12
13
  patchObjectsInFolder: (args: any) => Promise<any>;
13
14
  folderId: number;
@@ -15,7 +16,7 @@ export interface DataObjectFolderBatchEditJobOptions extends AbstractBatchEditJo
15
16
  filters: any;
16
17
  classId: string;
17
18
  }
18
- export declare class DataObjectFolderBatchEditJob extends AbstractBatchEditJob {
19
+ export declare class DataObjectFolderBatchEditJob extends AbstractFolderBatchEditJob {
19
20
  private readonly patchObjectsInFolder;
20
21
  private readonly folderId;
21
22
  private readonly values;
@@ -12,6 +12,12 @@ export interface DownloadJobOptions {
12
12
  title: string;
13
13
  action: () => Promise<number>;
14
14
  downloadUrl: string;
15
+ /**
16
+ * Set to true for folder exports that spawn a child job (collect → create file).
17
+ * Shows "Step 1/2" / "Step 2/2" in the UI.
18
+ * Leave unset for selected-row exports (single job run, no child).
19
+ */
20
+ hasChildJob?: boolean;
15
21
  }
16
22
  export declare class DownloadJob implements JobInterface {
17
23
  private readonly options;
@@ -0,0 +1,41 @@
1
+ /**
2
+ * This source file is available under the terms of the
3
+ * Pimcore Open Core License (POCL)
4
+ * Full copyright and license information is available in
5
+ * LICENSE.md which is distributed with this source code.
6
+ *
7
+ * @copyright Copyright (c) Pimcore GmbH (https://www.pimcore.com)
8
+ * @license Pimcore Open Core License (POCL)
9
+ */
10
+ import { type JobStatus, type AbstractJob } from '../../../../modules/execution-engine/jobs/abstact-job';
11
+ import { type JobButtonCustomizationContext } from './message-bus-job-notification';
12
+ import { type ProgressCalculator } from './progress-calculator/progress-calculator.interface';
13
+ import { type StepTracker } from './step-tracker/step-tracker.interface';
14
+ export interface MessageBusJob extends AbstractJob {
15
+ progress?: number;
16
+ indeterminate?: boolean;
17
+ currentStep?: number;
18
+ totalSteps?: number;
19
+ stepDescriptionKey?: string;
20
+ onRetry?: () => void | Promise<void>;
21
+ onCustomizeButtons?: (context: JobButtonCustomizationContext) => void;
22
+ messages?: string[];
23
+ jobRunId: number;
24
+ }
25
+ export interface JobCompletionData {
26
+ isSuccessful: boolean;
27
+ isFinished: boolean;
28
+ isFailed: boolean;
29
+ status: JobStatus;
30
+ payload: any;
31
+ }
32
+ export interface MessageBusJobHandlerOptions {
33
+ jobRunId: number;
34
+ title: string | ((job: MessageBusJob) => string);
35
+ stepDescriptions?: Record<number, string>;
36
+ stepTracker?: StepTracker;
37
+ progressCalculator?: ProgressCalculator;
38
+ onJobCompletion?: (data: JobCompletionData) => void | Promise<void>;
39
+ onRetry?: () => void | Promise<void>;
40
+ onCustomizeButtons?: (context: JobButtonCustomizationContext) => void;
41
+ }
@@ -9,23 +9,20 @@
9
9
  */
10
10
  import { AbstractMessageHandler } from '../../../../modules/global-message-bus/message-handlers/abstract-message-handler';
11
11
  import { type AbstractMercureMessage } from '../../../../modules/background-processor/process/abstract-mercure-process';
12
- import { JobStatus, type AbstractJob } from '../../../../modules/execution-engine/jobs/abstact-job';
13
- import { type JobButtonCustomizationContext } from './message-bus-job-notification';
14
- /**
15
- * Default job handler that provides common functionality for job management, Redux integration, status mapping, and progress handling
16
- * Can be used directly or extended by specific job handlers
17
- */
12
+ import { type MessageBusJobHandlerOptions } from './message-bus-job-handler-types';
13
+ export type { MessageBusJob, JobCompletionData, MessageBusJobHandlerOptions } from './message-bus-job-handler-types';
18
14
  export declare class MessageBusJobHandler extends AbstractMessageHandler {
19
15
  private jobRunId;
20
16
  private job;
21
17
  private readonly onJobCompletion?;
22
18
  private readonly onRetry?;
23
19
  private readonly onCustomizeButtons?;
24
- private currentStep;
25
- private readonly totalSteps?;
20
+ private readonly stepTracker;
21
+ private readonly stepDescriptions?;
22
+ private readonly progressCalculator;
26
23
  private lastProgressValue;
27
24
  private readonly title;
28
- private readonly polling;
25
+ private polling;
29
26
  private readonly throttledProgressUpdate;
30
27
  constructor(options: MessageBusJobHandlerOptions);
31
28
  shouldHandle(message: AbstractMercureMessage): boolean;
@@ -34,11 +31,6 @@ export declare class MessageBusJobHandler extends AbstractMessageHandler {
34
31
  handleMessage(message: AbstractMercureMessage): Promise<void>;
35
32
  onUnregister(): void;
36
33
  private getTitle;
37
- /**
38
- * Calculate progress percent from message data
39
- * Handles both step-based progress (if totalSteps > 1) and direct progress values (0-100)
40
- */
41
- private calculateProgress;
42
34
  private handleJobCompletion;
43
35
  private getJob;
44
36
  private createJob;
@@ -50,27 +42,3 @@ export declare class MessageBusJobHandler extends AbstractMessageHandler {
50
42
  private handlePolledStatusUpdate;
51
43
  private processUpdate;
52
44
  }
53
- export interface MessageBusJob extends AbstractJob {
54
- progress?: number;
55
- currentStep?: number;
56
- totalSteps?: number;
57
- onRetry?: () => void | Promise<void>;
58
- onCustomizeButtons?: (context: JobButtonCustomizationContext) => void;
59
- messages?: string[];
60
- jobRunId: number;
61
- }
62
- export interface JobCompletionData {
63
- isSuccessful: boolean;
64
- isFinished: boolean;
65
- isFailed: boolean;
66
- status: JobStatus;
67
- payload: any;
68
- }
69
- export interface MessageBusJobHandlerOptions {
70
- jobRunId: number;
71
- title: string | ((job: MessageBusJob) => string);
72
- totalSteps?: number;
73
- onJobCompletion?: (data: JobCompletionData) => void | Promise<void>;
74
- onRetry?: () => void | Promise<void>;
75
- onCustomizeButtons?: (context: JobButtonCustomizationContext) => void;
76
- }
@@ -11,6 +11,7 @@ import React from 'react';
11
11
  import { type ButtonAction } from '../../../../modules/execution-engine/notification/job/job-view';
12
12
  import { type MessageBusJob } from './message-bus-job-handler';
13
13
  export interface JobButtonCustomizationContext {
14
+ jobRunId: number;
14
15
  addSuccessButton: (action: ButtonAction, position?: 'start' | 'end') => void;
15
16
  addFinishedWithErrorsButton: (action: ButtonAction, position?: 'start' | 'end') => void;
16
17
  addFailureButton: (action: ButtonAction, position?: 'start' | 'end') => void;
@@ -0,0 +1,46 @@
1
+ /**
2
+ * This source file is available under the terms of the
3
+ * Pimcore Open Core License (POCL)
4
+ * Full copyright and license information is available in
5
+ * LICENSE.md which is distributed with this source code.
6
+ *
7
+ * @copyright Copyright (c) Pimcore GmbH (https://www.pimcore.com)
8
+ * @license Pimcore Open Core License (POCL)
9
+ */
10
+ /**
11
+ * Sentinel value returned by a ProgressCalculator to signal that the progress
12
+ * bar should not be updated at all (e.g. no relevant data in the message).
13
+ *
14
+ * Distinct from `null` which signals an indeterminate (spinner) state.
15
+ */
16
+ export declare const PROGRESS_NO_UPDATE: unique symbol;
17
+ /**
18
+ * The result of a progress calculation:
19
+ *
20
+ * - `number` – determinate progress value (0–100)
21
+ * - `null` – indeterminate state (show spinner)
22
+ * - `PROGRESS_NO_UPDATE` – skip update entirely, leave bar as-is
23
+ */
24
+ export type ProgressResult = number | null | typeof PROGRESS_NO_UPDATE;
25
+ export interface ProgressCalculatorContext {
26
+ /** Current step as tracked by the step tracker */
27
+ currentStep: number;
28
+ /** Total steps if known */
29
+ totalSteps?: number;
30
+ /** Last progress value successfully applied (-1 if none yet) */
31
+ lastProgressValue: number;
32
+ }
33
+ export interface ProgressCalculator {
34
+ /**
35
+ * Calculate the progress result from a raw SSE message payload.
36
+ *
37
+ * @param data Raw message payload from the backend
38
+ * @param context Current handler state
39
+ */
40
+ calculateProgress: (data: any, context: ProgressCalculatorContext) => ProgressResult;
41
+ /**
42
+ * Called when the step advances (same-job step change or child job transition).
43
+ * Calculators that maintain internal state should reset it here.
44
+ */
45
+ onStepChange?: () => void;
46
+ }
@@ -0,0 +1,30 @@
1
+ /**
2
+ * This source file is available under the terms of the
3
+ * Pimcore Open Core License (POCL)
4
+ * Full copyright and license information is available in
5
+ * LICENSE.md which is distributed with this source code.
6
+ *
7
+ * @copyright Copyright (c) Pimcore GmbH (https://www.pimcore.com)
8
+ * @license Pimcore Open Core License (POCL)
9
+ */
10
+ import { type ProgressCalculator, type ProgressCalculatorContext, type ProgressResult } from './progress-calculator.interface';
11
+ /**
12
+ * Reads the backend `progress` field (0–100) directly.
13
+ *
14
+ * Distinguishes between gradual steps and instant steps:
15
+ * - Gradual step: backend sends progress 0 → 100 over multiple messages → smooth bar
16
+ * - Instant step: backend sends only progress 100 in one message → spinner (null)
17
+ *
18
+ * When the step tracker has a known totalSteps and the backend reports finer-grained
19
+ * sub-steps within a child job (different totalSteps value), the two are combined:
20
+ * combined = ((subStep - 1) / subTotal) * 100 + progress / subTotal
21
+ *
22
+ * Internal gradual-progress state resets on every step change via onStepChange().
23
+ *
24
+ * Used for: batch-edit folder, zip-upload, CSV/XLSX export (all variants).
25
+ */
26
+ export declare class ProgressFieldCalculator implements ProgressCalculator {
27
+ private hadGradualProgress;
28
+ calculateProgress(data: any, context: ProgressCalculatorContext): ProgressResult;
29
+ onStepChange(): void;
30
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * This source file is available under the terms of the
3
+ * Pimcore Open Core License (POCL)
4
+ * Full copyright and license information is available in
5
+ * LICENSE.md which is distributed with this source code.
6
+ *
7
+ * @copyright Copyright (c) Pimcore GmbH (https://www.pimcore.com)
8
+ * @license Pimcore Open Core License (POCL)
9
+ */
10
+ import { type ProgressCalculator, type ProgressCalculatorContext, type ProgressResult } from './progress-calculator.interface';
11
+ /**
12
+ * Calculates progress from completed steps: step N done = N / totalSteps * 100%.
13
+ *
14
+ * Each step is considered complete when the backend sends progress: 100.
15
+ * While a step is still running (progress < 100), the bar holds at the
16
+ * previous step boundary.
17
+ *
18
+ * step 1/7 completes → 14%
19
+ * step 2/7 completes → 29%
20
+ * step 7/7 completes → 100%
21
+ *
22
+ * Falls back to the raw progress field for single-step jobs (totalSteps === 1
23
+ * or totalSteps unknown).
24
+ *
25
+ * Used for: delete, batch-delete — one step per element, instant completion.
26
+ */
27
+ export declare class StepCompletionCalculator implements ProgressCalculator {
28
+ calculateProgress(data: any, context: ProgressCalculatorContext): ProgressResult;
29
+ }