@bsol-oss/react-datatable5 13.0.1-beta.32 → 13.0.1-beta.33

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.d.ts CHANGED
@@ -10,6 +10,7 @@ import { RankingInfo } from '@tanstack/match-sorter-utils';
10
10
  import { JSONSchema7 } from 'json-schema';
11
11
  import * as react_hook_form from 'react-hook-form';
12
12
  import { UseFormReturn, FieldValues, SubmitHandler } from 'react-hook-form';
13
+ import dayjs from 'dayjs';
13
14
 
14
15
  interface TableHeaderTexts {
15
16
  pinColumn?: string;
@@ -951,6 +952,231 @@ interface RangeDatePickerProps {
951
952
  render?: (calendarData: CalendarRenderProps) => React__default.ReactNode;
952
953
  }
953
954
 
955
+ type TimeInput = Date | string | number;
956
+ interface ViewableTimeRange {
957
+ start: TimeInput;
958
+ end: TimeInput;
959
+ }
960
+ interface TimeRangeZoomLabels {
961
+ zoomIn?: string;
962
+ zoomOut?: string;
963
+ reset?: string;
964
+ visibleRange?: string;
965
+ duration?: string;
966
+ daysShort?: string;
967
+ hoursShort?: string;
968
+ minutesShort?: string;
969
+ secondsShort?: string;
970
+ invalidRange?: string;
971
+ dateTimeFormat?: string;
972
+ }
973
+ interface TimeRangeZoomProps {
974
+ range: ViewableTimeRange;
975
+ onRangeChange: (range: {
976
+ start: Date;
977
+ end: Date;
978
+ }) => void;
979
+ minDurationMs?: number;
980
+ maxDurationMs?: number;
981
+ zoomFactor?: number;
982
+ resetDurationMs?: number;
983
+ showResetButton?: boolean;
984
+ disabled?: boolean;
985
+ labels?: TimeRangeZoomLabels;
986
+ }
987
+ interface TimeViewportBlockProps {
988
+ start: TimeInput;
989
+ end: TimeInput;
990
+ viewportStart?: TimeInput;
991
+ viewportEnd?: TimeInput;
992
+ height?: string | number;
993
+ minWidthPx?: number;
994
+ borderRadius?: string | number;
995
+ colorPalette?: string;
996
+ background?: string;
997
+ label?: string;
998
+ showLabel?: boolean;
999
+ hideWhenOutOfView?: boolean;
1000
+ onClick?: () => void;
1001
+ }
1002
+ interface TimeViewportBlockItem {
1003
+ id: string;
1004
+ start?: TimeInput;
1005
+ end?: TimeInput;
1006
+ label?: string;
1007
+ colorPalette?: string;
1008
+ background?: string;
1009
+ track?: string | number;
1010
+ children?: TimeViewportBlockItem[];
1011
+ onClick?: (block: TimeViewportBlockItem) => void;
1012
+ }
1013
+ interface TimeViewportMarkerLineProps {
1014
+ timestamp: TimeInput;
1015
+ viewportStart?: TimeInput;
1016
+ viewportEnd?: TimeInput;
1017
+ height?: string | number;
1018
+ colorPalette?: string;
1019
+ color?: string;
1020
+ lineWidthPx?: number;
1021
+ label?: string;
1022
+ showLabel?: boolean;
1023
+ hideWhenOutOfView?: boolean;
1024
+ }
1025
+ interface TimeViewportHeaderProps {
1026
+ viewportStart?: TimeInput;
1027
+ viewportEnd?: TimeInput;
1028
+ tickCount?: number;
1029
+ tickStrategy?: 'count' | 'timeUnit';
1030
+ tickUnit?: 'minute' | 'hour' | 'day';
1031
+ tickStep?: number;
1032
+ format?: string;
1033
+ height?: string | number;
1034
+ color?: string;
1035
+ borderColor?: string;
1036
+ showBottomBorder?: boolean;
1037
+ animationDurationMs?: number;
1038
+ animationEasing?: string;
1039
+ }
1040
+ interface TimeViewportHeaderTick {
1041
+ index: number;
1042
+ percent: number;
1043
+ label: string;
1044
+ }
1045
+ interface UseTimeViewportTicksResult {
1046
+ isValidViewport: boolean;
1047
+ getTicksByCount: (tickCount?: number) => TimeViewportHeaderTick[];
1048
+ getTicksByTimeUnit: (tickUnit?: TimeViewportHeaderProps['tickUnit'], tickStep?: number) => TimeViewportHeaderTick[];
1049
+ getTicks: (options?: {
1050
+ tickStrategy?: TimeViewportHeaderProps['tickStrategy'];
1051
+ tickCount?: number;
1052
+ tickUnit?: TimeViewportHeaderProps['tickUnit'];
1053
+ tickStep?: number;
1054
+ }) => TimeViewportHeaderTick[];
1055
+ }
1056
+ interface TimeViewportGridProps {
1057
+ viewportStart?: TimeInput;
1058
+ viewportEnd?: TimeInput;
1059
+ tickCount?: number;
1060
+ minorDivisions?: number;
1061
+ majorLineColor?: string;
1062
+ minorLineColor?: string;
1063
+ showMinorLines?: boolean;
1064
+ zIndex?: number;
1065
+ animationDurationMs?: number;
1066
+ animationEasing?: string;
1067
+ }
1068
+ interface TimeViewportBlocksProps {
1069
+ blocks: TimeViewportBlockItem[];
1070
+ viewportStart?: TimeInput;
1071
+ viewportEnd?: TimeInput;
1072
+ height?: string | number;
1073
+ minWidthPx?: number;
1074
+ borderRadius?: string | number;
1075
+ defaultColorPalette?: string;
1076
+ showLabel?: boolean;
1077
+ hideWhenOutOfView?: boolean;
1078
+ hideEmptyTracks?: boolean;
1079
+ gap?: number;
1080
+ allowOverlap?: boolean;
1081
+ overlapOpacity?: number;
1082
+ renderTrackPrefix?: (args: {
1083
+ trackIndex: number;
1084
+ trackBlocks: TimeViewportBlockItem[];
1085
+ trackKey?: string | number;
1086
+ }) => ReactNode;
1087
+ renderTrackSuffix?: (args: {
1088
+ trackIndex: number;
1089
+ trackBlocks: TimeViewportBlockItem[];
1090
+ trackKey?: string | number;
1091
+ }) => ReactNode;
1092
+ onBlockClick?: (block: TimeViewportBlockItem) => void;
1093
+ }
1094
+ interface TimeViewportRootProps {
1095
+ viewportStart: TimeInput;
1096
+ viewportEnd: TimeInput;
1097
+ children: ReactNode;
1098
+ onViewportChange?: (range: {
1099
+ start: Date;
1100
+ end: Date;
1101
+ }) => void;
1102
+ enableDragPan?: boolean;
1103
+ enableCtrlWheelZoom?: boolean;
1104
+ wheelZoomFactor?: number;
1105
+ minDurationMs?: number;
1106
+ maxDurationMs?: number;
1107
+ }
1108
+ declare function TimeViewportRoot({ viewportStart, viewportEnd, children, onViewportChange, enableDragPan, enableCtrlWheelZoom, wheelZoomFactor, minDurationMs, maxDurationMs, }: TimeViewportRootProps): react_jsx_runtime.JSX.Element;
1109
+ interface UseTimeRangeZoomResult {
1110
+ labels: Required<TimeRangeZoomLabels>;
1111
+ start: dayjs.Dayjs;
1112
+ end: dayjs.Dayjs;
1113
+ durationMs: number;
1114
+ canZoomIn: boolean;
1115
+ canZoomOut: boolean;
1116
+ hasValidDisplayRange: boolean;
1117
+ visibleRangeText: string;
1118
+ durationText: string;
1119
+ zoomIn: () => void;
1120
+ zoomOut: () => void;
1121
+ reset: () => void;
1122
+ }
1123
+ interface UseTimeViewportBlockGeometryResult {
1124
+ hasValidViewport: boolean;
1125
+ getGeometry: (start?: TimeInput, end?: TimeInput) => {
1126
+ valid: boolean;
1127
+ leftPercent: number;
1128
+ widthPercent: number;
1129
+ };
1130
+ toTimeMs: (value?: TimeInput) => number | null;
1131
+ }
1132
+ interface UseTimeViewportDerivedResult {
1133
+ isValidViewport: boolean;
1134
+ toTimeMs: (value?: TimeInput) => number | null;
1135
+ getGeometry: (start?: TimeInput, end?: TimeInput) => {
1136
+ valid: boolean;
1137
+ leftPercent: number;
1138
+ widthPercent: number;
1139
+ };
1140
+ getTimestampPercent: (timestamp?: TimeInput) => {
1141
+ valid: boolean;
1142
+ percent: number;
1143
+ inView: boolean;
1144
+ };
1145
+ getTicksByCount: (tickCount?: number) => TimeViewportHeaderTick[];
1146
+ getTicksByTimeUnit: (tickUnit?: TimeViewportHeaderProps['tickUnit'], tickStep?: number) => TimeViewportHeaderTick[];
1147
+ getTicks: (options?: {
1148
+ tickStrategy?: TimeViewportHeaderProps['tickStrategy'];
1149
+ tickCount?: number;
1150
+ tickUnit?: TimeViewportHeaderProps['tickUnit'];
1151
+ tickStep?: number;
1152
+ }) => TimeViewportHeaderTick[];
1153
+ }
1154
+ declare function useTimeViewport(viewportStart?: TimeInput, viewportEnd?: TimeInput, format?: string): UseTimeViewportDerivedResult;
1155
+ declare function useTimeViewportBlockGeometry(viewportStart?: TimeInput, viewportEnd?: TimeInput): UseTimeViewportBlockGeometryResult;
1156
+ declare function useTimeViewportTicks({ viewportStart, viewportEnd, format, }: Pick<TimeViewportHeaderProps, 'viewportStart' | 'viewportEnd' | 'format'>): UseTimeViewportTicksResult;
1157
+ declare const useTimeViewportHeader: typeof useTimeViewportTicks;
1158
+ /**
1159
+ * A resizable timeline block based on block time range and viewport time range.
1160
+ * Width and offset are automatically derived from datetime overlap.
1161
+ */
1162
+ declare function TimeViewportBlock({ start, end, viewportStart, viewportEnd, height, minWidthPx, borderRadius, colorPalette, background, label, showLabel, hideWhenOutOfView, onClick, }: TimeViewportBlockProps): react_jsx_runtime.JSX.Element | null;
1163
+ /**
1164
+ * Vertical marker line for a timestamp in the current viewport.
1165
+ */
1166
+ declare function TimeViewportMarkerLine({ timestamp, viewportStart, viewportEnd, height, colorPalette, color, lineWidthPx, label, showLabel, hideWhenOutOfView, }: TimeViewportMarkerLineProps): react_jsx_runtime.JSX.Element | null;
1167
+ /**
1168
+ * Header labels for timeline viewport time scale.
1169
+ */
1170
+ declare function TimeViewportHeader({ viewportStart, viewportEnd, tickCount, tickStrategy, tickUnit, tickStep, format, height, color, borderColor, showBottomBorder, animationDurationMs, animationEasing, }: TimeViewportHeaderProps): react_jsx_runtime.JSX.Element | null;
1171
+ /**
1172
+ * Vertical grid lines for measuring block positions in the viewport.
1173
+ * Render inside a relative container that also contains blocks.
1174
+ */
1175
+ declare function TimeViewportGrid({ viewportStart, viewportEnd, tickCount, minorDivisions, majorLineColor, minorLineColor, showMinorLines, zIndex, animationDurationMs, animationEasing, }: TimeViewportGridProps): react_jsx_runtime.JSX.Element | null;
1176
+ declare function TimeViewportBlocks({ blocks, viewportStart, viewportEnd, height, minWidthPx, borderRadius, defaultColorPalette, showLabel, hideWhenOutOfView, hideEmptyTracks, gap, allowOverlap, overlapOpacity, renderTrackPrefix, renderTrackSuffix, onBlockClick, }: TimeViewportBlocksProps): react_jsx_runtime.JSX.Element;
1177
+ declare function TimeRangeZoom({ range, onRangeChange, minDurationMs, maxDurationMs, zoomFactor, resetDurationMs, showResetButton, disabled, labels, }: TimeRangeZoomProps): react_jsx_runtime.JSX.Element;
1178
+ declare function useTimeRangeZoom({ range, onRangeChange, minDurationMs, maxDurationMs, zoomFactor, resetDurationMs, disabled, labels, }: TimeRangeZoomProps): UseTimeRangeZoomResult;
1179
+
954
1180
  interface RecordDisplayProps {
955
1181
  object: object | null;
956
1182
  boxProps?: BoxProps;
@@ -1224,4 +1450,4 @@ declare module '@tanstack/react-table' {
1224
1450
  }
1225
1451
  }
1226
1452
 
1227
- export { CalendarDisplay, type CalendarDisplayProps, type CalendarEvent, type CalendarProps, CardHeader, type CardHeaderProps, type CustomJSONSchema7, type CustomJSONSchema7Definition, type CustomQueryFn, type CustomQueryFnParams, type CustomQueryFnResponse, DataDisplay, type DataDisplayProps, type DataResponse, DataTable, type DataTableDefaultState, type DataTableProps, DataTableServer, type DataTableServerProps, DatePickerContext, DatePickerInput, type DatePickerInputProps, type DatePickerLabels, type DatePickerProps, type DateTimePickerLabels, DefaultCardTitle, DefaultForm, type DefaultFormProps, DefaultTable, type DefaultTableProps, DefaultTableServer, type DefaultTableServerProps, DensityToggleButton, type DensityToggleButtonProps, type EditFilterButtonProps, EditSortingButton, type EditSortingButtonProps, type EditViewButtonProps, EmptyState, type EmptyStateProps, type EnumPickerLabels, ErrorAlert, type ErrorAlertProps, type FilePickerLabels, type FilePickerMediaFile, type FilePickerProps, FilterDialog, FormBody, type FormButtonLabels, FormRoot, type FormRootProps, FormTitle, type GetDateColorProps, type GetMultiDatesProps, type GetRangeDatesProps, type GetStyleProps, type GetVariantProps, GlobalFilter, type IdPickerLabels, type LoadInitialValuesParams, type LoadInitialValuesResult, MediaLibraryBrowser, type MediaLibraryBrowserProps, PageSizeControl, type PageSizeControlProps, Pagination, type QueryParams, type RangeCalendarProps, type RangeDatePickerLabels, type RangeDatePickerProps, RecordDisplay, type RecordDisplayProps, ReloadButton, type ReloadButtonProps, ResetFilteringButton, ResetSelectionButton, ResetSortingButton, type Result, RowCountText, SelectAllRowsToggle, type SelectAllRowsToggleProps, Table, TableBody, type TableBodyProps, TableCardContainer, type TableCardContainerProps, TableCards, type TableCardsProps, TableComponent, TableControls, type TableControlsProps, TableDataDisplay, type TableDataDisplayProps, TableFilter, TableFilterTags, type TableFilterTagsProps, TableFooter, type TableFooterProps, TableHeader, type TableHeaderProps, type TableHeaderTexts, TableLoadingComponent, type TableLoadingComponentProps, type TableProps, type TableRendererProps, type TableRowSelectorProps, TableSelector, TableSorter, TableViewer, TextCell, type TextCellProps, type TimePickerLabels, type UseDataTableProps, type UseDataTableReturn, type UseDataTableServerProps, type UseDataTableServerReturn, type UseFormProps, type ValidationErrorType, ViewDialog, defaultRenderDisplay, getMultiDates, getRangeDates, useDataTable, useDataTableContext, useDataTableServer, useForm };
1453
+ export { CalendarDisplay, type CalendarDisplayProps, type CalendarEvent, type CalendarProps, CardHeader, type CardHeaderProps, type CustomJSONSchema7, type CustomJSONSchema7Definition, type CustomQueryFn, type CustomQueryFnParams, type CustomQueryFnResponse, DataDisplay, type DataDisplayProps, type DataResponse, DataTable, type DataTableDefaultState, type DataTableProps, DataTableServer, type DataTableServerProps, DatePickerContext, DatePickerInput, type DatePickerInputProps, type DatePickerLabels, type DatePickerProps, type DateTimePickerLabels, DefaultCardTitle, DefaultForm, type DefaultFormProps, DefaultTable, type DefaultTableProps, DefaultTableServer, type DefaultTableServerProps, DensityToggleButton, type DensityToggleButtonProps, type EditFilterButtonProps, EditSortingButton, type EditSortingButtonProps, type EditViewButtonProps, EmptyState, type EmptyStateProps, type EnumPickerLabels, ErrorAlert, type ErrorAlertProps, type FilePickerLabels, type FilePickerMediaFile, type FilePickerProps, FilterDialog, FormBody, type FormButtonLabels, FormRoot, type FormRootProps, FormTitle, type GetDateColorProps, type GetMultiDatesProps, type GetRangeDatesProps, type GetStyleProps, type GetVariantProps, GlobalFilter, type IdPickerLabels, type LoadInitialValuesParams, type LoadInitialValuesResult, MediaLibraryBrowser, type MediaLibraryBrowserProps, PageSizeControl, type PageSizeControlProps, Pagination, type QueryParams, type RangeCalendarProps, type RangeDatePickerLabels, type RangeDatePickerProps, RecordDisplay, type RecordDisplayProps, ReloadButton, type ReloadButtonProps, ResetFilteringButton, ResetSelectionButton, ResetSortingButton, type Result, RowCountText, SelectAllRowsToggle, type SelectAllRowsToggleProps, Table, TableBody, type TableBodyProps, TableCardContainer, type TableCardContainerProps, TableCards, type TableCardsProps, TableComponent, TableControls, type TableControlsProps, TableDataDisplay, type TableDataDisplayProps, TableFilter, TableFilterTags, type TableFilterTagsProps, TableFooter, type TableFooterProps, TableHeader, type TableHeaderProps, type TableHeaderTexts, TableLoadingComponent, type TableLoadingComponentProps, type TableProps, type TableRendererProps, type TableRowSelectorProps, TableSelector, TableSorter, TableViewer, TextCell, type TextCellProps, type TimePickerLabels, TimeRangeZoom, type TimeRangeZoomLabels, type TimeRangeZoomProps, TimeViewportBlock, type TimeViewportBlockItem, type TimeViewportBlockProps, TimeViewportBlocks, type TimeViewportBlocksProps, TimeViewportGrid, type TimeViewportGridProps, TimeViewportHeader, type TimeViewportHeaderProps, type TimeViewportHeaderTick, TimeViewportMarkerLine, type TimeViewportMarkerLineProps, TimeViewportRoot, type TimeViewportRootProps, type UseDataTableProps, type UseDataTableReturn, type UseDataTableServerProps, type UseDataTableServerReturn, type UseFormProps, type UseTimeRangeZoomResult, type UseTimeViewportBlockGeometryResult, type UseTimeViewportDerivedResult, type UseTimeViewportTicksResult, type ValidationErrorType, ViewDialog, type ViewableTimeRange, defaultRenderDisplay, getMultiDates, getRangeDates, useDataTable, useDataTableContext, useDataTableServer, useForm, useTimeRangeZoom, useTimeViewport, useTimeViewportBlockGeometry, useTimeViewportHeader, useTimeViewportTicks };