schummar-table 0.40.6 → 0.42.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/index.cjs +42 -40
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -2
- package/dist/index.d.ts +4 -2
- package/dist/index.js +42 -40
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -18,11 +18,12 @@ type DatePickerQuickOption = 'today' | 'thisWeek' | 'thisMonth' | 'thisYear' | '
|
|
|
18
18
|
label: ReactNode;
|
|
19
19
|
value: Date | DateRange | (() => Date | DateRange);
|
|
20
20
|
} | ((onChange: (value: Date | DateRange | null) => void) => ReactNode);
|
|
21
|
+
type DatePickerChangeSource = 'input' | 'calendarWeek' | 'calendar' | 'quickOption';
|
|
21
22
|
type DatePickerProps = {
|
|
22
23
|
/** Currently selected day or range of days. */
|
|
23
24
|
value: Date | DateRange | null;
|
|
24
25
|
/** Callback for when the day (range) changes. */
|
|
25
|
-
onChange: (value: Date | DateRange | null) => void;
|
|
26
|
+
onChange: (value: Date | DateRange | null, source: DatePickerChangeSource) => void;
|
|
26
27
|
/** Currently visible date. */
|
|
27
28
|
dateInView?: Date;
|
|
28
29
|
/** Callback for when the currently visible date changes. */
|
|
@@ -39,6 +40,7 @@ type DatePickerProps = {
|
|
|
39
40
|
defaultDateInView?: Date;
|
|
40
41
|
/** Show buttons to quickly select suggested dates or date ranges */
|
|
41
42
|
quickOptions?: DatePickerQuickOption[];
|
|
43
|
+
noReset?: boolean;
|
|
42
44
|
/** Minimum selectable date */
|
|
43
45
|
/** Date ranges that are visually marked as blocked */
|
|
44
46
|
blockedRanges?: DateRange[];
|
|
@@ -216,4 +218,4 @@ declare const termMatch: (text: string, query: string) => boolean;
|
|
|
216
218
|
declare function configureTableTheme(tableTheme: PartialTableTheme): void;
|
|
217
219
|
declare function mergeThemes<T>(...themes: PartialTableTheme<T>[]): PartialTableTheme<T>;
|
|
218
220
|
|
|
219
|
-
export { AutoFocusTextField, ColumnContext, CommonFilterProps, DateFilter, DatePicker, type DatePickerProps, DatePickerProvider, type DatePickerQuickOption, type DateRange, FilterImplementation, Id, PartialTableTheme, RangeFilter, SelectFilter, Table, TableContext, TableProps, TableResetContext, TableSettingsContext, TableSettingsProvider, TextFilter, commonQuickOptions, configureTableTheme, dateClamp, dateIntersect, endOfDay, getCalendarWeek, helpers, lastDays, mergeThemes, startOfDay, termMatch, textMatch, thisMonth, thisWeek, thisYear, today, useColumnContext, useFilter, useTableContext, useTheme };
|
|
221
|
+
export { AutoFocusTextField, ColumnContext, CommonFilterProps, DateFilter, DatePicker, type DatePickerChangeSource, type DatePickerProps, DatePickerProvider, type DatePickerQuickOption, type DateRange, FilterImplementation, Id, PartialTableTheme, RangeFilter, SelectFilter, Table, TableContext, TableProps, TableResetContext, TableSettingsContext, TableSettingsProvider, TextFilter, commonQuickOptions, configureTableTheme, dateClamp, dateIntersect, endOfDay, getCalendarWeek, helpers, lastDays, mergeThemes, startOfDay, termMatch, textMatch, thisMonth, thisWeek, thisYear, today, useColumnContext, useFilter, useTableContext, useTheme };
|
package/dist/index.d.ts
CHANGED
|
@@ -18,11 +18,12 @@ type DatePickerQuickOption = 'today' | 'thisWeek' | 'thisMonth' | 'thisYear' | '
|
|
|
18
18
|
label: ReactNode;
|
|
19
19
|
value: Date | DateRange | (() => Date | DateRange);
|
|
20
20
|
} | ((onChange: (value: Date | DateRange | null) => void) => ReactNode);
|
|
21
|
+
type DatePickerChangeSource = 'input' | 'calendarWeek' | 'calendar' | 'quickOption';
|
|
21
22
|
type DatePickerProps = {
|
|
22
23
|
/** Currently selected day or range of days. */
|
|
23
24
|
value: Date | DateRange | null;
|
|
24
25
|
/** Callback for when the day (range) changes. */
|
|
25
|
-
onChange: (value: Date | DateRange | null) => void;
|
|
26
|
+
onChange: (value: Date | DateRange | null, source: DatePickerChangeSource) => void;
|
|
26
27
|
/** Currently visible date. */
|
|
27
28
|
dateInView?: Date;
|
|
28
29
|
/** Callback for when the currently visible date changes. */
|
|
@@ -39,6 +40,7 @@ type DatePickerProps = {
|
|
|
39
40
|
defaultDateInView?: Date;
|
|
40
41
|
/** Show buttons to quickly select suggested dates or date ranges */
|
|
41
42
|
quickOptions?: DatePickerQuickOption[];
|
|
43
|
+
noReset?: boolean;
|
|
42
44
|
/** Minimum selectable date */
|
|
43
45
|
/** Date ranges that are visually marked as blocked */
|
|
44
46
|
blockedRanges?: DateRange[];
|
|
@@ -216,4 +218,4 @@ declare const termMatch: (text: string, query: string) => boolean;
|
|
|
216
218
|
declare function configureTableTheme(tableTheme: PartialTableTheme): void;
|
|
217
219
|
declare function mergeThemes<T>(...themes: PartialTableTheme<T>[]): PartialTableTheme<T>;
|
|
218
220
|
|
|
219
|
-
export { AutoFocusTextField, ColumnContext, CommonFilterProps, DateFilter, DatePicker, type DatePickerProps, DatePickerProvider, type DatePickerQuickOption, type DateRange, FilterImplementation, Id, PartialTableTheme, RangeFilter, SelectFilter, Table, TableContext, TableProps, TableResetContext, TableSettingsContext, TableSettingsProvider, TextFilter, commonQuickOptions, configureTableTheme, dateClamp, dateIntersect, endOfDay, getCalendarWeek, helpers, lastDays, mergeThemes, startOfDay, termMatch, textMatch, thisMonth, thisWeek, thisYear, today, useColumnContext, useFilter, useTableContext, useTheme };
|
|
221
|
+
export { AutoFocusTextField, ColumnContext, CommonFilterProps, DateFilter, DatePicker, type DatePickerChangeSource, type DatePickerProps, DatePickerProvider, type DatePickerQuickOption, type DateRange, FilterImplementation, Id, PartialTableTheme, RangeFilter, SelectFilter, Table, TableContext, TableProps, TableResetContext, TableSettingsContext, TableSettingsProvider, TextFilter, commonQuickOptions, configureTableTheme, dateClamp, dateIntersect, endOfDay, getCalendarWeek, helpers, lastDays, mergeThemes, startOfDay, termMatch, textMatch, thisMonth, thisWeek, thisYear, today, useColumnContext, useFilter, useTableContext, useTheme };
|
package/dist/index.js
CHANGED
|
@@ -1290,12 +1290,13 @@ function DatePicker(props) {
|
|
|
1290
1290
|
firstDayOfWeek = 1,
|
|
1291
1291
|
defaultDateInView,
|
|
1292
1292
|
quickOptions = ["today", "thisWeek"],
|
|
1293
|
+
noReset,
|
|
1293
1294
|
minDate,
|
|
1294
1295
|
maxDate,
|
|
1295
1296
|
showCalendarWeek,
|
|
1296
1297
|
blockedRanges = []
|
|
1297
1298
|
} = defaults(props, context);
|
|
1298
|
-
function onChange(value2) {
|
|
1299
|
+
function onChange(value2, source) {
|
|
1299
1300
|
if (value2 instanceof Date) {
|
|
1300
1301
|
value2 = dateClamp(value2, minDate, maxDate);
|
|
1301
1302
|
} else if (value2) {
|
|
@@ -1304,7 +1305,7 @@ function DatePicker(props) {
|
|
|
1304
1305
|
max: dateClamp(value2.max, minDate, maxDate)
|
|
1305
1306
|
};
|
|
1306
1307
|
}
|
|
1307
|
-
props.onChange(value2);
|
|
1308
|
+
props.onChange(value2, source);
|
|
1308
1309
|
}
|
|
1309
1310
|
const Button2 = useTheme((t) => t.components.Button);
|
|
1310
1311
|
const IconButton2 = useTheme((t) => t.components.IconButton);
|
|
@@ -1373,37 +1374,38 @@ function DatePicker(props) {
|
|
|
1373
1374
|
}
|
|
1374
1375
|
const min = dirty ? dirty.min : value instanceof Date ? value : value == null ? void 0 : value.min;
|
|
1375
1376
|
const max = dirty ? dirty.max : value instanceof Date ? value : value == null ? void 0 : value.max;
|
|
1376
|
-
const resolvedQuickOptions = [
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1377
|
+
const resolvedQuickOptions = [
|
|
1378
|
+
...quickOptions,
|
|
1379
|
+
...noReset ? [] : [{ label: /* @__PURE__ */ jsx13(Text, { id: "reset" }), value: null }]
|
|
1380
|
+
].map((option, index) => {
|
|
1381
|
+
if (option instanceof Function) {
|
|
1382
|
+
return option((value3) => {
|
|
1383
|
+
setDirty(void 0);
|
|
1384
|
+
onChange(value3, "quickOption");
|
|
1385
|
+
});
|
|
1386
|
+
}
|
|
1387
|
+
const { label, value: value2 } = typeof option === "string" ? commonQuickOptions[option] : option;
|
|
1388
|
+
return /* @__PURE__ */ jsx13(
|
|
1389
|
+
Button2,
|
|
1390
|
+
{
|
|
1391
|
+
variant: "text",
|
|
1392
|
+
type: "button",
|
|
1393
|
+
css: {
|
|
1394
|
+
color: "inherit"
|
|
1395
|
+
},
|
|
1396
|
+
onClick: () => {
|
|
1380
1397
|
setDirty(void 0);
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
Button2,
|
|
1387
|
-
{
|
|
1388
|
-
variant: "text",
|
|
1389
|
-
type: "button",
|
|
1390
|
-
css: {
|
|
1391
|
-
color: "inherit"
|
|
1392
|
-
},
|
|
1393
|
-
onClick: () => {
|
|
1394
|
-
setDirty(void 0);
|
|
1395
|
-
if (value2 instanceof Function) {
|
|
1396
|
-
onChange(value2(props));
|
|
1397
|
-
} else {
|
|
1398
|
-
onChange(value2);
|
|
1399
|
-
}
|
|
1400
|
-
},
|
|
1401
|
-
children: label
|
|
1398
|
+
if (value2 instanceof Function) {
|
|
1399
|
+
onChange(value2(props), "quickOption");
|
|
1400
|
+
} else {
|
|
1401
|
+
onChange(value2, "quickOption");
|
|
1402
|
+
}
|
|
1402
1403
|
},
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1404
|
+
children: label
|
|
1405
|
+
},
|
|
1406
|
+
index
|
|
1407
|
+
);
|
|
1408
|
+
});
|
|
1407
1409
|
const { calendars, getBackProps, getForwardProps, getDateProps } = useDayzed({
|
|
1408
1410
|
onDateSelected: () => void 0,
|
|
1409
1411
|
firstDayOfWeek,
|
|
@@ -1430,9 +1432,9 @@ function DatePicker(props) {
|
|
|
1430
1432
|
setDirty(void 0);
|
|
1431
1433
|
}
|
|
1432
1434
|
}, [rangeSelect]);
|
|
1433
|
-
function set(min2, max2, edit) {
|
|
1435
|
+
function set(source, min2, max2, edit) {
|
|
1434
1436
|
if (!rangeSelect) {
|
|
1435
|
-
onChange(min2 != null ? min2 : null);
|
|
1437
|
+
onChange(min2 != null ? min2 : null, source);
|
|
1436
1438
|
return;
|
|
1437
1439
|
}
|
|
1438
1440
|
if (min2 && max2 && min2 > max2) {
|
|
@@ -1446,7 +1448,7 @@ function DatePicker(props) {
|
|
|
1446
1448
|
}
|
|
1447
1449
|
if (!min2 === !max2) {
|
|
1448
1450
|
setDirty(void 0);
|
|
1449
|
-
onChange(min2 && max2 ? { min: min2, max: endOfDay(max2) } : null);
|
|
1451
|
+
onChange(min2 && max2 ? { min: min2, max: endOfDay(max2) } : null, source);
|
|
1450
1452
|
} else {
|
|
1451
1453
|
setDirty({ min: min2, max: max2 });
|
|
1452
1454
|
}
|
|
@@ -1484,7 +1486,7 @@ function DatePicker(props) {
|
|
|
1484
1486
|
DateInput,
|
|
1485
1487
|
{
|
|
1486
1488
|
value: min != null ? min : null,
|
|
1487
|
-
onChange: (date) => set(date != null ? date : void 0, max, "min"),
|
|
1489
|
+
onChange: (date) => set("input", date != null ? date : void 0, max, "min"),
|
|
1488
1490
|
locale
|
|
1489
1491
|
}
|
|
1490
1492
|
),
|
|
@@ -1494,7 +1496,7 @@ function DatePicker(props) {
|
|
|
1494
1496
|
DateInput,
|
|
1495
1497
|
{
|
|
1496
1498
|
value: max != null ? max : null,
|
|
1497
|
-
onChange: (date) => set(min, date != null ? date : void 0, "max"),
|
|
1499
|
+
onChange: (date) => set("input", min, date != null ? date : void 0, "max"),
|
|
1498
1500
|
locale
|
|
1499
1501
|
}
|
|
1500
1502
|
)
|
|
@@ -1579,7 +1581,7 @@ function DatePicker(props) {
|
|
|
1579
1581
|
}
|
|
1580
1582
|
const min2 = minDate && weekStart.date < minDate ? minDate : weekStart.date;
|
|
1581
1583
|
const max2 = maxDate && weekEnd.date > maxDate ? maxDate : weekEnd.date;
|
|
1582
|
-
set(min2, max2);
|
|
1584
|
+
set("calendarWeek", min2, max2);
|
|
1583
1585
|
},
|
|
1584
1586
|
onPointerOver: () => !weekDisabled && setHovered({ min: weekStart.date, max: weekEnd.date }),
|
|
1585
1587
|
onPointerOut: () => !weekDisabled && setHovered(void 0),
|
|
@@ -1615,10 +1617,10 @@ function DatePicker(props) {
|
|
|
1615
1617
|
}, getDateProps({ dateObj: dateObject })), {
|
|
1616
1618
|
onClick: () => {
|
|
1617
1619
|
if (dirty) {
|
|
1618
|
-
if (min) set(min, date);
|
|
1619
|
-
else set(date, max);
|
|
1620
|
+
if (min) set("calendar", min, date);
|
|
1621
|
+
else set("calendar", date, max);
|
|
1620
1622
|
} else {
|
|
1621
|
-
set(date);
|
|
1623
|
+
set("calendar", date);
|
|
1622
1624
|
}
|
|
1623
1625
|
},
|
|
1624
1626
|
onPointerOver: () => setHovered({ min: date, max: date }),
|