trotl-filter 1.0.45 → 1.0.46
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.cjs.js +77 -2
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +77 -2
- package/dist/index.esm.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs.js
CHANGED
|
@@ -9514,6 +9514,7 @@ function DateTimeInput({
|
|
|
9514
9514
|
style = {},
|
|
9515
9515
|
predefinedRanges = ["today", "yesterday"],
|
|
9516
9516
|
startWith = "sunday",
|
|
9517
|
+
presets = [],
|
|
9517
9518
|
...rest
|
|
9518
9519
|
}) {
|
|
9519
9520
|
let translate;
|
|
@@ -9883,6 +9884,56 @@ function DateTimeInput({
|
|
|
9883
9884
|
applySelection(d);
|
|
9884
9885
|
setSelectedPredefined(String(idx));
|
|
9885
9886
|
};
|
|
9887
|
+
const handlePresetClick = preset => {
|
|
9888
|
+
if (!preset || !preset.type) return;
|
|
9889
|
+
const type = String(preset.type).toLowerCase();
|
|
9890
|
+
if (type === 'clear') {
|
|
9891
|
+
handleClear();
|
|
9892
|
+
return;
|
|
9893
|
+
}
|
|
9894
|
+
if (type === 'today') {
|
|
9895
|
+
const d = new Date();
|
|
9896
|
+
if (time && timeStart) {
|
|
9897
|
+
const [h, m] = (timeStart || "00:00").split(":");
|
|
9898
|
+
d.setHours(Number(h), Number(m), 0, 0);
|
|
9899
|
+
} else if (!time) {
|
|
9900
|
+
d.setHours(0, 0, 0, 0);
|
|
9901
|
+
}
|
|
9902
|
+
applySelection(d);
|
|
9903
|
+
return;
|
|
9904
|
+
}
|
|
9905
|
+
|
|
9906
|
+
// base = selected date (if present) or now
|
|
9907
|
+
const base = selectedDate ? new Date(selectedDate) : new Date();
|
|
9908
|
+
const val = Number(preset.value || 0);
|
|
9909
|
+
if (type === 'days') {
|
|
9910
|
+
base.setDate(base.getDate() + val);
|
|
9911
|
+
if (!selectedDate && time && timeStart) {
|
|
9912
|
+
const [h, m] = (timeStart || "00:00").split(":");
|
|
9913
|
+
base.setHours(Number(h), Number(m), 0, 0);
|
|
9914
|
+
}
|
|
9915
|
+
applySelection(base);
|
|
9916
|
+
return;
|
|
9917
|
+
}
|
|
9918
|
+
if (type === 'months') {
|
|
9919
|
+
base.setMonth(base.getMonth() + val);
|
|
9920
|
+
if (!selectedDate && time && timeStart) {
|
|
9921
|
+
const [h, m] = (timeStart || "00:00").split(":");
|
|
9922
|
+
base.setHours(Number(h), Number(m), 0, 0);
|
|
9923
|
+
}
|
|
9924
|
+
applySelection(base);
|
|
9925
|
+
return;
|
|
9926
|
+
}
|
|
9927
|
+
if (type === 'years') {
|
|
9928
|
+
base.setFullYear(base.getFullYear() + val);
|
|
9929
|
+
if (!selectedDate && time && timeStart) {
|
|
9930
|
+
const [h, m] = (timeStart || "00:00").split(":");
|
|
9931
|
+
base.setHours(Number(h), Number(m), 0, 0);
|
|
9932
|
+
}
|
|
9933
|
+
applySelection(base);
|
|
9934
|
+
return;
|
|
9935
|
+
}
|
|
9936
|
+
};
|
|
9886
9937
|
const handleDayClick = day => {
|
|
9887
9938
|
applySelection(day);
|
|
9888
9939
|
};
|
|
@@ -10086,7 +10137,30 @@ function DateTimeInput({
|
|
|
10086
10137
|
background: disabled ? '#f9fafb' : undefined,
|
|
10087
10138
|
color: disabled ? '#9ca3af' : undefined
|
|
10088
10139
|
}
|
|
10089
|
-
})), /*#__PURE__*/React.createElement("div", {
|
|
10140
|
+
})), presets && presets.length > 0 && /*#__PURE__*/React.createElement("div", {
|
|
10141
|
+
style: {
|
|
10142
|
+
display: 'flex',
|
|
10143
|
+
gap: 8,
|
|
10144
|
+
marginTop: 8,
|
|
10145
|
+
marginBottom: 8,
|
|
10146
|
+
flexWrap: 'wrap'
|
|
10147
|
+
}
|
|
10148
|
+
}, presets.map((p, i) => /*#__PURE__*/React.createElement("button", {
|
|
10149
|
+
key: `preset_${i}`,
|
|
10150
|
+
type: "button",
|
|
10151
|
+
onClick: () => !disabled && handlePresetClick(p),
|
|
10152
|
+
disabled: disabled,
|
|
10153
|
+
className: "basic-btn",
|
|
10154
|
+
style: {
|
|
10155
|
+
padding: '6px 10px',
|
|
10156
|
+
fontSize: 12,
|
|
10157
|
+
background: disabled ? '#f9fafb' : '#fff',
|
|
10158
|
+
color: disabled ? '#9ca3af' : '#000',
|
|
10159
|
+
border: '1px solid #d9d9d9',
|
|
10160
|
+
borderRadius: 4,
|
|
10161
|
+
cursor: disabled ? 'not-allowed' : 'pointer'
|
|
10162
|
+
}
|
|
10163
|
+
}, p.label || p.type))), /*#__PURE__*/React.createElement("div", {
|
|
10090
10164
|
style: {
|
|
10091
10165
|
display: 'flex',
|
|
10092
10166
|
justifyContent: 'space-between',
|
|
@@ -10150,7 +10224,8 @@ DateTimeInput.propTypes = {
|
|
|
10150
10224
|
disabled: PropTypes.bool,
|
|
10151
10225
|
className: PropTypes.string,
|
|
10152
10226
|
style: PropTypes.object,
|
|
10153
|
-
predefinedRanges: PropTypes.array
|
|
10227
|
+
predefinedRanges: PropTypes.array,
|
|
10228
|
+
presets: PropTypes.array
|
|
10154
10229
|
};
|
|
10155
10230
|
const buttonStyle = {
|
|
10156
10231
|
padding: '6px 16px',
|