sag_components 2.0.0-beta173 → 2.0.0-beta174
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/index.esm.js +225 -64
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +225 -64
- package/dist/index.js.map +1 -1
- package/dist/types/components/Table/DropMenus/Dropdown.d.ts +31 -0
- package/dist/types/components/Table/DropMenus/Dropdown.styles.d.ts +5 -0
- package/dist/types/components/Table/data.d.ts +7 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -10439,23 +10439,24 @@ const QuarterPopupPicker = ({
|
|
|
10439
10439
|
};
|
|
10440
10440
|
|
|
10441
10441
|
/* eslint-disable import/no-extraneous-dependencies */
|
|
10442
|
-
const QuarterPicker =
|
|
10443
|
-
|
|
10444
|
-
|
|
10445
|
-
|
|
10446
|
-
|
|
10447
|
-
|
|
10448
|
-
|
|
10449
|
-
|
|
10450
|
-
|
|
10451
|
-
|
|
10452
|
-
|
|
10453
|
-
|
|
10454
|
-
|
|
10455
|
-
|
|
10456
|
-
|
|
10457
|
-
|
|
10458
|
-
|
|
10442
|
+
const QuarterPicker = _ref => {
|
|
10443
|
+
let {
|
|
10444
|
+
availableQuarters,
|
|
10445
|
+
// ["Q1-2024"]
|
|
10446
|
+
label,
|
|
10447
|
+
onChange,
|
|
10448
|
+
borderRadius,
|
|
10449
|
+
required,
|
|
10450
|
+
width,
|
|
10451
|
+
height,
|
|
10452
|
+
placeholder,
|
|
10453
|
+
disabled,
|
|
10454
|
+
borderColor,
|
|
10455
|
+
borderColorFocus,
|
|
10456
|
+
textColor,
|
|
10457
|
+
selectedValue,
|
|
10458
|
+
startYear
|
|
10459
|
+
} = _ref;
|
|
10459
10460
|
const [isFocused, setIsFocused] = React$1.useState(false);
|
|
10460
10461
|
const [isOpen, setIsOpen] = React$1.useState(false);
|
|
10461
10462
|
const [value, setValue] = React$1.useState('');
|
|
@@ -10897,22 +10898,23 @@ const MonthPopupPicker = ({
|
|
|
10897
10898
|
};
|
|
10898
10899
|
|
|
10899
10900
|
/* eslint-disable import/no-extraneous-dependencies */
|
|
10900
|
-
const MonthPicker =
|
|
10901
|
-
|
|
10902
|
-
|
|
10903
|
-
|
|
10904
|
-
|
|
10905
|
-
|
|
10906
|
-
|
|
10907
|
-
|
|
10908
|
-
|
|
10909
|
-
|
|
10910
|
-
|
|
10911
|
-
|
|
10912
|
-
|
|
10913
|
-
|
|
10914
|
-
|
|
10915
|
-
|
|
10901
|
+
const MonthPicker = _ref => {
|
|
10902
|
+
let {
|
|
10903
|
+
availableMonths,
|
|
10904
|
+
label,
|
|
10905
|
+
onChange,
|
|
10906
|
+
borderRadius,
|
|
10907
|
+
required,
|
|
10908
|
+
width,
|
|
10909
|
+
height,
|
|
10910
|
+
placeholder,
|
|
10911
|
+
disabled,
|
|
10912
|
+
borderColor,
|
|
10913
|
+
borderColorFocus,
|
|
10914
|
+
textColor,
|
|
10915
|
+
selectedValue,
|
|
10916
|
+
startYear
|
|
10917
|
+
} = _ref;
|
|
10916
10918
|
const [isFocused, setIsFocused] = React$1.useState(false);
|
|
10917
10919
|
const [isOpen, setIsOpen] = React$1.useState(false);
|
|
10918
10920
|
const [value, setValue] = React$1.useState('');
|
|
@@ -38741,13 +38743,13 @@ const ExpandedContent = styled__default["default"].div`
|
|
|
38741
38743
|
`;
|
|
38742
38744
|
|
|
38743
38745
|
// DROPDOWN STYLES
|
|
38744
|
-
|
|
38746
|
+
styled__default["default"].div`
|
|
38745
38747
|
position: relative;
|
|
38746
38748
|
display: inline-block;
|
|
38747
38749
|
width: 100%;
|
|
38748
38750
|
font-family: "Poppins", sans-serif;
|
|
38749
38751
|
`;
|
|
38750
|
-
|
|
38752
|
+
styled__default["default"].button`
|
|
38751
38753
|
display: flex;
|
|
38752
38754
|
align-items: center;
|
|
38753
38755
|
justify-content: space-between;
|
|
@@ -38780,7 +38782,7 @@ const DropdownButton$1 = styled__default["default"].button`
|
|
|
38780
38782
|
flex: 1;
|
|
38781
38783
|
}
|
|
38782
38784
|
`;
|
|
38783
|
-
|
|
38785
|
+
styled__default["default"].div`
|
|
38784
38786
|
display: flex;
|
|
38785
38787
|
align-items: center;
|
|
38786
38788
|
justify-content: center;
|
|
@@ -38795,7 +38797,7 @@ const DropdownIcon = styled__default["default"].div`
|
|
|
38795
38797
|
transform: rotate(180deg);
|
|
38796
38798
|
`}
|
|
38797
38799
|
`;
|
|
38798
|
-
|
|
38800
|
+
styled__default["default"].div`
|
|
38799
38801
|
position: absolute;
|
|
38800
38802
|
top: calc(100%);
|
|
38801
38803
|
left: 0;
|
|
@@ -38828,7 +38830,7 @@ const DropdownMenu = styled__default["default"].div`
|
|
|
38828
38830
|
background: #94a3b8;
|
|
38829
38831
|
}
|
|
38830
38832
|
`;
|
|
38831
|
-
|
|
38833
|
+
styled__default["default"].div`
|
|
38832
38834
|
display: flex;
|
|
38833
38835
|
align-items: center;
|
|
38834
38836
|
justify-content: space-between;
|
|
@@ -39076,6 +39078,177 @@ const DisabledTrashIcon = ({
|
|
|
39076
39078
|
}));
|
|
39077
39079
|
};
|
|
39078
39080
|
|
|
39081
|
+
// DROPDOWN STYLES
|
|
39082
|
+
const DropdownContainer$1 = styled__default["default"].div`
|
|
39083
|
+
position: relative;
|
|
39084
|
+
display: inline-block;
|
|
39085
|
+
width: 100%;
|
|
39086
|
+
font-family: "Poppins", sans-serif;
|
|
39087
|
+
`;
|
|
39088
|
+
const DropdownButton$1 = styled__default["default"].button`
|
|
39089
|
+
display: flex;
|
|
39090
|
+
align-items: center;
|
|
39091
|
+
justify-content: space-between;
|
|
39092
|
+
width: 100%;
|
|
39093
|
+
min-width: 120px;
|
|
39094
|
+
background-color: ${props => props.$isRowFocused || props.$isRowHovered ? props.$selectedColor : "white"};
|
|
39095
|
+
border: none;
|
|
39096
|
+
border-radius: 0;
|
|
39097
|
+
font-family: "Poppins", sans-serif;
|
|
39098
|
+
font-size: 14px;
|
|
39099
|
+
font-weight: 400;
|
|
39100
|
+
color: #212121;
|
|
39101
|
+
cursor: pointer;
|
|
39102
|
+
transition: all 0.2s ease;
|
|
39103
|
+
|
|
39104
|
+
&:hover {
|
|
39105
|
+
background-color: #D1E7E7;
|
|
39106
|
+
}
|
|
39107
|
+
|
|
39108
|
+
&:focus {
|
|
39109
|
+
outline: none;
|
|
39110
|
+
background-color: #E6F0F0;
|
|
39111
|
+
}
|
|
39112
|
+
|
|
39113
|
+
span {
|
|
39114
|
+
overflow: hidden;
|
|
39115
|
+
text-overflow: ellipsis;
|
|
39116
|
+
white-space: nowrap;
|
|
39117
|
+
text-align: left;
|
|
39118
|
+
flex: 1;
|
|
39119
|
+
}
|
|
39120
|
+
`;
|
|
39121
|
+
const DropdownIcon = styled__default["default"].div`
|
|
39122
|
+
display: flex;
|
|
39123
|
+
align-items: center;
|
|
39124
|
+
justify-content: center;
|
|
39125
|
+
width: 20px;
|
|
39126
|
+
height: 20px;
|
|
39127
|
+
background-color: ${props => props.$isRowFocused || props.$isRowHovered ? '#B4D1D2' : 'white'};
|
|
39128
|
+
border-radius: 4px;
|
|
39129
|
+
margin-left: 8px;
|
|
39130
|
+
transition: all 0.2s ease;
|
|
39131
|
+
|
|
39132
|
+
${props => props.$isOpen && `
|
|
39133
|
+
transform: rotate(180deg);
|
|
39134
|
+
`}
|
|
39135
|
+
`;
|
|
39136
|
+
const DropdownMenu = styled__default["default"].div`
|
|
39137
|
+
position: absolute;
|
|
39138
|
+
top: calc(100%);
|
|
39139
|
+
left: 0;
|
|
39140
|
+
right: 0;
|
|
39141
|
+
z-index: 1000;
|
|
39142
|
+
background-color: white;
|
|
39143
|
+
border: none;
|
|
39144
|
+
border-radius: 0;
|
|
39145
|
+
box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
|
|
39146
|
+
font-family: "Poppins", sans-serif;
|
|
39147
|
+
max-height: ${props => props.$maxDropdownHeight || '200px'};
|
|
39148
|
+
overflow-y: auto;
|
|
39149
|
+
padding: 16px;
|
|
39150
|
+
|
|
39151
|
+
/* Custom scrollbar */
|
|
39152
|
+
&::-webkit-scrollbar {
|
|
39153
|
+
width: 4px;
|
|
39154
|
+
}
|
|
39155
|
+
|
|
39156
|
+
&::-webkit-scrollbar-track {
|
|
39157
|
+
background: transparent;
|
|
39158
|
+
}
|
|
39159
|
+
|
|
39160
|
+
&::-webkit-scrollbar-thumb {
|
|
39161
|
+
background: #cbd5e1;
|
|
39162
|
+
border-radius: 2px;
|
|
39163
|
+
}
|
|
39164
|
+
|
|
39165
|
+
&::-webkit-scrollbar-thumb:hover {
|
|
39166
|
+
background: #94a3b8;
|
|
39167
|
+
}
|
|
39168
|
+
`;
|
|
39169
|
+
const DropdownOption = styled__default["default"].div`
|
|
39170
|
+
display: flex;
|
|
39171
|
+
align-items: center;
|
|
39172
|
+
justify-content: space-between;
|
|
39173
|
+
padding: 8px;
|
|
39174
|
+
font-size: 14px;
|
|
39175
|
+
font-weight: 400;
|
|
39176
|
+
color: #374151;
|
|
39177
|
+
cursor: pointer;
|
|
39178
|
+
transition: all 0.15s ease;
|
|
39179
|
+
border-radius: 0;
|
|
39180
|
+
border-left: 3px solid transparent;
|
|
39181
|
+
background-color: white;
|
|
39182
|
+
|
|
39183
|
+
&:hover {
|
|
39184
|
+
background-color: #E6F0F0;
|
|
39185
|
+
}
|
|
39186
|
+
|
|
39187
|
+
${props => props.$isSelected && `
|
|
39188
|
+
background-color: #B4D1D2;
|
|
39189
|
+
color: #374151;
|
|
39190
|
+
font-weight: 500;
|
|
39191
|
+
border-left: 3px solid #066768;
|
|
39192
|
+
|
|
39193
|
+
&:hover {
|
|
39194
|
+
background-color: #A3C9CA;
|
|
39195
|
+
}
|
|
39196
|
+
`}
|
|
39197
|
+
`;
|
|
39198
|
+
|
|
39199
|
+
const Dropdown = ({
|
|
39200
|
+
isOpen,
|
|
39201
|
+
options,
|
|
39202
|
+
selectedValue,
|
|
39203
|
+
displayText,
|
|
39204
|
+
onToggle,
|
|
39205
|
+
onOptionSelect,
|
|
39206
|
+
maxDropdownHeight,
|
|
39207
|
+
isRowFocused = false,
|
|
39208
|
+
isRowHovered = false,
|
|
39209
|
+
selectedColor
|
|
39210
|
+
}) => {
|
|
39211
|
+
return /*#__PURE__*/React__default["default"].createElement(DropdownContainer$1, null, /*#__PURE__*/React__default["default"].createElement(DropdownButton$1, {
|
|
39212
|
+
onClick: onToggle,
|
|
39213
|
+
$isOpen: isOpen,
|
|
39214
|
+
$isRowFocused: isRowFocused,
|
|
39215
|
+
$selectedColor: selectedColor
|
|
39216
|
+
}, /*#__PURE__*/React__default["default"].createElement("span", null, displayText), /*#__PURE__*/React__default["default"].createElement(DropdownIcon, {
|
|
39217
|
+
$isOpen: isOpen,
|
|
39218
|
+
$isRowFocused: isRowFocused,
|
|
39219
|
+
$isRowHovered: isRowHovered
|
|
39220
|
+
}, /*#__PURE__*/React__default["default"].createElement(MenuItemOpenIcon, {
|
|
39221
|
+
width: "10",
|
|
39222
|
+
height: "6",
|
|
39223
|
+
color: "#212121"
|
|
39224
|
+
}))), isOpen && /*#__PURE__*/React__default["default"].createElement(DropdownMenu, {
|
|
39225
|
+
$maxDropdownHeight: maxDropdownHeight
|
|
39226
|
+
}, options.map((option, index) => /*#__PURE__*/React__default["default"].createElement(DropdownOption, {
|
|
39227
|
+
key: index,
|
|
39228
|
+
onClick: e => onOptionSelect(option, e),
|
|
39229
|
+
$isSelected: option.value === selectedValue
|
|
39230
|
+
}, /*#__PURE__*/React__default["default"].createElement("span", null, option.label), option.value === selectedValue && /*#__PURE__*/React__default["default"].createElement(OkIcon, {
|
|
39231
|
+
width: "24",
|
|
39232
|
+
height: "24",
|
|
39233
|
+
color: "#066768"
|
|
39234
|
+
})))));
|
|
39235
|
+
};
|
|
39236
|
+
Dropdown.propTypes = {
|
|
39237
|
+
isOpen: PropTypes.bool.isRequired,
|
|
39238
|
+
options: PropTypes.arrayOf(PropTypes.shape({
|
|
39239
|
+
value: PropTypes.string.isRequired,
|
|
39240
|
+
label: PropTypes.string.isRequired
|
|
39241
|
+
})).isRequired,
|
|
39242
|
+
selectedValue: PropTypes.string,
|
|
39243
|
+
displayText: PropTypes.string.isRequired,
|
|
39244
|
+
onToggle: PropTypes.func.isRequired,
|
|
39245
|
+
onOptionSelect: PropTypes.func.isRequired,
|
|
39246
|
+
maxDropdownHeight: PropTypes.string,
|
|
39247
|
+
isRowFocused: PropTypes.bool,
|
|
39248
|
+
isRowHovered: PropTypes.bool,
|
|
39249
|
+
selectedColor: PropTypes.string
|
|
39250
|
+
};
|
|
39251
|
+
|
|
39079
39252
|
// TableBody.jsx
|
|
39080
39253
|
const TableBody = ({
|
|
39081
39254
|
columns,
|
|
@@ -39465,30 +39638,18 @@ const TableBody = ({
|
|
|
39465
39638
|
// Find the current selected option to display its label
|
|
39466
39639
|
const currentOption = dropdownOptions.find(option => option.value === value);
|
|
39467
39640
|
const displayText = currentOption ? currentOption.label : value || 'Select...';
|
|
39468
|
-
return /*#__PURE__*/React__default["default"].createElement(
|
|
39469
|
-
|
|
39470
|
-
|
|
39471
|
-
|
|
39472
|
-
|
|
39473
|
-
|
|
39474
|
-
|
|
39475
|
-
|
|
39476
|
-
|
|
39477
|
-
|
|
39478
|
-
|
|
39479
|
-
|
|
39480
|
-
color: "#212121"
|
|
39481
|
-
}))), isOpen && /*#__PURE__*/React__default["default"].createElement(DropdownMenu, {
|
|
39482
|
-
$maxDropdownHeight: maxDropdownHeight
|
|
39483
|
-
}, dropdownOptions.map((option, index) => /*#__PURE__*/React__default["default"].createElement(DropdownOption, {
|
|
39484
|
-
key: index,
|
|
39485
|
-
onClick: e => handleDropdownOptionClick(row, rowIndex, column.key, option, e),
|
|
39486
|
-
$isSelected: option.value === value
|
|
39487
|
-
}, /*#__PURE__*/React__default["default"].createElement("span", null, option.label), option.value === value && /*#__PURE__*/React__default["default"].createElement(OkIcon, {
|
|
39488
|
-
width: "24",
|
|
39489
|
-
height: "24",
|
|
39490
|
-
color: "#066768"
|
|
39491
|
-
})))));
|
|
39641
|
+
return /*#__PURE__*/React__default["default"].createElement(Dropdown, {
|
|
39642
|
+
isOpen: isOpen,
|
|
39643
|
+
options: dropdownOptions,
|
|
39644
|
+
selectedValue: value,
|
|
39645
|
+
displayText: displayText,
|
|
39646
|
+
onToggle: e => handleDropdownClick(rowIndex, column.key, e),
|
|
39647
|
+
onOptionSelect: (option, e) => handleDropdownOptionClick(row, rowIndex, column.key, option, e),
|
|
39648
|
+
maxDropdownHeight: maxDropdownHeight,
|
|
39649
|
+
isRowFocused: focusedRowIndex === rowIndex,
|
|
39650
|
+
isRowHovered: hoveredRowIndex === rowIndex,
|
|
39651
|
+
selectedColor: selectedColor
|
|
39652
|
+
});
|
|
39492
39653
|
default:
|
|
39493
39654
|
// Treat default as text
|
|
39494
39655
|
return value.toString();
|
|
@@ -39529,9 +39690,9 @@ const TableBody = ({
|
|
|
39529
39690
|
[dropdownKey]: false
|
|
39530
39691
|
}));
|
|
39531
39692
|
|
|
39532
|
-
// Fire the onDropdownSelected event
|
|
39693
|
+
// Fire the onDropdownSelected event with columnKey instead of columnName
|
|
39533
39694
|
if (onDropdownSelected) {
|
|
39534
|
-
onDropdownSelected(row, selectedOption);
|
|
39695
|
+
onDropdownSelected(row, selectedOption, columnKey);
|
|
39535
39696
|
}
|
|
39536
39697
|
};
|
|
39537
39698
|
|