bj-web-components 0.2.17 → 0.2.19

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.
Files changed (87) hide show
  1. package/dist/index.d.ts +23 -2
  2. package/dist/miniapp.d.ts +1 -1
  3. package/dist/mobile.d.ts +1 -1
  4. package/dist/react.d.ts +1 -1
  5. package/dist/shared.d.ts +1 -1
  6. package/dist/style.css +1 -1
  7. package/dist/web/Dropdown/BDropdown.js +1 -1
  8. package/dist/web/Dropdown/BDropdown.mjs +38 -38
  9. package/dist/web/Table/BTable.js +1 -1
  10. package/dist/web/Table/BTable.mjs +447 -419
  11. package/dist/web.d.ts +1138 -2
  12. package/package.json +1 -1
  13. package/dist/miniapp/index.d.ts +0 -0
  14. package/dist/mobile/index.d.ts +0 -0
  15. package/dist/react/index.d.ts +0 -0
  16. package/dist/shared/index.d.ts +0 -0
  17. package/dist/web/BasicInput/BInput.d.ts +0 -3
  18. package/dist/web/BasicInput/index.d.ts +0 -2
  19. package/dist/web/BasicInput/types.d.ts +0 -32
  20. package/dist/web/BasicInput/utils.d.ts +0 -13
  21. package/dist/web/CategoryDropdown/CategoryDropdown.d.ts +0 -2
  22. package/dist/web/CategoryDropdown/index.d.ts +0 -2
  23. package/dist/web/CategoryDropdown/types.d.ts +0 -31
  24. package/dist/web/CheckBox/BCheckBox.d.ts +0 -3
  25. package/dist/web/CheckBox/Group.d.ts +0 -3
  26. package/dist/web/CheckBox/context.d.ts +0 -11
  27. package/dist/web/CheckBox/index.d.ts +0 -9
  28. package/dist/web/CheckBox/types.d.ts +0 -54
  29. package/dist/web/Dropdown/BDropdown.d.ts +0 -2
  30. package/dist/web/Dropdown/index.d.ts +0 -2
  31. package/dist/web/Dropdown/types.d.ts +0 -41
  32. package/dist/web/EmptyInputBox/EmptyInputBox.d.ts +0 -3
  33. package/dist/web/EmptyInputBox/index.d.ts +0 -2
  34. package/dist/web/EmptyInputBox/types.d.ts +0 -28
  35. package/dist/web/FileCard/FileCard.d.ts +0 -2
  36. package/dist/web/FileCard/index.d.ts +0 -2
  37. package/dist/web/FileCard/types.d.ts +0 -20
  38. package/dist/web/Icon/Icon.d.ts +0 -6
  39. package/dist/web/Icon/index.d.ts +0 -2
  40. package/dist/web/Icon/types.d.ts +0 -11
  41. package/dist/web/Input/Input.d.ts +0 -3
  42. package/dist/web/Input/index.d.ts +0 -2
  43. package/dist/web/Input/types.d.ts +0 -55
  44. package/dist/web/InputNumber/BInputNumber.d.ts +0 -3
  45. package/dist/web/InputNumber/StepHandler.d.ts +0 -10
  46. package/dist/web/InputNumber/hooks/useCursor.d.ts +0 -2
  47. package/dist/web/InputNumber/hooks/useFrame.d.ts +0 -2
  48. package/dist/web/InputNumber/index.d.ts +0 -2
  49. package/dist/web/InputNumber/types.d.ts +0 -60
  50. package/dist/web/InputNumber/utils/decimal.d.ts +0 -46
  51. package/dist/web/Modal/Modal.d.ts +0 -2
  52. package/dist/web/Modal/index.d.ts +0 -2
  53. package/dist/web/Modal/types.d.ts +0 -42
  54. package/dist/web/OverlayScrollbar/BOverlayScrollbar.d.ts +0 -2
  55. package/dist/web/OverlayScrollbar/index.d.ts +0 -2
  56. package/dist/web/OverlayScrollbar/types.d.ts +0 -18
  57. package/dist/web/Pagination/Pagination.d.ts +0 -3
  58. package/dist/web/Pagination/index.d.ts +0 -2
  59. package/dist/web/Pagination/types.d.ts +0 -44
  60. package/dist/web/ProductField/ProductField.d.ts +0 -2
  61. package/dist/web/ProductField/index.d.ts +0 -2
  62. package/dist/web/ProductField/types.d.ts +0 -48
  63. package/dist/web/SkuInputCard/SkuInputCard.d.ts +0 -2
  64. package/dist/web/SkuInputCard/index.d.ts +0 -2
  65. package/dist/web/SkuInputCard/types.d.ts +0 -63
  66. package/dist/web/Switch/Switch.d.ts +0 -6
  67. package/dist/web/Switch/index.d.ts +0 -2
  68. package/dist/web/Switch/types.d.ts +0 -29
  69. package/dist/web/Table/BTable.d.ts +0 -10
  70. package/dist/web/Table/Column.d.ts +0 -3
  71. package/dist/web/Table/ColumnGroup.d.ts +0 -3
  72. package/dist/web/Table/index.d.ts +0 -4
  73. package/dist/web/Table/types.d.ts +0 -299
  74. package/dist/web/Table/utils/columns.d.ts +0 -11
  75. package/dist/web/Table/utils/sortFilter.d.ts +0 -7
  76. package/dist/web/Tabs/BTabs.d.ts +0 -8
  77. package/dist/web/Tabs/TabPane.d.ts +0 -7
  78. package/dist/web/Tabs/index.d.ts +0 -3
  79. package/dist/web/Tabs/types.d.ts +0 -32
  80. package/dist/web/Tooltip/ConfirmTooltip.d.ts +0 -2
  81. package/dist/web/Tooltip/ContentTooltip.d.ts +0 -2
  82. package/dist/web/Tooltip/ProgressTooltip.d.ts +0 -2
  83. package/dist/web/Tooltip/TooltipWrapper.d.ts +0 -3
  84. package/dist/web/Tooltip/index.d.ts +0 -6
  85. package/dist/web/Tooltip/types.d.ts +0 -36
  86. package/dist/web/Tooltip/useAutoPlacement.d.ts +0 -7
  87. package/dist/web/index.d.ts +0 -18
@@ -1,44 +0,0 @@
1
- import { CSSProperties, ReactNode } from 'react';
2
- export type PaginationSize = 'small' | 'medium' | 'large';
3
- export type PaginationAlign = 'start' | 'center' | 'end';
4
- export type PopupPlacement = 'bottom' | 'top';
5
- export interface PaginationProps {
6
- /** 国际化方法,默认返回原参数 */
7
- t?: (text: string) => string;
8
- current?: number;
9
- defaultCurrent?: number;
10
- pageSize?: number;
11
- defaultPageSize?: number;
12
- total?: number;
13
- onChange?: (page: number, pageSize: number) => void;
14
- onShowSizeChange?: (current: number, size: number) => void;
15
- showSizeChanger?: boolean;
16
- showQuickJumper?: boolean | {
17
- goButton?: ReactNode;
18
- };
19
- pageSizeOptions?: number[];
20
- disabled?: boolean;
21
- hideOnSinglePage?: boolean;
22
- showTotal?: boolean | ((total: number, range: [number, number]) => ReactNode);
23
- size?: PaginationSize;
24
- align?: PaginationAlign;
25
- simple?: boolean;
26
- /** 下拉弹框弹出位置,最高优先级。默认自动检测:底部空间不足时翻转到顶部 */
27
- popupPlacement?: PopupPlacement;
28
- /**
29
- * 自定义弹出方向判断逻辑,优先于内置的自动检测。
30
- * 返回 'top' / 'bottom' 采用返回值;返回 undefined 则回退到内置的自动检测逻辑。
31
- */
32
- resolvePopupPlacement?: (info: {
33
- /** 触发器(size changer)在视口中的位置 */
34
- triggerRect: DOMRect;
35
- /** 下拉面板预估高度 */
36
- dropdownHeight: number;
37
- /** 当前视口高度 */
38
- viewportHeight: number;
39
- }) => 'top' | 'bottom' | undefined;
40
- /** 追加到 size changer 下拉面板(.pagination-sizer-dropdown)上的自定义 className */
41
- dropdownClassName?: string;
42
- className?: string;
43
- style?: CSSProperties;
44
- }
@@ -1,2 +0,0 @@
1
- import { BuProductFieldProps } from './types';
2
- export default function BuProductField({ options, value, onChange, placeholder, emptyText, onManageField, multiple, showSearch, showSort, addButtonText, onAdd, labels, className, style, getPopupContainer, }: BuProductFieldProps): import("react/jsx-runtime").JSX.Element;
@@ -1,2 +0,0 @@
1
- export { default as BuProductField } from './ProductField';
2
- export type { BuProductFieldProps, ProductFieldOption } from './types';
@@ -1,48 +0,0 @@
1
- import { CSSProperties, ReactNode } from 'react';
2
- export interface ProductFieldOption {
3
- /** 选项唯一标识 */
4
- value: string;
5
- /** 选项显示内容,支持字符串或 React 元素 */
6
- label: ReactNode;
7
- /** 搜索匹配文本,label 为 ReactNode 时必须提供,否则该选项不参与搜索过滤 */
8
- searchText?: string;
9
- }
10
- export interface BuProductFieldProps {
11
- /** 可选项列表 */
12
- options?: ProductFieldOption[];
13
- /** 当前选中值(受控) */
14
- value?: string[];
15
- /** 选中变化回调 */
16
- onChange?: (values: string[]) => void;
17
- /** 触发器占位文字 */
18
- placeholder?: string;
19
- /** 无数据主文案 */
20
- emptyText?: string;
21
- /** 点击"管理字段"的回调 */
22
- onManageField?: () => void;
23
- /** 单选模式(默认多选) */
24
- multiple?: boolean;
25
- /** 是否显示搜索框(默认 true) */
26
- showSearch?: boolean;
27
- /** 是否显示排序按钮(默认 true) */
28
- showSort?: boolean;
29
- /** 底部新增区域内容(字符串或 React 元素),不传则不显示 */
30
- addButtonText?: ReactNode;
31
- /** 点击新增按钮的回调 */
32
- onAdd?: () => void;
33
- /** Override display labels for i18n support */
34
- labels?: {
35
- searchPlaceholder?: string;
36
- sortDefault?: string;
37
- sortAsc?: string;
38
- sortDesc?: string;
39
- noMatchText?: string;
40
- manageFieldPre?: string;
41
- manageFieldLink?: string;
42
- manageFieldPost?: string;
43
- };
44
- className?: string;
45
- style?: CSSProperties;
46
- /** 自定义下拉面板挂载容器,返回目标 DOM 元素。默认挂载到 document.body */
47
- getPopupContainer?: () => HTMLElement;
48
- }
@@ -1,2 +0,0 @@
1
- import { SkuInputCardProps } from './types';
2
- export default function SkuInputCard({ id, name, onNameChange, mode, activeLang, onLangChange, showBody, error, onDelete, onPreviewImage, onDeleteImage, onUpload, onAssociate, images, labels, inputEvents, className, style, options, optionFilterProp, onSelect, onSearch, open: controlledOpen, onDropdownVisibleChange, }: SkuInputCardProps): import("react/jsx-runtime").JSX.Element;
@@ -1,2 +0,0 @@
1
- export { default as SkuInputCard } from './SkuInputCard';
2
- export type { SkuInputCardProps, SkuInputMode, SkuInputLang, SkuInputOption } from './types';
@@ -1,63 +0,0 @@
1
- import { CSSProperties, InputHTMLAttributes, ReactNode } from 'react';
2
- export type SkuInputMode = 'single' | 'bilingual';
3
- export type SkuInputLang = 'zh' | 'en';
4
- export interface SkuInputOption {
5
- value: string;
6
- label: ReactNode;
7
- disabled?: boolean;
8
- }
9
- export interface SkuInputCardProps {
10
- /** Drag handle id, for external DnD libraries */
11
- id?: string;
12
- /** Product name value */
13
- name?: string;
14
- onNameChange?: (value: string) => void;
15
- /** single: no language toggle; bilingual: show 中文/EN toggle */
16
- mode?: SkuInputMode;
17
- /** Active language when mode is bilingual */
18
- activeLang?: SkuInputLang;
19
- onLangChange?: (lang: SkuInputLang) => void;
20
- /** Show/hide the body content area */
21
- showBody?: boolean;
22
- /** Error state — red border + tinted input */
23
- error?: boolean;
24
- onDelete?: () => void;
25
- /** Called when user clicks the preview button on an uploaded image */
26
- onPreviewImage?: (url: string) => void;
27
- /** Called when user clicks the delete button on an uploaded image */
28
- onDeleteImage?: (url: string) => void;
29
- /**
30
- * Parent-provided upload handler. Receives the selected File and should
31
- * return a URL string (or Promise<string>) to display the image.
32
- * If not provided the component manages uploads internally.
33
- */
34
- onUpload?: (file: File) => string | Promise<string>;
35
- /** Called when user clicks "关联图片". Parent is responsible for providing the image URL. */
36
- onAssociate?: () => void;
37
- /** Externally managed image list (URLs). Controls displayed images when provided. */
38
- images?: string[];
39
- /** Override display labels for i18n support */
40
- labels?: {
41
- namePlaceholder?: string;
42
- uploadLocal?: string;
43
- associateImage?: string;
44
- searchPlaceholder?: string;
45
- notFoundContent?: string;
46
- };
47
- /** Input event handlers applied to the name input element */
48
- inputEvents?: Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange' | 'style' | 'className'>;
49
- className?: string;
50
- style?: CSSProperties;
51
- /** Options for the search dropdown. When provided the input shows a dropdown on focus/type. */
52
- options?: SkuInputOption[];
53
- /** Custom filter: receives the option and the current input value; return true to show. */
54
- optionFilterProp?: (option: SkuInputOption, inputValue: string) => boolean;
55
- /** Called when user selects an option from the dropdown. */
56
- onSelect?: (value: string, option: SkuInputOption) => void;
57
- /** Called when input value changes while dropdown is active (for remote search). */
58
- onSearch?: (value: string) => void;
59
- /** Whether the dropdown is visible (controlled mode). */
60
- open?: boolean;
61
- /** Callback when dropdown visibility changes. */
62
- onDropdownVisibleChange?: (visible: boolean) => void;
63
- }
@@ -1,6 +0,0 @@
1
- import { BuSwitchProps } from './types';
2
- declare const BuSwitch: {
3
- ({ checked: controlledChecked, defaultChecked, onChange, disabled, loading, checkedChildren, unCheckedChildren, theme, activeColor, inactiveColor, className, style, }: BuSwitchProps): import("react/jsx-runtime").JSX.Element;
4
- displayName: string;
5
- };
6
- export default BuSwitch;
@@ -1,2 +0,0 @@
1
- export { default as BuSwitch } from './Switch';
2
- export type { BuSwitchProps, BuSwitchTheme } from './types';
@@ -1,29 +0,0 @@
1
- import { CSSProperties, ReactNode } from 'react';
2
- /** 开关颜色主题 */
3
- export type BuSwitchTheme = 'light' | 'dark';
4
- export interface BuSwitchProps {
5
- /** 是否选中(受控) */
6
- checked?: boolean;
7
- /** 初始是否选中(非受控) */
8
- defaultChecked?: boolean;
9
- /** 变化回调 */
10
- onChange?: (checked: boolean) => void;
11
- /** 是否禁用 */
12
- disabled?: boolean;
13
- /** 加载中 */
14
- loading?: boolean;
15
- /** 选中时的内容(显示在开关内部右侧) */
16
- checkedChildren?: ReactNode;
17
- /** 未选中时的内容(显示在开关内部左侧) */
18
- unCheckedChildren?: ReactNode;
19
- /** 颜色主题:light=黑灰系, dark=品牌红系 */
20
- theme?: BuSwitchTheme;
21
- /** 自定义选中颜色,覆盖 theme 默认色 */
22
- activeColor?: string;
23
- /** 自定义未选中颜色,覆盖 theme 默认色 */
24
- inactiveColor?: string;
25
- /** 自定义类名 */
26
- className?: string;
27
- /** 自定义样式 */
28
- style?: CSSProperties;
29
- }
@@ -1,10 +0,0 @@
1
- import { default as Column } from './Column';
2
- import { default as ColumnGroup } from './ColumnGroup';
3
- import { TableProps } from './types';
4
- declare function BTable<RecordType extends object>({ columns, dataSource, rowKey, rowSelection, pagination, loading, bordered, size, showHeader, emptyText, emptyImage, emptyHeight, t, className, style, rowClassName, sortDirections, onChange, children, title, footer, summary, tableLayout, components, onRow, onHeaderRow, id, scroll, locale, }: TableProps<RecordType>): import("react/jsx-runtime").JSX.Element;
5
- declare const CompoundBTable: typeof BTable & {
6
- Column: typeof Column;
7
- ColumnGroup: typeof ColumnGroup;
8
- };
9
- export default CompoundBTable;
10
- export { CompoundBTable as BTable };
@@ -1,3 +0,0 @@
1
- import { ColumnProps } from './types';
2
- declare function Column<RecordType>(_: ColumnProps<RecordType>): null;
3
- export default Column;
@@ -1,3 +0,0 @@
1
- import { ColumnGroupProps } from './types';
2
- declare function ColumnGroup<RecordType>(_: ColumnGroupProps<RecordType>): null;
3
- export default ColumnGroup;
@@ -1,4 +0,0 @@
1
- export { BTable } from './BTable';
2
- export { default as Column } from './Column';
3
- export { default as ColumnGroup } from './ColumnGroup';
4
- export type { Breakpoint, CellType, ColumnFilterItem, ColumnGroupProps, ColumnGroupType, ColumnProps, ColumnsType, ColumnTitleProps, ColumnType, CompareFn, ExpandableConfig, FilterDropdownProps, FilterRequest, FilterSearchType, FilterValue, FixedType, GetRowKey, RenderedCell, SortOrder, SorterResult, TableAlign, TableComponents, TableDataIndex, TableKey, TableLocale, TablePaginationConfig, TableProps, TableRowSelection, TableSelectionType, TableSize, } from './types';
@@ -1,299 +0,0 @@
1
- import { CSSProperties, HTMLAttributes, Key, ReactElement, ReactNode, Ref, TdHTMLAttributes } from 'react';
2
- import { PaginationProps } from '../Pagination';
3
- import { BDropdownProps } from '../Dropdown';
4
- export type TableKey = Exclude<Key, bigint>;
5
- export type TableDataIndex = string | number | readonly (string | number)[];
6
- export type TableSize = 'large' | 'middle' | 'small';
7
- export type TableSelectionType = 'checkbox' | 'radio';
8
- export type TableAlign = 'left' | 'center' | 'right';
9
- export type FixedType = 'left' | 'right' | boolean;
10
- export type TableLayout = 'auto' | 'fixed';
11
- export type SortOrder = 'ascend' | 'descend' | null;
12
- export type TableAction = 'paginate' | 'sort' | 'filter';
13
- export type Breakpoint = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
14
- export type FilterValue = Array<TableKey | boolean>;
15
- export type FilterKey = Array<string | number> | null;
16
- export type RowSelectMethod = 'all' | 'none' | 'invert' | 'single' | 'multiple';
17
- export interface RenderedCell<RecordType> {
18
- children?: ReactNode;
19
- props?: CellType<RecordType>;
20
- }
21
- export interface CellType<RecordType> {
22
- key?: Key;
23
- className?: string;
24
- style?: CSSProperties;
25
- children?: ReactNode;
26
- column?: ColumnsType<RecordType>[number];
27
- colSpan?: number;
28
- rowSpan?: number;
29
- }
30
- export interface ColumnFilterItem {
31
- text: ReactNode;
32
- /** Secondary text forwarded to the built-in BDropdown in double-line mode. */
33
- description?: ReactNode;
34
- value: TableKey | boolean;
35
- children?: ColumnFilterItem[];
36
- }
37
- export interface ColumnTitleProps<RecordType> {
38
- sortOrder?: SortOrder;
39
- sortColumn?: ColumnType<RecordType>;
40
- sortColumns?: Array<{
41
- column: ColumnType<RecordType>;
42
- order: SortOrder;
43
- }>;
44
- filters?: Record<string, FilterValue>;
45
- }
46
- export type ColumnTitle<RecordType> = ReactNode | ((props: ColumnTitleProps<RecordType>) => ReactNode);
47
- export type CompareFn<RecordType> = (first: RecordType, second: RecordType, sortOrder?: SortOrder) => number;
48
- export type FilterSearchType<RecordType = ColumnFilterItem> = boolean | ((input: string, item: RecordType) => boolean);
49
- export type FilterRequest = (input: string) => ColumnFilterItem[] | Promise<ColumnFilterItem[]>;
50
- export interface FilterDropdownProps {
51
- prefixCls: string;
52
- setSelectedKeys: (selectedKeys: TableKey[]) => void;
53
- selectedKeys: TableKey[];
54
- confirm: (options?: {
55
- closeDropdown?: boolean;
56
- }) => void;
57
- clearFilters?: (options?: {
58
- confirm?: boolean;
59
- closeDropdown?: boolean;
60
- }) => void;
61
- filters?: ColumnFilterItem[];
62
- close: () => void;
63
- visible: boolean;
64
- }
65
- export type GetComponentProps<DataType> = (data: DataType, index?: number) => HTMLAttributes<HTMLElement> | TdHTMLAttributes<HTMLTableCellElement>;
66
- export interface ColumnSharedType<RecordType> {
67
- title?: ColumnTitle<RecordType>;
68
- /** Hint badge rendered beside the column title. Accepts text, icons, or custom JSX. */
69
- badge?: ReactNode;
70
- key?: TableKey;
71
- className?: string;
72
- fixed?: FixedType;
73
- width?: number | string;
74
- align?: TableAlign;
75
- ellipsis?: boolean | {
76
- showTitle?: boolean;
77
- };
78
- responsive?: Breakpoint[];
79
- onHeaderCell?: GetComponentProps<ColumnsType<RecordType>[number]>;
80
- }
81
- export interface ColumnType<RecordType> extends ColumnSharedType<RecordType> {
82
- colSpan?: number;
83
- rowSpan?: number;
84
- dataIndex?: TableDataIndex;
85
- render?: (value: unknown, record: RecordType, index: number) => ReactNode | RenderedCell<RecordType>;
86
- shouldCellUpdate?: (record: RecordType, previousRecord: RecordType) => boolean;
87
- onCell?: GetComponentProps<RecordType>;
88
- sorter?: boolean | CompareFn<RecordType> | {
89
- compare?: CompareFn<RecordType>;
90
- multiple?: number;
91
- };
92
- sortOrder?: SortOrder;
93
- defaultSortOrder?: SortOrder;
94
- sortDirections?: SortOrder[];
95
- showSorterTooltip?: boolean | {
96
- title?: ReactNode;
97
- };
98
- filtered?: boolean;
99
- filters?: ColumnFilterItem[];
100
- /** Props forwarded to BDropdown when rendering the built-in filter panel. Table-managed options, value, and callbacks take precedence. */
101
- filterDropdownProps?: Partial<BDropdownProps>;
102
- filterDropdown?: ReactNode | ((props: FilterDropdownProps) => ReactNode);
103
- filterMultiple?: boolean;
104
- filteredValue?: FilterValue | null;
105
- defaultFilteredValue?: FilterValue | null;
106
- filterIcon?: ReactNode | ((filtered: boolean) => ReactNode);
107
- filterMode?: 'menu' | 'tree';
108
- /** Show a search input. Pass a matcher to search custom option fields. */
109
- filterSearch?: FilterSearchType;
110
- /** Load filter options externally after the search input's 300ms debounce. */
111
- filterRequest?: FilterRequest;
112
- onFilter?: (value: TableKey | boolean, record: RecordType) => boolean;
113
- filterDropdownOpen?: boolean;
114
- onFilterDropdownOpenChange?: (open: boolean) => void;
115
- filterResetToDefaultFilteredValue?: boolean;
116
- /** @deprecated Use filterDropdownOpen. */
117
- filterDropdownVisible?: boolean;
118
- /** @deprecated Use onFilterDropdownOpenChange. */
119
- onFilterDropdownVisibleChange?: (visible: boolean) => void;
120
- }
121
- export interface ColumnGroupType<RecordType> extends ColumnSharedType<RecordType> {
122
- colSpan?: number;
123
- children: ColumnsType<RecordType>;
124
- }
125
- export type ColumnsType<RecordType = unknown> = readonly (ColumnGroupType<RecordType> | ColumnType<RecordType>)[];
126
- export type GetRowKey<RecordType> = (record: RecordType, index?: number) => TableKey;
127
- export type RowClassName<RecordType> = (record: RecordType, index: number, indent: number) => string;
128
- export interface ExpandableConfig<RecordType> {
129
- expandedRowKeys?: readonly TableKey[];
130
- defaultExpandedRowKeys?: readonly TableKey[];
131
- expandedRowRender?: (record: RecordType, index: number, indent: number, expanded: boolean) => ReactNode;
132
- columnTitle?: ReactNode;
133
- expandRowByClick?: boolean;
134
- expandIcon?: (props: {
135
- prefixCls: string;
136
- expanded: boolean;
137
- record: RecordType;
138
- expandable: boolean;
139
- onExpand: (record: RecordType, event: React.MouseEvent<HTMLElement>) => void;
140
- }) => ReactNode;
141
- onExpand?: (expanded: boolean, record: RecordType) => void;
142
- onExpandedRowsChange?: (expandedKeys: readonly TableKey[]) => void;
143
- defaultExpandAllRows?: boolean;
144
- indentSize?: number;
145
- expandIconColumnIndex?: number;
146
- showExpandColumn?: boolean;
147
- expandedRowClassName?: RowClassName<RecordType>;
148
- childrenColumnName?: string;
149
- rowExpandable?: (record: RecordType) => boolean;
150
- columnWidth?: number | string;
151
- fixed?: FixedType;
152
- }
153
- export interface TableRowSelection<RecordType> {
154
- preserveSelectedRowKeys?: boolean;
155
- type?: TableSelectionType;
156
- selectedRowKeys?: TableKey[];
157
- defaultSelectedRowKeys?: TableKey[];
158
- getCheckboxProps?: (record: RecordType) => {
159
- disabled?: boolean;
160
- name?: string;
161
- };
162
- columnTitle?: ReactNode;
163
- columnWidth?: number | string;
164
- fixed?: FixedType;
165
- hideSelectAll?: boolean;
166
- checkStrictly?: boolean;
167
- selections?: boolean | Array<{
168
- key: string;
169
- text: ReactNode;
170
- onSelect?: (keys: TableKey[]) => void;
171
- }>;
172
- renderCell?: (checked: boolean, record: RecordType, index: number, originNode: ReactNode) => ReactNode | RenderedCell<RecordType>;
173
- onChange?: (selectedRowKeys: TableKey[], selectedRows: RecordType[], info?: {
174
- type: RowSelectMethod;
175
- }) => void;
176
- onSelect?: (record: RecordType, selected: boolean, selectedRows: RecordType[], nativeEvent?: Event) => void;
177
- onSelectAll?: (selected: boolean, selectedRows: RecordType[], changeRows?: RecordType[]) => void;
178
- onSelectInvert?: (selectedRowKeys: TableKey[]) => void;
179
- onSelectNone?: () => void;
180
- onSelectMultiple?: (selected: boolean, selectedRows: RecordType[], changeRows: RecordType[]) => void;
181
- }
182
- export interface TablePaginationConfig extends PaginationProps {
183
- position?: Array<'topLeft' | 'topCenter' | 'topRight' | 'bottomLeft' | 'bottomCenter' | 'bottomRight' | 'none'>;
184
- /** Render the supplied data as the current server-side page without local slicing. */
185
- serverPagination?: boolean;
186
- }
187
- export interface TableLocale {
188
- filterTitle?: string;
189
- filterConfirm?: ReactNode;
190
- filterReset?: ReactNode;
191
- filterEmptyText?: ReactNode;
192
- filterCheckall?: ReactNode;
193
- filterSearchPlaceholder?: string;
194
- emptyText?: ReactNode | (() => ReactNode);
195
- selectAll?: ReactNode;
196
- selectNone?: ReactNode;
197
- selectInvert?: ReactNode;
198
- selectionAll?: ReactNode;
199
- sortTitle?: string;
200
- expand?: string;
201
- collapse?: string;
202
- triggerDesc?: string;
203
- triggerAsc?: string;
204
- cancelSort?: string;
205
- }
206
- export interface SorterResult<RecordType> {
207
- column?: ColumnType<RecordType>;
208
- order?: SortOrder;
209
- field?: TableKey | readonly TableKey[];
210
- columnKey?: TableKey;
211
- }
212
- export interface TableCurrentDataSource<RecordType> {
213
- currentDataSource: RecordType[];
214
- action: TableAction;
215
- }
216
- export interface TableComponents<RecordType> {
217
- table?: React.ElementType;
218
- header?: {
219
- wrapper?: React.ElementType;
220
- row?: React.ElementType;
221
- cell?: React.ElementType;
222
- };
223
- body?: {
224
- wrapper?: React.ElementType;
225
- row?: React.ElementType;
226
- cell?: React.ElementType;
227
- } | ((data: readonly RecordType[], info: {
228
- scrollbarSize: number;
229
- ref: Ref<{
230
- scrollLeft: number;
231
- }>;
232
- onScroll: (info: {
233
- currentTarget?: HTMLElement;
234
- scrollLeft?: number;
235
- }) => void;
236
- }) => ReactNode);
237
- }
238
- export interface TableProps<RecordType extends object> {
239
- columns?: ColumnsType<RecordType>;
240
- children?: ReactNode;
241
- dataSource?: readonly RecordType[];
242
- rowKey?: keyof RecordType | string | GetRowKey<RecordType>;
243
- rowSelection?: TableRowSelection<RecordType>;
244
- pagination?: false | TablePaginationConfig;
245
- loading?: boolean | {
246
- spinning?: boolean;
247
- tip?: ReactNode;
248
- indicator?: ReactNode;
249
- };
250
- bordered?: boolean;
251
- size?: TableSize;
252
- showHeader?: boolean;
253
- /** Empty-state description. Defaults to `t('暂无数据')`. */
254
- emptyText?: ReactNode | (() => ReactNode);
255
- /** Empty-state image URL or custom image node. */
256
- emptyImage?: string | ReactNode;
257
- /** Empty-state body height. Defaults to 454px. */
258
- emptyHeight?: number | string;
259
- /** Translation function used by built-in Table text. */
260
- t?: (text: string) => string;
261
- className?: string;
262
- style?: CSSProperties;
263
- id?: string;
264
- rowClassName?: string | RowClassName<RecordType>;
265
- tableLayout?: TableLayout;
266
- scroll?: {
267
- x?: number | true | string;
268
- y?: number | string;
269
- scrollToFirstRowOnChange?: boolean;
270
- };
271
- sticky?: boolean | {
272
- offsetHeader?: number;
273
- offsetSummary?: number;
274
- offsetScroll?: number;
275
- getContainer?: () => Window | HTMLElement;
276
- };
277
- direction?: 'ltr' | 'rtl';
278
- title?: (data: readonly RecordType[]) => ReactNode;
279
- footer?: (data: readonly RecordType[]) => ReactNode;
280
- summary?: (data: readonly RecordType[]) => ReactNode;
281
- components?: TableComponents<RecordType>;
282
- onRow?: GetComponentProps<RecordType>;
283
- onHeaderRow?: GetComponentProps<readonly ColumnType<RecordType>[]>;
284
- expandable?: ExpandableConfig<RecordType>;
285
- locale?: TableLocale;
286
- sortDirections?: SortOrder[];
287
- showSorterTooltip?: boolean | {
288
- title?: ReactNode;
289
- };
290
- getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;
291
- onChange?: (pagination: TablePaginationConfig, filters: Record<string, FilterValue | null>, sorter: SorterResult<RecordType> | SorterResult<RecordType>[], extra: TableCurrentDataSource<RecordType>) => void;
292
- ref?: Ref<HTMLDivElement>;
293
- }
294
- export interface ColumnProps<RecordType> extends ColumnType<RecordType> {
295
- children?: null;
296
- }
297
- export interface ColumnGroupProps<RecordType> extends Omit<ColumnGroupType<RecordType>, 'children'> {
298
- children: ReactElement<ColumnProps<RecordType>> | Array<ReactElement<ColumnProps<RecordType>>>;
299
- }
@@ -1,11 +0,0 @@
1
- import { ReactNode } from 'react';
2
- import { ColumnGroupType, ColumnsType, ColumnType } from '../types';
3
- export interface HeaderCell<RecordType> {
4
- column: ColumnGroupType<RecordType> | ColumnType<RecordType>;
5
- colSpan: number;
6
- rowSpan: number;
7
- depth: number;
8
- }
9
- export declare function convertChildrenToColumns<RecordType>(children: ReactNode): ColumnsType<RecordType>;
10
- export declare function flattenColumns<RecordType>(columns: ColumnsType<RecordType>): ColumnType<RecordType>[];
11
- export declare function buildHeaderRows<RecordType>(columns: ColumnsType<RecordType>): HeaderCell<RecordType>[][];
@@ -1,7 +0,0 @@
1
- import { ColumnTitleProps, ColumnType, ColumnsType, FilterValue, SortOrder, SorterResult, TableKey } from '../types';
2
- export declare function getColumnKey<RecordType>(column: ColumnType<RecordType>, index: number): TableKey;
3
- export declare function renderColumnTitle<RecordType>(title: ColumnType<RecordType>['title'], props: ColumnTitleProps<RecordType>): import('react').ReactNode;
4
- export declare function getNextSortOrder(current: SortOrder, directions?: SortOrder[]): SortOrder;
5
- export declare function sortRecords<RecordType>(records: readonly RecordType[], columns: ColumnsType<RecordType>, orders: Map<TableKey, SortOrder>, childrenColumnName?: string): RecordType[];
6
- export declare function filterRecords<RecordType>(records: readonly RecordType[], columns: ColumnsType<RecordType>, filters: Map<TableKey, FilterValue | null>): RecordType[];
7
- export declare function getSorterResult<RecordType>(columns: ColumnsType<RecordType>, orders: Map<TableKey, SortOrder>): SorterResult<RecordType> | SorterResult<RecordType>[];
@@ -1,8 +0,0 @@
1
- import { default as TabPane } from './TabPane';
2
- import { BTabsProps } from './types';
3
- declare function BTabs({ activeKey, children, centered, className, defaultActiveKey, id, items, onChange, onTabClick, style, tabBarGutter, tabBarStyle, tabPosition, type, }: BTabsProps): import("react/jsx-runtime").JSX.Element;
4
- declare namespace BTabs {
5
- var TabPane: typeof import("./TabPane").default;
6
- }
7
- export { TabPane };
8
- export default BTabs;
@@ -1,7 +0,0 @@
1
- import { ReactElement } from 'react';
2
- import { BTabsTabPaneProps } from './types';
3
- declare function TabPane(_: BTabsTabPaneProps): ReactElement | null;
4
- declare namespace TabPane {
5
- var displayName: string;
6
- }
7
- export default TabPane;
@@ -1,3 +0,0 @@
1
- export { default as BTabs } from './BTabs';
2
- export { default as TabPane } from './TabPane';
3
- export type { BTabsItem, BTabsPosition, BTabsProps, BTabsTabPaneProps, BTabsType } from './types';
@@ -1,32 +0,0 @@
1
- import { CSSProperties, Key, ReactNode } from 'react';
2
- export type BTabsType = 'line' | 'card';
3
- export type BTabsPosition = 'top' | 'right' | 'bottom' | 'left';
4
- export interface BTabsItem {
5
- key: string;
6
- label: ReactNode;
7
- children?: ReactNode;
8
- disabled?: boolean;
9
- forceRender?: boolean;
10
- className?: string;
11
- style?: CSSProperties;
12
- }
13
- export interface BTabsTabPaneProps extends Omit<BTabsItem, 'key' | 'label'> {
14
- tab: ReactNode;
15
- tabKey?: Key;
16
- }
17
- export interface BTabsProps {
18
- activeKey?: string;
19
- defaultActiveKey?: string;
20
- items?: BTabsItem[];
21
- children?: ReactNode;
22
- className?: string;
23
- style?: CSSProperties;
24
- id?: string;
25
- tabPosition?: BTabsPosition;
26
- type?: BTabsType;
27
- centered?: boolean;
28
- tabBarGutter?: number;
29
- tabBarStyle?: CSSProperties;
30
- onChange?: (activeKey: string) => void;
31
- onTabClick?: (activeKey: string, event: React.MouseEvent<HTMLButtonElement>) => void;
32
- }
@@ -1,2 +0,0 @@
1
- import { ConfirmTooltipProps } from './types';
2
- export default function ConfirmTooltip({ placement, title, okText, cancelText, onOk, onCancel, className, style, }: ConfirmTooltipProps): import("react/jsx-runtime").JSX.Element;
@@ -1,2 +0,0 @@
1
- import { ContentTooltipProps } from './types';
2
- export default function BTooltip({ placement, content, variant, className, style, getPopupContainer, getAnchorElement, color, fontColor, }: ContentTooltipProps): import("react/jsx-runtime").JSX.Element;
@@ -1,2 +0,0 @@
1
- import { ProgressTooltipProps } from './types';
2
- export default function ProgressTooltip({ placement, title, progress, className, style, }: ProgressTooltipProps): import("react/jsx-runtime").JSX.Element;
@@ -1,3 +0,0 @@
1
- import { TooltipWrapperProps } from './types';
2
- declare const TooltipWrapper: import('react').ForwardRefExoticComponent<TooltipWrapperProps & import('react').RefAttributes<HTMLDivElement>>;
3
- export default TooltipWrapper;
@@ -1,6 +0,0 @@
1
- export { default as ConfirmTooltip } from './ConfirmTooltip';
2
- export { default as ProgressTooltip } from './ProgressTooltip';
3
- export { default as BTooltip } from './ContentTooltip';
4
- export { default as ContentTooltip } from './ContentTooltip';
5
- export { default as TooltipWrapper } from './TooltipWrapper';
6
- export type { TooltipPlacement, TooltipVariant, ConfirmTooltipProps, ProgressTooltipProps, ContentTooltipProps, ContentTooltipProps as BTooltipProps, TooltipWrapperProps, } from './types';