xmirror-components 1.0.29 → 1.0.30-alpha.2

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 (46) hide show
  1. package/build/dist/index.cjs +212 -16
  2. package/build/dist/index.mjs +2418 -2058
  3. package/build/es/components/SearchArea/Item/index.d.ts +10 -0
  4. package/build/es/components/SearchArea/Item/index.js +49 -0
  5. package/build/es/components/SearchArea/ToggleButton/index.d.ts +14 -0
  6. package/build/es/components/SearchArea/ToggleButton/index.js +25 -0
  7. package/build/es/components/SearchArea/index.d.ts +25 -0
  8. package/build/es/components/SearchArea/index.js +120 -0
  9. package/build/es/components/Table/Footer/index.d.ts +0 -1
  10. package/build/es/components/Table/Footer/index.js +20 -17
  11. package/build/es/components/Table/Footer/styles.d.ts +25 -0
  12. package/build/es/components/Table/Footer/styles.js +25 -0
  13. package/build/es/components/Table/PopoverSetColumns/index.d.ts +0 -1
  14. package/build/es/components/Table/PopoverSetColumns/index.js +2 -2
  15. package/build/es/components/Table/PopoverSetColumns/styles.d.ts +8 -0
  16. package/build/es/components/Table/PopoverSetColumns/styles.js +11 -0
  17. package/build/es/components/Table/index.d.ts +0 -1
  18. package/build/es/components/Table/index.js +2 -2
  19. package/build/es/components/Table/styles.d.ts +4 -0
  20. package/build/es/components/Table/styles.js +7 -0
  21. package/build/es/index.d.ts +1 -0
  22. package/build/es/index.js +1 -0
  23. package/build/lib/components/SearchArea/Item/index.js +54 -0
  24. package/build/lib/components/SearchArea/ToggleButton/index.js +30 -0
  25. package/build/lib/components/SearchArea/index.js +158 -0
  26. package/build/lib/components/Table/Footer/index.js +19 -16
  27. package/build/lib/components/Table/Footer/styles.js +31 -0
  28. package/build/lib/components/Table/PopoverSetColumns/index.js +2 -2
  29. package/build/lib/components/Table/PopoverSetColumns/styles.js +17 -0
  30. package/build/lib/components/Table/index.js +2 -2
  31. package/build/lib/components/Table/styles.js +13 -0
  32. package/build/lib/index.d.ts +49 -0
  33. package/build/lib/index.js +3 -1
  34. package/build/package.json +1 -1
  35. package/build/types/components/SearchArea/Item/index.d.ts +10 -0
  36. package/build/types/components/SearchArea/ToggleButton/index.d.ts +14 -0
  37. package/build/types/components/SearchArea/index.d.ts +25 -0
  38. package/build/types/components/Table/Footer/index.d.ts +0 -1
  39. package/build/types/components/Table/Footer/styles.d.ts +25 -0
  40. package/build/types/components/Table/PopoverSetColumns/index.d.ts +0 -1
  41. package/build/types/components/Table/PopoverSetColumns/styles.d.ts +8 -0
  42. package/build/types/components/Table/index.d.ts +0 -1
  43. package/build/types/components/Table/styles.d.ts +4 -0
  44. package/build/types/index.d.ts +1 -0
  45. package/package.json +1 -1
  46. package/build/dist/index.css +0 -1
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __assign = (this && this.__assign) || function () {
7
+ __assign = Object.assign || function(t) {
8
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
9
+ s = arguments[i];
10
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11
+ t[p] = s[p];
12
+ }
13
+ return t;
14
+ };
15
+ return __assign.apply(this, arguments);
16
+ };
17
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ var desc = Object.getOwnPropertyDescriptor(m, k);
20
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
21
+ desc = { enumerable: true, get: function() { return m[k]; } };
22
+ }
23
+ Object.defineProperty(o, k2, desc);
24
+ }) : (function(o, m, k, k2) {
25
+ if (k2 === undefined) k2 = k;
26
+ o[k2] = m[k];
27
+ }));
28
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
29
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
30
+ }) : function(o, v) {
31
+ o["default"] = v;
32
+ });
33
+ var __importStar = (this && this.__importStar) || (function () {
34
+ var ownKeys = function(o) {
35
+ ownKeys = Object.getOwnPropertyNames || function (o) {
36
+ var ar = [];
37
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
38
+ return ar;
39
+ };
40
+ return ownKeys(o);
41
+ };
42
+ return function (mod) {
43
+ if (mod && mod.__esModule) return mod;
44
+ var result = {};
45
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
46
+ __setModuleDefault(result, mod);
47
+ return result;
48
+ };
49
+ })();
50
+ var __rest = (this && this.__rest) || function (s, e) {
51
+ var t = {};
52
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
53
+ t[p] = s[p];
54
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
55
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
56
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
57
+ t[p[i]] = s[p[i]];
58
+ }
59
+ return t;
60
+ };
61
+ var __importDefault = (this && this.__importDefault) || function (mod) {
62
+ return (mod && mod.__esModule) ? mod : { "default": mod };
63
+ };
64
+ Object.defineProperty(exports, "__esModule", { value: true });
65
+ var react_1 = __importStar(require("react"));
66
+ var antd_1 = require("antd");
67
+ var icons_1 = require("@ant-design/icons");
68
+ var styled_1 = __importDefault(require("@emotion/styled"));
69
+ var Item_1 = __importDefault(require("./Item"));
70
+ var ToggleButton_1 = __importDefault(require("./ToggleButton"));
71
+ var AnimatedContainer = (0, styled_1.default)('div', {
72
+ shouldForwardProp: function (prop) { return prop !== 'show'; },
73
+ })(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n overflow: hidden;\n transition: max-height 0.4s ease-in-out;\n max-height: ", ";\n"], ["\n overflow: hidden;\n transition: max-height 0.4s ease-in-out;\n max-height: ", ";\n"])), function (props) { return props.show ? '450px' : '0'; });
74
+ var StyledForm = (0, styled_1.default)(antd_1.Form)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n padding: 20px;\n padding-bottom: 0;\n margin-bottom: 20px;\n background: #F7FAFB;\n border: 1px solid #F3F3F4;\n\n .ant-form-item {\n margin-bottom: 20px;\n }\n"], ["\n padding: 20px;\n padding-bottom: 0;\n margin-bottom: 20px;\n background: #F7FAFB;\n border: 1px solid #F3F3F4;\n\n .ant-form-item {\n margin-bottom: 20px;\n }\n"])));
75
+ var SearchAreaHandle = styled_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n gap: 10px;\n display: flex;\n justify-content: flex-end;\n margin-bottom: 20px;\n"], ["\n gap: 10px;\n display: flex;\n justify-content: flex-end;\n margin-bottom: 20px;\n"])));
76
+ /**
77
+ * 高级筛选
78
+ * @param children 子元素
79
+ * @param onSearch {function} 接收函数,点筛选时执行,返回筛选数据
80
+ * @param col 与 Col 的配置相同,控制筛选项排版
81
+ * @param row Row 的配置相同,控制筛选项排版
82
+ * @param loading {boolean} 筛选加载状态
83
+ * @param props 多余参数,绑定至 Form 上
84
+ * @param ref
85
+ * @return {JSX.Element}
86
+ * @constructor
87
+ */
88
+ function InternalSearchArea(_a) {
89
+ var children = _a.children, onSearch = _a.onSearch, _b = _a.col, col = _b === void 0 ? {} : _b, _c = _a.row, row = _c === void 0 ? {} : _c, _d = _a.loading, loading = _d === void 0 ? false : _d, ref = _a.ref, props = __rest(_a, ["children", "onSearch", "col", "row", "loading", "ref"]);
90
+ var form = antd_1.Form.useForm()[0];
91
+ var show, toggle;
92
+ if (ref && typeof ref === 'object') {
93
+ show = ref.show;
94
+ toggle = ref.toggle;
95
+ }
96
+ else {
97
+ var _e = (0, react_1.useState)(false), _show = _e[0], _setShow_1 = _e[1];
98
+ show = _show;
99
+ toggle = function () { _setShow_1(function (v) { return !v; }); };
100
+ }
101
+ /**
102
+ * 提交搜索
103
+ */
104
+ var submit = function () {
105
+ var data = form.getFieldsValue();
106
+ onSearch === null || onSearch === void 0 ? void 0 : onSearch(data);
107
+ };
108
+ /**
109
+ * 重置
110
+ */
111
+ var reset = function () {
112
+ form.resetFields();
113
+ submit();
114
+ };
115
+ /**
116
+ * 重置
117
+ */
118
+ var close = function () {
119
+ toggle();
120
+ };
121
+ return (react_1.default.createElement(AnimatedContainer, { show: show },
122
+ react_1.default.createElement(StyledForm, __assign({ form: form, labelCol: { flex: '70px' }, wrapperCol: { flex: '1', style: { maxWidth: '280px' } } }, props),
123
+ react_1.default.createElement(antd_1.Row, __assign({ gutter: 10, justify: "space-between" }, row),
124
+ Array.isArray(children)
125
+ ? children.map(function (item) {
126
+ return (react_1.default.createElement(antd_1.Col, __assign({ span: 6, xxl: 6,
127
+ xl: 8,
128
+ lg: 12,
129
+ xs: 24, key: item.props.name || item.key || item.props.label }, col), item));
130
+ })
131
+ : children,
132
+ react_1.default.createElement(antd_1.Col, { flex: 1 },
133
+ react_1.default.createElement(SearchAreaHandle, null,
134
+ react_1.default.createElement(antd_1.Button, { loading: loading, type: "primary", onClick: submit }, "\u7B5B\u9009"),
135
+ react_1.default.createElement(antd_1.Button, { loading: loading, onClick: reset }, "\u91CD\u7F6E"),
136
+ react_1.default.createElement(antd_1.Button, { type: "link", style: {
137
+ paddingLeft: 0,
138
+ paddingRight: 0
139
+ }, onClick: close },
140
+ "\u6536\u8D77",
141
+ react_1.default.createElement(icons_1.UpOutlined, null))))))));
142
+ }
143
+ var SearchArea = InternalSearchArea;
144
+ function useSearchArea() {
145
+ var _a = (0, react_1.useState)(false), show = _a[0], setShow = _a[1];
146
+ var toggle = function () {
147
+ setShow(function (value) { return !value; });
148
+ };
149
+ return {
150
+ show: show,
151
+ toggle: toggle
152
+ };
153
+ }
154
+ SearchArea.useSearchArea = useSearchArea;
155
+ SearchArea.Item = Item_1.default;
156
+ SearchArea.ToggleButton = ToggleButton_1.default;
157
+ exports.default = SearchArea;
158
+ var templateObject_1, templateObject_2, templateObject_3;
@@ -38,7 +38,8 @@ var react_intl_1 = require("react-intl");
38
38
  var antd_1 = require("antd");
39
39
  var react_transition_group_1 = require("react-transition-group");
40
40
  var icons_1 = require("@ant-design/icons");
41
- require("./index.less");
41
+ var react_2 = require("@emotion/react");
42
+ var styles_1 = require("./styles");
42
43
  function Index(props) {
43
44
  var _a;
44
45
  var transitionNodeRef = (0, react_1.useRef)(null);
@@ -102,20 +103,22 @@ function Index(props) {
102
103
  var selectedRowKeys = (_a = rowSelection.selectedRowKeys) !== null && _a !== void 0 ? _a : [];
103
104
  return !!(selectedRowKeys.length > 0 && selectedRowKeys.length === optionalNum);
104
105
  }, [rowSelection.selectedRowKeys, optionalNum]);
105
- return (react_1.default.createElement("div", { className: "table-footer" },
106
- react_1.default.createElement(react_transition_group_1.CSSTransition, { in: Boolean(props.rowSelection && props.selectionPopover && (checked || indeterminate)), nodeRef: transitionNodeRef, classNames: "zoom", unmountOnExit: true, timeout: 300 }, function () {
107
- var _a, _b;
108
- return (react_1.default.createElement(antd_1.Row, { ref: transitionNodeRef, className: "table-batch-dialog", justify: "space-between" },
109
- react_1.default.createElement(antd_1.Col, { style: { display: 'flex', alignItems: 'center' } },
110
- react_1.default.createElement(antd_1.Checkbox, { checked: checked, indeterminate: indeterminate, onChange: changeCheckAll },
111
- react_1.default.createElement(react_intl_1.FormattedMessage, { id: "component.table.selected", defaultMessage: '已选{length}条', values: {
112
- length: (_b = (_a = rowSelection.selectedRowKeys) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0
113
- } }))),
114
- react_1.default.createElement(antd_1.Col, { style: { display: 'flex', alignItems: 'center' } },
115
- selectionPopover,
116
- react_1.default.createElement("span", { className: "btn-close", onClick: function () { changeCheckAll({ target: { checked: false } }); } },
117
- react_1.default.createElement(icons_1.CloseOutlined, null)))));
118
- }),
119
- pagination && (react_1.default.createElement("span", { className: "table-footer-total" }, pagination.showTotal ? pagination.showTotal((_a = pagination.total) !== null && _a !== void 0 ? _a : 0, [0, 0]) : null))));
106
+ return (react_1.default.createElement(react_1.default.Fragment, null,
107
+ react_1.default.createElement(react_2.Global, { styles: styles_1.globalStyles }),
108
+ react_1.default.createElement(styles_1.TableFooterWrapper, null,
109
+ react_1.default.createElement(react_transition_group_1.CSSTransition, { in: Boolean(props.rowSelection && props.selectionPopover && (checked || indeterminate)), nodeRef: transitionNodeRef, classNames: styles_1.zoomStyles, unmountOnExit: true, timeout: 300 }, function () {
110
+ var _a, _b;
111
+ return (react_1.default.createElement(styles_1.StyledRow, { ref: transitionNodeRef, justify: "space-between" },
112
+ react_1.default.createElement(antd_1.Col, { style: { display: 'flex', alignItems: 'center' } },
113
+ react_1.default.createElement(antd_1.Checkbox, { checked: checked, indeterminate: indeterminate, onChange: changeCheckAll },
114
+ react_1.default.createElement(react_intl_1.FormattedMessage, { id: "component.table.selected", defaultMessage: '已选{length}条', values: {
115
+ length: (_b = (_a = rowSelection.selectedRowKeys) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0
116
+ } }))),
117
+ react_1.default.createElement(antd_1.Col, { style: { display: 'flex', alignItems: 'center' } },
118
+ selectionPopover,
119
+ react_1.default.createElement(styles_1.CloseButton, { onClick: function () { changeCheckAll({ target: { checked: false } }); } },
120
+ react_1.default.createElement(icons_1.CloseOutlined, null)))));
121
+ }),
122
+ pagination && (react_1.default.createElement(styles_1.TableFooterTotal, null, pagination.showTotal ? pagination.showTotal((_a = pagination.total) !== null && _a !== void 0 ? _a : 0, [0, 0]) : null)))));
120
123
  }
121
124
  exports.default = Index;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.globalStyles = exports.zoomStyles = exports.CloseButton = exports.StyledRow = exports.TableBatchDialog = exports.TableFooterTotal = exports.TableFooterWrapper = void 0;
11
+ var styled_1 = __importDefault(require("@emotion/styled"));
12
+ var antd_1 = require("antd");
13
+ exports.TableFooterWrapper = styled_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: absolute;\n left: 8px;\n"], ["\n position: absolute;\n left: 8px;\n"])));
14
+ exports.TableFooterTotal = styled_1.default.span(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n font-size: 14px;\n color: #666;\n"], ["\n font-size: 14px;\n color: #666;\n"])));
15
+ exports.TableBatchDialog = styled_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n position: fixed;\n right: 0;\n bottom: 30px;\n left: 0;\n z-index: 9;\n width: 600px;\n padding: 15px 20px;\n margin: auto;\n color: #fff;\n background-color: #666;\n border-radius: 5px;\n transition: all 0.5s;\n\n .ant-checkbox-wrapper {\n margin-right: 10px;\n color: #fff;\n\n .ant-checkbox-indeterminate .ant-checkbox-inner {\n background-color: transparent;\n border-color: #d9d9d9;\n }\n }\n"], ["\n position: fixed;\n right: 0;\n bottom: 30px;\n left: 0;\n z-index: 9;\n width: 600px;\n padding: 15px 20px;\n margin: auto;\n color: #fff;\n background-color: #666;\n border-radius: 5px;\n transition: all 0.5s;\n\n .ant-checkbox-wrapper {\n margin-right: 10px;\n color: #fff;\n\n .ant-checkbox-indeterminate .ant-checkbox-inner {\n background-color: transparent;\n border-color: #d9d9d9;\n }\n }\n"
16
+ // 包装 Row 组件的样式
17
+ ])));
18
+ // 包装 Row 组件的样式
19
+ exports.StyledRow = (0, styled_1.default)(antd_1.Row)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n position: fixed;\n right: 0;\n bottom: 30px;\n left: 0;\n z-index: 9;\n width: 600px;\n padding: 15px 20px;\n margin: auto;\n color: #fff;\n background-color: #666;\n border-radius: 5px;\n transition: all 0.5s;\n\n .ant-checkbox-wrapper {\n margin-right: 10px;\n color: #fff;\n\n .ant-checkbox-indeterminate .ant-checkbox-inner {\n background-color: transparent;\n border-color: #d9d9d9;\n }\n }\n"], ["\n position: fixed;\n right: 0;\n bottom: 30px;\n left: 0;\n z-index: 9;\n width: 600px;\n padding: 15px 20px;\n margin: auto;\n color: #fff;\n background-color: #666;\n border-radius: 5px;\n transition: all 0.5s;\n\n .ant-checkbox-wrapper {\n margin-right: 10px;\n color: #fff;\n\n .ant-checkbox-indeterminate .ant-checkbox-inner {\n background-color: transparent;\n border-color: #d9d9d9;\n }\n }\n"])));
20
+ exports.CloseButton = styled_1.default.span(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n margin-left: 20px;\n cursor: pointer;\n opacity: 0.5;\n transition: all 0.5s;\n\n &:hover {\n opacity: 1;\n }\n"], ["\n margin-left: 20px;\n cursor: pointer;\n opacity: 0.5;\n transition: all 0.5s;\n\n &:hover {\n opacity: 1;\n }\n"
21
+ // 动画样式 - 使用 CSS 类名
22
+ ])));
23
+ // 动画样式 - 使用 CSS 类名
24
+ exports.zoomStyles = {
25
+ enter: 'zoom-enter',
26
+ enterActive: 'zoom-enter-active',
27
+ leaveActive: 'zoom-leave-active'
28
+ };
29
+ // 全局样式注入
30
+ exports.globalStyles = "\n .zoom-enter {\n transform: scale(0);\n }\n\n .zoom-enter-active {\n transform: scale(1);\n }\n\n .zoom-leave-active {\n transform: scale(0);\n }\n";
31
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
@@ -52,7 +52,7 @@ var icons_1 = require("@ant-design/icons");
52
52
  // import { message, IconFont } from 'xmirror-components'
53
53
  var AntdApp_1 = require("../../AntdApp");
54
54
  var IconFont_1 = __importDefault(require("../../IconFont"));
55
- require("./index.less");
55
+ var styles_1 = require("./styles");
56
56
  function PopoverSetColumns(_a) {
57
57
  var order = _a.order, visibleItems = _a.visibleItems, _b = _a.columns, columns = _b === void 0 ? [] : _b, onChangeOrder = _a.onChangeOrder, columnsVisible = _a.columnsVisible, columnsSort = _a.columnsSort, onChangeVisible = _a.onChangeVisible;
58
58
  var dragged = (0, react_1.useRef)(null);
@@ -198,7 +198,7 @@ function PopoverSetColumns(_a) {
198
198
  : null;
199
199
  });
200
200
  }, [order, visibleItems, columns, columnsSort, columnsVisible]);
201
- return (react_1.default.createElement(antd_1.Popover, { overlayClassName: "table-columns-setting-popover", content: react_1.default.createElement("ul", { onDragOver: dragOver, className: "table-columns-setting-wrapper" }, renderList), trigger: "click", align: {
201
+ return (react_1.default.createElement(antd_1.Popover, { overlayClassName: "table-columns-setting-popover", content: react_1.default.createElement(styles_1.ColumnsSettingWrapper, { onDragOver: dragOver }, renderList), trigger: "click", align: {
202
202
  offset: [-60, -14]
203
203
  } },
204
204
  react_1.default.createElement(IconFont_1.default, { type: "icon-setting", style: {
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.ColumnsSettingWrapper = exports.PopoverWrapper = void 0;
11
+ var styled_1 = __importDefault(require("@emotion/styled"));
12
+ var react_1 = require("@emotion/react");
13
+ var dragUpAnimation = (0, react_1.keyframes)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n from {\n margin-top: 0;\n }\n to {\n margin-top: 32px;\n }\n"], ["\n from {\n margin-top: 0;\n }\n to {\n margin-top: 32px;\n }\n"])));
14
+ var dragDownAnimation = (0, react_1.keyframes)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n from {\n margin-top: 32px;\n margin-bottom: 0;\n }\n to {\n margin-top: 0;\n margin-bottom: 32px;\n }\n"], ["\n from {\n margin-top: 32px;\n margin-bottom: 0;\n }\n to {\n margin-top: 0;\n margin-bottom: 32px;\n }\n"])));
15
+ exports.PopoverWrapper = styled_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n .ant-popover-inner-content {\n max-height: 360px;\n padding: 0;\n overflow-y: auto;\n }\n"], ["\n .ant-popover-inner-content {\n max-height: 360px;\n padding: 0;\n overflow-y: auto;\n }\n"])));
16
+ exports.ColumnsSettingWrapper = styled_1.default.ul(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n padding: 10px 0;\n\n .drag-up {\n border: solid 2px #ccc;\n animation: ", " ease 0.2s 1;\n animation-fill-mode: forwards;\n }\n\n .drag-down {\n border: solid 2px #ccc;\n animation: ", " ease 0.2s 1;\n animation-fill-mode: forwards;\n }\n\n li {\n width: 150px;\n padding: 5px 12px;\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: keep-all;\n white-space: nowrap;\n user-select: none;\n transition: background-color 0.5s;\n\n .icon-drag {\n margin-right: 10px;\n color: #999;\n cursor: move;\n }\n\n &[draggable=\"false\"] {\n .icon-drag {\n cursor: no-drop;\n opacity: 0.2;\n }\n }\n\n &:hover {\n background-color: #f0f0f0;\n }\n }\n"], ["\n padding: 10px 0;\n\n .drag-up {\n border: solid 2px #ccc;\n animation: ", " ease 0.2s 1;\n animation-fill-mode: forwards;\n }\n\n .drag-down {\n border: solid 2px #ccc;\n animation: ", " ease 0.2s 1;\n animation-fill-mode: forwards;\n }\n\n li {\n width: 150px;\n padding: 5px 12px;\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: keep-all;\n white-space: nowrap;\n user-select: none;\n transition: background-color 0.5s;\n\n .icon-drag {\n margin-right: 10px;\n color: #999;\n cursor: move;\n }\n\n &[draggable=\"false\"] {\n .icon-drag {\n cursor: no-drop;\n opacity: 0.2;\n }\n }\n\n &:hover {\n background-color: #f0f0f0;\n }\n }\n"])), dragUpAnimation, dragDownAnimation);
17
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
@@ -53,7 +53,7 @@ var ahooks_1 = require("ahooks");
53
53
  var icons_1 = require("@ant-design/icons");
54
54
  var PopoverSetColumns_1 = __importDefault(require("./PopoverSetColumns"));
55
55
  var Footer_1 = __importDefault(require("./Footer"));
56
- require("./index.less");
56
+ var styles_1 = require("./styles");
57
57
  function Index(props, ref) {
58
58
  var _a = props.columns, columns = _a === void 0 ? [] : _a, columnsSort = props.columnsSort, columnsVisible = props.columnsVisible, _b = props.tableId, tableId = _b === void 0 ? '' : _b, pagination = props.pagination, dataSource = props.dataSource;
59
59
  var pathname = location.pathname;
@@ -219,7 +219,7 @@ function Index(props, ref) {
219
219
  (0, react_1.useEffect)(function () {
220
220
  initColumnsSort();
221
221
  }, []);
222
- return (react_1.default.createElement("div", { className: "table-wrapper", style: { position: 'relative' }, ref: ref },
222
+ return (react_1.default.createElement(styles_1.TableWrapper, { ref: ref },
223
223
  react_1.default.createElement(antd_1.Table, __assign({ ref: tableRef, scroll: {
224
224
  x: 900
225
225
  } }, props, { pagination: paginationProps, columns: renderColumns }))));
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.TableWrapper = void 0;
11
+ var styled_1 = __importDefault(require("@emotion/styled"));
12
+ exports.TableWrapper = styled_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: relative;\n\n .ant-pagination-options {\n .ant-select {\n width: auto !important;\n }\n }\n"], ["\n position: relative;\n\n .ant-pagination-options {\n .ant-select {\n width: auto !important;\n }\n }\n"])));
13
+ var templateObject_1;
@@ -2,14 +2,18 @@ import { AnyObject } from 'antd/es/_util/type';
2
2
  import { AppProps } from 'antd';
3
3
  import { Checkbox } from 'antd';
4
4
  import { CheckboxChangeEvent } from 'antd/es/checkbox';
5
+ import { ColProps } from 'antd';
5
6
  import { ColumnTitleProps } from 'antd/es/table/interface';
6
7
  import { default as default_2 } from 'react';
8
+ import { FormItemProps } from 'antd';
9
+ import { FormProps } from 'antd';
7
10
  import { MessageInstance } from 'antd/es/message/interface';
8
11
  import { ModalStaticFunctions } from 'antd/es/modal/confirm';
9
12
  import { NotificationInstance } from 'antd/es/notification/interface';
10
13
  import { Options as Options_2 } from 'ahooks/lib/useRequest/src/types';
11
14
  import { Plugin as Plugin_2 } from 'ahooks/lib/useRequest/src/types';
12
15
  import { Result } from 'ahooks/lib/useRequest/src/types';
16
+ import { RowProps } from 'antd';
13
17
  import { Service } from 'ahooks/lib/useRequest/src/types';
14
18
  import { SwitchProps } from 'antd/es/switch';
15
19
  import { TableColumnType } from 'antd';
@@ -201,6 +205,23 @@ declare type IconFontProps = (IconFontCommonProps & default_2.SVGProps<SVGSVGEle
201
205
  symbol?: false;
202
206
  });
203
207
 
208
+ /**
209
+ * 筛选项
210
+ * @param props
211
+ * @return {JSX.Element}
212
+ * @constructor
213
+ */
214
+ declare function Index({ children, ...props }: FormItemProps): default_2.JSX.Element;
215
+
216
+ declare interface InternalSearchAreaProps extends FormProps<any> {
217
+ loading?: boolean;
218
+ onSearch?: (data: any) => void;
219
+ children?: default_2.ReactNode;
220
+ col?: ColProps;
221
+ row?: RowProps;
222
+ ref: SearchAreaRef;
223
+ }
224
+
204
225
  export declare let message: MessageInstance;
205
226
 
206
227
  export declare let modal: Omit<ModalStaticFunctions, 'warn'>;
@@ -215,6 +236,20 @@ declare interface Options<TData, TParams extends unknown[]> extends Options_2<TD
215
236
  errorMessage?: boolean;
216
237
  }
217
238
 
239
+ export declare const SearchArea: default_2.ForwardRefExoticComponent<InternalSearchAreaProps> & {
240
+ Item: typeof Index;
241
+ ToggleButton: typeof ToggleButton;
242
+ useSearchArea: () => {
243
+ show: boolean;
244
+ toggle: () => void;
245
+ };
246
+ };
247
+
248
+ declare interface SearchAreaRef {
249
+ show: boolean;
250
+ toggle: () => void;
251
+ }
252
+
218
253
  export declare let setGlobalLoading: (_value: boolean) => void;
219
254
 
220
255
  /**
@@ -271,6 +306,20 @@ declare interface TableComponentProps<RecordType = AnyObject> extends Omit<Table
271
306
  selectionPopover?: default_2.ReactNode;
272
307
  }
273
308
 
309
+ /**
310
+ * 高级筛选触发按钮
311
+ * @return {JSX.Element}
312
+ * @constructor
313
+ */
314
+ declare function ToggleButton({ panel }: ToggleButtonProps): default_2.JSX.Element;
315
+
316
+ declare interface ToggleButtonProps {
317
+ panel: {
318
+ show: boolean;
319
+ toggle: () => void;
320
+ };
321
+ }
322
+
274
323
  export declare function useRequest<TData, TParams extends unknown[]>(service: Service<TData, TParams>, options?: Options<TData, TParams>, plugins?: Array<Plugin_2<TData, TParams>>): WrappedResult<TData, TParams>;
275
324
 
276
325
  declare interface WrappedResult<TData, TParams extends unknown[]> extends Omit<Result<TData, TParams>, 'data'> {
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.useRequest = exports.Table = exports.ConfigContext = exports.ConfigProvider = exports.setGlobalLoading = exports.GlobalLoading = exports.IconButton = exports.SwitchValue = exports.CheckboxValue = exports.IconFont = exports.modal = exports.notification = exports.message = exports.App = void 0;
6
+ exports.useRequest = exports.SearchArea = exports.Table = exports.ConfigContext = exports.ConfigProvider = exports.setGlobalLoading = exports.GlobalLoading = exports.IconButton = exports.SwitchValue = exports.CheckboxValue = exports.IconFont = exports.modal = exports.notification = exports.message = exports.App = void 0;
7
7
  var AntdApp_1 = require("./components/AntdApp");
8
8
  Object.defineProperty(exports, "App", { enumerable: true, get: function () { return __importDefault(AntdApp_1).default; } });
9
9
  Object.defineProperty(exports, "message", { enumerable: true, get: function () { return AntdApp_1.message; } });
@@ -25,5 +25,7 @@ Object.defineProperty(exports, "ConfigProvider", { enumerable: true, get: functi
25
25
  Object.defineProperty(exports, "ConfigContext", { enumerable: true, get: function () { return ConfigProvider_1.ConfigContext; } });
26
26
  var Table_1 = require("./components/Table");
27
27
  Object.defineProperty(exports, "Table", { enumerable: true, get: function () { return __importDefault(Table_1).default; } });
28
+ var SearchArea_1 = require("./components/SearchArea");
29
+ Object.defineProperty(exports, "SearchArea", { enumerable: true, get: function () { return __importDefault(SearchArea_1).default; } });
28
30
  var useRequest_1 = require("./hooks/useRequest");
29
31
  Object.defineProperty(exports, "useRequest", { enumerable: true, get: function () { return __importDefault(useRequest_1).default; } });
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xmirror-components",
3
- "version": "1.0.29",
3
+ "version": "1.0.30-alpha.2",
4
4
  "type": "module",
5
5
  "main": "build/lib/index.js",
6
6
  "module": "build/es/index.js",
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { type FormItemProps } from 'antd';
3
+ /**
4
+ * 筛选项
5
+ * @param props
6
+ * @return {JSX.Element}
7
+ * @constructor
8
+ */
9
+ declare function Index({ children, ...props }: FormItemProps): React.JSX.Element;
10
+ export default Index;
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ interface ToggleButtonProps {
3
+ panel: {
4
+ show: boolean;
5
+ toggle: () => void;
6
+ };
7
+ }
8
+ /**
9
+ * 高级筛选触发按钮
10
+ * @return {JSX.Element}
11
+ * @constructor
12
+ */
13
+ declare function ToggleButton({ panel }: ToggleButtonProps): React.JSX.Element;
14
+ export default ToggleButton;
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { type FormProps, type ColProps, type RowProps } from 'antd';
3
+ import Item from './Item';
4
+ import ToggleButton from './ToggleButton';
5
+ interface SearchAreaRef {
6
+ show: boolean;
7
+ toggle: () => void;
8
+ }
9
+ interface InternalSearchAreaProps extends FormProps<any> {
10
+ loading?: boolean;
11
+ onSearch?: (data: any) => void;
12
+ children?: React.ReactNode;
13
+ col?: ColProps;
14
+ row?: RowProps;
15
+ ref: SearchAreaRef;
16
+ }
17
+ declare const SearchArea: React.ForwardRefExoticComponent<InternalSearchAreaProps> & {
18
+ Item: typeof Item;
19
+ ToggleButton: typeof ToggleButton;
20
+ useSearchArea: () => {
21
+ show: boolean;
22
+ toggle: () => void;
23
+ };
24
+ };
25
+ export default SearchArea;
@@ -1,5 +1,4 @@
1
1
  import React from 'react';
2
- import './index.less';
3
2
  import type { TableComponentProps } from '../types.ts';
4
3
  declare function Index(props: TableComponentProps): React.JSX.Element;
5
4
  export default Index;
@@ -0,0 +1,25 @@
1
+ export declare const TableFooterWrapper: import("@emotion/styled").StyledComponent<{
2
+ theme?: import("@emotion/react").Theme;
3
+ as?: React.ElementType;
4
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
5
+ export declare const TableFooterTotal: import("@emotion/styled").StyledComponent<{
6
+ theme?: import("@emotion/react").Theme;
7
+ as?: React.ElementType;
8
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
9
+ export declare const TableBatchDialog: import("@emotion/styled").StyledComponent<{
10
+ theme?: import("@emotion/react").Theme;
11
+ as?: React.ElementType;
12
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
13
+ export declare const StyledRow: import("@emotion/styled").StyledComponent<import("antd").RowProps & import("react").RefAttributes<HTMLDivElement> & {
14
+ theme?: import("@emotion/react").Theme;
15
+ }, {}, {}>;
16
+ export declare const CloseButton: import("@emotion/styled").StyledComponent<{
17
+ theme?: import("@emotion/react").Theme;
18
+ as?: React.ElementType;
19
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
20
+ export declare const zoomStyles: {
21
+ enter: string;
22
+ enterActive: string;
23
+ leaveActive: string;
24
+ };
25
+ export declare const globalStyles = "\n .zoom-enter {\n transform: scale(0);\n }\n\n .zoom-enter-active {\n transform: scale(1);\n }\n\n .zoom-leave-active {\n transform: scale(0);\n }\n";
@@ -1,6 +1,5 @@
1
1
  import React from 'react';
2
2
  import { type TableComponentProps } from '../types';
3
- import './index.less';
4
3
  interface PopoverSetColumnsProps {
5
4
  order: string[];
6
5
  visibleItems: string[];
@@ -0,0 +1,8 @@
1
+ export declare const PopoverWrapper: import("@emotion/styled").StyledComponent<{
2
+ theme?: import("@emotion/react").Theme;
3
+ as?: React.ElementType;
4
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
5
+ export declare const ColumnsSettingWrapper: import("@emotion/styled").StyledComponent<{
6
+ theme?: import("@emotion/react").Theme;
7
+ as?: React.ElementType;
8
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLUListElement>, HTMLUListElement>, {}>;
@@ -1,5 +1,4 @@
1
1
  import React from 'react';
2
2
  import type { AnyObject, TableComponentProps } from './types';
3
- import './index.less';
4
3
  declare const _default: React.ForwardRefExoticComponent<TableComponentProps<AnyObject> & React.RefAttributes<HTMLDivElement>>;
5
4
  export default _default;
@@ -0,0 +1,4 @@
1
+ export declare const TableWrapper: import("@emotion/styled").StyledComponent<{
2
+ theme?: import("@emotion/react").Theme;
3
+ as?: React.ElementType;
4
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
@@ -6,4 +6,5 @@ export { default as IconButton } from './components/IconButton';
6
6
  export { default as GlobalLoading, setGlobalLoading } from './components/GlobalLoading';
7
7
  export { default as ConfigProvider, ConfigContext } from './components/ConfigProvider';
8
8
  export { default as Table } from './components/Table';
9
+ export { default as SearchArea } from './components/SearchArea';
9
10
  export { default as useRequest } from './hooks/useRequest';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xmirror-components",
3
- "version": "1.0.29",
3
+ "version": "1.0.30-alpha.2",
4
4
  "type": "module",
5
5
  "main": "build/lib/index.js",
6
6
  "module": "build/es/index.js",
@@ -1 +0,0 @@
1
- .table-columns-setting-popover .ant-popover-inner-content{max-height:360px;padding:0;overflow-y:auto}.table-columns-setting-popover .table-columns-setting-wrapper{padding:10px 0}.table-columns-setting-popover .table-columns-setting-wrapper .drag-up{border:solid 2px #ccc;animation:dragup ease .2s 1;animation-fill-mode:forwards}.table-columns-setting-popover .table-columns-setting-wrapper .drag-down{border:solid 2px #ccc;animation:dragdown ease .2s 1;animation-fill-mode:forwards}.table-columns-setting-popover .table-columns-setting-wrapper li{width:150px;padding:5px 12px;overflow:hidden;text-overflow:ellipsis;word-break:keep-all;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:background-color .5s}.table-columns-setting-popover .table-columns-setting-wrapper li .icon-drag{margin-right:10px;color:#999;cursor:move}.table-columns-setting-popover .table-columns-setting-wrapper li[draggable=false] .icon-drag{cursor:no-drop;opacity:.2}.table-columns-setting-popover .table-columns-setting-wrapper li:hover{background-color:#f0f0f0}@keyframes dragup{0%{margin-top:0}to{margin-top:32px}}@keyframes dragdown{0%{margin-top:32px;margin-bottom:0}to{margin-top:0;margin-bottom:32px}}.table-wrapper .table-footer{position:absolute;left:8px}.table-wrapper .table-footer .table-footer-total{font-size:14px;color:#666}.table-wrapper .table-footer .table-batch-dialog{position:fixed;right:0;bottom:30px;left:0;z-index:9;width:600px;padding:15px 20px;margin:auto;color:#fff;background-color:#666;border-radius:5px;transition:all .5s}.table-wrapper .table-footer .table-batch-dialog .ant-checkbox-wrapper{margin-right:10px;color:#fff}.table-wrapper .table-footer .table-batch-dialog .ant-checkbox-wrapper .ant-checkbox-indeterminate .ant-checkbox-inner{background-color:transparent;border-color:#d9d9d9}.table-wrapper .table-footer .table-batch-dialog .btn-close{margin-left:20px;cursor:pointer;opacity:.5;transition:all .5s}.table-wrapper .table-footer .table-batch-dialog .btn-close:hover{opacity:1}.table-wrapper .table-footer .zoom-enter{transform:scale(0)}.table-wrapper .table-footer .zoom-enter-active{transform:scale(1)}.table-wrapper .table-footer .zoom-leave-active{transform:scale(0)}.table-wrapper{position:relative}.table-wrapper .ant-pagination-options .ant-select{width:auto!important}