TableToolbar 使用手册
v3.0.1 · @snowui-design-system/components
许可阅读:首次阅读组件文档、源码或 npm 使用流程,先读完整 LICENSE;同任务同版本去重。公开 API 配置与内部实现修改分别按许可处理;全部组件使用统一运行包,源码权益以许可为准。
组件介绍
为 DataTable 提供搜索、排序、筛选和批量操作入口,并展示选择状态,适合数据管理界面。
使用选择
仅用于 DataTable 的搜索、排序、筛选与批量操作,不独立搭配普通 Table。使用默认内置项或公开 as 角色替换;复制、删除实际业务由回调处理。
需要 DataTable 状态;search / sort / filter 控制默认工具,sortOptions 明确排序项。
直接 as="search" / "bulk" / "sort" / "filter" 替换对应区域;onCopy / onDelete 由业务实现。
快速开始
以下示例展示推荐的基本组合。更多场景与组合限制见后文。
API
未重新声明的继承能力请查所属基础组件文档;本表只列本组件源码具名公开属性。
使用边界与详细说明
组合模式
默认内置模式:由 Props 生成 SearchInput、Select、Listbox、MenuItem、Button、CopyButton、Separator 与 Spinner。
显式组合模式:通过
children和as="search|bulk|sort|filter|action"替换直接子项。parts只配置直接内置子组件,不递归配置子组件内部。内置 copy、delete、sort、filter 的 icon-only 触发器由工具栏内部嵌入 Tooltip,提示文案分别复用对应 label Props。
内置清除、复制、删除、排序与筛选均显式使用
Button bare emphasis="muted",保留次级工具操作的 40% → hover 100% 视觉;调用方可通过parts.Button.emphasis统一覆盖。
选择计数与批量操作的内部间距至少4 CSS px。工具栏保持单行;空间不足时复用局部横向滚动,轨道单独预留空间,不覆盖控件命中区域;恢复宽度或清除选择后自动收起轨道。直接角色子项仍直接放在TableToolbar中。
内置复制复用 CopyButton bare,通过 writeText 执行已有 onCopy 回调;成功反馈默认保留 1600ms,期间忽略重复复制。回调应在复制完成后 resolve,失败时 reject,避免错误显示为成功。
排序选择器读取 DataTable 的当前排序,仅在用户选择新选项时写回;表头排序不被工具栏旧值覆盖。
排序选项
未配置 sortOptions 时自动读取可排序表头。配置后,每项生成升序、降序两个选项,名称缺省使用 columnId;字段标识应唯一。普通字段由 DataTable 读取 row[columnId],派生值由 DataTable 的 sorters[columnId] 提供。配置菜单不会创建表格列,也不会改变当前排序;菜单始终保留“默认排序”用于恢复 DataTable 默认顺序。server 模式仍由调用方处理排序请求。
TableToolbar 样式覆盖
先阅读 完整 LICENSE;同任务、同版本、同范围去重。
优先用组件公开 Props 匹配合适样式,尽可能保留原有视觉。确需改写时按 样式选择与改写顺序 使用自己的 class(含项目已有 Tailwind)或实例 style。以下名称来自源码实际消费的公开 override;先核对目标作用域,不修改私有 DOM。采用 SnowUI Token 时选择正确类别,外部应用不被要求安装一方 utilities。
TableToolbar 类型与状态
必填属性:无具名必填属性。
可双向绑定:本组件未声明具名双向绑定属性;状态更新通过公开回调或所属宿主处理。
继承声明:Omit<FrameProps, "children">。继承能力以基类公开文档为准;Omit 中的字段已排除,不能按基类原样使用。
以下为公开属性实际引用的类型声明,来自源码;Svelte Snippet 表示内容片段,ComponentProps 表示对应组件的 Props。
TableToolbarSortOption
来源:components/src/components/TableToolbar.svelte
TableToolbarFilterOption
来源:components/src/components/TableToolbar.svelte
ComponentPartsOf
来源:components/src/logic/component-parts.svelte.ts
ConfigurableComponentPartProps
来源:components/src/logic/component-parts.svelte.ts
ComponentPartControlledKey
来源:components/src/logic/component-parts.svelte.ts