@commercetools-frontend-extensions/export-resources-modal 0.0.0-canary-20240821130848 → 0.0.0-canary-20240823130607
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/commercetools-frontend-extensions-export-resources-modal.cjs.dev.js +29 -13
- package/dist/commercetools-frontend-extensions-export-resources-modal.cjs.prod.js +29 -13
- package/dist/commercetools-frontend-extensions-export-resources-modal.esm.js +28 -13
- package/dist/{de-2e768e29.cjs.prod.js → de-695399d9.cjs.prod.js} +78 -6
- package/dist/{de-a3f2c067.cjs.dev.js → de-87c7cf7f.cjs.dev.js} +78 -6
- package/dist/{de-958cd924.esm.js → de-99b348fe.esm.js} +78 -6
- package/dist/declarations/src/@types/export-resources-modal-types.d.ts +2 -1
- package/dist/{es-cf3acf58.cjs.dev.js → es-51b65e08.cjs.prod.js} +61 -13
- package/dist/{es-944a5f6c.cjs.prod.js → es-76fb86f4.cjs.dev.js} +61 -13
- package/dist/{es-3ba6234a.esm.js → es-a50b0543.esm.js} +61 -13
- package/dist/{fr-FR-677e95c2.esm.js → fr-FR-45e4cba6.esm.js} +78 -6
- package/dist/{fr-FR-be5c53ea.cjs.prod.js → fr-FR-9067e0c6.cjs.dev.js} +78 -6
- package/dist/{fr-FR-3f1b2b78.cjs.dev.js → fr-FR-edf47120.cjs.prod.js} +78 -6
- package/dist/{zh-CN-70bd76cd.esm.js → zh-CN-1b0b93bc.esm.js} +78 -6
- package/dist/{zh-CN-b116785a.cjs.dev.js → zh-CN-1b65bfd5.cjs.dev.js} +78 -6
- package/dist/{zh-CN-86871ed7.cjs.prod.js → zh-CN-4fc3d4db.cjs.prod.js} +78 -6
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -130,7 +130,7 @@ import ExportResourcesModal from '@commercetools-frontend-extensions/export-reso
|
|
|
130
130
|
outputFormat="csv"
|
|
131
131
|
resourceType="category"
|
|
132
132
|
filters={{
|
|
133
|
-
|
|
133
|
+
queryPredicate: 'key = "category-key"',
|
|
134
134
|
total: 20
|
|
135
135
|
}}
|
|
136
136
|
totalResourcesCount={143}
|
|
@@ -36,6 +36,7 @@ var _Array$isArray = require('@babel/runtime-corejs3/core-js-stable/array/is-arr
|
|
|
36
36
|
var _Set = require('@babel/runtime-corejs3/core-js-stable/set');
|
|
37
37
|
var _sortInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/sort');
|
|
38
38
|
var _indexOfInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/index-of');
|
|
39
|
+
var _trimInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/trim');
|
|
39
40
|
var moment = require('moment');
|
|
40
41
|
var _someInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/some');
|
|
41
42
|
var _findInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/find');
|
|
@@ -73,6 +74,7 @@ var _Array$isArray__default = /*#__PURE__*/_interopDefault(_Array$isArray);
|
|
|
73
74
|
var _Set__default = /*#__PURE__*/_interopDefault(_Set);
|
|
74
75
|
var _sortInstanceProperty__default = /*#__PURE__*/_interopDefault(_sortInstanceProperty);
|
|
75
76
|
var _indexOfInstanceProperty__default = /*#__PURE__*/_interopDefault(_indexOfInstanceProperty);
|
|
77
|
+
var _trimInstanceProperty__default = /*#__PURE__*/_interopDefault(_trimInstanceProperty);
|
|
76
78
|
var moment__default = /*#__PURE__*/_interopDefault(moment);
|
|
77
79
|
var _someInstanceProperty__default = /*#__PURE__*/_interopDefault(_someInstanceProperty);
|
|
78
80
|
var _findInstanceProperty__default = /*#__PURE__*/_interopDefault(_findInstanceProperty);
|
|
@@ -634,11 +636,23 @@ function buildSelectedExportFilters(selectedResourceIds) {
|
|
|
634
636
|
const formattedIds = _mapInstanceProperty__default["default"](selectedResourceIds).call(selectedResourceIds, id => `"${id}"`).join(', ');
|
|
635
637
|
return `id in (${formattedIds})`;
|
|
636
638
|
}
|
|
639
|
+
function validateFilters(filters) {
|
|
640
|
+
var _context;
|
|
641
|
+
const hasQueryPredicate = typeof filters.queryPredicate === 'string' && _trimInstanceProperty__default["default"](_context = filters.queryPredicate).call(_context) !== '';
|
|
642
|
+
const hasSearchQuery = !!(filters.searchQuery && typeof filters.searchQuery === 'object');
|
|
643
|
+
const hasValidTotal = typeof filters.total === 'number' && filters.total >= 0;
|
|
644
|
+
|
|
645
|
+
// Ensure only one of `queryPredicate` or `searchQuery` is applied
|
|
646
|
+
const onlyOneFilterApplied = hasQueryPredicate && !hasSearchQuery || !hasQueryPredicate && hasSearchQuery;
|
|
647
|
+
return onlyOneFilterApplied && hasValidTotal;
|
|
648
|
+
}
|
|
637
649
|
function areFiltersApplied(filters) {
|
|
638
650
|
if (!filters) {
|
|
639
651
|
return false;
|
|
640
652
|
}
|
|
641
|
-
|
|
653
|
+
const hasQueryPredicate = (filters.queryPredicate?.trim() ?? '') !== '';
|
|
654
|
+
const hasSearchQuery = _Object$keys__default["default"](filters.searchQuery ?? {}).length > 0;
|
|
655
|
+
return hasQueryPredicate || hasSearchQuery;
|
|
642
656
|
}
|
|
643
657
|
function getInitialExportType(args) {
|
|
644
658
|
if (args.selectedResourceIds?.length) {
|
|
@@ -807,6 +821,7 @@ async function createExportOperation(_ref) {
|
|
|
807
821
|
fields = _ref.fields,
|
|
808
822
|
locales = _ref.locales,
|
|
809
823
|
filters = _ref.filters,
|
|
824
|
+
where = _ref.where,
|
|
810
825
|
asyncDispatchFn = _ref.asyncDispatchFn;
|
|
811
826
|
const uri = `/${projectKey}/export-operations`;
|
|
812
827
|
const response = await asyncDispatchFn(sdk.actions.post({
|
|
@@ -821,6 +836,9 @@ async function createExportOperation(_ref) {
|
|
|
821
836
|
fileFormat,
|
|
822
837
|
fields,
|
|
823
838
|
locales,
|
|
839
|
+
// Query predicate
|
|
840
|
+
where,
|
|
841
|
+
// Search API filters
|
|
824
842
|
filters
|
|
825
843
|
}
|
|
826
844
|
}));
|
|
@@ -859,13 +877,6 @@ const useStartExportOperation = props => {
|
|
|
859
877
|
const startExportOperation = async values => {
|
|
860
878
|
try {
|
|
861
879
|
const fields = extractFieldsFromGroups(values.groups);
|
|
862
|
-
let filters = undefined;
|
|
863
|
-
if (props.exportType === EXPORT_TYPES.SELECTED) filters = buildSelectedExportFilters(props.selectedResourceIds);
|
|
864
|
-
if (props.exportType === EXPORT_TYPES.FILTERED) {
|
|
865
|
-
filters = props.filters.where;
|
|
866
|
-
// TODO: handle search query when Export API supports it
|
|
867
|
-
// filters = props.filters.where || props.filters.searchQuery
|
|
868
|
-
}
|
|
869
880
|
const response = await createExportOperation({
|
|
870
881
|
projectKey,
|
|
871
882
|
resourceType: props.resourceType,
|
|
@@ -873,7 +884,8 @@ const useStartExportOperation = props => {
|
|
|
873
884
|
fileFormat: values.outputFormat,
|
|
874
885
|
locales: values.locales,
|
|
875
886
|
fields,
|
|
876
|
-
|
|
887
|
+
where: props.exportType === EXPORT_TYPES.SELECTED ? buildSelectedExportFilters(props.selectedResourceIds) : props.filters?.queryPredicate,
|
|
888
|
+
filters: props.filters?.searchQuery,
|
|
877
889
|
asyncDispatchFn: asyncDispatch
|
|
878
890
|
});
|
|
879
891
|
switch (response.state) {
|
|
@@ -1686,13 +1698,13 @@ const getChunkImport = locale => {
|
|
|
1686
1698
|
const intlLocale = i18n.mapLocaleToIntlLocale(locale);
|
|
1687
1699
|
switch (intlLocale) {
|
|
1688
1700
|
case 'de':
|
|
1689
|
-
return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-de" */'./de-
|
|
1701
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-de" */'./de-87c7cf7f.cjs.dev.js'); });
|
|
1690
1702
|
case 'es':
|
|
1691
|
-
return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-es" */'./es-
|
|
1703
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-es" */'./es-76fb86f4.cjs.dev.js'); });
|
|
1692
1704
|
case 'fr-FR':
|
|
1693
|
-
return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-fr-FR" */'./fr-FR-
|
|
1705
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-fr-FR" */'./fr-FR-9067e0c6.cjs.dev.js'); });
|
|
1694
1706
|
case 'zh-CN':
|
|
1695
|
-
return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-zh-CN" */'./zh-CN-
|
|
1707
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-zh-CN" */'./zh-CN-1b65bfd5.cjs.dev.js'); });
|
|
1696
1708
|
case 'ja':
|
|
1697
1709
|
return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-ja" */'./ja-9bd5f452.cjs.dev.js'); });
|
|
1698
1710
|
case 'pt-BR':
|
|
@@ -1759,6 +1771,10 @@ const ExportResourcesModal = props => {
|
|
|
1759
1771
|
locale = _useApplicationContex.locale;
|
|
1760
1772
|
const messages = useAsyncIntlMessages(locale, loadMessages);
|
|
1761
1773
|
if (!props.isOpen || messages.isLoading) return null;
|
|
1774
|
+
if (props.filters && !validateFilters(props.filters)) {
|
|
1775
|
+
console.error('Invalid filters prop:', props.filters, 'Filters must have either a valid `queryPredicate` or a valid `searchQuery`, but not both.');
|
|
1776
|
+
return null;
|
|
1777
|
+
}
|
|
1762
1778
|
return jsxRuntime.jsx(reactIntl.IntlProvider, {
|
|
1763
1779
|
locale: locale,
|
|
1764
1780
|
messages: messages.messages,
|
|
@@ -36,6 +36,7 @@ var _Array$isArray = require('@babel/runtime-corejs3/core-js-stable/array/is-arr
|
|
|
36
36
|
var _Set = require('@babel/runtime-corejs3/core-js-stable/set');
|
|
37
37
|
var _sortInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/sort');
|
|
38
38
|
var _indexOfInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/index-of');
|
|
39
|
+
var _trimInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/trim');
|
|
39
40
|
var moment = require('moment');
|
|
40
41
|
var _someInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/some');
|
|
41
42
|
var _findInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/find');
|
|
@@ -73,6 +74,7 @@ var _Array$isArray__default = /*#__PURE__*/_interopDefault(_Array$isArray);
|
|
|
73
74
|
var _Set__default = /*#__PURE__*/_interopDefault(_Set);
|
|
74
75
|
var _sortInstanceProperty__default = /*#__PURE__*/_interopDefault(_sortInstanceProperty);
|
|
75
76
|
var _indexOfInstanceProperty__default = /*#__PURE__*/_interopDefault(_indexOfInstanceProperty);
|
|
77
|
+
var _trimInstanceProperty__default = /*#__PURE__*/_interopDefault(_trimInstanceProperty);
|
|
76
78
|
var moment__default = /*#__PURE__*/_interopDefault(moment);
|
|
77
79
|
var _someInstanceProperty__default = /*#__PURE__*/_interopDefault(_someInstanceProperty);
|
|
78
80
|
var _findInstanceProperty__default = /*#__PURE__*/_interopDefault(_findInstanceProperty);
|
|
@@ -634,11 +636,23 @@ function buildSelectedExportFilters(selectedResourceIds) {
|
|
|
634
636
|
const formattedIds = _mapInstanceProperty__default["default"](selectedResourceIds).call(selectedResourceIds, id => `"${id}"`).join(', ');
|
|
635
637
|
return `id in (${formattedIds})`;
|
|
636
638
|
}
|
|
639
|
+
function validateFilters(filters) {
|
|
640
|
+
var _context;
|
|
641
|
+
const hasQueryPredicate = typeof filters.queryPredicate === 'string' && _trimInstanceProperty__default["default"](_context = filters.queryPredicate).call(_context) !== '';
|
|
642
|
+
const hasSearchQuery = !!(filters.searchQuery && typeof filters.searchQuery === 'object');
|
|
643
|
+
const hasValidTotal = typeof filters.total === 'number' && filters.total >= 0;
|
|
644
|
+
|
|
645
|
+
// Ensure only one of `queryPredicate` or `searchQuery` is applied
|
|
646
|
+
const onlyOneFilterApplied = hasQueryPredicate && !hasSearchQuery || !hasQueryPredicate && hasSearchQuery;
|
|
647
|
+
return onlyOneFilterApplied && hasValidTotal;
|
|
648
|
+
}
|
|
637
649
|
function areFiltersApplied(filters) {
|
|
638
650
|
if (!filters) {
|
|
639
651
|
return false;
|
|
640
652
|
}
|
|
641
|
-
|
|
653
|
+
const hasQueryPredicate = (filters.queryPredicate?.trim() ?? '') !== '';
|
|
654
|
+
const hasSearchQuery = _Object$keys__default["default"](filters.searchQuery ?? {}).length > 0;
|
|
655
|
+
return hasQueryPredicate || hasSearchQuery;
|
|
642
656
|
}
|
|
643
657
|
function getInitialExportType(args) {
|
|
644
658
|
if (args.selectedResourceIds?.length) {
|
|
@@ -807,6 +821,7 @@ async function createExportOperation(_ref) {
|
|
|
807
821
|
fields = _ref.fields,
|
|
808
822
|
locales = _ref.locales,
|
|
809
823
|
filters = _ref.filters,
|
|
824
|
+
where = _ref.where,
|
|
810
825
|
asyncDispatchFn = _ref.asyncDispatchFn;
|
|
811
826
|
const uri = `/${projectKey}/export-operations`;
|
|
812
827
|
const response = await asyncDispatchFn(sdk.actions.post({
|
|
@@ -821,6 +836,9 @@ async function createExportOperation(_ref) {
|
|
|
821
836
|
fileFormat,
|
|
822
837
|
fields,
|
|
823
838
|
locales,
|
|
839
|
+
// Query predicate
|
|
840
|
+
where,
|
|
841
|
+
// Search API filters
|
|
824
842
|
filters
|
|
825
843
|
}
|
|
826
844
|
}));
|
|
@@ -859,13 +877,6 @@ const useStartExportOperation = props => {
|
|
|
859
877
|
const startExportOperation = async values => {
|
|
860
878
|
try {
|
|
861
879
|
const fields = extractFieldsFromGroups(values.groups);
|
|
862
|
-
let filters = undefined;
|
|
863
|
-
if (props.exportType === EXPORT_TYPES.SELECTED) filters = buildSelectedExportFilters(props.selectedResourceIds);
|
|
864
|
-
if (props.exportType === EXPORT_TYPES.FILTERED) {
|
|
865
|
-
filters = props.filters.where;
|
|
866
|
-
// TODO: handle search query when Export API supports it
|
|
867
|
-
// filters = props.filters.where || props.filters.searchQuery
|
|
868
|
-
}
|
|
869
880
|
const response = await createExportOperation({
|
|
870
881
|
projectKey,
|
|
871
882
|
resourceType: props.resourceType,
|
|
@@ -873,7 +884,8 @@ const useStartExportOperation = props => {
|
|
|
873
884
|
fileFormat: values.outputFormat,
|
|
874
885
|
locales: values.locales,
|
|
875
886
|
fields,
|
|
876
|
-
|
|
887
|
+
where: props.exportType === EXPORT_TYPES.SELECTED ? buildSelectedExportFilters(props.selectedResourceIds) : props.filters?.queryPredicate,
|
|
888
|
+
filters: props.filters?.searchQuery,
|
|
877
889
|
asyncDispatchFn: asyncDispatch
|
|
878
890
|
});
|
|
879
891
|
switch (response.state) {
|
|
@@ -1653,13 +1665,13 @@ const getChunkImport = locale => {
|
|
|
1653
1665
|
const intlLocale = i18n.mapLocaleToIntlLocale(locale);
|
|
1654
1666
|
switch (intlLocale) {
|
|
1655
1667
|
case 'de':
|
|
1656
|
-
return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-de" */'./de-
|
|
1668
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-de" */'./de-695399d9.cjs.prod.js'); });
|
|
1657
1669
|
case 'es':
|
|
1658
|
-
return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-es" */'./es-
|
|
1670
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-es" */'./es-51b65e08.cjs.prod.js'); });
|
|
1659
1671
|
case 'fr-FR':
|
|
1660
|
-
return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-fr-FR" */'./fr-FR-
|
|
1672
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-fr-FR" */'./fr-FR-edf47120.cjs.prod.js'); });
|
|
1661
1673
|
case 'zh-CN':
|
|
1662
|
-
return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-zh-CN" */'./zh-CN-
|
|
1674
|
+
return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-zh-CN" */'./zh-CN-4fc3d4db.cjs.prod.js'); });
|
|
1663
1675
|
case 'ja':
|
|
1664
1676
|
return Promise.resolve().then(function () { return require( /* webpackChunkName: "export-resources-modal-i18n-ja" */'./ja-37632763.cjs.prod.js'); });
|
|
1665
1677
|
case 'pt-BR':
|
|
@@ -1726,6 +1738,10 @@ const ExportResourcesModal = props => {
|
|
|
1726
1738
|
locale = _useApplicationContex.locale;
|
|
1727
1739
|
const messages = useAsyncIntlMessages(locale, loadMessages);
|
|
1728
1740
|
if (!props.isOpen || messages.isLoading) return null;
|
|
1741
|
+
if (props.filters && !validateFilters(props.filters)) {
|
|
1742
|
+
console.error('Invalid filters prop:', props.filters, 'Filters must have either a valid `queryPredicate` or a valid `searchQuery`, but not both.');
|
|
1743
|
+
return null;
|
|
1744
|
+
}
|
|
1729
1745
|
return jsxRuntime.jsx(reactIntl.IntlProvider, {
|
|
1730
1746
|
locale: locale,
|
|
1731
1747
|
messages: messages.messages,
|
|
@@ -32,6 +32,7 @@ import _Array$isArray from '@babel/runtime-corejs3/core-js-stable/array/is-array
|
|
|
32
32
|
import _Set from '@babel/runtime-corejs3/core-js-stable/set';
|
|
33
33
|
import _sortInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/sort';
|
|
34
34
|
import _indexOfInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/index-of';
|
|
35
|
+
import _trimInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/trim';
|
|
35
36
|
import moment from 'moment';
|
|
36
37
|
import _someInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/some';
|
|
37
38
|
import _findInstanceProperty from '@babel/runtime-corejs3/core-js-stable/instance/find';
|
|
@@ -600,11 +601,23 @@ function buildSelectedExportFilters(selectedResourceIds) {
|
|
|
600
601
|
const formattedIds = _mapInstanceProperty(selectedResourceIds).call(selectedResourceIds, id => `"${id}"`).join(', ');
|
|
601
602
|
return `id in (${formattedIds})`;
|
|
602
603
|
}
|
|
604
|
+
function validateFilters(filters) {
|
|
605
|
+
var _context;
|
|
606
|
+
const hasQueryPredicate = typeof filters.queryPredicate === 'string' && _trimInstanceProperty(_context = filters.queryPredicate).call(_context) !== '';
|
|
607
|
+
const hasSearchQuery = !!(filters.searchQuery && typeof filters.searchQuery === 'object');
|
|
608
|
+
const hasValidTotal = typeof filters.total === 'number' && filters.total >= 0;
|
|
609
|
+
|
|
610
|
+
// Ensure only one of `queryPredicate` or `searchQuery` is applied
|
|
611
|
+
const onlyOneFilterApplied = hasQueryPredicate && !hasSearchQuery || !hasQueryPredicate && hasSearchQuery;
|
|
612
|
+
return onlyOneFilterApplied && hasValidTotal;
|
|
613
|
+
}
|
|
603
614
|
function areFiltersApplied(filters) {
|
|
604
615
|
if (!filters) {
|
|
605
616
|
return false;
|
|
606
617
|
}
|
|
607
|
-
|
|
618
|
+
const hasQueryPredicate = (filters.queryPredicate?.trim() ?? '') !== '';
|
|
619
|
+
const hasSearchQuery = _Object$keys(filters.searchQuery ?? {}).length > 0;
|
|
620
|
+
return hasQueryPredicate || hasSearchQuery;
|
|
608
621
|
}
|
|
609
622
|
function getInitialExportType(args) {
|
|
610
623
|
if (args.selectedResourceIds?.length) {
|
|
@@ -773,6 +786,7 @@ async function createExportOperation(_ref) {
|
|
|
773
786
|
fields = _ref.fields,
|
|
774
787
|
locales = _ref.locales,
|
|
775
788
|
filters = _ref.filters,
|
|
789
|
+
where = _ref.where,
|
|
776
790
|
asyncDispatchFn = _ref.asyncDispatchFn;
|
|
777
791
|
const uri = `/${projectKey}/export-operations`;
|
|
778
792
|
const response = await asyncDispatchFn(actions.post({
|
|
@@ -787,6 +801,9 @@ async function createExportOperation(_ref) {
|
|
|
787
801
|
fileFormat,
|
|
788
802
|
fields,
|
|
789
803
|
locales,
|
|
804
|
+
// Query predicate
|
|
805
|
+
where,
|
|
806
|
+
// Search API filters
|
|
790
807
|
filters
|
|
791
808
|
}
|
|
792
809
|
}));
|
|
@@ -825,13 +842,6 @@ const useStartExportOperation = props => {
|
|
|
825
842
|
const startExportOperation = async values => {
|
|
826
843
|
try {
|
|
827
844
|
const fields = extractFieldsFromGroups(values.groups);
|
|
828
|
-
let filters = undefined;
|
|
829
|
-
if (props.exportType === EXPORT_TYPES.SELECTED) filters = buildSelectedExportFilters(props.selectedResourceIds);
|
|
830
|
-
if (props.exportType === EXPORT_TYPES.FILTERED) {
|
|
831
|
-
filters = props.filters.where;
|
|
832
|
-
// TODO: handle search query when Export API supports it
|
|
833
|
-
// filters = props.filters.where || props.filters.searchQuery
|
|
834
|
-
}
|
|
835
845
|
const response = await createExportOperation({
|
|
836
846
|
projectKey,
|
|
837
847
|
resourceType: props.resourceType,
|
|
@@ -839,7 +849,8 @@ const useStartExportOperation = props => {
|
|
|
839
849
|
fileFormat: values.outputFormat,
|
|
840
850
|
locales: values.locales,
|
|
841
851
|
fields,
|
|
842
|
-
|
|
852
|
+
where: props.exportType === EXPORT_TYPES.SELECTED ? buildSelectedExportFilters(props.selectedResourceIds) : props.filters?.queryPredicate,
|
|
853
|
+
filters: props.filters?.searchQuery,
|
|
843
854
|
asyncDispatchFn: asyncDispatch
|
|
844
855
|
});
|
|
845
856
|
switch (response.state) {
|
|
@@ -1652,13 +1663,13 @@ const getChunkImport = locale => {
|
|
|
1652
1663
|
const intlLocale = mapLocaleToIntlLocale(locale);
|
|
1653
1664
|
switch (intlLocale) {
|
|
1654
1665
|
case 'de':
|
|
1655
|
-
return import( /* webpackChunkName: "export-resources-modal-i18n-de" */'./de-
|
|
1666
|
+
return import( /* webpackChunkName: "export-resources-modal-i18n-de" */'./de-99b348fe.esm.js');
|
|
1656
1667
|
case 'es':
|
|
1657
|
-
return import( /* webpackChunkName: "export-resources-modal-i18n-es" */'./es-
|
|
1668
|
+
return import( /* webpackChunkName: "export-resources-modal-i18n-es" */'./es-a50b0543.esm.js');
|
|
1658
1669
|
case 'fr-FR':
|
|
1659
|
-
return import( /* webpackChunkName: "export-resources-modal-i18n-fr-FR" */'./fr-FR-
|
|
1670
|
+
return import( /* webpackChunkName: "export-resources-modal-i18n-fr-FR" */'./fr-FR-45e4cba6.esm.js');
|
|
1660
1671
|
case 'zh-CN':
|
|
1661
|
-
return import( /* webpackChunkName: "export-resources-modal-i18n-zh-CN" */'./zh-CN-
|
|
1672
|
+
return import( /* webpackChunkName: "export-resources-modal-i18n-zh-CN" */'./zh-CN-1b0b93bc.esm.js');
|
|
1662
1673
|
case 'ja':
|
|
1663
1674
|
return import( /* webpackChunkName: "export-resources-modal-i18n-ja" */'./ja-73c088a7.esm.js');
|
|
1664
1675
|
case 'pt-BR':
|
|
@@ -1725,6 +1736,10 @@ const ExportResourcesModal = props => {
|
|
|
1725
1736
|
locale = _useApplicationContex.locale;
|
|
1726
1737
|
const messages = useAsyncIntlMessages(locale, loadMessages);
|
|
1727
1738
|
if (!props.isOpen || messages.isLoading) return null;
|
|
1739
|
+
if (props.filters && !validateFilters(props.filters)) {
|
|
1740
|
+
console.error('Invalid filters prop:', props.filters, 'Filters must have either a valid `queryPredicate` or a valid `searchQuery`, but not both.');
|
|
1741
|
+
return null;
|
|
1742
|
+
}
|
|
1728
1743
|
return jsx(IntlProvider, {
|
|
1729
1744
|
locale: locale,
|
|
1730
1745
|
messages: messages.messages,
|
|
@@ -17,6 +17,18 @@ var de = {
|
|
|
17
17
|
developer_comment: "Select Export setttings based on my views",
|
|
18
18
|
string: "Wählen Sie Exporteinstellungen basierend auf:"
|
|
19
19
|
},
|
|
20
|
+
"ExportResourcesModal.exportInventoriesForAllProducts": {
|
|
21
|
+
developer_comment: "Label for Export All inventories",
|
|
22
|
+
string: "Lagerbestände für alle {total} Produkte exportieren"
|
|
23
|
+
},
|
|
24
|
+
"ExportResourcesModal.exportInventoriesForFilteredProducts": {
|
|
25
|
+
developer_comment: "Label for Export Filtered inventories",
|
|
26
|
+
string: "Lagerbestände für die {total} gefilterten Produkte exportieren"
|
|
27
|
+
},
|
|
28
|
+
"ExportResourcesModal.exportInventoriesForSelectedProducts": {
|
|
29
|
+
developer_comment: "Label for Export Selected inventories",
|
|
30
|
+
string: "Lagerbestände für die {total} ausgewählten Produkte exportieren"
|
|
31
|
+
},
|
|
20
32
|
"ExportResourcesModal.exportOperationSuccessMessage": {
|
|
21
33
|
developer_comment: "Success message",
|
|
22
34
|
string: "<b>Der Export hat begonnen.</b> <newline></newline><logsLink>Gehen Sie zu Exportprotokolle</logsLink>, um den Fortschritt zu überprüfen und die Datei herunterzuladen."
|
|
@@ -29,21 +41,73 @@ var de = {
|
|
|
29
41
|
developer_comment: "Label for Export All categories",
|
|
30
42
|
string: "Export all: {total} categories"
|
|
31
43
|
},
|
|
32
|
-
"ExportResourcesModal.
|
|
33
|
-
developer_comment: "Label for Export All
|
|
34
|
-
string: "
|
|
44
|
+
"ExportResourcesModal.exportScopeAllCustomers": {
|
|
45
|
+
developer_comment: "Label for Export All customers",
|
|
46
|
+
string: "Alles exportieren: {total} Kunden"
|
|
47
|
+
},
|
|
48
|
+
"ExportResourcesModal.exportScopeAllDiscountCodes": {
|
|
49
|
+
developer_comment: "Label for Export All discount codes",
|
|
50
|
+
string: "Alle exportieren: {total} Rabattcodes"
|
|
51
|
+
},
|
|
52
|
+
"ExportResourcesModal.exportScopeAllOrders": {
|
|
53
|
+
developer_comment: "Label for Export All orders",
|
|
54
|
+
string: "Alle exportieren: {total} Bestellungen"
|
|
55
|
+
},
|
|
56
|
+
"ExportResourcesModal.exportScopeAllProductTypes": {
|
|
57
|
+
developer_comment: "Label for Export All product types",
|
|
58
|
+
string: "Alle exportieren: {total} Produkttypen"
|
|
35
59
|
},
|
|
36
60
|
"ExportResourcesModal.exportScopeAllProducts": {
|
|
37
61
|
developer_comment: "Label for Export All products",
|
|
38
62
|
string: "Export all: {total} products"
|
|
39
63
|
},
|
|
64
|
+
"ExportResourcesModal.exportScopeFilteredCategories": {
|
|
65
|
+
developer_comment: "Label for Export Filtered categories",
|
|
66
|
+
string: "Gefilterte exportieren: {total} Kategorien"
|
|
67
|
+
},
|
|
68
|
+
"ExportResourcesModal.exportScopeFilteredCustomers": {
|
|
69
|
+
developer_comment: "Label for Export Filtered customers",
|
|
70
|
+
string: "Gefilterte exportieren: {total} Kunden"
|
|
71
|
+
},
|
|
72
|
+
"ExportResourcesModal.exportScopeFilteredDiscountCodes": {
|
|
73
|
+
developer_comment: "Label for Export Filtered discount codes",
|
|
74
|
+
string: "Gefilterte exportieren: {total} Rabattcodes"
|
|
75
|
+
},
|
|
76
|
+
"ExportResourcesModal.exportScopeFilteredOrders": {
|
|
77
|
+
developer_comment: "Label for Export Filtered orders",
|
|
78
|
+
string: "Gefilterte exportieren: {total} Bestellungen"
|
|
79
|
+
},
|
|
80
|
+
"ExportResourcesModal.exportScopeFilteredProductTypes": {
|
|
81
|
+
developer_comment: "Label for Export Filtered product types",
|
|
82
|
+
string: "Gefilterte exportieren: {total} Produkttypen"
|
|
83
|
+
},
|
|
84
|
+
"ExportResourcesModal.exportScopeFilteredProducts": {
|
|
85
|
+
developer_comment: "Label for Export Filtered products",
|
|
86
|
+
string: "Gefilterte exportieren: {total} Produkte"
|
|
87
|
+
},
|
|
88
|
+
"ExportResourcesModal.exportScopeFilteredWithoutCount": {
|
|
89
|
+
developer_comment: "Label for Export Filtered without count",
|
|
90
|
+
string: "Gefilterte exportieren"
|
|
91
|
+
},
|
|
40
92
|
"ExportResourcesModal.exportScopeSelectedCategories": {
|
|
41
93
|
developer_comment: "Label for Export Selected categories",
|
|
42
94
|
string: "Export selected: {total} categories"
|
|
43
95
|
},
|
|
44
|
-
"ExportResourcesModal.
|
|
45
|
-
developer_comment: "Label for Export Selected
|
|
46
|
-
string: "
|
|
96
|
+
"ExportResourcesModal.exportScopeSelectedCustomers": {
|
|
97
|
+
developer_comment: "Label for Export Selected customers",
|
|
98
|
+
string: "Ausgewählte exportieren: {total} Kunden"
|
|
99
|
+
},
|
|
100
|
+
"ExportResourcesModal.exportScopeSelectedDiscountCodes": {
|
|
101
|
+
developer_comment: "Label for Export Selected discount codes",
|
|
102
|
+
string: "Ausgewählte exportieren: {total} Rabattcodes"
|
|
103
|
+
},
|
|
104
|
+
"ExportResourcesModal.exportScopeSelectedOrders": {
|
|
105
|
+
developer_comment: "Label for Export Selected orders",
|
|
106
|
+
string: "Ausgewählte exportieren: {total} Bestellungen"
|
|
107
|
+
},
|
|
108
|
+
"ExportResourcesModal.exportScopeSelectedProductTypes": {
|
|
109
|
+
developer_comment: "Label for Export Selected product types",
|
|
110
|
+
string: "Ausgewählte exportieren: {total} Produkttypen"
|
|
47
111
|
},
|
|
48
112
|
"ExportResourcesModal.exportScopeSelectedProducts": {
|
|
49
113
|
developer_comment: "Label for Export Selected products",
|
|
@@ -85,6 +149,10 @@ var de = {
|
|
|
85
149
|
developer_comment: "Label for the categories modal title",
|
|
86
150
|
string: "Export categories"
|
|
87
151
|
},
|
|
152
|
+
"ExportResourcesModal.modalTitle.discountCode": {
|
|
153
|
+
developer_comment: "Label for the discount codes modal title",
|
|
154
|
+
string: "Rabattcodes exportieren"
|
|
155
|
+
},
|
|
88
156
|
"ExportResourcesModal.modalTitle.inventoryEntry": {
|
|
89
157
|
developer_comment: "Label for the inventories modal title",
|
|
90
158
|
string: "Lagerbestände exportieren"
|
|
@@ -124,6 +192,10 @@ var de = {
|
|
|
124
192
|
"ExportResourcesModal.selectFieldsToExport": {
|
|
125
193
|
string: "Zu exportierende Felder auswählen"
|
|
126
194
|
},
|
|
195
|
+
"ExportResourcesModal.selected": {
|
|
196
|
+
developer_comment: "Label for total Selected",
|
|
197
|
+
string: "{total} ausgewählt"
|
|
198
|
+
},
|
|
127
199
|
"ExportResourcesModal.startExport": {
|
|
128
200
|
developer_comment: "Label for \"Start export\" button",
|
|
129
201
|
string: "Export starten"
|
|
@@ -17,6 +17,18 @@ var de = {
|
|
|
17
17
|
developer_comment: "Select Export setttings based on my views",
|
|
18
18
|
string: "Wählen Sie Exporteinstellungen basierend auf:"
|
|
19
19
|
},
|
|
20
|
+
"ExportResourcesModal.exportInventoriesForAllProducts": {
|
|
21
|
+
developer_comment: "Label for Export All inventories",
|
|
22
|
+
string: "Lagerbestände für alle {total} Produkte exportieren"
|
|
23
|
+
},
|
|
24
|
+
"ExportResourcesModal.exportInventoriesForFilteredProducts": {
|
|
25
|
+
developer_comment: "Label for Export Filtered inventories",
|
|
26
|
+
string: "Lagerbestände für die {total} gefilterten Produkte exportieren"
|
|
27
|
+
},
|
|
28
|
+
"ExportResourcesModal.exportInventoriesForSelectedProducts": {
|
|
29
|
+
developer_comment: "Label for Export Selected inventories",
|
|
30
|
+
string: "Lagerbestände für die {total} ausgewählten Produkte exportieren"
|
|
31
|
+
},
|
|
20
32
|
"ExportResourcesModal.exportOperationSuccessMessage": {
|
|
21
33
|
developer_comment: "Success message",
|
|
22
34
|
string: "<b>Der Export hat begonnen.</b> <newline></newline><logsLink>Gehen Sie zu Exportprotokolle</logsLink>, um den Fortschritt zu überprüfen und die Datei herunterzuladen."
|
|
@@ -29,21 +41,73 @@ var de = {
|
|
|
29
41
|
developer_comment: "Label for Export All categories",
|
|
30
42
|
string: "Export all: {total} categories"
|
|
31
43
|
},
|
|
32
|
-
"ExportResourcesModal.
|
|
33
|
-
developer_comment: "Label for Export All
|
|
34
|
-
string: "
|
|
44
|
+
"ExportResourcesModal.exportScopeAllCustomers": {
|
|
45
|
+
developer_comment: "Label for Export All customers",
|
|
46
|
+
string: "Alles exportieren: {total} Kunden"
|
|
47
|
+
},
|
|
48
|
+
"ExportResourcesModal.exportScopeAllDiscountCodes": {
|
|
49
|
+
developer_comment: "Label for Export All discount codes",
|
|
50
|
+
string: "Alle exportieren: {total} Rabattcodes"
|
|
51
|
+
},
|
|
52
|
+
"ExportResourcesModal.exportScopeAllOrders": {
|
|
53
|
+
developer_comment: "Label for Export All orders",
|
|
54
|
+
string: "Alle exportieren: {total} Bestellungen"
|
|
55
|
+
},
|
|
56
|
+
"ExportResourcesModal.exportScopeAllProductTypes": {
|
|
57
|
+
developer_comment: "Label for Export All product types",
|
|
58
|
+
string: "Alle exportieren: {total} Produkttypen"
|
|
35
59
|
},
|
|
36
60
|
"ExportResourcesModal.exportScopeAllProducts": {
|
|
37
61
|
developer_comment: "Label for Export All products",
|
|
38
62
|
string: "Export all: {total} products"
|
|
39
63
|
},
|
|
64
|
+
"ExportResourcesModal.exportScopeFilteredCategories": {
|
|
65
|
+
developer_comment: "Label for Export Filtered categories",
|
|
66
|
+
string: "Gefilterte exportieren: {total} Kategorien"
|
|
67
|
+
},
|
|
68
|
+
"ExportResourcesModal.exportScopeFilteredCustomers": {
|
|
69
|
+
developer_comment: "Label for Export Filtered customers",
|
|
70
|
+
string: "Gefilterte exportieren: {total} Kunden"
|
|
71
|
+
},
|
|
72
|
+
"ExportResourcesModal.exportScopeFilteredDiscountCodes": {
|
|
73
|
+
developer_comment: "Label for Export Filtered discount codes",
|
|
74
|
+
string: "Gefilterte exportieren: {total} Rabattcodes"
|
|
75
|
+
},
|
|
76
|
+
"ExportResourcesModal.exportScopeFilteredOrders": {
|
|
77
|
+
developer_comment: "Label for Export Filtered orders",
|
|
78
|
+
string: "Gefilterte exportieren: {total} Bestellungen"
|
|
79
|
+
},
|
|
80
|
+
"ExportResourcesModal.exportScopeFilteredProductTypes": {
|
|
81
|
+
developer_comment: "Label for Export Filtered product types",
|
|
82
|
+
string: "Gefilterte exportieren: {total} Produkttypen"
|
|
83
|
+
},
|
|
84
|
+
"ExportResourcesModal.exportScopeFilteredProducts": {
|
|
85
|
+
developer_comment: "Label for Export Filtered products",
|
|
86
|
+
string: "Gefilterte exportieren: {total} Produkte"
|
|
87
|
+
},
|
|
88
|
+
"ExportResourcesModal.exportScopeFilteredWithoutCount": {
|
|
89
|
+
developer_comment: "Label for Export Filtered without count",
|
|
90
|
+
string: "Gefilterte exportieren"
|
|
91
|
+
},
|
|
40
92
|
"ExportResourcesModal.exportScopeSelectedCategories": {
|
|
41
93
|
developer_comment: "Label for Export Selected categories",
|
|
42
94
|
string: "Export selected: {total} categories"
|
|
43
95
|
},
|
|
44
|
-
"ExportResourcesModal.
|
|
45
|
-
developer_comment: "Label for Export Selected
|
|
46
|
-
string: "
|
|
96
|
+
"ExportResourcesModal.exportScopeSelectedCustomers": {
|
|
97
|
+
developer_comment: "Label for Export Selected customers",
|
|
98
|
+
string: "Ausgewählte exportieren: {total} Kunden"
|
|
99
|
+
},
|
|
100
|
+
"ExportResourcesModal.exportScopeSelectedDiscountCodes": {
|
|
101
|
+
developer_comment: "Label for Export Selected discount codes",
|
|
102
|
+
string: "Ausgewählte exportieren: {total} Rabattcodes"
|
|
103
|
+
},
|
|
104
|
+
"ExportResourcesModal.exportScopeSelectedOrders": {
|
|
105
|
+
developer_comment: "Label for Export Selected orders",
|
|
106
|
+
string: "Ausgewählte exportieren: {total} Bestellungen"
|
|
107
|
+
},
|
|
108
|
+
"ExportResourcesModal.exportScopeSelectedProductTypes": {
|
|
109
|
+
developer_comment: "Label for Export Selected product types",
|
|
110
|
+
string: "Ausgewählte exportieren: {total} Produkttypen"
|
|
47
111
|
},
|
|
48
112
|
"ExportResourcesModal.exportScopeSelectedProducts": {
|
|
49
113
|
developer_comment: "Label for Export Selected products",
|
|
@@ -85,6 +149,10 @@ var de = {
|
|
|
85
149
|
developer_comment: "Label for the categories modal title",
|
|
86
150
|
string: "Export categories"
|
|
87
151
|
},
|
|
152
|
+
"ExportResourcesModal.modalTitle.discountCode": {
|
|
153
|
+
developer_comment: "Label for the discount codes modal title",
|
|
154
|
+
string: "Rabattcodes exportieren"
|
|
155
|
+
},
|
|
88
156
|
"ExportResourcesModal.modalTitle.inventoryEntry": {
|
|
89
157
|
developer_comment: "Label for the inventories modal title",
|
|
90
158
|
string: "Lagerbestände exportieren"
|
|
@@ -124,6 +192,10 @@ var de = {
|
|
|
124
192
|
"ExportResourcesModal.selectFieldsToExport": {
|
|
125
193
|
string: "Zu exportierende Felder auswählen"
|
|
126
194
|
},
|
|
195
|
+
"ExportResourcesModal.selected": {
|
|
196
|
+
developer_comment: "Label for total Selected",
|
|
197
|
+
string: "{total} ausgewählt"
|
|
198
|
+
},
|
|
127
199
|
"ExportResourcesModal.startExport": {
|
|
128
200
|
developer_comment: "Label for \"Start export\" button",
|
|
129
201
|
string: "Export starten"
|