@crystaldesign/diva-backoffice 26.12.0-beta.36 → 26.12.0-beta.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/esm/index.js +151 -98
- package/build/types/backoffice/src/tests/unit/ui/IDMEnricherEditor/components/PriceFactorCellRenderer/priceFactorHelpers.test.d.ts +2 -0
- package/build/types/backoffice/src/tests/unit/ui/IDMEnricherEditor/components/PriceFactorCellRenderer/priceFactorHelpers.test.d.ts.map +1 -0
- package/build/types/backoffice/src/tests/unit/ui/IDMEnricherEditor/components/PriceFactorCellRenderer/usePriceFactor.test.d.ts +2 -0
- package/build/types/backoffice/src/tests/unit/ui/IDMEnricherEditor/components/PriceFactorCellRenderer/usePriceFactor.test.d.ts.map +1 -0
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/articleColumns.d.ts +2 -1
- package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/articleColumns.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/AssortmentManager/HeaderData/components/HeaderField/index.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/AssortmentManager/HeaderData/components/ItemGroupTable/index.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/AssortmentManager/HeaderData/hooks/useDropdownEnumData.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/AssortmentManager/HeaderData/logic/itemGroupColumns.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/AssortmentManager/config/fields.d.ts +6 -0
- package/build/types/backoffice/src/ui/AssortmentManager/config/fields.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/AssortmentManager/tests/useDropdownEnumData.test.d.ts +2 -0
- package/build/types/backoffice/src/ui/AssortmentManager/tests/useDropdownEnumData.test.d.ts.map +1 -0
- package/build/types/backoffice/src/ui/CommonComponents/UploadModal/ErrorDisplay.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/CommonComponents/UploadModal/types.d.ts +2 -0
- package/build/types/backoffice/src/ui/CommonComponents/UploadModal/types.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/CommonComponents/UploadModal/useUploadState.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/IDMEnricherEditor/components/PriceFactorCellRenderer/priceFactorHelpers.d.ts +15 -13
- package/build/types/backoffice/src/ui/IDMEnricherEditor/components/PriceFactorCellRenderer/priceFactorHelpers.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/IDMEnricherEditor/components/PriceFactorCellRenderer/usePriceFactor.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/IDMEnricherEditor/modules/TableEnrichment/index.d.ts.map +1 -1
- package/build/types/backoffice/src/ui/IDMEnricherEditor/modules/TableEnrichment/propertyColumn.d.ts.map +1 -1
- package/package.json +10 -10
package/build/esm/index.js
CHANGED
|
@@ -47006,6 +47006,12 @@ function useUnsavedChanges(dirty, texts) {
|
|
|
47006
47006
|
};
|
|
47007
47007
|
}
|
|
47008
47008
|
|
|
47009
|
+
/**
|
|
47010
|
+
* The SAP "X or blank" flag — `dropDownKey: 'X'` is not a key of the dropdownItems collection. Its
|
|
47011
|
+
* list is fixed (the single entry `X`) and served without a request, so the flag fields render as
|
|
47012
|
+
* selects everywhere: the header form and the grids.
|
|
47013
|
+
*/
|
|
47014
|
+
var FLAG_DROPDOWN_KEY = 'X';
|
|
47009
47015
|
var ASSORTMENT_MANAGER_FIELDS = [
|
|
47010
47016
|
// LOCKED
|
|
47011
47017
|
{
|
|
@@ -48357,6 +48363,12 @@ var LOG$8 = getLogger('Backoffice', 'AssortmentManager');
|
|
|
48357
48363
|
|
|
48358
48364
|
var PAGE_SIZE$1 = 100;
|
|
48359
48365
|
|
|
48366
|
+
/** The fixed list of the SAP flag ({@link FLAG_DROPDOWN_KEY}) — served without a request. */
|
|
48367
|
+
var FLAG_DROPDOWN_ITEMS = [{
|
|
48368
|
+
valueKey: 'X',
|
|
48369
|
+
value: 'X'
|
|
48370
|
+
}];
|
|
48371
|
+
|
|
48360
48372
|
// the dropdown lists are static per organization — fetch each key once per session, shared by all tabs
|
|
48361
48373
|
var listCache = new Map();
|
|
48362
48374
|
function createDropdownApiHandler(root) {
|
|
@@ -48562,7 +48574,7 @@ function _loadDropdownLists() {
|
|
|
48562
48574
|
return "".concat(root.dataStore.organizationId, ":").concat(key);
|
|
48563
48575
|
};
|
|
48564
48576
|
missing = dropdownKeys.filter(function (key) {
|
|
48565
|
-
return !listCache.has(cacheKeyOf(key));
|
|
48577
|
+
return key !== FLAG_DROPDOWN_KEY && !listCache.has(cacheKeyOf(key));
|
|
48566
48578
|
});
|
|
48567
48579
|
if (!(missing.length > 0)) {
|
|
48568
48580
|
_context5.next = 20;
|
|
@@ -48629,7 +48641,7 @@ function _loadDropdownLists() {
|
|
|
48629
48641
|
case 20:
|
|
48630
48642
|
_context5.next = 22;
|
|
48631
48643
|
return Promise.all(dropdownKeys.map(function (key) {
|
|
48632
|
-
return listCache.get(cacheKeyOf(key));
|
|
48644
|
+
return key === FLAG_DROPDOWN_KEY ? FLAG_DROPDOWN_ITEMS : listCache.get(cacheKeyOf(key));
|
|
48633
48645
|
}));
|
|
48634
48646
|
case 22:
|
|
48635
48647
|
lists = _context5.sent;
|
|
@@ -48942,9 +48954,6 @@ var Text$2 = Typography.Text;
|
|
|
48942
48954
|
var SAP_DATE_FORMAT$1 = 'YYYYMMDD';
|
|
48943
48955
|
var DISPLAY_DATE_FORMAT$1 = 'DD.MM.YYYY';
|
|
48944
48956
|
|
|
48945
|
-
/** The SAP "X or blank" flag — `dropDownKey: 'X'` is not a key of the dropdownItems collection. */
|
|
48946
|
-
var FLAG_DROPDOWN_KEY = 'X';
|
|
48947
|
-
|
|
48948
48957
|
/**
|
|
48949
48958
|
* SAP dates are stored either as `yyyyMMdd` or as an ISO string, see `SAPCustomData` in diva-pfister-article.
|
|
48950
48959
|
* Returns undefined for anything unparsable so a broken value does not crash the picker.
|
|
@@ -49801,11 +49810,13 @@ function buildItemGroupColDefs(group, enumLists, t) {
|
|
|
49801
49810
|
} : {});
|
|
49802
49811
|
var enumData = field.dropDownKey ? enumLists[field.dropDownKey] : undefined;
|
|
49803
49812
|
if (enumData && enumData.length > 0) {
|
|
49813
|
+
// the SAP flag's fixed list names the code itself — its cells and options show the bare "X"
|
|
49814
|
+
var displayLabelTemplate = field.dropDownKey === FLAG_DROPDOWN_KEY ? '${value}' : '${name} (${value})';
|
|
49804
49815
|
return _objectSpread$16(_objectSpread$16({}, base), {}, {
|
|
49805
49816
|
cellDataType: 'enum',
|
|
49806
49817
|
customParams: {
|
|
49807
49818
|
enumData: enumData,
|
|
49808
|
-
displayLabelTemplate:
|
|
49819
|
+
displayLabelTemplate: displayLabelTemplate
|
|
49809
49820
|
}
|
|
49810
49821
|
});
|
|
49811
49822
|
}
|
|
@@ -49878,11 +49889,11 @@ function ItemGroupTable(_ref) {
|
|
|
49878
49889
|
t = _useTranslation.t;
|
|
49879
49890
|
var root = useStore();
|
|
49880
49891
|
|
|
49881
|
-
// distinct dropdown lists the visible columns of this group need; the 'X' flag
|
|
49882
|
-
// (dotted) keys stay plain text, like in the header form
|
|
49892
|
+
// distinct dropdown lists the visible columns of this group need; the 'X' flag is served by the
|
|
49893
|
+
// hook, row-derived (dotted) keys stay plain text, like in the header form
|
|
49883
49894
|
var dropdownKeys = useMemo(function () {
|
|
49884
49895
|
return _toConsumableArray(new Set(group.fields.flatMap(function (field) {
|
|
49885
|
-
return (level === 'article' ? field.showOnArticle : field.showOnHeaderValues) && field.dropDownKey &&
|
|
49896
|
+
return (level === 'article' ? field.showOnArticle : field.showOnHeaderValues) && field.dropDownKey && !field.dropDownKey.includes('.') ? [field.dropDownKey] : [];
|
|
49886
49897
|
})));
|
|
49887
49898
|
}, [group, level]);
|
|
49888
49899
|
var enumLists = useDropdownEnumData(root, dropdownKeys);
|
|
@@ -51226,10 +51237,11 @@ var ARTICLE_LANGUAGES = ['de', 'fr', 'it'];
|
|
|
51226
51237
|
|
|
51227
51238
|
/**
|
|
51228
51239
|
* Distinct dropdown lists the article columns need — they become the `enumData` of the enum cells.
|
|
51229
|
-
* The 'X' flag
|
|
51240
|
+
* The 'X' flag is among them (the hook serves its fixed list); row-derived (dotted) keys stay plain
|
|
51241
|
+
* text, like on the header page.
|
|
51230
51242
|
*/
|
|
51231
51243
|
var ARTICLE_DROPDOWN_KEYS = _toConsumableArray(new Set(ASSORTMENT_MANAGER_FIELDS.flatMap(function (entry) {
|
|
51232
|
-
return entry.type !== 'ITEM_GROUP' && entry.showOnArticle && entry.dropDownKey &&
|
|
51244
|
+
return entry.type !== 'ITEM_GROUP' && entry.showOnArticle && entry.dropDownKey && !entry.dropDownKey.includes('.') ? [entry.dropDownKey] : [];
|
|
51233
51245
|
})));
|
|
51234
51246
|
|
|
51235
51247
|
/**
|
|
@@ -51284,6 +51296,14 @@ var ARTICLE_LABEL_COMPANIONS = ASSORTMENT_MANAGER_FIELDS.flatMap(function (entry
|
|
|
51284
51296
|
/** The label of a dropdown value in cells, editors and exports — the IDM shape "code - name". */
|
|
51285
51297
|
var ENUM_LABEL_TEMPLATE = '${value} - ${name}';
|
|
51286
51298
|
|
|
51299
|
+
/**
|
|
51300
|
+
* The label template of a field's list: the SAP flag has no descriptive text (its fixed list names
|
|
51301
|
+
* the code itself), so its cells and options show the bare "X" like the header form's select.
|
|
51302
|
+
*/
|
|
51303
|
+
function labelTemplateOf(field) {
|
|
51304
|
+
return field.dropDownKey === FLAG_DROPDOWN_KEY ? '${value}' : ENUM_LABEL_TEMPLATE;
|
|
51305
|
+
}
|
|
51306
|
+
|
|
51287
51307
|
/**
|
|
51288
51308
|
* Resolves what reaches an inheritable dropdown column — a pick (the code), a typed name, or a
|
|
51289
51309
|
* pasted label — to the stored code, through the spreadsheet's own enum resolution. The
|
|
@@ -51370,19 +51390,20 @@ function labelCompanionResets(oldData, data) {
|
|
|
51370
51390
|
}
|
|
51371
51391
|
|
|
51372
51392
|
/**
|
|
51373
|
-
*
|
|
51393
|
+
* Formatter of one list in the given label template (the "code - name" shape as a rule), with a
|
|
51394
|
+
* lookup Map built once per column. The spreadsheet's own
|
|
51374
51395
|
* enum formatter copies and scans the whole list on every call, and its editor formats every option
|
|
51375
51396
|
* on open — quadratic in the list size, which froze the browser on the 36k product hierarchy. The
|
|
51376
51397
|
* output mirrors that formatter exactly: arrays join with ", ", an unknown code labels as "code - code".
|
|
51377
51398
|
*/
|
|
51378
|
-
function enumLabelFormatter(enumData) {
|
|
51399
|
+
function enumLabelFormatter(enumData, template) {
|
|
51379
51400
|
var names = new Map(enumData.map(function (entry) {
|
|
51380
51401
|
return [entry.value, entry.name];
|
|
51381
51402
|
}));
|
|
51382
51403
|
var labelOf = function labelOf(value) {
|
|
51383
51404
|
var _names$get;
|
|
51384
51405
|
var code = String(value);
|
|
51385
|
-
return
|
|
51406
|
+
return template.replace('${name}', (_names$get = names.get(code)) !== null && _names$get !== void 0 ? _names$get : code).replace('${value}', code);
|
|
51386
51407
|
};
|
|
51387
51408
|
return function (value) {
|
|
51388
51409
|
return (Array.isArray(value) ? value : [value]).map(labelOf).join(', ');
|
|
@@ -51390,8 +51411,8 @@ function enumLabelFormatter(enumData) {
|
|
|
51390
51411
|
}
|
|
51391
51412
|
|
|
51392
51413
|
/** `valueFormatter` of a plain enum column — null and undefined stay blank, like the enum type's own formatter. */
|
|
51393
|
-
function enumColumnFormatter(enumData) {
|
|
51394
|
-
var label = enumLabelFormatter(enumData);
|
|
51414
|
+
function enumColumnFormatter(enumData, template) {
|
|
51415
|
+
var label = enumLabelFormatter(enumData, template);
|
|
51395
51416
|
return function (_ref5) {
|
|
51396
51417
|
var value = _ref5.value;
|
|
51397
51418
|
return value === undefined || value === null ? '' : label(value);
|
|
@@ -51403,8 +51424,8 @@ function enumColumnFormatter(enumData) {
|
|
|
51403
51424
|
* header value, else the empty string — the placeholder type's own resolution, labelled through the
|
|
51404
51425
|
* lookup formatter.
|
|
51405
51426
|
*/
|
|
51406
|
-
function placeholderEnumColumnFormatter(enumData, placeHolderField) {
|
|
51407
|
-
var label = enumLabelFormatter(enumData);
|
|
51427
|
+
function placeholderEnumColumnFormatter(enumData, placeHolderField, template) {
|
|
51428
|
+
var label = enumLabelFormatter(enumData, template);
|
|
51408
51429
|
var isSet = function isSet(candidate) {
|
|
51409
51430
|
return candidate !== undefined && candidate !== null && candidate !== '';
|
|
51410
51431
|
};
|
|
@@ -51532,9 +51553,9 @@ function plainColumn(field, t, enumLists) {
|
|
|
51532
51553
|
cellDataType: 'enum',
|
|
51533
51554
|
customParams: {
|
|
51534
51555
|
enumData: enumData,
|
|
51535
|
-
displayLabelTemplate:
|
|
51556
|
+
displayLabelTemplate: labelTemplateOf(field)
|
|
51536
51557
|
},
|
|
51537
|
-
valueFormatter: enumColumnFormatter(enumData)
|
|
51558
|
+
valueFormatter: enumColumnFormatter(enumData, labelTemplateOf(field))
|
|
51538
51559
|
} : _objectSpread$10({
|
|
51539
51560
|
cellDataType: CELL_DATA_TYPES[field.type]
|
|
51540
51561
|
}, field.type === 'string' && field.maxLength ? {
|
|
@@ -51570,7 +51591,7 @@ function inheritedColumn(field, t, enumLists) {
|
|
|
51570
51591
|
} : isNumber ? {
|
|
51571
51592
|
type: ['withPlaceholderNumber']
|
|
51572
51593
|
} : {}), enumData ? {
|
|
51573
|
-
valueFormatter: placeholderEnumColumnFormatter(enumData, placeHolderField)
|
|
51594
|
+
valueFormatter: placeholderEnumColumnFormatter(enumData, placeHolderField, labelTemplateOf(field))
|
|
51574
51595
|
} : {}), enumData ? {
|
|
51575
51596
|
valueParser: companion ? companionValueParser(enumData, colId, columnFieldOf(companion), placeHolderField) : placeholderEnumValueParser(enumData, placeHolderField)
|
|
51576
51597
|
} : {}), {}, {
|
|
@@ -51582,7 +51603,7 @@ function inheritedColumn(field, t, enumLists) {
|
|
|
51582
51603
|
combinedField: combinedField
|
|
51583
51604
|
}, enumData ? {
|
|
51584
51605
|
enumData: enumData,
|
|
51585
|
-
displayLabelTemplate:
|
|
51606
|
+
displayLabelTemplate: labelTemplateOf(field)
|
|
51586
51607
|
} : {})
|
|
51587
51608
|
}, enumData && field.filter ? {
|
|
51588
51609
|
filterParams: enumSetFilterParams(enumData)
|
|
@@ -68830,6 +68851,12 @@ var errorItem = "error-item-kyNLD";
|
|
|
68830
68851
|
var css_248z$a = ".upload-modal-footer-W5737 {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: 10px;\n}\n\n.upload-modal-footer-W5737 > .upload-button-QkWYP {\n width: 300px;\n}\n\n.error-group-lmQSx {\n margin-bottom: 8px;\n}\n\n.error-item-kyNLD {\n padding: 4px 0;\n display: flex;\n align-items: flex-start;\n gap: 8px;\n flex-wrap: wrap;\n}\n\n.row-index-jmU3D {\n font-weight: 600;\n margin-right: 8px;\n}\n";
|
|
68831
68852
|
styleInject(css_248z$a);
|
|
68832
68853
|
|
|
68854
|
+
// An aborted all-or-nothing import may carry the flag without any row entry, and it saved nothing either way.
|
|
68855
|
+
var hasBulkErrors = function hasBulkErrors(errors) {
|
|
68856
|
+
var _errors$add, _errors$update, _errors$remove, _errors$restore;
|
|
68857
|
+
return !!errors && !!(errors.transactionAborted || (_errors$add = errors.add) !== null && _errors$add !== void 0 && _errors$add.length || (_errors$update = errors.update) !== null && _errors$update !== void 0 && _errors$update.length || (_errors$remove = errors.remove) !== null && _errors$remove !== void 0 && _errors$remove.length || (_errors$restore = errors.restore) !== null && _errors$restore !== void 0 && _errors$restore.length);
|
|
68858
|
+
};
|
|
68859
|
+
|
|
68833
68860
|
/**
|
|
68834
68861
|
* Custom hook for managing upload modal state and functionality
|
|
68835
68862
|
*
|
|
@@ -68918,7 +68945,7 @@ function useUploadModal(_ref) {
|
|
|
68918
68945
|
// Polled to its end even once the modal closed (isCurrent only guards the UI): the planners must learn that the import saved.
|
|
68919
68946
|
var pollImportJob = /*#__PURE__*/function () {
|
|
68920
68947
|
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(jobId, catalogsBaseUrl, isCurrent, markSaved) {
|
|
68921
|
-
var pollStart, statusResponse, job, _result$errors
|
|
68948
|
+
var pollStart, statusResponse, job, _result$errors, result, _formRef$current;
|
|
68922
68949
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
68923
68950
|
while (1) switch (_context.prev = _context.next) {
|
|
68924
68951
|
case 0:
|
|
@@ -68962,20 +68989,18 @@ function useUploadModal(_ref) {
|
|
|
68962
68989
|
case 15:
|
|
68963
68990
|
job = _context.sent;
|
|
68964
68991
|
if (!(job.status === 'Completed')) {
|
|
68965
|
-
_context.next =
|
|
68992
|
+
_context.next = 23;
|
|
68966
68993
|
break;
|
|
68967
68994
|
}
|
|
68968
|
-
//
|
|
68969
|
-
markSaved();
|
|
68995
|
+
result = job.result || {}; // An aborted import saved nothing; a partially failed one still saved its other rows.
|
|
68996
|
+
if (!((_result$errors = result.errors) !== null && _result$errors !== void 0 && _result$errors.transactionAborted)) markSaved();
|
|
68970
68997
|
if (isCurrent()) {
|
|
68971
|
-
_context.next =
|
|
68998
|
+
_context.next = 21;
|
|
68972
68999
|
break;
|
|
68973
69000
|
}
|
|
68974
69001
|
return _context.abrupt("return");
|
|
68975
|
-
case
|
|
68976
|
-
result
|
|
68977
|
-
hasPartialErrors = result.errors && (((_result$errors$add = result.errors.add) === null || _result$errors$add === void 0 ? void 0 : _result$errors$add.length) || ((_result$errors$update = result.errors.update) === null || _result$errors$update === void 0 ? void 0 : _result$errors$update.length) || ((_result$errors$remove = result.errors.remove) === null || _result$errors$remove === void 0 ? void 0 : _result$errors$remove.length) || ((_result$errors$restor = result.errors.restore) === null || _result$errors$restor === void 0 ? void 0 : _result$errors$restor.length));
|
|
68978
|
-
if (hasPartialErrors) {
|
|
69002
|
+
case 21:
|
|
69003
|
+
if (hasBulkErrors(result.errors)) {
|
|
68979
69004
|
setError(result.errors);
|
|
68980
69005
|
} else {
|
|
68981
69006
|
onUploadComplete === null || onUploadComplete === void 0 || onUploadComplete(result);
|
|
@@ -68983,9 +69008,9 @@ function useUploadModal(_ref) {
|
|
|
68983
69008
|
setCurrentFile(undefined);
|
|
68984
69009
|
}
|
|
68985
69010
|
return _context.abrupt("return");
|
|
68986
|
-
case
|
|
69011
|
+
case 23:
|
|
68987
69012
|
if (!(job.status === 'Failed')) {
|
|
68988
|
-
_context.next =
|
|
69013
|
+
_context.next = 26;
|
|
68989
69014
|
break;
|
|
68990
69015
|
}
|
|
68991
69016
|
if (isCurrent()) {
|
|
@@ -68993,10 +69018,10 @@ function useUploadModal(_ref) {
|
|
|
68993
69018
|
setProgress(0);
|
|
68994
69019
|
}
|
|
68995
69020
|
return _context.abrupt("return");
|
|
68996
|
-
case
|
|
69021
|
+
case 26:
|
|
68997
69022
|
_context.next = 1;
|
|
68998
69023
|
break;
|
|
68999
|
-
case
|
|
69024
|
+
case 28:
|
|
69000
69025
|
case "end":
|
|
69001
69026
|
return _context.stop();
|
|
69002
69027
|
}
|
|
@@ -69019,7 +69044,7 @@ function useUploadModal(_ref) {
|
|
|
69019
69044
|
var onSave = /*#__PURE__*/function () {
|
|
69020
69045
|
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(values) {
|
|
69021
69046
|
var _formData$get;
|
|
69022
|
-
var opId, isCurrent, markSaved, formData, requestQueryParams, uploadUrl, startTime, fileSize, estimatedUploadTimeMs, progressInterval, updateProgressBasedOnTime, response, responseData, catalogsBaseUrl, _responseData$errors
|
|
69047
|
+
var opId, isCurrent, markSaved, formData, requestQueryParams, uploadUrl, startTime, fileSize, estimatedUploadTimeMs, progressInterval, updateProgressBasedOnTime, response, responseData, catalogsBaseUrl, _responseData$errors, _formRef$current3, errorBody, errorMessage, errorResponse;
|
|
69023
69048
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
69024
69049
|
while (1) switch (_context2.prev = _context2.next) {
|
|
69025
69050
|
case 0:
|
|
@@ -69080,7 +69105,7 @@ function useUploadModal(_ref) {
|
|
|
69080
69105
|
});
|
|
69081
69106
|
case 24:
|
|
69082
69107
|
if (!response.ok) {
|
|
69083
|
-
_context2.next =
|
|
69108
|
+
_context2.next = 40;
|
|
69084
69109
|
break;
|
|
69085
69110
|
}
|
|
69086
69111
|
_context2.next = 27;
|
|
@@ -69097,40 +69122,38 @@ function useUploadModal(_ref) {
|
|
|
69097
69122
|
_context2.next = 32;
|
|
69098
69123
|
return pollImportJob(responseData.jobId, catalogsBaseUrl, isCurrent, markSaved);
|
|
69099
69124
|
case 32:
|
|
69100
|
-
_context2.next =
|
|
69125
|
+
_context2.next = 38;
|
|
69101
69126
|
break;
|
|
69102
69127
|
case 34:
|
|
69103
|
-
markSaved();
|
|
69128
|
+
if (!((_responseData$errors = responseData.errors) !== null && _responseData$errors !== void 0 && _responseData$errors.transactionAborted)) markSaved();
|
|
69104
69129
|
if (isCurrent()) {
|
|
69105
69130
|
_context2.next = 37;
|
|
69106
69131
|
break;
|
|
69107
69132
|
}
|
|
69108
69133
|
return _context2.abrupt("return");
|
|
69109
69134
|
case 37:
|
|
69110
|
-
|
|
69111
|
-
hasPartialErrors = responseData.errors && (((_responseData$errors$ = responseData.errors.add) === null || _responseData$errors$ === void 0 ? void 0 : _responseData$errors$.length) || ((_responseData$errors$2 = responseData.errors.update) === null || _responseData$errors$2 === void 0 ? void 0 : _responseData$errors$2.length) || ((_responseData$errors$3 = responseData.errors.remove) === null || _responseData$errors$3 === void 0 ? void 0 : _responseData$errors$3.length) || ((_responseData$errors$4 = responseData.errors.restore) === null || _responseData$errors$4 === void 0 ? void 0 : _responseData$errors$4.length));
|
|
69112
|
-
if (hasPartialErrors) {
|
|
69135
|
+
if (hasBulkErrors(responseData.errors)) {
|
|
69113
69136
|
setError(responseData.errors);
|
|
69114
69137
|
} else {
|
|
69115
69138
|
onUploadComplete === null || onUploadComplete === void 0 || onUploadComplete(responseData);
|
|
69116
69139
|
(_formRef$current3 = formRef.current) === null || _formRef$current3 === void 0 || _formRef$current3.reset();
|
|
69117
69140
|
setCurrentFile(undefined);
|
|
69118
69141
|
}
|
|
69119
|
-
case
|
|
69120
|
-
_context2.next =
|
|
69142
|
+
case 38:
|
|
69143
|
+
_context2.next = 49;
|
|
69121
69144
|
break;
|
|
69122
|
-
case
|
|
69145
|
+
case 40:
|
|
69123
69146
|
if (isCurrent()) {
|
|
69124
|
-
_context2.next =
|
|
69147
|
+
_context2.next = 42;
|
|
69125
69148
|
break;
|
|
69126
69149
|
}
|
|
69127
69150
|
return _context2.abrupt("return");
|
|
69128
|
-
case
|
|
69129
|
-
_context2.next =
|
|
69151
|
+
case 42:
|
|
69152
|
+
_context2.next = 44;
|
|
69130
69153
|
return response.text()["catch"](function () {
|
|
69131
69154
|
return '';
|
|
69132
69155
|
});
|
|
69133
|
-
case
|
|
69156
|
+
case 44:
|
|
69134
69157
|
errorBody = _context2.sent;
|
|
69135
69158
|
errorMessage = errorBody || response.statusText || t('backoffice.idmEnricher.import.uploadfailed');
|
|
69136
69159
|
try {
|
|
@@ -69142,28 +69165,28 @@ function useUploadModal(_ref) {
|
|
|
69142
69165
|
}
|
|
69143
69166
|
setError(errorMessage);
|
|
69144
69167
|
setProgress(0);
|
|
69145
|
-
case
|
|
69146
|
-
_context2.next =
|
|
69168
|
+
case 49:
|
|
69169
|
+
_context2.next = 54;
|
|
69147
69170
|
break;
|
|
69148
|
-
case
|
|
69149
|
-
_context2.prev =
|
|
69171
|
+
case 51:
|
|
69172
|
+
_context2.prev = 51;
|
|
69150
69173
|
_context2.t0 = _context2["catch"](16);
|
|
69151
69174
|
if (isCurrent()) {
|
|
69152
69175
|
setError(_context2.t0 instanceof Error ? _context2.t0.message : t('backoffice.idmEnricher.import.uploadfailed'));
|
|
69153
69176
|
setProgress(0);
|
|
69154
69177
|
}
|
|
69155
|
-
case
|
|
69156
|
-
_context2.prev =
|
|
69178
|
+
case 54:
|
|
69179
|
+
_context2.prev = 54;
|
|
69157
69180
|
clearInterval(progressInterval);
|
|
69158
69181
|
if (isCurrent()) {
|
|
69159
69182
|
setLoading(false);
|
|
69160
69183
|
}
|
|
69161
|
-
return _context2.finish(
|
|
69162
|
-
case
|
|
69184
|
+
return _context2.finish(54);
|
|
69185
|
+
case 58:
|
|
69163
69186
|
case "end":
|
|
69164
69187
|
return _context2.stop();
|
|
69165
69188
|
}
|
|
69166
|
-
}, _callee2, null, [[16,
|
|
69189
|
+
}, _callee2, null, [[16, 51, 54, 58]]);
|
|
69167
69190
|
}));
|
|
69168
69191
|
return function onSave(_x5) {
|
|
69169
69192
|
return _ref3.apply(this, arguments);
|
|
@@ -69215,7 +69238,7 @@ function ErrorDisplay(_ref) {
|
|
|
69215
69238
|
children: [/*#__PURE__*/jsx(Tag, {
|
|
69216
69239
|
color: "blue",
|
|
69217
69240
|
children: operationType
|
|
69218
|
-
}), /*#__PURE__*/jsx(Tag, {
|
|
69241
|
+
}), typeof fieldError.index === 'number' && /*#__PURE__*/jsx(Tag, {
|
|
69219
69242
|
color: "orange",
|
|
69220
69243
|
children: t('backoffice.uploadModal.row', {
|
|
69221
69244
|
rowNumber: fieldError.index + 1
|
|
@@ -69292,7 +69315,24 @@ function ErrorDisplay(_ref) {
|
|
|
69292
69315
|
});
|
|
69293
69316
|
};
|
|
69294
69317
|
var fieldPanels = renderFieldPanels();
|
|
69295
|
-
|
|
69318
|
+
var hasPanels = !!fieldPanels && fieldPanels.length > 0;
|
|
69319
|
+
if (errors.transactionAborted) {
|
|
69320
|
+
var abortedDefault = 'Import abgebrochen - es wurde nichts importiert. Bitte die Fehler beheben und die Datei erneut hochladen.';
|
|
69321
|
+
return /*#__PURE__*/jsx(Alert
|
|
69322
|
+
// Local guard: i18n init keeps returnEmptyString at true, so an empty translation ignores defaultValue - every key of this dialog shares that hole.
|
|
69323
|
+
, {
|
|
69324
|
+
message: t('backoffice.uploadModal.transactionAborted', {
|
|
69325
|
+
defaultValue: abortedDefault
|
|
69326
|
+
}) || abortedDefault,
|
|
69327
|
+
description: hasPanels ? /*#__PURE__*/jsx(Collapse, {
|
|
69328
|
+
size: "small",
|
|
69329
|
+
children: fieldPanels
|
|
69330
|
+
}) : undefined,
|
|
69331
|
+
type: "error",
|
|
69332
|
+
showIcon: true
|
|
69333
|
+
});
|
|
69334
|
+
}
|
|
69335
|
+
if (!hasPanels) {
|
|
69296
69336
|
return null;
|
|
69297
69337
|
}
|
|
69298
69338
|
return /*#__PURE__*/jsx(Alert, {
|
|
@@ -81509,6 +81549,10 @@ var PROPERTY_FORMAT_HINT = {
|
|
|
81509
81549
|
key: 'backoffice.idmEnricher.enrichment.propertyFormat.list',
|
|
81510
81550
|
defaultValue: 'List - entries separated by ; (e.g. A;B;C)'
|
|
81511
81551
|
},
|
|
81552
|
+
listComma: {
|
|
81553
|
+
key: 'backoffice.idmEnricher.enrichment.propertyFormat.listComma',
|
|
81554
|
+
defaultValue: 'List - entries separated by , (e.g. A,B,C)'
|
|
81555
|
+
},
|
|
81512
81556
|
allOrList: {
|
|
81513
81557
|
key: 'backoffice.idmEnricher.enrichment.propertyFormat.allOrList',
|
|
81514
81558
|
defaultValue: '1 = all, otherwise a list separated by ;'
|
|
@@ -81598,7 +81642,7 @@ function buildPropertyColumn(_ref) {
|
|
|
81598
81642
|
}
|
|
81599
81643
|
});
|
|
81600
81644
|
}
|
|
81601
|
-
var hint = PROPERTY_FORMAT_HINT[editorKind];
|
|
81645
|
+
var hint = PROPERTY_FORMAT_HINT[encoding === 'list:,' ? 'listComma' : editorKind];
|
|
81602
81646
|
var formatHint = hint ? t(hint.key, {
|
|
81603
81647
|
defaultValue: hint.defaultValue
|
|
81604
81648
|
}) : undefined;
|
|
@@ -81625,6 +81669,7 @@ function buildPropertyColumn(_ref) {
|
|
|
81625
81669
|
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; }
|
|
81626
81670
|
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; }
|
|
81627
81671
|
var PROPERTY_ENTITY_OF_VIEW = {
|
|
81672
|
+
series: 'catalog',
|
|
81628
81673
|
items: 'article',
|
|
81629
81674
|
features: 'option',
|
|
81630
81675
|
options: 'optionValue'
|
|
@@ -81995,11 +82040,9 @@ var EnrichmentTable = observer(function (_ref) {
|
|
|
81995
82040
|
var description = (_propertyMeta$key2 = propertyMeta[key]) === null || _propertyMeta$key2 === void 0 ? void 0 : _propertyMeta$key2.description;
|
|
81996
82041
|
var codexKey = (_propertyMeta$key3 = propertyMeta[key]) === null || _propertyMeta$key3 === void 0 ? void 0 : _propertyMeta$key3.codexKey;
|
|
81997
82042
|
var headerLabel = description ? "".concat(description, " (").concat(key, ")") : key;
|
|
81998
|
-
// The
|
|
81999
|
-
// view whose rows ARE a parsed entity. On one that is not (series), nothing parses the value, so the
|
|
82000
|
-
// definition's coarse type is the whole truth, exactly as it is for an organization's own keys.
|
|
82043
|
+
// The engine's encoding of the key wins; without a parsed entity the definition's type decides.
|
|
82001
82044
|
var parsedEntity = PROPERTY_ENTITY_OF_VIEW[type];
|
|
82002
|
-
var encoding = (_ref5 = (_ref6 = parsedEntity ? propertyEncodingOf(
|
|
82045
|
+
var encoding = (_ref5 = (_ref6 = parsedEntity ? propertyEncodingOf(key, parsedEntity) : undefined) !== null && _ref6 !== void 0 ? _ref6 : ENCODING_OF_DEFINITION_TYPE[propType !== null && propType !== void 0 ? propType : '']) !== null && _ref5 !== void 0 ? _ref5 : 'string';
|
|
82003
82046
|
var editorKind = editorKindOf(encoding);
|
|
82004
82047
|
var columnConfig = editorKind === 'text' ? collapseSecondaryLanguages(createTranslatedColumnConfig('translatedProp.' + key, headerLabel, propertyLanguages, false, 'withPlaceholder', {
|
|
82005
82048
|
placeHolderField: 'origProp.' + key,
|
|
@@ -82489,6 +82532,14 @@ var TableGroups = observer(function () {
|
|
|
82489
82532
|
|
|
82490
82533
|
/** Represents a single price entry with its value and validation state */
|
|
82491
82534
|
|
|
82535
|
+
/** Largest discount in percent that can be entered */
|
|
82536
|
+
var MAX_DISCOUNT = 99.99999;
|
|
82537
|
+
|
|
82538
|
+
/** Removes floating point noise, e.g. (1 - 0.8745) * 100 = 12.549999999999994 */
|
|
82539
|
+
var removeFloatNoise = function removeFloatNoise(value) {
|
|
82540
|
+
return parseFloat(value.toFixed(10));
|
|
82541
|
+
};
|
|
82542
|
+
|
|
82492
82543
|
/** State container for both factor and discount entries */
|
|
82493
82544
|
|
|
82494
82545
|
/**
|
|
@@ -82503,7 +82554,7 @@ var formatListValue = function formatListValue(values, type, locale) {
|
|
|
82503
82554
|
if (!(values !== null && values !== void 0 && values.length)) return '-';
|
|
82504
82555
|
var formatter = new Intl.NumberFormat(locale, {
|
|
82505
82556
|
minimumFractionDigits: 1,
|
|
82506
|
-
maximumFractionDigits:
|
|
82557
|
+
maximumFractionDigits: 10
|
|
82507
82558
|
});
|
|
82508
82559
|
return values.map(function (value) {
|
|
82509
82560
|
return formatter.format(value);
|
|
@@ -82513,7 +82564,7 @@ var formatListValue = function formatListValue(values, type, locale) {
|
|
|
82513
82564
|
/**
|
|
82514
82565
|
* Converts an internal value to its display representation
|
|
82515
82566
|
* For factors: keeps the decimal value
|
|
82516
|
-
* For discounts: converts from negative factor to percentage string (e.g., "0.
|
|
82567
|
+
* For discounts: converts from negative factor to percentage string (e.g., "0.8745" -> "12.55")
|
|
82517
82568
|
* @param value - The internal value to convert
|
|
82518
82569
|
* @param type - The type of price modification
|
|
82519
82570
|
* @returns The display value as string
|
|
@@ -82521,27 +82572,28 @@ var formatListValue = function formatListValue(values, type, locale) {
|
|
|
82521
82572
|
var convertToDisplayValue = function convertToDisplayValue(value, type) {
|
|
82522
82573
|
if (type === 'factor') return value;
|
|
82523
82574
|
var numValue = parseFloat(value);
|
|
82524
|
-
return isNaN(numValue) ? '0' :
|
|
82575
|
+
return isNaN(numValue) ? '0' : removeFloatNoise((1 - numValue) * 100).toString();
|
|
82525
82576
|
};
|
|
82526
82577
|
|
|
82527
82578
|
/**
|
|
82528
82579
|
* Converts a display value back to its internal representation
|
|
82529
82580
|
* For factors: keeps the input value
|
|
82530
|
-
* For discounts: converts the input as a negative factor (e.g., "
|
|
82581
|
+
* For discounts: converts the input as a negative factor (e.g., "12.55" -> "0.8745" for a 12.55% discount);
|
|
82582
|
+
* an empty or non-numeric input is kept as is, so it fails validation
|
|
82531
82583
|
* @param value - The display value to convert
|
|
82532
82584
|
* @param type - The type of price modification
|
|
82533
82585
|
* @returns The internal value as string
|
|
82534
82586
|
*/
|
|
82535
82587
|
var convertFromDisplayValue = function convertFromDisplayValue(value, type) {
|
|
82536
82588
|
if (type === 'factor') return value;
|
|
82537
|
-
var numValue =
|
|
82538
|
-
return isNaN(numValue) ?
|
|
82589
|
+
var numValue = parseFloat(value);
|
|
82590
|
+
return isNaN(numValue) ? value : removeFloatNoise(1 - numValue / 100).toString();
|
|
82539
82591
|
};
|
|
82540
82592
|
|
|
82541
82593
|
/**
|
|
82542
82594
|
* Validates if an input value is valid for the given type
|
|
82543
82595
|
* For factors: must be >= 1
|
|
82544
|
-
* For discounts: must be
|
|
82596
|
+
* For discounts: the discount must be between 0 and 99.99999 percent
|
|
82545
82597
|
* @param value - The value to validate
|
|
82546
82598
|
* @param type - The type of price modification
|
|
82547
82599
|
* @returns True if the value is valid for the given type
|
|
@@ -82549,41 +82601,40 @@ var convertFromDisplayValue = function convertFromDisplayValue(value, type) {
|
|
|
82549
82601
|
var isValidInput = function isValidInput(value, type) {
|
|
82550
82602
|
var numValue = parseFloat(value);
|
|
82551
82603
|
if (isNaN(numValue)) return false;
|
|
82552
|
-
|
|
82604
|
+
if (type === 'factor') return numValue >= 1;
|
|
82605
|
+
var discount = removeFloatNoise((1 - numValue) * 100);
|
|
82606
|
+
return discount >= 0 && discount <= MAX_DISCOUNT;
|
|
82553
82607
|
};
|
|
82554
82608
|
|
|
82555
82609
|
/**
|
|
82556
82610
|
* Checks if a value is effective (should be saved)
|
|
82557
82611
|
* For factors: must be > 1 (1 is valid but not effective)
|
|
82558
|
-
* For discounts: must be
|
|
82612
|
+
* For discounts: must be < 1 (a 0% discount is valid but not effective)
|
|
82559
82613
|
* @param value - The value to check
|
|
82560
82614
|
* @param type - The type of price modification
|
|
82561
82615
|
* @returns True if the value should be saved
|
|
82562
82616
|
*/
|
|
82563
82617
|
var isEffectiveValue = function isEffectiveValue(value, type) {
|
|
82564
82618
|
var numValue = parseFloat(value);
|
|
82565
|
-
return type === 'factor' ? numValue > 1 : numValue
|
|
82619
|
+
return type === 'factor' ? numValue > 1 : numValue < 1;
|
|
82566
82620
|
};
|
|
82567
82621
|
|
|
82568
82622
|
/**
|
|
82569
|
-
* Gets the default value for
|
|
82570
|
-
*
|
|
82571
|
-
* Discount: "0" (valid but not effective)
|
|
82572
|
-
* @param type - The type of price modification
|
|
82623
|
+
* Gets the default value for both types: the factor "1", which leaves the price unchanged
|
|
82624
|
+
* (shown as "1" for factors and "0" % for discounts; valid but not effective)
|
|
82573
82625
|
* @returns The default value as string
|
|
82574
82626
|
*/
|
|
82575
|
-
var getDefaultValue = function getDefaultValue(
|
|
82576
|
-
return
|
|
82627
|
+
var getDefaultValue = function getDefaultValue() {
|
|
82628
|
+
return '1';
|
|
82577
82629
|
};
|
|
82578
82630
|
|
|
82579
82631
|
/**
|
|
82580
|
-
* Checks if a value is the default value
|
|
82632
|
+
* Checks if a value is the default value
|
|
82581
82633
|
* @param value - The value to check
|
|
82582
|
-
* @
|
|
82583
|
-
* @returns True if the value is the default value for its type
|
|
82634
|
+
* @returns True if the value is the default value
|
|
82584
82635
|
*/
|
|
82585
|
-
var isDefaultValue = function isDefaultValue(value
|
|
82586
|
-
return value === getDefaultValue(
|
|
82636
|
+
var isDefaultValue = function isDefaultValue(value) {
|
|
82637
|
+
return value === getDefaultValue();
|
|
82587
82638
|
};
|
|
82588
82639
|
|
|
82589
82640
|
function ownKeys$b(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; }
|
|
@@ -82641,7 +82692,7 @@ function usePriceFactor(_ref) {
|
|
|
82641
82692
|
// Ensure at least one entry
|
|
82642
82693
|
if (initialEntries.length === 0) {
|
|
82643
82694
|
initialEntries.push({
|
|
82644
|
-
value: getDefaultValue(
|
|
82695
|
+
value: getDefaultValue(),
|
|
82645
82696
|
isValid: true
|
|
82646
82697
|
});
|
|
82647
82698
|
}
|
|
@@ -82662,14 +82713,14 @@ function usePriceFactor(_ref) {
|
|
|
82662
82713
|
var newEntries = hasChangedCurrentType ? [] : entries[newType];
|
|
82663
82714
|
setEntries(function (prev) {
|
|
82664
82715
|
return _objectSpread$b(_objectSpread$b({}, prev), {}, _defineProperty({}, newType, newEntries.length > 0 ? newEntries : [{
|
|
82665
|
-
value: getDefaultValue(
|
|
82716
|
+
value: getDefaultValue(),
|
|
82666
82717
|
isValid: true
|
|
82667
82718
|
}]));
|
|
82668
82719
|
});
|
|
82669
82720
|
setHasChangedCurrentType(false);
|
|
82670
82721
|
};
|
|
82671
82722
|
var handleAddEntry = function handleAddEntry() {
|
|
82672
|
-
var defaultValue = getDefaultValue(
|
|
82723
|
+
var defaultValue = getDefaultValue();
|
|
82673
82724
|
updateEntries([].concat(_toConsumableArray(entries[type]), [{
|
|
82674
82725
|
value: defaultValue,
|
|
82675
82726
|
isValid: true
|
|
@@ -82680,7 +82731,7 @@ function usePriceFactor(_ref) {
|
|
|
82680
82731
|
if (currentEntries.length === 1) {
|
|
82681
82732
|
// Reset to default when removing last entry
|
|
82682
82733
|
updateEntries([{
|
|
82683
|
-
value: getDefaultValue(
|
|
82734
|
+
value: getDefaultValue(),
|
|
82684
82735
|
isValid: true
|
|
82685
82736
|
}]);
|
|
82686
82737
|
} else {
|
|
@@ -82694,6 +82745,7 @@ function usePriceFactor(_ref) {
|
|
|
82694
82745
|
var newEntries = _toConsumableArray(entries[type]);
|
|
82695
82746
|
newEntries[index] = {
|
|
82696
82747
|
value: actualValue,
|
|
82748
|
+
input: displayValue,
|
|
82697
82749
|
isValid: isValidInput(actualValue, type)
|
|
82698
82750
|
};
|
|
82699
82751
|
updateEntries(newEntries);
|
|
@@ -82705,7 +82757,7 @@ function usePriceFactor(_ref) {
|
|
|
82705
82757
|
while (1) switch (_context.prev = _context.next) {
|
|
82706
82758
|
case 0:
|
|
82707
82759
|
currentEntries = entries[type]; // Don't save if we only have a default entry
|
|
82708
|
-
if (!(currentEntries.length === 1 && isDefaultValue(currentEntries[0].value
|
|
82760
|
+
if (!(currentEntries.length === 1 && isDefaultValue(currentEntries[0].value))) {
|
|
82709
82761
|
_context.next = 7;
|
|
82710
82762
|
break;
|
|
82711
82763
|
}
|
|
@@ -82726,7 +82778,7 @@ function usePriceFactor(_ref) {
|
|
|
82726
82778
|
case 9:
|
|
82727
82779
|
// Filter out default and invalid values
|
|
82728
82780
|
effectiveValues = currentEntries.filter(function (entry) {
|
|
82729
|
-
return !isDefaultValue(entry.value
|
|
82781
|
+
return !isDefaultValue(entry.value) && isEffectiveValue(entry.value, type);
|
|
82730
82782
|
}).map(function (entry) {
|
|
82731
82783
|
return parseFloat(entry.value);
|
|
82732
82784
|
});
|
|
@@ -82765,7 +82817,7 @@ var space = "space-T5Mkd";
|
|
|
82765
82817
|
var input$1 = "input-SK-Fo";
|
|
82766
82818
|
var addButton = "addButton-AVN8Y";
|
|
82767
82819
|
var helpText = "helpText-QYQQF";
|
|
82768
|
-
var css_248z$3 = ".cell-Noc7s {\n min-width: 50px;\n height: 100%;\n}\n\n.typeSelector-Y8Yly {\n margin-bottom: 16px;\n}\n\n.space-T5Mkd {\n width: 100%;\n}\n\n.input-SK-Fo {\n width:
|
|
82820
|
+
var css_248z$3 = ".cell-Noc7s {\n min-width: 50px;\n height: 100%;\n}\n\n.typeSelector-Y8Yly {\n margin-bottom: 16px;\n}\n\n.space-T5Mkd {\n width: 100%;\n}\n\n.input-SK-Fo {\n width: 160px;\n}\n\n.addButton-AVN8Y {\n margin-top: 16px;\n text-align: right;\n}\n\n.helpText-QYQQF {\n margin-top: 8px;\n font-size: 12px;\n color: #666;\n}\n";
|
|
82769
82821
|
styleInject(css_248z$3);
|
|
82770
82822
|
|
|
82771
82823
|
function PriceFactorCellRenderer(props) {
|
|
@@ -82887,7 +82939,7 @@ function PriceFactorCellRenderer(props) {
|
|
|
82887
82939
|
};
|
|
82888
82940
|
}, []);
|
|
82889
82941
|
var isDiscount = type === 'discount';
|
|
82890
|
-
var isSingleDefaultEntry = entries.length === 1 && isDefaultValue(entries[0].value
|
|
82942
|
+
var isSingleDefaultEntry = entries.length === 1 && isDefaultValue(entries[0].value);
|
|
82891
82943
|
var hasInvalidEntries = entries.some(function (entry) {
|
|
82892
82944
|
return entry.isValid === false;
|
|
82893
82945
|
});
|
|
@@ -82927,21 +82979,22 @@ function PriceFactorCellRenderer(props) {
|
|
|
82927
82979
|
}), /*#__PURE__*/jsx(List$1, {
|
|
82928
82980
|
dataSource: entries,
|
|
82929
82981
|
renderItem: function renderItem(entry, index) {
|
|
82982
|
+
var _entry$input;
|
|
82930
82983
|
return /*#__PURE__*/jsx(List$1.Item, {
|
|
82931
82984
|
children: /*#__PURE__*/jsx(Form$2.Item, {
|
|
82932
82985
|
validateStatus: entry.isValid === false ? 'error' : undefined,
|
|
82933
|
-
help: entry.isValid === false ? t(isDiscount ? 'backoffice.idmCatalog.prices.priceFactor.error.
|
|
82986
|
+
help: entry.isValid === false ? t(isDiscount ? 'backoffice.idmCatalog.prices.priceFactor.error.invalidDiscount' : 'backoffice.idmCatalog.prices.priceFactor.error.invalidFactor') : undefined,
|
|
82934
82987
|
className: space,
|
|
82935
82988
|
children: /*#__PURE__*/jsxs(Space, {
|
|
82936
82989
|
children: [/*#__PURE__*/jsx(Input$1, {
|
|
82937
82990
|
type: "number",
|
|
82938
|
-
value: convertToDisplayValue(entry.value, type),
|
|
82991
|
+
value: (_entry$input = entry.input) !== null && _entry$input !== void 0 ? _entry$input : convertToDisplayValue(entry.value, type),
|
|
82939
82992
|
onChange: function onChange(e) {
|
|
82940
82993
|
return handleEntryValueChange(index, e.target.value);
|
|
82941
82994
|
},
|
|
82942
|
-
step: isDiscount ? '
|
|
82995
|
+
step: isDiscount ? 'any' : '0.1',
|
|
82943
82996
|
min: isDiscount ? '0' : '1',
|
|
82944
|
-
max: isDiscount ?
|
|
82997
|
+
max: isDiscount ? String(MAX_DISCOUNT) : undefined,
|
|
82945
82998
|
className: input$1,
|
|
82946
82999
|
addonAfter: isDiscount ? '%' : undefined
|
|
82947
83000
|
}), /*#__PURE__*/jsx(Button, {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"priceFactorHelpers.test.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/tests/unit/ui/IDMEnricherEditor/components/PriceFactorCellRenderer/priceFactorHelpers.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePriceFactor.test.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/tests/unit/ui/IDMEnricherEditor/components/PriceFactorCellRenderer/usePriceFactor.test.ts"],"names":[],"mappings":""}
|
package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/articleColumns.d.ts
CHANGED
|
@@ -12,7 +12,8 @@ type ArticleColumn = DivaColDef<ArticleRow> | DivaColGroupDef<ArticleRow>;
|
|
|
12
12
|
export declare const ARTICLE_LANGUAGES: string[];
|
|
13
13
|
/**
|
|
14
14
|
* Distinct dropdown lists the article columns need — they become the `enumData` of the enum cells.
|
|
15
|
-
* The 'X' flag
|
|
15
|
+
* The 'X' flag is among them (the hook serves its fixed list); row-derived (dotted) keys stay plain
|
|
16
|
+
* text, like on the header page.
|
|
16
17
|
*/
|
|
17
18
|
export declare const ARTICLE_DROPDOWN_KEYS: string[];
|
|
18
19
|
/**
|
package/build/types/backoffice/src/ui/AssortmentManager/ArticleData/logic/articleColumns.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"articleColumns.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/ArticleData/logic/articleColumns.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAoB,MAAM,4BAA4B,CAAC;AAE3F,OAAO,EAA0B,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,4CAA4C,CAAC;AAIvE,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1C,KAAK,aAAa,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;AAE1E;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,UAAqB,CAAC;AAEpD
|
|
1
|
+
{"version":3,"file":"articleColumns.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/ArticleData/logic/articleColumns.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAoB,MAAM,4BAA4B,CAAC;AAE3F,OAAO,EAA0B,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,4CAA4C,CAAC;AAIvE,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1C,KAAK,aAAa,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;AAE1E;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,UAAqB,CAAC;AAEpD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,UAMjC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,UAIjC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,8BAG/B,CAAC;AAoBF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,aAAa,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAIvF,CAAC;AA+DH;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAOjH;AAmRD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,CAAC,EAAE,SAAS,EACZ,wBAAwB,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,EACjE,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAM,GAC1C,aAAa,EAAE,CAkFjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/AssortmentManager/HeaderData/components/HeaderField/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAWnD,OAAO,EAA0B,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/AssortmentManager/HeaderData/components/HeaderField/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAWnD,OAAO,EAA0B,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AA4HtF;;;;;;;GAOG;AACH,UAAU,gBAAgB;IACxB,KAAK,EAAE,4BAA4B,CAAC;IACpC,0FAA0F;IAC1F,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,iBAAS,WAAW,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,gBAAgB,4BA2ExD;;;;AAED,wBAAqC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/AssortmentManager/HeaderData/components/ItemGroupTable/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAuC,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAItG,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAS5D,UAAU,mBAAmB;IAC3B,KAAK,EAAE,0BAA0B,CAAC;IAClC;;;OAGG;IACH,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC7D,0GAA0G;IAC1G,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IACjE,oGAAoG;IACpG,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IACjG,+GAA+G;IAC/G,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7B,mGAAmG;IACnG,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,iBAAS,cAAc,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,KAAgB,EAAE,QAAgB,EAAE,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/ui/AssortmentManager/HeaderData/components/ItemGroupTable/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAuC,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAItG,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAS5D,UAAU,mBAAmB;IAC3B,KAAK,EAAE,0BAA0B,CAAC;IAClC;;;OAGG;IACH,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC7D,0GAA0G;IAC1G,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IACjE,oGAAoG;IACpG,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IACjG,+GAA+G;IAC/G,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7B,mGAAmG;IACnG,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,iBAAS,cAAc,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,KAAgB,EAAE,QAAgB,EAAE,EAAE,mBAAmB,qBAgElI;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDropdownEnumData.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/HeaderData/hooks/useDropdownEnumData.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"useDropdownEnumData.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/HeaderData/hooks/useDropdownEnumData.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,6BAA6B,CAAC;AAMpD,gEAAgE;AAChE,MAAM,WAAW,YAAY;IAC3B,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,sIAAsI;AACtI,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;CACvC;AAED,2EAA2E;AAC3E,MAAM,WAAW,SAAS;IACxB,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,SAAS,MAAM,CAAC;AA+B7B;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAanD;AAKD;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CA4BzH;AAiDD,+FAA+F;AAC/F,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,EAAE;;;;IAExD;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,SAAS,CAmB5H"}
|
package/build/types/backoffice/src/ui/AssortmentManager/HeaderData/logic/itemGroupColumns.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"itemGroupColumns.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/HeaderData/logic/itemGroupColumns.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"itemGroupColumns.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/AssortmentManager/HeaderData/logic/itemGroupColumns.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAQzD,yFAAyF;AACzF,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAEhD,2EAA2E;AAC3E,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,0BAA0B,EAAE,MAAM,CAMtE,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAKlE;AAYD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,SAAS,eAC7B;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,wBAEtC;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,0BAA0B,EACjC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,EACtC,CAAC,EAAE,SAAS,EACZ,KAAK,GAAE,QAAQ,GAAG,SAAoB,GACrC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAmCvC"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
1
|
import { AssortmentManagerFieldConfig } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* The SAP "X or blank" flag — `dropDownKey: 'X'` is not a key of the dropdownItems collection. Its
|
|
4
|
+
* list is fixed (the single entry `X`) and served without a request, so the flag fields render as
|
|
5
|
+
* selects everywhere: the header form and the grids.
|
|
6
|
+
*/
|
|
7
|
+
export declare const FLAG_DROPDOWN_KEY = "X";
|
|
2
8
|
export declare const ASSORTMENT_MANAGER_FIELDS: AssortmentManagerFieldConfig[];
|
|
3
9
|
//# sourceMappingURL=fields.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/AssortmentManager/config/fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AAExD,eAAO,MAAM,yBAAyB,EAAE,4BAA4B,EAo7CnE,CAAC"}
|
|
1
|
+
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/AssortmentManager/config/fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAC;AAExD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC,eAAO,MAAM,yBAAyB,EAAE,4BAA4B,EAo7CnE,CAAC"}
|
package/build/types/backoffice/src/ui/AssortmentManager/tests/useDropdownEnumData.test.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDropdownEnumData.test.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/AssortmentManager/tests/useDropdownEnumData.test.tsx"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorDisplay.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/CommonComponents/UploadModal/ErrorDisplay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAM5C,UAAU,iBAAiB;IACzB,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"ErrorDisplay.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/CommonComponents/UploadModal/ErrorDisplay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAM5C,UAAU,iBAAiB;IACzB,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,iBAAiB,4BAuHjE"}
|
|
@@ -25,6 +25,8 @@ export interface BulkErrorResponse {
|
|
|
25
25
|
update?: BulkError[];
|
|
26
26
|
remove?: BulkError[];
|
|
27
27
|
restore?: BulkError[];
|
|
28
|
+
/** The whole request was rejected: no row was saved, including rows without an error entry of their own. */
|
|
29
|
+
transactionAborted?: boolean;
|
|
28
30
|
}
|
|
29
31
|
/**
|
|
30
32
|
* Union type for upload errors - either simple string or structured bulk errors
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/CommonComponents/UploadModal/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/CommonComponents/UploadModal/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB,4GAA4G;IAC5G,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,iBAAiB,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAC;IACnC,kDAAkD;IAClD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,uHAAuH;IACvH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,IAAI,CAAC;IAC3C,2CAA2C;IAC3C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,oBAAoB;IAC5D,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IAChE,sCAAsC;IACtC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;CACnC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUploadState.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/CommonComponents/UploadModal/useUploadState.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"useUploadState.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/CommonComponents/UploadModal/useUploadState.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAqB,MAAM,SAAS,CAAC;AAQ/E;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,OAAO,EACP,OAAO,EACP,UAAU,EACV,OAAO,GACR,EAAE,oBAAoB;;;;qBAyGS,GAAG;;;;EAuGlC"}
|
|
@@ -4,9 +4,13 @@ export type PriceType = 'factor' | 'discount';
|
|
|
4
4
|
export interface PriceEntry {
|
|
5
5
|
/** The value as string to support input handling */
|
|
6
6
|
value: string;
|
|
7
|
+
/** The text as typed by the user; shown instead of the converted value so typing is not overwritten */
|
|
8
|
+
input?: string;
|
|
7
9
|
/** Whether the current value is valid according to type rules */
|
|
8
10
|
isValid: boolean;
|
|
9
11
|
}
|
|
12
|
+
/** Largest discount in percent that can be entered */
|
|
13
|
+
export declare const MAX_DISCOUNT = 99.99999;
|
|
10
14
|
/** State container for both factor and discount entries */
|
|
11
15
|
export interface EntryState {
|
|
12
16
|
/** List of price factor entries (values > 1) */
|
|
@@ -26,7 +30,7 @@ export declare const formatListValue: (values: number[], type: PriceType, locale
|
|
|
26
30
|
/**
|
|
27
31
|
* Converts an internal value to its display representation
|
|
28
32
|
* For factors: keeps the decimal value
|
|
29
|
-
* For discounts: converts from negative factor to percentage string (e.g., "0.
|
|
33
|
+
* For discounts: converts from negative factor to percentage string (e.g., "0.8745" -> "12.55")
|
|
30
34
|
* @param value - The internal value to convert
|
|
31
35
|
* @param type - The type of price modification
|
|
32
36
|
* @returns The display value as string
|
|
@@ -35,7 +39,8 @@ export declare const convertToDisplayValue: (value: string, type: PriceType) =>
|
|
|
35
39
|
/**
|
|
36
40
|
* Converts a display value back to its internal representation
|
|
37
41
|
* For factors: keeps the input value
|
|
38
|
-
* For discounts: converts the input as a negative factor (e.g., "
|
|
42
|
+
* For discounts: converts the input as a negative factor (e.g., "12.55" -> "0.8745" for a 12.55% discount);
|
|
43
|
+
* an empty or non-numeric input is kept as is, so it fails validation
|
|
39
44
|
* @param value - The display value to convert
|
|
40
45
|
* @param type - The type of price modification
|
|
41
46
|
* @returns The internal value as string
|
|
@@ -44,7 +49,7 @@ export declare const convertFromDisplayValue: (value: string, type: PriceType) =
|
|
|
44
49
|
/**
|
|
45
50
|
* Validates if an input value is valid for the given type
|
|
46
51
|
* For factors: must be >= 1
|
|
47
|
-
* For discounts: must be
|
|
52
|
+
* For discounts: the discount must be between 0 and 99.99999 percent
|
|
48
53
|
* @param value - The value to validate
|
|
49
54
|
* @param type - The type of price modification
|
|
50
55
|
* @returns True if the value is valid for the given type
|
|
@@ -53,25 +58,22 @@ export declare const isValidInput: (value: string, type: PriceType) => boolean;
|
|
|
53
58
|
/**
|
|
54
59
|
* Checks if a value is effective (should be saved)
|
|
55
60
|
* For factors: must be > 1 (1 is valid but not effective)
|
|
56
|
-
* For discounts: must be
|
|
61
|
+
* For discounts: must be < 1 (a 0% discount is valid but not effective)
|
|
57
62
|
* @param value - The value to check
|
|
58
63
|
* @param type - The type of price modification
|
|
59
64
|
* @returns True if the value should be saved
|
|
60
65
|
*/
|
|
61
66
|
export declare const isEffectiveValue: (value: string, type: PriceType) => boolean;
|
|
62
67
|
/**
|
|
63
|
-
* Gets the default value for
|
|
64
|
-
*
|
|
65
|
-
* Discount: "0" (valid but not effective)
|
|
66
|
-
* @param type - The type of price modification
|
|
68
|
+
* Gets the default value for both types: the factor "1", which leaves the price unchanged
|
|
69
|
+
* (shown as "1" for factors and "0" % for discounts; valid but not effective)
|
|
67
70
|
* @returns The default value as string
|
|
68
71
|
*/
|
|
69
|
-
export declare const getDefaultValue: (
|
|
72
|
+
export declare const getDefaultValue: () => string;
|
|
70
73
|
/**
|
|
71
|
-
* Checks if a value is the default value
|
|
74
|
+
* Checks if a value is the default value
|
|
72
75
|
* @param value - The value to check
|
|
73
|
-
* @
|
|
74
|
-
* @returns True if the value is the default value for its type
|
|
76
|
+
* @returns True if the value is the default value
|
|
75
77
|
*/
|
|
76
|
-
export declare const isDefaultValue: (value: string
|
|
78
|
+
export declare const isDefaultValue: (value: string) => boolean;
|
|
77
79
|
//# sourceMappingURL=priceFactorHelpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"priceFactorHelpers.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/IDMEnricherEditor/components/PriceFactorCellRenderer/priceFactorHelpers.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE9C,0EAA0E;AAC1E,MAAM,WAAW,UAAU;IACzB,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,2DAA2D;AAC3D,MAAM,WAAW,UAAU;IACzB,gDAAgD;IAChD,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,wDAAwD;IACxD,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,WAAY,MAAM,EAAE,QAAQ,SAAS,UAAU,MAAM,KAAG,MASnF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,UAAW,MAAM,QAAQ,SAAS,KAAG,MAItE,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"priceFactorHelpers.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/IDMEnricherEditor/components/PriceFactorCellRenderer/priceFactorHelpers.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE9C,0EAA0E;AAC1E,MAAM,WAAW,UAAU;IACzB,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,uGAAuG;IACvG,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,sDAAsD;AACtD,eAAO,MAAM,YAAY,WAAW,CAAC;AAKrC,2DAA2D;AAC3D,MAAM,WAAW,UAAU;IACzB,gDAAgD;IAChD,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,wDAAwD;IACxD,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,WAAY,MAAM,EAAE,QAAQ,SAAS,UAAU,MAAM,KAAG,MASnF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,UAAW,MAAM,QAAQ,SAAS,KAAG,MAItE,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,UAAW,MAAM,QAAQ,SAAS,KAAG,MAIxE,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,UAAW,MAAM,QAAQ,SAAS,KAAG,OAM7D,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,UAAW,MAAM,QAAQ,SAAS,KAAG,OAGjE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,QAAO,MAAa,CAAC;AAEjD;;;;GAIG;AACH,eAAO,MAAM,cAAc,UAAW,MAAM,KAAG,OAE9C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePriceFactor.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/IDMEnricherEditor/components/PriceFactorCellRenderer/usePriceFactor.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EACT,UAAU,EAOX,MAAM,sBAAsB,CAAC;AAE9B,UAAU,cAAc;IACtB,IAAI,EAAE,GAAG,CAAC;IACV,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,aAAa,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,gBAAgB,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,IAAI,CAAC;IAC/C,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,sBAAsB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACtE,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,EAAE,IAAS,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,cAAc,GAAG,eAAe,
|
|
1
|
+
{"version":3,"file":"usePriceFactor.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/IDMEnricherEditor/components/PriceFactorCellRenderer/usePriceFactor.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EACT,UAAU,EAOX,MAAM,sBAAsB,CAAC;AAE9B,UAAU,cAAc;IACtB,IAAI,EAAE,GAAG,CAAC;IACV,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,aAAa,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,gBAAgB,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,IAAI,CAAC;IAC/C,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,sBAAsB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACtE,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,EAAE,IAAS,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,cAAc,GAAG,eAAe,CAmIlH"}
|
package/build/types/backoffice/src/ui/IDMEnricherEditor/modules/TableEnrichment/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/IDMEnricherEditor/modules/TableEnrichment/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/IDMEnricherEditor/modules/TableEnrichment/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAoEjF,QAAA,MAAM,oBAAoB,yBAEzB,CAAC;AACF,QAAA,MAAM,iBAAiB,yBAEtB,CAAC;AAEF,QAAA,MAAM,cAAc,yBAEnB,CAAC;AAEF,QAAA,MAAM,gBAAgB,yBAErB,CAAC;AAEF,QAAA,MAAM,eAAe,yBAEpB,CAAC;AAEF,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"propertyColumn.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/IDMEnricherEditor/modules/TableEnrichment/propertyColumn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAgC,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAML,KAAK,gBAAgB,EAEtB,MAAM,kCAAkC,CAAC;AAG1C,8IAA8I;AAC9I,eAAO,MAAM,oBAAoB,EAAE;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"propertyColumn.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/IDMEnricherEditor/modules/TableEnrichment/propertyColumn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAgC,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAML,KAAK,gBAAgB,EAEtB,MAAM,kCAAkC,CAAC;AAG1C,8IAA8I;AAC9I,eAAO,MAAM,oBAAoB,EAAE;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAA;CASzF,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,8HAA8H;IAC9H,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,EAAE,SAAS,CAAC;CACd;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,kBAAkB,GAAG,UAAU,CAAC,GAAG,CAAC,CAyE1H"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crystaldesign/diva-backoffice",
|
|
3
|
-
"version": "26.12.0-beta.
|
|
3
|
+
"version": "26.12.0-beta.38",
|
|
4
4
|
"description": "Ant Design backoffice shell (configuration modules) and the Diva Data Engine component hosting the IDM and enricher editors.",
|
|
5
5
|
"license": "COMMERCIAL",
|
|
6
6
|
"devDependencies": {
|
|
@@ -16,14 +16,14 @@
|
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"@ant-design/icons": "6.3.4",
|
|
18
18
|
"@babel/runtime": "7.24.7",
|
|
19
|
-
"@crystaldesign/content-box": "26.12.0-beta.
|
|
20
|
-
"@crystaldesign/content-item": "26.12.0-beta.
|
|
21
|
-
"@crystaldesign/diva-agent": "26.12.0-beta.
|
|
22
|
-
"@crystaldesign/diva-core": "26.12.0-beta.
|
|
23
|
-
"@crystaldesign/diva-utils": "26.12.0-beta.
|
|
24
|
-
"@crystaldesign/media-upload": "26.12.0-beta.
|
|
25
|
-
"@crystaldesign/rtf-editor": "26.12.0-beta.
|
|
26
|
-
"@crystaldesign/spreadsheet": "26.12.0-beta.
|
|
19
|
+
"@crystaldesign/content-box": "26.12.0-beta.38",
|
|
20
|
+
"@crystaldesign/content-item": "26.12.0-beta.38",
|
|
21
|
+
"@crystaldesign/diva-agent": "26.12.0-beta.38",
|
|
22
|
+
"@crystaldesign/diva-core": "26.12.0-beta.38",
|
|
23
|
+
"@crystaldesign/diva-utils": "26.12.0-beta.38",
|
|
24
|
+
"@crystaldesign/media-upload": "26.12.0-beta.38",
|
|
25
|
+
"@crystaldesign/rtf-editor": "26.12.0-beta.38",
|
|
26
|
+
"@crystaldesign/spreadsheet": "26.12.0-beta.38",
|
|
27
27
|
"@dnd-kit/core": "^6.1.0",
|
|
28
28
|
"@dnd-kit/sortable": "^8.0.0",
|
|
29
29
|
"@dnd-kit/utilities": "^3.2.2",
|
|
@@ -57,5 +57,5 @@
|
|
|
57
57
|
},
|
|
58
58
|
"module": "build/esm/index.js",
|
|
59
59
|
"types": "./build/types/backoffice/src/index.d.ts",
|
|
60
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "86af24a84325ee470f7dce9d1159a6577fde22bf"
|
|
61
61
|
}
|