@economic/taco 2.7.4 → 2.7.5
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/esm/index.css +4 -2
- package/dist/esm/packages/taco/src/components/Select2/Select2.js +1 -3
- package/dist/esm/packages/taco/src/components/Select2/Select2.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/EditingCell.js +3 -5
- package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/EditingCell.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/EditingControl.js +2 -1
- package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/EditingControl.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/controls/TextareaControl.js +35 -13
- package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/controls/TextareaControl.js.map +1 -1
- package/dist/index.css +4 -2
- package/dist/taco.cjs.development.js +41 -22
- 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/package.json +2 -2
- package/types.json +3 -3
|
@@ -10531,10 +10531,8 @@ const Select2 = /*#__PURE__*/React__default.forwardRef(function Select2(props, r
|
|
|
10531
10531
|
}), flattenedChildren)), /*#__PURE__*/React__default.createElement(PopoverPrimitive.Portal, null, /*#__PURE__*/React__default.createElement(PopoverPrimitive.Content, {
|
|
10532
10532
|
asChild: true,
|
|
10533
10533
|
align: "start",
|
|
10534
|
-
onOpenAutoFocus:
|
|
10534
|
+
onOpenAutoFocus: () => {
|
|
10535
10535
|
var _internalRef$current;
|
|
10536
|
-
event.preventDefault();
|
|
10537
|
-
event.stopPropagation();
|
|
10538
10536
|
(_internalRef$current = internalRef.current) === null || _internalRef$current === void 0 ? void 0 : _internalRef$current.focus();
|
|
10539
10537
|
},
|
|
10540
10538
|
onCloseAutoFocus: event => {
|
|
@@ -17604,6 +17602,22 @@ const Textarea = /*#__PURE__*/React.forwardRef(function Textarea(props, ref) {
|
|
|
17604
17602
|
}));
|
|
17605
17603
|
});
|
|
17606
17604
|
|
|
17605
|
+
// By UX design, textarea should fold to min size when blured and extend to max 5 lines height when edited in enableTruncate mode,
|
|
17606
|
+
// for this reason we need to set min/max height limits for each font size value.
|
|
17607
|
+
const heights = {
|
|
17608
|
+
small: {
|
|
17609
|
+
min: 24,
|
|
17610
|
+
max: 86
|
|
17611
|
+
},
|
|
17612
|
+
medium: {
|
|
17613
|
+
min: 34,
|
|
17614
|
+
max: 100
|
|
17615
|
+
},
|
|
17616
|
+
large: {
|
|
17617
|
+
min: 40,
|
|
17618
|
+
max: 140
|
|
17619
|
+
}
|
|
17620
|
+
};
|
|
17607
17621
|
const TextareaControl = /*#__PURE__*/React__default.forwardRef(function TextareaControl(props, externalRef) {
|
|
17608
17622
|
const {
|
|
17609
17623
|
onKeyDown: handleKeyDown,
|
|
@@ -17613,19 +17627,25 @@ const TextareaControl = /*#__PURE__*/React__default.forwardRef(function Textarea
|
|
|
17613
17627
|
align,
|
|
17614
17628
|
isCurrentRow,
|
|
17615
17629
|
value,
|
|
17630
|
+
fontSize,
|
|
17616
17631
|
...attributes
|
|
17617
17632
|
} = props;
|
|
17618
|
-
const
|
|
17619
|
-
const textareaMinHeight = 32;
|
|
17633
|
+
const minMaxHeight = heights[fontSize];
|
|
17620
17634
|
const columnMeta = column.columnDef.meta;
|
|
17621
17635
|
const ref = useMergedRef(externalRef);
|
|
17622
17636
|
React__default.useEffect(() => {
|
|
17623
|
-
|
|
17624
|
-
|
|
17625
|
-
|
|
17626
|
-
|
|
17637
|
+
if (ref !== null && ref !== void 0 && ref.current) {
|
|
17638
|
+
// Need to reset textarea to min height when font size got changed and if column in enable truncate mode.
|
|
17639
|
+
if (columnMeta !== null && columnMeta !== void 0 && columnMeta.enableTruncate) {
|
|
17640
|
+
const textareaElement = ref === null || ref === void 0 ? void 0 : ref.current;
|
|
17641
|
+
textareaElement.style.height = `${minMaxHeight.min}px`;
|
|
17642
|
+
// If truncation is not enabled, then textarea should re-calculate it's height to fit with it's own content, when initialized or fonsSize got changed.
|
|
17643
|
+
} else {
|
|
17644
|
+
const textareaElement = ref === null || ref === void 0 ? void 0 : ref.current;
|
|
17645
|
+
resizeTextArea(textareaElement);
|
|
17646
|
+
}
|
|
17627
17647
|
}
|
|
17628
|
-
}, []);
|
|
17648
|
+
}, [fontSize]);
|
|
17629
17649
|
React__default.useEffect(() => {
|
|
17630
17650
|
// If truncation is enabled, then textarea should only adjust to it's own content, when in detail mode.
|
|
17631
17651
|
// Otherwise it should collapse to minimal height.
|
|
@@ -17634,7 +17654,7 @@ const TextareaControl = /*#__PURE__*/React__default.forwardRef(function Textarea
|
|
|
17634
17654
|
if (isCellInDetailMode) {
|
|
17635
17655
|
resizeTextArea(textareaElement);
|
|
17636
17656
|
} else {
|
|
17637
|
-
textareaElement.style.height = `${
|
|
17657
|
+
textareaElement.style.height = `${minMaxHeight.min}px`;
|
|
17638
17658
|
}
|
|
17639
17659
|
}
|
|
17640
17660
|
}, [isCellInDetailMode]);
|
|
@@ -17644,9 +17664,9 @@ const TextareaControl = /*#__PURE__*/React__default.forwardRef(function Textarea
|
|
|
17644
17664
|
const textareaRect = textareaElement.getBoundingClientRect();
|
|
17645
17665
|
const prevHeight = textareaRect.height;
|
|
17646
17666
|
if (columnMeta !== null && columnMeta !== void 0 && columnMeta.enableTruncate) {
|
|
17647
|
-
if (prevHeight <
|
|
17667
|
+
if (prevHeight < minMaxHeight.max) {
|
|
17648
17668
|
textareaElement.style.height = 'inherit';
|
|
17649
|
-
textareaElement.style.height = `${Math.min(textareaElement.scrollHeight,
|
|
17669
|
+
textareaElement.style.height = `${Math.min(textareaElement.scrollHeight, minMaxHeight.max)}px`;
|
|
17650
17670
|
}
|
|
17651
17671
|
} else {
|
|
17652
17672
|
textareaElement.style.height = 'inherit';
|
|
@@ -17683,13 +17703,13 @@ const TextareaControl = /*#__PURE__*/React__default.forwardRef(function Textarea
|
|
|
17683
17703
|
// If truncation is enabled, then textarea should shring back to min height, when loosing focus.
|
|
17684
17704
|
if (columnMeta !== null && columnMeta !== void 0 && columnMeta.enableTruncate) {
|
|
17685
17705
|
const textareaElement = event.currentTarget;
|
|
17686
|
-
textareaElement.style.height = `${
|
|
17706
|
+
textareaElement.style.height = `${minMaxHeight.min}px`;
|
|
17687
17707
|
}
|
|
17688
17708
|
},
|
|
17689
17709
|
className: cn(getCellAlignmentClasses$1(align), `z-20 h-fit resize-none`, {
|
|
17690
|
-
[`!min-h-[${
|
|
17710
|
+
[`!min-h-[${minMaxHeight.min}px]`]: columnMeta === null || columnMeta === void 0 ? void 0 : columnMeta.enableTruncate,
|
|
17691
17711
|
'!yt-focus-dark': isCellInDetailMode,
|
|
17692
|
-
[`h-[${
|
|
17712
|
+
[`h-[${minMaxHeight.min}px]`]: !isCellInDetailMode && (columnMeta === null || columnMeta === void 0 ? void 0 : columnMeta.enableTruncate),
|
|
17693
17713
|
// Only allow resizing when focused and truncation enabled
|
|
17694
17714
|
'focus:resize-y': isCurrentRow && (columnMeta === null || columnMeta === void 0 ? void 0 : columnMeta.enableTruncate)
|
|
17695
17715
|
}),
|
|
@@ -17825,7 +17845,8 @@ const EditingControl = /*#__PURE__*/React__default.forwardRef(function Control(p
|
|
|
17825
17845
|
return /*#__PURE__*/React__default.createElement(TextareaControl, Object.assign({}, props, {
|
|
17826
17846
|
isCellInDetailMode: isCellInDetailMode,
|
|
17827
17847
|
onKeyDown: handleInputKeyDown,
|
|
17828
|
-
ref: refCallback
|
|
17848
|
+
ref: refCallback,
|
|
17849
|
+
fontSize: tableMeta.fontSize.size
|
|
17829
17850
|
}));
|
|
17830
17851
|
}
|
|
17831
17852
|
return /*#__PURE__*/React__default.createElement(Input, Object.assign({}, attributes, {
|
|
@@ -17936,11 +17957,9 @@ const MemoedEditingCell = /*#__PURE__*/React__default.memo(function MemoedEditin
|
|
|
17936
17957
|
const controlRenderer = (_column$columnDef$met = column.columnDef.meta) === null || _column$columnDef$met === void 0 ? void 0 : _column$columnDef$met.control;
|
|
17937
17958
|
const className = cn('!px-[0.4375rem] py-[calc(var(--table3-row-padding)_-_0.06rem)]', {
|
|
17938
17959
|
relative: (isCurrentRow || isHovered) && controlRenderer === 'textarea',
|
|
17939
|
-
// Need to set higher z-index, so that the current row textarea (in expanded state) overlaps rows below
|
|
17940
|
-
|
|
17941
|
-
|
|
17942
|
-
// as result we need to set lower z-index for the hovered row -> cell.
|
|
17943
|
-
'z-0': isHovered
|
|
17960
|
+
// Need to set higher z-index, so that the current row textarea (in expanded state, when positioned absolute) overlaps rows below,
|
|
17961
|
+
// but at the same time it should not overlap the table headers which has z-10.
|
|
17962
|
+
'z-[9]': isCurrentRow && controlRenderer === 'textarea'
|
|
17944
17963
|
},
|
|
17945
17964
|
// component overrides - grayscale for editing hover
|
|
17946
17965
|
'[[role="row"][data-current="false"]:hover_&>*]:!grayscale [[role="row"][data-current="false"]:hover_&_.bg-white]:!bg-grey-100',
|