@economic/taco 2.26.19 → 2.27.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/components/Report/Report.d.ts +1 -1
- package/dist/components/Report/types.d.ts +1 -1
- package/dist/components/Report/useReport.d.ts +2 -2
- package/dist/components/Select2/Select2.d.ts +2 -0
- package/dist/components/Select2/utilities.d.ts +2 -0
- package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js +1 -1
- package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Report/useReport.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/Select2.js +14 -2
- package/dist/esm/packages/taco/src/components/Select2/Select2.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Option.js +2 -6
- package/dist/esm/packages/taco/src/components/Select2/components/Option.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js +3 -6
- package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/utilities.js +14 -1
- package/dist/esm/packages/taco/src/components/Select2/utilities.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js +2 -2
- package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/Table.js +4 -2
- package/dist/esm/packages/taco/src/primitives/Table/Core/Table.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Footer.js +15 -6
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Footer.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Print/Print.js +15 -6
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Print/Print.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableRenderer.js +10 -3
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableRenderer.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/useTable.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/date.js +2 -2
- package/dist/esm/packages/taco/src/utils/date.js.map +1 -1
- package/dist/primitives/Table/Core/components/Footer/Footer.d.ts +11 -2
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterColumn.d.ts +1 -1
- package/dist/primitives/Table/Core/features/useTableRenderer.d.ts +1 -1
- package/dist/primitives/Table/Core/useTable.d.ts +1 -1
- package/dist/taco.cjs.development.js +73 -31
- 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 +1 -1
- package/package.json +2 -2
@@ -17,7 +17,7 @@ export declare type useTableReturnValue<TType = unknown> = {
|
|
17
17
|
};
|
18
18
|
ref: React.RefObject<TableRef>;
|
19
19
|
renderer: {
|
20
|
-
rows: JSX.Element[] | null;
|
20
|
+
rows: (JSX.Element | null)[] | null;
|
21
21
|
style: React.CSSProperties;
|
22
22
|
scrollToIndex: (index: number, options?: ReactVirtualScrollToOptions) => void;
|
23
23
|
};
|
@@ -5977,7 +5977,7 @@ const format = (date, mask = 'dd.mm.yy') => {
|
|
5977
5977
|
const pad = v => String(v).length === 1 ? `0${v}` : v.toString();
|
5978
5978
|
return mask.replace('dd', pad(value.getDate())).replace('mm', pad(value.getMonth() + 1)).replace('yy', String(value.getFullYear()).slice(2));
|
5979
5979
|
};
|
5980
|
-
const parseFromCustomString = (date = '', mask = 'dd.mm.yy') => {
|
5980
|
+
const parseFromCustomString = (date = '', mask = 'dd.mm.yy', defaultYear = undefined) => {
|
5981
5981
|
if (!date || !date.length) {
|
5982
5982
|
return undefined;
|
5983
5983
|
}
|
@@ -6011,7 +6011,7 @@ const parseFromCustomString = (date = '', mask = 'dd.mm.yy') => {
|
|
6011
6011
|
month = Number.parseInt(month, 10);
|
6012
6012
|
year = Number.parseInt(year, 10);
|
6013
6013
|
const currentDate = new Date();
|
6014
|
-
return new Date( /* year */Object.is(year, NaN) ? currentDate.getFullYear() : year, /* month */Object.is(month, NaN) ? currentDate.getMonth() : month - 1,
|
6014
|
+
return new Date( /* year */Object.is(year, NaN) ? defaultYear !== null && defaultYear !== void 0 ? defaultYear : currentDate.getFullYear() : year, /* month */Object.is(month, NaN) ? currentDate.getMonth() : month - 1,
|
6015
6015
|
// months are zero based in javascript, so subtract a day
|
6016
6016
|
/* day */
|
6017
6017
|
Object.is(day, NaN) ? currentDate.getDate() : day, /* hours */12, /* minutes */0 // set to midday to avoid UTC offset causing dates to be mismatched server side
|
@@ -6049,7 +6049,7 @@ const useDatepicker = ({
|
|
6049
6049
|
// event handlers
|
6050
6050
|
const handleInputBlur = event => {
|
6051
6051
|
event.persist();
|
6052
|
-
const valueAsDate = parseFromCustomString(event.target.value);
|
6052
|
+
const valueAsDate = parseFromCustomString(event.target.value, 'dd.mm.yy', value === null || value === void 0 ? void 0 : value.getFullYear());
|
6053
6053
|
const formattedValue = valueAsDate ? format(valueAsDate) || '' : '';
|
6054
6054
|
event.target.value = formattedValue;
|
6055
6055
|
if (onChange) {
|
@@ -11243,10 +11243,11 @@ function Row(props) {
|
|
11243
11243
|
const TABLE_SCROLL_PADDING_BOTTOM = 36;
|
11244
11244
|
const TABLE_PADDING_BOTTOM = 120;
|
11245
11245
|
function useTableRenderer(renderers, table, tableRef, defaultRowActiveIndex) {
|
11246
|
-
var _table$getState$group, _virtualItems
|
11246
|
+
var _table$getState$group, _ref, _virtualItems$padding, _virtualItems$padding2, _ref2, _virtualItems;
|
11247
11247
|
const tableMeta = table.options.meta;
|
11248
11248
|
const rows = table.getRowModel().rows;
|
11249
11249
|
const HEADER_OFFSET_TOTAL = HEADER_ROW_HEIGHT_ESTIMATE * table.getHeaderGroups().length;
|
11250
|
+
const isTableGrouped = !!((_table$getState$group = table.getState().grouping) !== null && _table$getState$group !== void 0 && _table$getState$group.length);
|
11250
11251
|
// expanded rows
|
11251
11252
|
const {
|
11252
11253
|
createRowMeasurer,
|
@@ -11260,7 +11261,7 @@ function useTableRenderer(renderers, table, tableRef, defaultRowActiveIndex) {
|
|
11260
11261
|
getScrollElement: () => tableRef.current,
|
11261
11262
|
overscan: tableMeta.printing.isPrinting ? rows.length : undefined,
|
11262
11263
|
rangeExtractor,
|
11263
|
-
scrollPaddingStart:
|
11264
|
+
scrollPaddingStart: isTableGrouped ? HEADER_ROW_HEIGHT_ESTIMATE : undefined,
|
11264
11265
|
scrollPaddingEnd: HEADER_OFFSET_TOTAL + TABLE_SCROLL_PADDING_BOTTOM,
|
11265
11266
|
paddingEnd: TABLE_PADDING_BOTTOM
|
11266
11267
|
});
|
@@ -11293,10 +11294,12 @@ function useTableRenderer(renderers, table, tableRef, defaultRowActiveIndex) {
|
|
11293
11294
|
}
|
11294
11295
|
}
|
11295
11296
|
}, [virtualItems.length, tableRef.current]);
|
11297
|
+
// use row 1 not 0, because 0 might be sticky in grouped tables and it's start value will always be 0
|
11298
|
+
const paddingStartIndex = isTableGrouped && rows.length > 1 ? 1 : 0;
|
11296
11299
|
// styling for offsetting rows - this "is" the virtualisation
|
11297
11300
|
const [paddingTop, paddingBottom] = virtualItems.length > 0 ? [
|
11298
11301
|
// use row 1 not 0, because 0 might be sticky in grouped tables and it's start value will always be 0
|
11299
|
-
Math.max(0, ((_virtualItems$ = virtualItems[
|
11302
|
+
Math.max(0, (_ref = ((_virtualItems$padding = virtualItems[paddingStartIndex]) === null || _virtualItems$padding === void 0 ? void 0 : _virtualItems$padding.start) - virtualiser.options.scrollMargin - ((_virtualItems$padding2 = virtualItems[paddingStartIndex]) === null || _virtualItems$padding2 === void 0 ? void 0 : _virtualItems$padding2.size)) !== null && _ref !== void 0 ? _ref : 0), Math.max(0, (_ref2 = virtualiser.getTotalSize() - ((_virtualItems = virtualItems[virtualItems.length - 1]) === null || _virtualItems === void 0 ? void 0 : _virtualItems.end)) !== null && _ref2 !== void 0 ? _ref2 : 0)] : [0, 0];
|
11300
11303
|
// ensure default active rows are scrolled to
|
11301
11304
|
React__default.useEffect(() => {
|
11302
11305
|
if (defaultRowActiveIndex) {
|
@@ -11316,6 +11319,10 @@ function useTableRenderer(renderers, table, tableRef, defaultRowActiveIndex) {
|
|
11316
11319
|
paddingTop
|
11317
11320
|
};
|
11318
11321
|
content = virtualItems.map(virtualRow => {
|
11322
|
+
// there appears to be a react-virtual bug where it inserts a single `undefined` item at the end of the row, which crashes here
|
11323
|
+
if (!virtualRow) {
|
11324
|
+
return null;
|
11325
|
+
}
|
11319
11326
|
const row = rows[virtualRow.index];
|
11320
11327
|
const measureRow = createRowMeasurer(virtualiser.resizeItem, virtualRow);
|
11321
11328
|
return /*#__PURE__*/React__default.createElement(Row, {
|
@@ -12810,16 +12817,25 @@ function Summary(props) {
|
|
12810
12817
|
}, label, "\u00A0", count);
|
12811
12818
|
}
|
12812
12819
|
|
12813
|
-
function
|
12814
|
-
|
12820
|
+
function Foot(props) {
|
12821
|
+
const nonGroupedHeaders = props.table.getFooterGroups()[0].headers.filter(header => !header.column.getIsGrouped());
|
12822
|
+
return /*#__PURE__*/React__default.createElement("tfoot", null, /*#__PURE__*/React__default.createElement("tr", null, nonGroupedHeaders.map((header, index) => ( /*#__PURE__*/React__default.createElement(Footer$3, {
|
12815
12823
|
key: header.id,
|
12816
|
-
|
12824
|
+
header: header,
|
12825
|
+
index: index
|
12826
|
+
})))));
|
12827
|
+
}
|
12828
|
+
function Footer$3(props) {
|
12829
|
+
return /*#__PURE__*/React__default.createElement(MemoedFooter, {
|
12830
|
+
footer: props.header,
|
12831
|
+
index: props.index
|
12817
12832
|
});
|
12818
12833
|
}
|
12819
12834
|
const MemoedFooter = /*#__PURE__*/React__default.memo(function MemoedFooter(props) {
|
12820
12835
|
var _footer$subHeaders, _footer$subHeaders$fi;
|
12821
12836
|
const {
|
12822
|
-
footer
|
12837
|
+
footer,
|
12838
|
+
index
|
12823
12839
|
} = props;
|
12824
12840
|
const columnMeta = footer.column.columnDef.meta;
|
12825
12841
|
// getIsPinned returns true for split header groups, even if the split group has no pinned sub headers
|
@@ -12832,7 +12848,7 @@ const MemoedFooter = /*#__PURE__*/React__default.memo(function MemoedFooter(prop
|
|
12832
12848
|
}
|
12833
12849
|
let content;
|
12834
12850
|
let align;
|
12835
|
-
if (
|
12851
|
+
if (index === 0) {
|
12836
12852
|
align = 'left';
|
12837
12853
|
content = /*#__PURE__*/React__default.createElement(Summary, {
|
12838
12854
|
table: footer.getContext().table
|
@@ -13872,6 +13888,18 @@ const createOptionClassName = (shouldPauseHoverState = false) => cn('group mb-px
|
|
13872
13888
|
'hover:wcag-grey-200': !shouldPauseHoverState
|
13873
13889
|
});
|
13874
13890
|
const createCollectionClassName = () => 'flex flex-col gap-px';
|
13891
|
+
const getFontSize = fontSize => {
|
13892
|
+
switch (fontSize) {
|
13893
|
+
case exports.FontSizes.small:
|
13894
|
+
return 'text-xs';
|
13895
|
+
case exports.FontSizes.medium:
|
13896
|
+
return 'text-sm';
|
13897
|
+
case exports.FontSizes.large:
|
13898
|
+
return 'text-base';
|
13899
|
+
default:
|
13900
|
+
return 'text-sm';
|
13901
|
+
}
|
13902
|
+
};
|
13875
13903
|
|
13876
13904
|
const Select2Context = /*#__PURE__*/React__default.createContext({});
|
13877
13905
|
const useSelect2Context = () => React__default.useContext(Select2Context);
|
@@ -14083,11 +14111,7 @@ const Option$1 = /*#__PURE__*/React__default.forwardRef(function Select2Option(p
|
|
14083
14111
|
value,
|
14084
14112
|
fontSize = exports.FontSizes.medium
|
14085
14113
|
} = useSelect2Context();
|
14086
|
-
const className = cn(createOptionClassName(shouldPauseHoverState),
|
14087
|
-
'text-xs': fontSize === exports.FontSizes.small,
|
14088
|
-
'text-sm': fontSize === exports.FontSizes.medium,
|
14089
|
-
'text-base': fontSize === exports.FontSizes.large
|
14090
|
-
}, cName);
|
14114
|
+
const className = cn(createOptionClassName(shouldPauseHoverState), fontSize && getFontSize(fontSize), cName);
|
14091
14115
|
const hasValue = Array.isArray(value) ? !!value.length : value !== undefined;
|
14092
14116
|
const isTag = tags && !!color;
|
14093
14117
|
const handleClick = () => {
|
@@ -14220,11 +14244,8 @@ const Button$2 = /*#__PURE__*/React__default.forwardRef(function Select2TriggerB
|
|
14220
14244
|
highlighted,
|
14221
14245
|
invalid,
|
14222
14246
|
readOnly
|
14223
|
-
}).replace('w-full', '').replace('px-2', ''), {
|
14224
|
-
'w-full': !((_props$className = props.className) !== null && _props$className !== void 0 && _props$className.includes('w-'))
|
14225
|
-
'text-xs': fontSize === exports.FontSizes.small,
|
14226
|
-
'text-sm': fontSize === exports.FontSizes.medium,
|
14227
|
-
'text-base': fontSize === exports.FontSizes.large
|
14247
|
+
}).replace('w-full', '').replace('px-2', ''), fontSize && getFontSize(fontSize), {
|
14248
|
+
'w-full': !((_props$className = props.className) !== null && _props$className !== void 0 && _props$className.includes('w-'))
|
14228
14249
|
}, props.className);
|
14229
14250
|
const handleClick = event => {
|
14230
14251
|
if (disabled || readOnly) {
|
@@ -14732,6 +14753,7 @@ const Select2 = /*#__PURE__*/React__default.forwardRef(function Select2(props, r
|
|
14732
14753
|
tags = false,
|
14733
14754
|
value: prop,
|
14734
14755
|
fontSize,
|
14756
|
+
loading,
|
14735
14757
|
...otherProps
|
14736
14758
|
} = props;
|
14737
14759
|
const emptyOption = React__default.useMemo(() => {
|
@@ -14944,7 +14966,16 @@ const Select2 = /*#__PURE__*/React__default.forwardRef(function Select2(props, r
|
|
14944
14966
|
onClick: areAllSelected ? deselectAll : selectAll
|
14945
14967
|
}, selectAllText), /*#__PURE__*/React__default.createElement("div", {
|
14946
14968
|
className: "border-grey-300 mx-3 rounded border-t"
|
14947
|
-
}))))) : null,
|
14969
|
+
}))))) : null, loading ? ( /*#__PURE__*/React__default.createElement("span", {
|
14970
|
+
className: cn('text-grey-700 flex items-center italic', fontSize && getFontSize(fontSize))
|
14971
|
+
}, /*#__PURE__*/React__default.createElement("span", null, /*#__PURE__*/React__default.createElement(Spinner, {
|
14972
|
+
delay: 0,
|
14973
|
+
className: cn('ml-3 mr-2 mt-1.5 h-5 w-5', {
|
14974
|
+
'!mt-1 !h-3.5 !w-3.5': fontSize === exports.FontSizes.small,
|
14975
|
+
'!h-4 !w-4': fontSize === exports.FontSizes.medium,
|
14976
|
+
'!h-5 !w-5': fontSize === exports.FontSizes.large
|
14977
|
+
})
|
14978
|
+
})), /*#__PURE__*/React__default.createElement("span", null, texts.listbox.loading))) : flattenedChildren.length <= 0 ? ( /*#__PURE__*/React__default.createElement("div", {
|
14948
14979
|
className: "text-grey-700 -mt-0.5 flex h-8 items-center px-2",
|
14949
14980
|
role: "presentation"
|
14950
14981
|
}, "No results found...")) : ( /*#__PURE__*/React__default.createElement(Root$1, {
|
@@ -15127,12 +15158,21 @@ function Print$1(props) {
|
|
15127
15158
|
// do this here because Safari doesn't support the beforeprint event
|
15128
15159
|
togglePrinting(true);
|
15129
15160
|
requestAnimationFrame(() => {
|
15130
|
-
|
15131
|
-
|
15132
|
-
|
15133
|
-
|
15134
|
-
|
15135
|
-
|
15161
|
+
requestAnimationFrame(() => {
|
15162
|
+
const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
|
15163
|
+
if (isSafari) {
|
15164
|
+
try {
|
15165
|
+
// Try using document.execCommand for printing in Safari
|
15166
|
+
document.execCommand('print', false, undefined);
|
15167
|
+
} catch (error) {
|
15168
|
+
// If document.execCommand fails or throws an error, fallback to window.print()
|
15169
|
+
window.print();
|
15170
|
+
}
|
15171
|
+
} else {
|
15172
|
+
// Execute window.print() for all other browsers
|
15173
|
+
window.print();
|
15174
|
+
}
|
15175
|
+
});
|
15136
15176
|
});
|
15137
15177
|
}, 150);
|
15138
15178
|
}
|
@@ -15823,7 +15863,9 @@ function TableGrid(props) {
|
|
15823
15863
|
enableHorizontalArrowKeyNavigation: enableHorizontalArrowKeyNavigation,
|
15824
15864
|
table: table.instance,
|
15825
15865
|
style: table.renderer.style
|
15826
|
-
}, table.renderer.rows), table.meta.footer.isEnabled ?
|
15866
|
+
}, table.renderer.rows), table.meta.footer.isEnabled ? /*#__PURE__*/React__default.createElement(Foot, {
|
15867
|
+
table: table.instance
|
15868
|
+
}) : null)) : ( /*#__PURE__*/React__default.createElement(EmptyStateBody, {
|
15827
15869
|
emptyState: table.props.emptyState
|
15828
15870
|
})))));
|
15829
15871
|
}
|
@@ -18438,8 +18480,8 @@ function Alert$1(props) {
|
|
18438
18480
|
if (pendingChangesWithErrors.length > 1 && index === pendingChangesWithErrors.length - 1) {
|
18439
18481
|
links.push(validationTexts.alert.messageAnd);
|
18440
18482
|
}
|
18483
|
+
const rowIndex = table.getRowModel().rows.findIndex(row => row.id === error.rowId);
|
18441
18484
|
const handleClick = () => {
|
18442
|
-
const rowIndex = table.getRowModel().rows.findIndex(row => row.id === error.rowId);
|
18443
18485
|
if (rowIndex > -1) {
|
18444
18486
|
scrollToRow(rowIndex);
|
18445
18487
|
} else {
|
@@ -18462,7 +18504,7 @@ function Alert$1(props) {
|
|
18462
18504
|
className: "text-blue",
|
18463
18505
|
onClick: handleClick,
|
18464
18506
|
role: "button"
|
18465
|
-
}, rowIdentityColumn ? error.pendingChange._meta.original[rowIdentityColumn.id] :
|
18507
|
+
}, rowIdentityColumn ? error.pendingChange._meta.original[rowIdentityColumn.id] : rowIndex + 1)));
|
18466
18508
|
// if appropriate, concatenate the item with the text ","
|
18467
18509
|
if (pendingChangesWithErrors.length > 2 && index < pendingChangesWithErrors.length - 2) {
|
18468
18510
|
links.push(', ');
|