@hi-ui/table 4.0.0-alpha.20 → 4.0.0-alpha.21

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 (38) hide show
  1. package/README.md +155 -6
  2. package/lib/cjs/BaseTable.js +1 -1
  3. package/lib/cjs/BaseTable.js.map +1 -1
  4. package/lib/cjs/TableAdvancedFilter.js +166 -0
  5. package/lib/cjs/TableAdvancedFilter.js.map +1 -0
  6. package/lib/cjs/TableColumnMenu.js +179 -0
  7. package/lib/cjs/TableColumnMenu.js.map +1 -0
  8. package/lib/cjs/TableHeader.js +12 -5
  9. package/lib/cjs/TableHeader.js.map +1 -1
  10. package/lib/cjs/styles/index.scss.js +1 -1
  11. package/lib/cjs/use-table.js +54 -10
  12. package/lib/cjs/use-table.js.map +1 -1
  13. package/lib/cjs/utils/index.js +3 -1
  14. package/lib/cjs/utils/index.js.map +1 -1
  15. package/lib/esm/BaseTable.js +1 -1
  16. package/lib/esm/BaseTable.js.map +1 -1
  17. package/lib/esm/TableAdvancedFilter.js +136 -0
  18. package/lib/esm/TableAdvancedFilter.js.map +1 -0
  19. package/lib/esm/TableColumnMenu.js +152 -0
  20. package/lib/esm/TableColumnMenu.js.map +1 -0
  21. package/lib/esm/TableHeader.js +12 -5
  22. package/lib/esm/TableHeader.js.map +1 -1
  23. package/lib/esm/styles/index.scss.js +1 -1
  24. package/lib/esm/use-table.js +54 -10
  25. package/lib/esm/use-table.js.map +1 -1
  26. package/lib/esm/utils/index.js +3 -1
  27. package/lib/esm/utils/index.js.map +1 -1
  28. package/lib/types/TableAdvancedFilter.d.ts +9 -0
  29. package/lib/types/TableColumnMenu.d.ts +2 -0
  30. package/lib/types/TableHeader.d.ts +1 -0
  31. package/lib/types/context.d.ts +14 -0
  32. package/lib/types/use-table.d.ts +7 -0
  33. package/package.json +15 -13
  34. package/lib/cjs/TableHeaderCellMenu.js +0 -49
  35. package/lib/cjs/TableHeaderCellMenu.js.map +0 -1
  36. package/lib/esm/TableHeaderCellMenu.js +0 -29
  37. package/lib/esm/TableHeaderCellMenu.js.map +0 -1
  38. package/lib/types/TableHeaderCellMenu.d.ts +0 -11
package/README.md CHANGED
@@ -1,11 +1,160 @@
1
- # `@hi-ui/table`
1
+ # Table 表格
2
2
 
3
- > TODO: description
3
+ 可容纳多种数据类型的大型数据容器,并可支持多种数据相关和表格属性设置相关的操作,具有强大的统计功能
4
4
 
5
- ## Usage
5
+ ## 何时使用
6
6
 
7
- ```
8
- const Table = require('@hi-ui/table');
7
+ 当需要管理一定量级的统一结构的数据记录时
8
+
9
+ 当需要对一部分全部数据进行编辑、筛选过滤时
10
+
11
+ ## 特别说明
12
+
13
+ - 按照 React 的规范,所有的数组组件必须绑定 key。Table 组件的 data 属性的每一列也需要指定一个 key 值来表明每一行数据的唯一性。同时基于综合考虑(性能、维护性、功能间的组合性等),当没有 key 传入的时候,组件内部并不会帮您生成 key。当 key 不存在时可能会引起一系列的问题,还请注意。
14
+ - 在进行列冻结时,一定要传入**列宽(width)**!
15
+
16
+ ## Props
17
+
18
+ | 属性名 | 描述 | 类型 | 可选值 | 默认值 |
19
+ | --------------------- | ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------- | ----------------------------------------- | ---------- |
20
+ | data | 表格数据 | object[] | - | - |
21
+ | fieldKey | 指定 data 表格数据中某一属性为 key | string | - | 'key' |
22
+ | columns | 表格列配置信息 | ColumnItem[] | - | - |
23
+ | bordered | 是否显示边框(表头分组模式下,表格自带边框) | boolean | true \| false | false |
24
+ | sticky | 是否支持表头吸顶 | boolean | true \| false | false |
25
+ | stickyTop | 表头吸顶距离视口顶部距离 | number | - | 0 |
26
+ | highlightedColKeys | 高亮列(受控) | string[] | - | [] |
27
+ | expandedRender | 表格展开项 | (record: dataItem, index: number) => ReactNode \| Promise | - | - |
28
+ | rowExpandable | 设置是否允许行展开 | (record: dataItem ) => ReactNode \| Boolean | - | true |
29
+ | onExpand | 表格展开时的回调函数 | (expanded, row: object) => void | - | - |
30
+ | expandRowKeys | 内嵌式表格以及树形表格展开的行 | number[] | - | - |
31
+ | maxHeight | 表格最大高度,当穿过该高度时,展示滚动条且表头固定 | number | - | - |
32
+ | fixedToColumn | 表格列冻结设置,为 string 时仅支持从左侧冻结至某一列 | string \| FixedOption | columns 中对应的 dataKey | null |
33
+ | size | 配置表格尺寸 | string | 'large' \| 'default' \| 'small' \| 'mini' | 'default' |
34
+ | pagination | 表格分页配置项 | Pagination | - | null |
35
+ | errorRowKeys | 错误列(受控) | string[] | - | [] |
36
+ | highlightedRowKeys | 高亮行(受控) | string[] | - | [] |
37
+ | rowSelection | 行可选(受控) | RowSelection | - | null |
38
+ | dataSource | 异步数据源 | (current: number) => DataSource | - | null |
39
+ | showColMenu | 是否支持列操作 | boolean | - | false |
40
+ | striped | 是否展示为斑马纹效果 | boolean | - | false |
41
+ | setting | 是否集成控制面板功能 | boolean | - | false |
42
+ | emptyContent | 数据为空时的展示内容 | string \| () => ReactNode | - | '暂无数据' |
43
+ | resizable | 是否能够动态控制列宽 | boolean | true \| false | false |
44
+ | standard | 标准模式,默认集成 `showColMenu = true, sticky = true, bordered = true, setting = true, striped = true` | boolean | true \| false | false |
45
+ | loading | 加载中状态 | boolean | true \| false | false |
46
+ | scrollWidth | 表格滚动的宽度(当表格总设置宽度(含自适应列)大于表格父级容器宽度时需要设置)**3.7.0 版本以后,该属性不建议使用** | number | - | - |
47
+ | showColHighlight | 表格某一列`hover`时,该列高亮 | boolean | true \| false | false |
48
+ | draggable | 表格行可拖拽 | boolean | true \| false | false |
49
+ | hiddenColKeys | 隐藏列(受控) (v3.9.0 新增) | string[] | - | - |
50
+ | onHiddenColKeysChange | 列隐藏设置时回调 (v3.9.0 新增) | (hiddenColKeys: string[]) => void | - | - |
51
+ | cellRender | 全局控制单元格自定义渲染,优先级低于 column 的 render 方法 | (text: DataItem[ColumnItem[dataKey]]) => ReactNode | - | - |
9
52
 
10
- // TODO: DEMONSTRATE API
53
+ ## Event
54
+
55
+ | 属性名 | 描述 | 类型 | 可选值 | 默认值 |
56
+ | -------------- | ------------------ | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
57
+ | onHeaderRow | 行标题事件处理函数 | (item: ColumnItem[], index: number) => object | - | - |
58
+ | onLoadChildren | 点击异步加载子项 | (row: DataItem) => object[] \| Promise | - | - |
59
+ | onDragStart | 开始拖拽时触发 | (rowData: object) => void | rowData: 当前行的数据 | - |
60
+ | onDrop | 拖拽行放开时触发 | (dragRowData: object, dropRowData: object, data: object, level: Level) => boolean | Promise | dragRowData: 拖拽的行数据 <br/>dropRowData: 目标行数据 <br/>data:当前结构数据 <br/>level:当前级别数据 | - |
61
+ | onDropEnd | 拖拽成功时触发 | (dragRowData: object, dropRowData: object, data: object) => void | dragRowData: 拖拽的行数据 <br/>dropRowData: 目标行数据 <br/> data: 拖拽完成后的结构数据 | - |
62
+
63
+ > 在 onLoadChildren 方法中,返回的数据中会根据 `isLeaf` 字符控制左侧展开按钮的显示状态
64
+
65
+ ### onHeaderRow 使用方法
66
+
67
+ ```js
68
+ // demo 见【行操作-标题事件处理】
69
+
70
+ <Table
71
+ onHeaderRow={(columns, index) => {
72
+ return {
73
+ onClick: (event) => {}, // 点击行
74
+ onDoubleClick: (event) => {},
75
+ onContextMenu: (event) => {},
76
+ onMouseEnter: (event) => {}, // 鼠标移入行
77
+ onMouseLeave: (event) => {},
78
+ };
79
+ }}
80
+ />
11
81
  ```
82
+
83
+ ### Type
84
+
85
+ ### ColumnItem
86
+
87
+ | 参数 | 说明 | 类型 | 可选值 | 默认值 |
88
+ | ----------------------------- | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------- | ---------------------------- | ------ |
89
+ | title | 列标题 | string \| () => ReactNode | - | - |
90
+ | dataKey | 列对应数据项的唯一标识 | string \| number | - | - |
91
+ | align | 列对齐方式 | string | 'left' \| 'right' \|'center' | 'left' |
92
+ | selectFilters | 表头的筛选菜单, 更多配置请参考 [Select 组件](https://infra.mioffice.cn/hiui/zh-CN/components/select) (v3.7.1 新增) | object | - | null |
93
+ | sorter | 列排序函数 (v3.7.1 新增) | () => boolean | - | null |
94
+ | defaultSortOrder | 默认排序顺序 (v3.7.1 新增) | ascend \| descend | - | null |
95
+ | filterIcon | 自定义 filter 图标 (v3.7.1 新增) | ReactNode | - | null |
96
+ | filterDropdown | 自定义筛选菜单,此函数只负责渲染图层,需要自行编写各种交互 (v3.7.1 新增) | (props: {ColumnItem, setFilterDropdownVisible}) => ReactNode | - | null |
97
+ | filterDropdownWidth | 自定义筛选菜单宽度 (v3.7.1 新增) | number | - | 150 |
98
+ | filterDropdownClassName | 自定义筛选菜单 className (v3.7.1 新增) | string | - | - |
99
+ | onFilterDropdownVisibleChange | 自定义筛选下拉选项显示状态改变时的回调方法 (v3.7.1 新增) | (filterDropdownVisible, ColumnItem) => void | true \| false | false |
100
+ | avg | 该列是否支持平均值 | boolean | - | false |
101
+ | total | 该列是否支持合计 | boolean | - | - |
102
+ | width | 该列宽度 | number | - | - |
103
+ | children | 多级表头 | ColumnItem[] | - | - |
104
+ | render | 控制单元格自定义渲染 | (text: DataItem[ColumnItem[dataKey]], row: DataItem, index: number, dataKey: string) => ReactNode | - | - |
105
+
106
+ ### DataSource
107
+
108
+ | 参数 | 说明 | 类型 | 可选值 | 默认值 |
109
+ | ----------------- | ----------------------------------------- | --------------------------------- | -------------------------------------------------- | ------------- |
110
+ | url | 请求的 url | string | - | - |
111
+ | type | 请求方法 | string | get \| post | get |
112
+ | data | post 请求时请求体参数 | object | - | - |
113
+ | params | url 查询参数 | object | - | - |
114
+ | headers | 请求头 | object | - | - |
115
+ | mode | 请求模式 | string | 'same-origin' \| 'cors' \| 'no-cors' \| 'navigate' | 'same-origin' |
116
+ | transformResponse | 成功时的回调,需要返回注入 table 的配置项 | (response: object) => TableConfig | - | - |
117
+
118
+ ### Pagination
119
+
120
+ | 参数 | 说明 | 类型 | 可选值 | 默认值 |
121
+ | ---------------- | ---------------------------------------------------------- | --------------------------------------------------------- | --------------------------------- | --------- |
122
+ | type | 分页的类型 | string | 'default' \| 'simple' \| 'shrink' | 'default' |
123
+ | defaultCurrent | 默认的当前页数 | number | - | 1 |
124
+ | current | 当前页数 | number | - | - |
125
+ | max | 最大显示的页数 | number | - | 2 |
126
+ | pageSize | 每页条数 | number | - | 10 |
127
+ | pageSizeOptions | 指定每页可以显示多少条 | number[] | - | [] |
128
+ | total | 数据总数 | number | - | - |
129
+ | autoHide | 只有一页时是否隐藏分页器 | boolean | true \| false | false |
130
+ | showJumper | 是否显示跳转 | boolean | true \| false | false |
131
+ | onJump | 快速跳转时触发,回调值为当前页数 | (current: number) => void | - | - |
132
+ | onChange | 页码改变时的回调,回调值为当前页数、之前的页数和每页条数 | (current: number, prev: number, pageSize: number) => void | - | - | - |
133
+ | onPageSizeChange | 每页显示条数改变的回调函数,返回改变后的每页条数及当前页数 | (pageSize: number, current: number) => void | - | - | - |
134
+
135
+ ### FixedOption
136
+
137
+ | 参数 | 说明 | 类型 | 可选值 | 默认值 |
138
+ | ----- | -------------------- | ------ | ------------------------ | ------ |
139
+ | left | 表格从左侧冻结至某列 | string | columns 中对应的 dataKey | - |
140
+ | right | 表格从右侧冻结至某列 | string | columns 中对应的 dataKey | - |
141
+
142
+ ### RowSelection
143
+
144
+ | 参数 | 说明 | 类型 | 可选值 | 默认值 |
145
+ | ----------------- | ---------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | ---------------- | ------ |
146
+ | selectedRowKeys | 选中的行(受控) | string[] | row 中对应的 key | - |
147
+ | getCheckboxConfig | 行选择的配置项 | rowData => object | - | - |
148
+ | onChange | 选中项发生变化时的回调,如果是全选操作,`targetRow` 将是数组结构 | (selectedRowKeys: string[], targetRow?: object \| object[], shouldChecked?: boolean) => void | - | - |
149
+ | checkboxColWidth | 列选择 checkbox 所在列宽度 | number | - | - |
150
+ | checkAllOptions | 全选操作的配置项 | { filterIcon?: React.ReactNode } | - | - |
151
+
152
+ ## CHANGELOG
153
+
154
+ | 参数 | 变更类型 | 变更内容 | 解决的问题 |
155
+ | ------------------------- | ---------- | ------------------------------------------- | ----------------------------------------- |
156
+ | selectFilters | deprecated | 取消内嵌 Select | - | 使用 filterDropdown 能替代满足场景 |
157
+ | onLoadChildren | feature | 必须返回数据 -> 返回 undefined 不做任何处理 | - | 强化功能:支持自定义控制更新 |
158
+ | expandEmbedRowKeys | feature | - | 字段:expandRowKeys -> expandEmbedRowKeys | 强化功能:支持内嵌面板独立控制 |
159
+ | defaultExpandEmbedRowKeys | feature | - | - | 强化功能:支持内嵌面板独立控制 |
160
+ | onEmbedExpand | feature | - | 字段:onExpand -> onEmbedExpand | 强化功能:支持内嵌面板独立控制 |
@@ -213,7 +213,7 @@ var BaseTable = /*#__PURE__*/React.forwardRef(function (_a, ref) {
213
213
  position: 'relative'
214
214
  }
215
215
  }, /*#__PURE__*/React__default['default'].createElement(TableHeader.TableHeader, {
216
- prefixCls: prefixCls
216
+ prefixCls: prefixCls + "-header"
217
217
  }), extraHeader ? /*#__PURE__*/React__default['default'].createElement("div", {
218
218
  style: {
219
219
  position: 'absolute',
@@ -1 +1 @@
1
- {"version":3,"file":"BaseTable.js","sources":["../../src/BaseTable.tsx"],"sourcesContent":[null],"names":["_role","_prefix","getPrefixCls","DEFAULT_COLUMNS","BaseTable","forwardRef","_a","ref","prefixCls","role","className","borderedProp","bordered","columns","striped","rowExpandable","expandEmbedRowKeysProp","expandEmbedRowKeys","onEmbedExpand","expandedRender","extra","rest","useUncontrolledState","expandEmbedRows","trySetExpandEmbedRows","useCheck","checkedIds","onCheck","onExpandEmbedRowsChange","isExpandEmbedRows","getEmbedPanelColumn","useCallback","embedExpandable","renderSwitcher","rowExpand","expanded","onNodeExpand","expandIcon","collapseIcon","React","isValidElement","IconButton","cx","icon","defaultLoadingIcon","tabIndex","onClick","embedPanelColumn","title","dataKey","width","align","render","_","rowItem","index","rowKey","id","sticky","isFunction","switcherIcon","shouldExpanded","MinusSquareOutlined","PlusSquareOutlined","useMemo","mergedColumns","embedColumn","providedValue","useTable","size","leftFrozenColKeys","rightFrozenColKeys","leftFixedColumnsWidth","rightFixedColumnsWidth","scrollLeft","scrollRight","hasBorder","extraHeader","header","extraFooter","footer","cls","TableProvider","value","style","position","TableHeader","right","zIndex","bottom","top","TableBody","length","__DEV__","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"BaseTable.js","sources":["../../src/BaseTable.tsx"],"sourcesContent":[null],"names":["_role","_prefix","getPrefixCls","DEFAULT_COLUMNS","BaseTable","forwardRef","_a","ref","prefixCls","role","className","borderedProp","bordered","columns","striped","rowExpandable","expandEmbedRowKeysProp","expandEmbedRowKeys","onEmbedExpand","expandedRender","extra","rest","useUncontrolledState","expandEmbedRows","trySetExpandEmbedRows","useCheck","checkedIds","onCheck","onExpandEmbedRowsChange","isExpandEmbedRows","getEmbedPanelColumn","useCallback","embedExpandable","renderSwitcher","rowExpand","expanded","onNodeExpand","expandIcon","collapseIcon","React","isValidElement","IconButton","cx","icon","defaultLoadingIcon","tabIndex","onClick","embedPanelColumn","title","dataKey","width","align","render","_","rowItem","index","rowKey","id","sticky","isFunction","switcherIcon","shouldExpanded","MinusSquareOutlined","PlusSquareOutlined","useMemo","mergedColumns","embedColumn","providedValue","useTable","size","leftFrozenColKeys","rightFrozenColKeys","leftFixedColumnsWidth","rightFixedColumnsWidth","scrollLeft","scrollRight","hasBorder","extraHeader","header","extraFooter","footer","cls","TableProvider","value","style","position","TableHeader","right","zIndex","bottom","top","TableBody","length","__DEV__","displayName"],"mappings":"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"}
@@ -0,0 +1,166 @@
1
+ /** @LICENSE
2
+ * @hi-ui/table
3
+ * https://github.com/XiaoMi/hiui/tree/master/packages/ui/table#readme
4
+ *
5
+ * Copyright (c) HIUI <mi-hiui@xiaomi.com>.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */
10
+ 'use strict';
11
+
12
+ var _typeof = require("@babel/runtime/helpers/typeof");
13
+
14
+ Object.defineProperty(exports, '__esModule', {
15
+ value: true
16
+ });
17
+
18
+ var React = require('react');
19
+
20
+ var classname = require('@hi-ui/classname');
21
+
22
+ var context = require('./context.js');
23
+
24
+ var TableColumnMenu = require('./TableColumnMenu.js');
25
+
26
+ var Select = require('@hi-ui/select');
27
+
28
+ var icons = require('@hi-ui/icons');
29
+
30
+ var Popper = require('@hi-ui/popper');
31
+
32
+ var useToggle = require('@hi-ui/use-toggle');
33
+
34
+ var typeAssertion = require('@hi-ui/type-assertion');
35
+
36
+ function _interopDefaultLegacy(e) {
37
+ return e && _typeof(e) === 'object' && 'default' in e ? e : {
38
+ 'default': e
39
+ };
40
+ }
41
+
42
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
43
+
44
+ var Select__default = /*#__PURE__*/_interopDefaultLegacy(Select);
45
+
46
+ var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper);
47
+
48
+ var renderFilter = function renderFilter(_ref) {
49
+ var prefixCls = _ref.prefixCls,
50
+ columnKey = _ref.columnKey,
51
+ column = _ref.column,
52
+ showColMenu = _ref.showColMenu;
53
+ var _column$raw = column.raw,
54
+ sorter = _column$raw.sorter,
55
+ filterIcon = _column$raw.filterIcon,
56
+ selectFilters = _column$raw.selectFilters;
57
+ return [showColMenu && /*#__PURE__*/React__default['default'].createElement(TableColumnMenu.TableColumnMenu, {
58
+ prefixCls: prefixCls + "-dropdown",
59
+ key: "0",
60
+ columnKey: columnKey,
61
+ column: column
62
+ }), sorter && !showColMenu && /*#__PURE__*/React__default['default'].createElement(SorterMenu, {
63
+ prefixCls: prefixCls + "-sorter",
64
+ key: "1",
65
+ column: column
66
+ }), selectFilters && /*#__PURE__*/React__default['default'].createElement(Select__default['default'], Object.assign({
67
+ prefixCls: prefixCls + "-select",
68
+ key: "2"
69
+ }, selectFilters)), filterIcon && /*#__PURE__*/React__default['default'].createElement(FilterDropdown, {
70
+ prefixCls: prefixCls + "-custom",
71
+ key: "3",
72
+ column: column
73
+ })].filter(Boolean);
74
+ };
75
+
76
+ var SorterMenu = function SorterMenu(_ref2) {
77
+ var _cx, _cx2;
78
+
79
+ var prefixCls = _ref2.prefixCls,
80
+ column = _ref2.column;
81
+ var columnKey = column.dataKey;
82
+
83
+ var _useTableContext = context.useTableContext(),
84
+ activeSorterColumn = _useTableContext.activeSorterColumn,
85
+ activeSorterType = _useTableContext.activeSorterType,
86
+ setActiveSorterColumn = _useTableContext.setActiveSorterColumn,
87
+ setActiveSorterType = _useTableContext.setActiveSorterType;
88
+
89
+ return /*#__PURE__*/React__default['default'].createElement("div", {
90
+ className: prefixCls
91
+ }, /*#__PURE__*/React__default['default'].createElement("span", {
92
+ className: classname.cx(prefixCls + "__icon", (_cx = {}, _cx[prefixCls + "__icon--active"] = activeSorterType === 'ascend' && activeSorterColumn === columnKey, _cx)),
93
+ onClick: function onClick(e) {
94
+ if (activeSorterType === 'ascend' && activeSorterColumn === columnKey) {
95
+ setActiveSorterType(null);
96
+ setActiveSorterColumn(null);
97
+ } else {
98
+ setActiveSorterType('ascend');
99
+ setActiveSorterColumn(columnKey);
100
+ }
101
+ }
102
+ }, /*#__PURE__*/React__default['default'].createElement(icons.CaretUpFilled, null)), /*#__PURE__*/React__default['default'].createElement("span", {
103
+ className: classname.cx(prefixCls + "__icon", (_cx2 = {}, _cx2[prefixCls + "__icon--active"] = activeSorterType === 'descend' && activeSorterColumn === columnKey, _cx2)),
104
+ onClick: function onClick(e) {
105
+ if (activeSorterType === 'descend' && activeSorterColumn === columnKey) {
106
+ setActiveSorterType(null);
107
+ setActiveSorterColumn(null);
108
+ } else {
109
+ setActiveSorterType('descend');
110
+ setActiveSorterColumn(columnKey);
111
+ }
112
+ }
113
+ }, /*#__PURE__*/React__default['default'].createElement(icons.CaretDownFilled, null)));
114
+ };
115
+
116
+ var FilterDropdown = function FilterDropdown(_ref3) {
117
+ var prefixCls = _ref3.prefixCls,
118
+ column = _ref3.column;
119
+ var _column$raw2 = column.raw,
120
+ filterIcon = _column$raw2.filterIcon,
121
+ filterDropdown = _column$raw2.filterDropdown,
122
+ filterDropdownWidth = _column$raw2.filterDropdownWidth,
123
+ onFilterDropdownVisibleChange = _column$raw2.onFilterDropdownVisibleChange,
124
+ filterDropdownClassName = _column$raw2.filterDropdownClassName;
125
+
126
+ var _useUncontrolledToggl = useToggle.useUncontrolledToggle({
127
+ onOpen: function onOpen() {
128
+ return onFilterDropdownVisibleChange === null || onFilterDropdownVisibleChange === void 0 ? void 0 : onFilterDropdownVisibleChange(true, column);
129
+ },
130
+ onClose: function onClose() {
131
+ return onFilterDropdownVisibleChange === null || onFilterDropdownVisibleChange === void 0 ? void 0 : onFilterDropdownVisibleChange(false, column);
132
+ }
133
+ }),
134
+ menuVisible = _useUncontrolledToggl[0],
135
+ menuVisibleAction = _useUncontrolledToggl[1];
136
+
137
+ var _React$useState = React__default['default'].useState(null),
138
+ menuTrigger = _React$useState[0],
139
+ setMenuTrigger = _React$useState[1];
140
+
141
+ return /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement("span", {
142
+ className: prefixCls + "__trigger",
143
+ ref: setMenuTrigger,
144
+ onClick: menuVisibleAction.not
145
+ }, filterIcon), /*#__PURE__*/React__default['default'].createElement(Popper__default['default'], {
146
+ className: prefixCls + "__popper",
147
+ visible: menuVisible,
148
+ attachEl: menuTrigger,
149
+ onClose: menuVisibleAction.off,
150
+ // @DesignToken zIndex: `overlay`
151
+ zIndex: 1050
152
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
153
+ className: classname.cx(prefixCls + "__content", filterDropdownClassName),
154
+ style: {
155
+ width: filterDropdownWidth
156
+ }
157
+ }, typeAssertion.isFunction(filterDropdown) ? filterDropdown({
158
+ columnData: column,
159
+ setFilterDropdownVisible: menuVisibleAction.set
160
+ }) : null)));
161
+ };
162
+
163
+ exports.FilterDropdown = FilterDropdown;
164
+ exports.SorterMenu = SorterMenu;
165
+ exports.renderFilter = renderFilter;
166
+ //# sourceMappingURL=TableAdvancedFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableAdvancedFilter.js","sources":["../../src/TableAdvancedFilter.tsx"],"sourcesContent":[null],"names":["renderFilter","prefixCls","columnKey","column","showColMenu","raw","sorter","filterIcon","selectFilters","React","TableColumnMenu","key","SorterMenu","Select","FilterDropdown","filter","Boolean","dataKey","useTableContext","activeSorterColumn","activeSorterType","setActiveSorterColumn","setActiveSorterType","className","cx","onClick","e","CaretUpFilled","CaretDownFilled","filterDropdown","filterDropdownWidth","onFilterDropdownVisibleChange","filterDropdownClassName","useUncontrolledToggle","onOpen","onClose","menuVisible","menuVisibleAction","useState","menuTrigger","setMenuTrigger","ref","not","Popper","visible","attachEl","off","zIndex","style","width","isFunction","columnData","setFilterDropdownVisible","set"],"mappings":"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"}
@@ -0,0 +1,179 @@
1
+ /** @LICENSE
2
+ * @hi-ui/table
3
+ * https://github.com/XiaoMi/hiui/tree/master/packages/ui/table#readme
4
+ *
5
+ * Copyright (c) HIUI <mi-hiui@xiaomi.com>.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */
10
+ 'use strict';
11
+
12
+ var _typeof = require("@babel/runtime/helpers/typeof");
13
+
14
+ Object.defineProperty(exports, '__esModule', {
15
+ value: true
16
+ });
17
+
18
+ var tslib = require('tslib');
19
+
20
+ var React = require('react');
21
+
22
+ var classname = require('@hi-ui/classname');
23
+
24
+ var env = require('@hi-ui/env');
25
+
26
+ var icons = require('@hi-ui/icons');
27
+
28
+ var iconButton = require('@hi-ui/icon-button');
29
+
30
+ var Popper = require('@hi-ui/popper');
31
+
32
+ var useToggle = require('@hi-ui/use-toggle');
33
+
34
+ var context = require('./context.js');
35
+
36
+ function _interopDefaultLegacy(e) {
37
+ return e && _typeof(e) === 'object' && 'default' in e ? e : {
38
+ 'default': e
39
+ };
40
+ }
41
+
42
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
43
+
44
+ var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper);
45
+
46
+ var _prefix = classname.getPrefixCls('table-column-menu');
47
+ /**
48
+ * TODO: What is Table
49
+ */
50
+
51
+
52
+ var TableColumnMenu = /*#__PURE__*/React.forwardRef(function (_a, ref) {
53
+ var _a$prefixCls = _a.prefixCls,
54
+ prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,
55
+ columnKey = _a.columnKey,
56
+ column = _a.column;
57
+
58
+ tslib.__rest(_a, ["prefixCls", "role", "className", "columnKey", "column"]);
59
+
60
+ var _useTableContext = context.useTableContext(),
61
+ activeSorterType = _useTableContext.activeSorterType,
62
+ activeSorterColumn = _useTableContext.activeSorterColumn,
63
+ setActiveSorterType = _useTableContext.setActiveSorterType,
64
+ setActiveSorterColumn = _useTableContext.setActiveSorterColumn,
65
+ leftFreezeColumn = _useTableContext.leftFreezeColumn,
66
+ setLeftFreezeColumn = _useTableContext.setLeftFreezeColumn,
67
+ isHighlightedCol = _useTableContext.isHighlightedCol,
68
+ onHighlightedColChange = _useTableContext.onHighlightedColChange;
69
+
70
+ var canSort = !!column.raw.sorter;
71
+
72
+ var _useToggle = useToggle.useToggle(),
73
+ menuVisible = _useToggle[0],
74
+ menuVisibleAction = _useToggle[1];
75
+
76
+ var _React$useState = React__default['default'].useState(null),
77
+ menuTrigger = _React$useState[0],
78
+ setMenuTrigger = _React$useState[1]; // TODO:处理 column 模型支持 cellRender,一直出 checkbox、expandIcon 高级选项
79
+
80
+
81
+ return /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement(iconButton.IconButton, {
82
+ className: prefixCls + "__trigger",
83
+ ref: setMenuTrigger,
84
+ onClick: menuVisibleAction.not,
85
+ icon: /*#__PURE__*/React__default['default'].createElement(icons.DownOutlined, null)
86
+ }), /*#__PURE__*/React__default['default'].createElement(Popper__default['default'], {
87
+ className: prefixCls + "__popper",
88
+ visible: menuVisible,
89
+ attachEl: menuTrigger,
90
+ onClose: menuVisibleAction.off,
91
+ // @DesignToken zIndex: `overlay`
92
+ zIndex: 1050
93
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
94
+ className: prefixCls + "__content"
95
+ }, canSort ? /*#__PURE__*/React__default['default'].createElement(TableColumnMenuItem, {
96
+ prefixCls: prefixCls,
97
+ active: activeSorterType === 'ascend' && activeSorterColumn === columnKey,
98
+ // {/* TODO: 国际化 */}
99
+ // {/* {localeDatas.table.ascend} */}
100
+ content: '递增',
101
+ icon: /*#__PURE__*/React__default['default'].createElement(icons.SortAscendingOutlined, null),
102
+ onClick: function onClick() {
103
+ if (activeSorterType === 'ascend' && activeSorterColumn === columnKey) {
104
+ setActiveSorterType(null);
105
+ setActiveSorterColumn(null);
106
+ } else {
107
+ setActiveSorterType('ascend');
108
+ setActiveSorterColumn(columnKey);
109
+ }
110
+
111
+ menuVisibleAction.off();
112
+ }
113
+ }) : null, canSort ? /*#__PURE__*/React__default['default'].createElement(TableColumnMenuItem, {
114
+ prefixCls: prefixCls,
115
+ active: activeSorterType === 'descend' && activeSorterColumn === columnKey,
116
+ // {/* TODO: 国际化 */}
117
+ // {/* {localeDatas.table.descend} */}
118
+ content: '递减',
119
+ icon: /*#__PURE__*/React__default['default'].createElement(icons.SortDescendingOutlined, null),
120
+ onClick: function onClick() {
121
+ if (activeSorterType === 'descend' && activeSorterColumn === columnKey) {
122
+ setActiveSorterType(null);
123
+ setActiveSorterColumn(null);
124
+ } else {
125
+ setActiveSorterType('descend');
126
+ setActiveSorterColumn(columnKey);
127
+ }
128
+
129
+ menuVisibleAction.off();
130
+ }
131
+ }) : null, /*#__PURE__*/React__default['default'].createElement(TableColumnMenuItem, {
132
+ prefixCls: prefixCls,
133
+ active: isHighlightedCol(columnKey),
134
+ // {/* TODO: 国际化 */}
135
+ // {/* {localeDatas.table.highlight} */}
136
+ content: '高亮',
137
+ icon: /*#__PURE__*/React__default['default'].createElement(icons.ColumnHeightOutlined, null),
138
+ onClick: function onClick() {
139
+ onHighlightedColChange(column, !isHighlightedCol(columnKey));
140
+ menuVisibleAction.off();
141
+ }
142
+ }), /*#__PURE__*/React__default['default'].createElement(TableColumnMenuItem, {
143
+ prefixCls: prefixCls,
144
+ active: leftFreezeColumn === columnKey,
145
+ // {/* TODO: 国际化 */}
146
+ // {/* {localeDatas.table.freeze} */}
147
+ content: '冻结',
148
+ icon: /*#__PURE__*/React__default['default'].createElement(icons.LockOutlined, null),
149
+ onClick: function onClick() {
150
+ if (leftFreezeColumn === columnKey) {
151
+ setLeftFreezeColumn(null);
152
+ } else {
153
+ setLeftFreezeColumn(columnKey);
154
+ }
155
+
156
+ menuVisibleAction.off();
157
+ }
158
+ }))));
159
+ });
160
+
161
+ if (env.__DEV__) {
162
+ TableColumnMenu.displayName = 'TableColumnMenu';
163
+ }
164
+
165
+ var TableColumnMenuItem = function TableColumnMenuItem(_ref) {
166
+ var prefixCls = _ref.prefixCls,
167
+ active = _ref.active,
168
+ onClick = _ref.onClick,
169
+ content = _ref.content,
170
+ icon = _ref.icon;
171
+ return /*#__PURE__*/React__default['default'].createElement("div", {
172
+ className: classname.cx(prefixCls + "__item", active && prefixCls + "__item--active"),
173
+ onClick: onClick
174
+ }, /*#__PURE__*/React__default['default'].createElement("span", null, content), icon);
175
+ };
176
+
177
+ exports.TableColumnMenu = TableColumnMenu;
178
+ exports.TableColumnMenuItem = TableColumnMenuItem;
179
+ //# sourceMappingURL=TableColumnMenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableColumnMenu.js","sources":["../../src/TableColumnMenu.tsx"],"sourcesContent":[null],"names":["_prefix","getPrefixCls","TableColumnMenu","forwardRef","_a","ref","prefixCls","columnKey","column","useTableContext","activeSorterType","activeSorterColumn","setActiveSorterType","setActiveSorterColumn","leftFreezeColumn","setLeftFreezeColumn","isHighlightedCol","onHighlightedColChange","canSort","raw","sorter","useToggle","menuVisible","menuVisibleAction","React","useState","menuTrigger","setMenuTrigger","IconButton","className","onClick","not","icon","DownOutlined","Popper","visible","attachEl","onClose","off","zIndex","TableColumnMenuItem","active","content","SortAscendingOutlined","SortDescendingOutlined","ColumnHeightOutlined","LockOutlined","__DEV__","displayName","cx"],"mappings":"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"}