@economic/taco 2.42.1 → 2.43.0
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/dist/components/Datepicker/Datepicker.d.ts +2 -2
- package/dist/esm/packages/taco/src/components/Datepicker/Datepicker.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js +9 -13
- package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingControlCell.js +5 -4
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingControlCell.js.map +1 -1
- package/dist/esm/packages/taco/src/index.js +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/dataTypes.js +5 -15
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/dataTypes.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/date.js +19 -7
- package/dist/esm/packages/taco/src/utils/date.js.map +1 -1
- package/dist/taco.cjs.development.js +34 -32
- package/dist/taco.cjs.development.js.map +1 -1
- package/dist/taco.cjs.production.min.js +1 -1
- package/dist/taco.cjs.production.min.js.map +1 -1
- package/dist/utils/date.d.ts +2 -1
- package/package.json +2 -2
@@ -6174,17 +6174,29 @@ const Combobox = /*#__PURE__*/React.forwardRef(function Combobox(props, ref) {
|
|
6174
6174
|
const isWeakEqual = (leftDate, rightDate) => {
|
6175
6175
|
return leftDate.getFullYear() === rightDate.getFullYear() && leftDate.getMonth() === rightDate.getMonth() && leftDate.getDate() === rightDate.getDate();
|
6176
6176
|
};
|
6177
|
-
|
6178
|
-
|
6179
|
-
|
6177
|
+
function parse(date) {
|
6178
|
+
let value;
|
6179
|
+
if (dateFns.isDate(date)) {
|
6180
|
+
value = date;
|
6181
|
+
} else if (typeof date === 'string') {
|
6182
|
+
value = parseFromISOString(date);
|
6180
6183
|
}
|
6181
|
-
const value = dateFns.isDate(date) ? date : dateFns.toDate(date);
|
6182
6184
|
if (!dateFns.isValid(value)) {
|
6183
6185
|
return undefined;
|
6184
6186
|
}
|
6187
|
+
return value;
|
6188
|
+
}
|
6189
|
+
function format(date, mask = 'dd.mm.yy') {
|
6190
|
+
if (date === undefined) {
|
6191
|
+
return undefined;
|
6192
|
+
}
|
6193
|
+
const value = parse(date);
|
6194
|
+
if (!dateFns.isValid(value) || value === undefined) {
|
6195
|
+
return undefined;
|
6196
|
+
}
|
6185
6197
|
const pad = v => String(v).length === 1 ? `0${v}` : v.toString();
|
6186
6198
|
return mask.replace('dd', pad(value.getDate())).replace('mm', pad(value.getMonth() + 1)).replace('yy', String(value.getFullYear()).slice(2));
|
6187
|
-
}
|
6199
|
+
}
|
6188
6200
|
const parseFromCustomString = (date = '', mask = 'dd.mm.yy', defaultMonth = undefined, defaultYear = undefined) => {
|
6189
6201
|
if (!date || !date.length) {
|
6190
6202
|
return undefined;
|
@@ -6242,22 +6254,19 @@ const useDatepicker = ({
|
|
6242
6254
|
const {
|
6243
6255
|
formatting
|
6244
6256
|
} = useLocalization();
|
6245
|
-
const [internalValue, setInternalValue] = React.useState(
|
6257
|
+
const [internalValue, setInternalValue] = React.useState(format(value, formatting.date));
|
6258
|
+
const originalValueAsDate = parse(value);
|
6246
6259
|
// update internal value if it changed 'externally'
|
6247
6260
|
React.useEffect(() => {
|
6248
|
-
|
6249
|
-
|
6250
|
-
|
6251
|
-
setInternalValue(formattedValue);
|
6252
|
-
}
|
6253
|
-
} else {
|
6254
|
-
setInternalValue('');
|
6261
|
+
const formattedValue = format(value, formatting.date);
|
6262
|
+
if (formattedValue !== internalValue) {
|
6263
|
+
setInternalValue(formattedValue);
|
6255
6264
|
}
|
6256
6265
|
}, [value]);
|
6257
6266
|
// event handlers
|
6258
6267
|
const handleInputBlur = event => {
|
6259
6268
|
event.persist();
|
6260
|
-
const valueAsDate = parseFromCustomString(event.target.value, 'dd.mm.yy',
|
6269
|
+
const valueAsDate = parseFromCustomString(event.target.value, 'dd.mm.yy', originalValueAsDate === null || originalValueAsDate === void 0 ? void 0 : originalValueAsDate.getMonth(), originalValueAsDate === null || originalValueAsDate === void 0 ? void 0 : originalValueAsDate.getFullYear());
|
6261
6270
|
const formattedValue = valueAsDate ? format(valueAsDate) || '' : '';
|
6262
6271
|
event.target.value = formattedValue;
|
6263
6272
|
if (onChange) {
|
@@ -6281,7 +6290,7 @@ const useDatepicker = ({
|
|
6281
6290
|
if (props.onKeyDown) {
|
6282
6291
|
props.onKeyDown(event);
|
6283
6292
|
}
|
6284
|
-
if (
|
6293
|
+
if (event.key === 'Enter') {
|
6285
6294
|
event.target.dispatchEvent(new Event('focusout', {
|
6286
6295
|
bubbles: true
|
6287
6296
|
}));
|
@@ -6300,7 +6309,7 @@ const useDatepicker = ({
|
|
6300
6309
|
const calendarProps = {
|
6301
6310
|
...calendar,
|
6302
6311
|
onChange: handleChange,
|
6303
|
-
value
|
6312
|
+
value: originalValueAsDate
|
6304
6313
|
};
|
6305
6314
|
return {
|
6306
6315
|
input: inputProps,
|
@@ -9816,17 +9825,8 @@ const dataTypes = {
|
|
9816
9825
|
sortingFn: 'datetime',
|
9817
9826
|
filterComparators: [exports.TableFilterComparator.IsEqualTo, exports.TableFilterComparator.IsNotEqualTo, exports.TableFilterComparator.IsGreaterThan, exports.TableFilterComparator.IsLessThan, exports.TableFilterComparator.IsGreaterThanOrEqualTo, exports.TableFilterComparator.IsLessThanOrEqualTo, exports.TableFilterComparator.IsBetween, exports.TableFilterComparator.IsEmpty, exports.TableFilterComparator.IsNotEmpty],
|
9818
9827
|
getDisplayValue: (value, options) => {
|
9819
|
-
|
9820
|
-
|
9821
|
-
}
|
9822
|
-
if (dateFns.isDate(value)) {
|
9823
|
-
var _format, _options$localization;
|
9824
|
-
return (_format = format(value, options === null || options === void 0 ? void 0 : (_options$localization = options.localization) === null || _options$localization === void 0 ? void 0 : _options$localization.formatting.date)) !== null && _format !== void 0 ? _format : '';
|
9825
|
-
} else if (typeof value === 'string') {
|
9826
|
-
var _format2, _options$localization2;
|
9827
|
-
return (_format2 = format(parseFromISOString(value), options === null || options === void 0 ? void 0 : (_options$localization2 = options.localization) === null || _options$localization2 === void 0 ? void 0 : _options$localization2.formatting.date)) !== null && _format2 !== void 0 ? _format2 : '';
|
9828
|
-
}
|
9829
|
-
return String(value);
|
9828
|
+
var _date$format, _options$localization;
|
9829
|
+
return (_date$format = format(value, options === null || options === void 0 ? void 0 : (_options$localization = options.localization) === null || _options$localization === void 0 ? void 0 : _options$localization.formatting.date)) !== null && _date$format !== void 0 ? _date$format : '';
|
9830
9830
|
}
|
9831
9831
|
},
|
9832
9832
|
boolean: {
|
@@ -9839,11 +9839,11 @@ const dataTypes = {
|
|
9839
9839
|
sortingFn: 'basic',
|
9840
9840
|
filterComparators: [exports.TableFilterComparator.IsEqualTo, exports.TableFilterComparator.IsNotEqualTo, exports.TableFilterComparator.IsGreaterThan, exports.TableFilterComparator.IsLessThan, exports.TableFilterComparator.IsGreaterThanOrEqualTo, exports.TableFilterComparator.IsLessThanOrEqualTo, exports.TableFilterComparator.IsBetween, exports.TableFilterComparator.IsEmpty, exports.TableFilterComparator.IsNotEmpty],
|
9841
9841
|
getDisplayValue: (value, options) => {
|
9842
|
-
var _options$
|
9842
|
+
var _options$localization2;
|
9843
9843
|
if (value === undefined) {
|
9844
9844
|
return '';
|
9845
9845
|
}
|
9846
|
-
return new Intl.NumberFormat(options === null || options === void 0 ? void 0 : (_options$
|
9846
|
+
return new Intl.NumberFormat(options === null || options === void 0 ? void 0 : (_options$localization2 = options.localization) === null || _options$localization2 === void 0 ? void 0 : _options$localization2.locale, {
|
9847
9847
|
minimumFractionDigits: 2
|
9848
9848
|
}).format(Number(value));
|
9849
9849
|
}
|
@@ -19260,10 +19260,11 @@ const MemoedEditingCell = /*#__PURE__*/React__default.memo(function MemoedEditin
|
|
19260
19260
|
}
|
19261
19261
|
};
|
19262
19262
|
if (type === 'datepicker') {
|
19263
|
+
const valueAsDate = parse(value);
|
19263
19264
|
const handleChange = event => {
|
19264
19265
|
const newDate = event.detail;
|
19265
|
-
if (!
|
19266
|
-
props.onChange(
|
19266
|
+
if (!valueAsDate || !newDate || dateFns.isDate(valueAsDate) && dateFns.isDate(newDate) && !isWeakEqual(valueAsDate, newDate)) {
|
19267
|
+
props.onChange(newDate);
|
19267
19268
|
}
|
19268
19269
|
};
|
19269
19270
|
return /*#__PURE__*/React__default.createElement(Datepicker, Object.assign({}, commonProps, {
|
@@ -19272,7 +19273,7 @@ const MemoedEditingCell = /*#__PURE__*/React__default.memo(function MemoedEditin
|
|
19272
19273
|
onFocus: handleFocus,
|
19273
19274
|
onKeyDown: handleInputKeyDown,
|
19274
19275
|
ref: controlRef,
|
19275
|
-
value:
|
19276
|
+
value: valueAsDate
|
19276
19277
|
}));
|
19277
19278
|
}
|
19278
19279
|
if (type === 'textarea') {
|
@@ -20863,6 +20864,7 @@ exports.isMacOs = isMacOs;
|
|
20863
20864
|
exports.isPressingMetaKey = isPressingMetaKey;
|
20864
20865
|
exports.isWeakEqual = isWeakEqual;
|
20865
20866
|
exports.mergeRefs = mergeRefs;
|
20867
|
+
exports.parse = parse;
|
20866
20868
|
exports.parseFromCustomString = parseFromCustomString;
|
20867
20869
|
exports.parseFromISOString = parseFromISOString;
|
20868
20870
|
exports.removeChildTableRow = removeChildTableRow;
|