linkmore-design 1.0.36 → 1.0.39

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 (105) hide show
  1. package/dist/Cascader/demos/basic.d.ts +2 -0
  2. package/dist/Cascader/index.d.ts +4 -0
  3. package/dist/Cascader/style/index.d.ts +1 -0
  4. package/dist/Form/demos/basic.d.ts +2 -0
  5. package/dist/Form/demos/drawer1152-triple.d.ts +3 -0
  6. package/dist/Form/demos/drawer440-double.d.ts +3 -0
  7. package/dist/Form/demos/drawer440.d.ts +3 -0
  8. package/dist/Form/demos/drawer720-double.d.ts +3 -0
  9. package/dist/Form/demos/modal416.d.ts +3 -0
  10. package/dist/Form/demos/modal552-double.d.ts +3 -0
  11. package/dist/Form/index.d.ts +24 -0
  12. package/dist/Form/style/index.d.ts +1 -0
  13. package/dist/LmSelect/GhostSelect.d.ts +2 -0
  14. package/dist/LmSelect/NormalSelect.d.ts +11 -0
  15. package/dist/LmSelect/demos/basic.d.ts +2 -0
  16. package/dist/LmSelect/demos/checkbox.d.ts +2 -0
  17. package/dist/LmSelect/demos/ghost.d.ts +2 -0
  18. package/dist/LmSelect/index.d.ts +14 -0
  19. package/dist/LmSelect/style/index.d.ts +1 -0
  20. package/dist/LmSelect/useCheckboxOptions.d.ts +1 -0
  21. package/dist/LmSelect/utils.d.ts +10 -0
  22. package/dist/LmTable/demos/tableSort.d.ts +2 -0
  23. package/dist/VirtualList/index.d.ts +1 -1
  24. package/dist/hooks/index.d.ts +2 -0
  25. package/dist/hooks/useEvent/index.d.ts +2 -0
  26. package/dist/hooks/useFullscreen/demos/basic.d.ts +2 -0
  27. package/dist/hooks/useFullscreen/index.d.ts +15 -0
  28. package/dist/index.d.ts +4 -1
  29. package/dist/index.umd.js +6977 -4280
  30. package/dist/index.umd.min.js +6 -14
  31. package/es/Cascader/index.d.ts +4 -0
  32. package/es/Cascader/index.js +37 -0
  33. package/es/Cascader/style/index.css +520 -0
  34. package/es/Cascader/style/index.d.ts +1 -0
  35. package/es/Cascader/style/index.js +1 -0
  36. package/es/CustomTableOption/index.js +5 -6
  37. package/es/Form/index.d.ts +24 -0
  38. package/es/Form/index.js +56 -0
  39. package/es/Form/style/index.css +531 -0
  40. package/es/Form/style/index.d.ts +1 -0
  41. package/es/Form/style/index.js +1 -0
  42. package/es/LmSelect/GhostSelect.d.ts +2 -0
  43. package/es/LmSelect/GhostSelect.js +523 -0
  44. package/es/LmSelect/NormalSelect.d.ts +11 -0
  45. package/es/LmSelect/NormalSelect.js +97 -0
  46. package/es/LmSelect/icon_placeholder.png +0 -0
  47. package/es/LmSelect/index.d.ts +14 -0
  48. package/es/LmSelect/index.js +34 -0
  49. package/es/LmSelect/style/index.css +751 -0
  50. package/es/LmSelect/style/index.d.ts +1 -0
  51. package/es/LmSelect/style/index.js +1 -0
  52. package/es/LmSelect/useCheckboxOptions.d.ts +1 -0
  53. package/es/LmSelect/useCheckboxOptions.js +120 -0
  54. package/es/LmSelect/utils.d.ts +10 -0
  55. package/es/LmSelect/utils.js +66 -0
  56. package/es/LmTable/Table.js +100 -25
  57. package/es/LmTable/style/style.css +13 -0
  58. package/es/Radio/style/style.css +3 -4
  59. package/es/VirtualList/index.js +2 -1
  60. package/es/hooks/index.d.ts +2 -0
  61. package/es/hooks/index.js +2 -0
  62. package/es/hooks/useEvent/index.d.ts +2 -0
  63. package/es/hooks/useEvent/index.js +16 -0
  64. package/es/hooks/useFullscreen/index.d.ts +15 -0
  65. package/es/hooks/useFullscreen/index.js +99 -0
  66. package/es/index.d.ts +4 -1
  67. package/es/index.js +4 -1
  68. package/lib/Cascader/index.d.ts +4 -0
  69. package/lib/Cascader/index.js +50 -0
  70. package/lib/Cascader/style/index.css +520 -0
  71. package/lib/Cascader/style/index.d.ts +1 -0
  72. package/lib/Cascader/style/index.js +3 -0
  73. package/lib/CustomTableOption/index.js +5 -6
  74. package/lib/Form/index.d.ts +24 -0
  75. package/lib/Form/index.js +75 -0
  76. package/lib/Form/style/index.css +531 -0
  77. package/lib/Form/style/index.d.ts +1 -0
  78. package/lib/Form/style/index.js +3 -0
  79. package/lib/LmSelect/GhostSelect.d.ts +2 -0
  80. package/lib/LmSelect/GhostSelect.js +545 -0
  81. package/lib/LmSelect/NormalSelect.d.ts +11 -0
  82. package/lib/LmSelect/NormalSelect.js +116 -0
  83. package/lib/LmSelect/icon_placeholder.png +0 -0
  84. package/lib/LmSelect/index.d.ts +14 -0
  85. package/lib/LmSelect/index.js +50 -0
  86. package/lib/LmSelect/style/index.css +751 -0
  87. package/lib/LmSelect/style/index.d.ts +1 -0
  88. package/lib/LmSelect/style/index.js +3 -0
  89. package/lib/LmSelect/useCheckboxOptions.d.ts +1 -0
  90. package/lib/LmSelect/useCheckboxOptions.js +139 -0
  91. package/lib/LmSelect/utils.d.ts +10 -0
  92. package/lib/LmSelect/utils.js +103 -0
  93. package/lib/LmTable/Table.js +100 -25
  94. package/lib/LmTable/style/style.css +13 -0
  95. package/lib/Radio/style/style.css +3 -4
  96. package/lib/VirtualList/index.js +2 -1
  97. package/lib/hooks/index.d.ts +2 -0
  98. package/lib/hooks/index.js +23 -0
  99. package/lib/hooks/useEvent/index.d.ts +2 -0
  100. package/lib/hooks/useEvent/index.js +25 -0
  101. package/lib/hooks/useFullscreen/index.d.ts +15 -0
  102. package/lib/hooks/useFullscreen/index.js +113 -0
  103. package/lib/index.d.ts +4 -1
  104. package/lib/index.js +25 -1
  105. package/package.json +6 -4
@@ -0,0 +1 @@
1
+ import './index.less';
@@ -0,0 +1 @@
1
+ import "./index.css";
@@ -0,0 +1 @@
1
+ export declare const useCheckboxOptions: (options: any, controllable: any, filter?: string) => JSX.Element;
@@ -0,0 +1,120 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
+
4
+ var __rest = this && this.__rest || function (s, e) {
5
+ var t = {};
6
+
7
+ for (var p in s) {
8
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
9
+ }
10
+
11
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
12
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
13
+ }
14
+ return t;
15
+ };
16
+
17
+ import { useEvent } from '../hooks';
18
+ import { useControllableValue } from 'ahooks';
19
+ import classNames from 'classnames';
20
+ import { Checkbox, VirtualList } from 'linkmore-design';
21
+ import React, { useMemo } from 'react';
22
+ import { onStringSearch } from './utils';
23
+
24
+ var imgEmpty = require('./icon_placeholder.png');
25
+
26
+ var FilterEmpty = function FilterEmpty() {
27
+ return /*#__PURE__*/React.createElement("div", {
28
+ className: "filter_empty"
29
+ }, /*#__PURE__*/React.createElement("img", {
30
+ src: imgEmpty,
31
+ alt: "empty",
32
+ width: 81
33
+ }), /*#__PURE__*/React.createElement("div", {
34
+ className: "filter_empty_text"
35
+ }, "\u6682\u65E0\u6570\u636E"));
36
+ }; // todo 抽取出来, 后续做统一处理, 项目中多处用到类似的功能
37
+
38
+
39
+ export var useCheckboxOptions = function useCheckboxOptions(options, controllable) {
40
+ var filter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
41
+
42
+ // 将value和onChange改为受控,和父组件共享
43
+ var _useControllableValue = useControllableValue(controllable),
44
+ _useControllableValue2 = _slicedToArray(_useControllableValue, 2),
45
+ checkedValues = _useControllableValue2[0],
46
+ setCheckedValues = _useControllableValue2[1];
47
+
48
+ var renderOptions = useMemo(function () {
49
+ return options.filter(function (v) {
50
+ return onStringSearch(filter, v.label);
51
+ });
52
+ }, [options, filter]); // 是否全选: 选中的数据大于等于筛选后的数据 && 筛选后的数据全部存在于选中的数据中
53
+
54
+ var checkAll = useMemo(function () {
55
+ var isLen = checkedValues.length >= renderOptions.length;
56
+ return isLen && renderOptions.every(function (_ref) {
57
+ var value = _ref.value;
58
+ return checkedValues.includes(value);
59
+ });
60
+ }, [checkedValues.length, renderOptions]); // 是否半选: 存在选中的数据 && 未全选
61
+
62
+ var indeterminate = useMemo(function () {
63
+ return checkedValues.length && !checkAll;
64
+ }, [checkedValues.length, checkAll]); // 全选事件
65
+
66
+ var onCheckAllChange = useEvent(function () {
67
+ var nValue = checkAll ? checkedValues.filter(function (v) {
68
+ return !renderOptions.some(function (_ref2) {
69
+ var value = _ref2.value;
70
+ return v === value;
71
+ });
72
+ }) : Array.from(new Set([].concat(_toConsumableArray(checkedValues), _toConsumableArray(renderOptions.map(function (v) {
73
+ return v.value;
74
+ })))));
75
+ setCheckedValues(nValue);
76
+ });
77
+ var onChange = useEvent(function (e, item) {
78
+ e.preventDefault();
79
+ e.stopPropagation();
80
+ var arr = checkedValues.includes(item.value) ? checkedValues.filter(function (v) {
81
+ return v !== item.value;
82
+ }) : [].concat(_toConsumableArray(checkedValues), [item.value]);
83
+ setCheckedValues(arr || undefined);
84
+ });
85
+ return /*#__PURE__*/React.createElement("div", {
86
+ className: "select_dropdown"
87
+ }, /*#__PURE__*/React.createElement("div", {
88
+ className: "filter_header"
89
+ }, /*#__PURE__*/React.createElement("div", {
90
+ className: "filter_header_operate"
91
+ }, /*#__PURE__*/React.createElement(Checkbox, {
92
+ indeterminate: indeterminate,
93
+ onChange: onCheckAllChange,
94
+ checked: checkAll,
95
+ className: "filter_tip"
96
+ }, "\u5168\u90E8"), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("span", {
97
+ className: "filter_tip"
98
+ }, "\u5DF2\u9009: ", checkedValues.length)))), /*#__PURE__*/React.createElement(Checkbox.Group, {
99
+ value: checkedValues,
100
+ className: "filter_body"
101
+ }, /*#__PURE__*/React.createElement(VirtualList, {
102
+ options: renderOptions,
103
+ className: "filter_list"
104
+ }, function (_a) {
105
+ var item = _a.item,
106
+ resetProps = __rest(_a, ["item"]);
107
+
108
+ return /*#__PURE__*/React.createElement("div", Object.assign({}, resetProps, {
109
+ className: classNames('filter_item', {
110
+ checked: checkedValues.includes(item.value)
111
+ }),
112
+ onClick: function onClick(e) {
113
+ return onChange(e, item);
114
+ }
115
+ }), /*#__PURE__*/React.createElement(Checkbox, {
116
+ value: item.value,
117
+ className: "filter_item-content"
118
+ }, item.label));
119
+ }), !renderOptions.length && /*#__PURE__*/React.createElement(FilterEmpty, null)));
120
+ };
@@ -0,0 +1,10 @@
1
+ export declare function getArray(val: any): any[];
2
+ export declare const isOptions: (key: any) => boolean;
3
+ export declare const onStringSearch: (key?: string, str?: string) => boolean;
4
+ export declare function getOptions(children: any): any[];
5
+ export declare function getIsHas(val: any): boolean;
6
+ export declare function isClassComponent(component: any): any;
7
+ export declare function isExoticComponent(component: any): boolean;
8
+ export declare function isReactComponent(component: any): any;
9
+ export declare const render: (Comp: any, props?: {}) => any;
10
+ export declare const useSearch: (showSearch: any, renderOptions: any) => any;
@@ -0,0 +1,66 @@
1
+ import _typeof from "@babel/runtime/helpers/esm/typeof";
2
+ import React, { useMemo } from 'react'; // 获取数组
3
+
4
+ export function getArray(val) {
5
+ if (!val) return [];
6
+ return Array.isArray(val) ? val : [val];
7
+ } // 判断是否符合options格式
8
+
9
+ export var isOptions = function isOptions(key) {
10
+ return ['label', 'value'].includes(key);
11
+ }; // 查询搜索, 都转成小写用于匹配
12
+
13
+ export var onStringSearch = function onStringSearch() {
14
+ var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
15
+ var str = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
16
+ return str.toLowerCase().includes(key.toLowerCase());
17
+ }; // 将options和children都转成options
18
+
19
+ export function getOptions(children) {
20
+ var array = getArray(children);
21
+ return array.map(function (item) {
22
+ if (Object.keys(item).every(isOptions)) return item;
23
+ return {
24
+ label: item.props.children,
25
+ value: item.props.value,
26
+ disabled: !!item.props.disabled
27
+ };
28
+ });
29
+ } // 检查是否存在内容
30
+
31
+ export function getIsHas(val) {
32
+ var _a; // 检查是否数字类型, 是否布尔类型
33
+
34
+
35
+ var flag = !!val || typeof val === 'number' || typeof val === 'boolean'; // 检查空对象和空数组
36
+
37
+ if (!!val && _typeof(val) === 'object') {
38
+ flag = Array.isArray(val) ? !!val.length : !!((_a = Object.keys(val)) === null || _a === void 0 ? void 0 : _a.length);
39
+ }
40
+
41
+ return flag;
42
+ } // 检查是否类组件
43
+
44
+ export function isClassComponent(component) {
45
+ return typeof component === 'function' && function () {
46
+ var proto = Object.getPrototypeOf(component);
47
+ return proto.prototype && proto.prototype.isReactComponent;
48
+ }();
49
+ } // 检查是否自定义组件
50
+
51
+ export function isExoticComponent(component) {
52
+ return _typeof(component) === 'object' && _typeof(component.$$typeof) === 'symbol' && ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description);
53
+ } // 检查是否React组件
54
+
55
+ export function isReactComponent(component) {
56
+ return isClassComponent(component) || typeof component === 'function' || isExoticComponent(component);
57
+ }
58
+ export var render = function render(Comp) {
59
+ var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
60
+ return !Comp ? null : isReactComponent(Comp) ? /*#__PURE__*/React.createElement(Comp, Object.assign({}, props)) : Comp;
61
+ };
62
+ export var useSearch = function useSearch(showSearch, renderOptions) {
63
+ return useMemo(function () {
64
+ return showSearch || renderOptions.length > 8;
65
+ }, [renderOptions.length, showSearch]);
66
+ };
@@ -13,29 +13,53 @@ require("antd/es/config-provider/style");
13
13
 
14
14
  var _configProvider = _interopRequireDefault(require("antd/es/config-provider"));
15
15
 
16
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/extends"));
17
-
18
16
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
19
17
 
20
18
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
21
19
 
20
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/extends"));
21
+
22
22
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
23
23
 
24
24
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties"));
25
25
 
26
+ var _icons = require("@ant-design/icons");
27
+
26
28
  var _proTable = _interopRequireDefault(require("@ant-design/pro-table"));
27
29
 
30
+ var _sortable = require("@dnd-kit/sortable");
31
+
28
32
  var _lodash = require("lodash");
29
33
 
30
34
  var _react = _interopRequireWildcard(require("react"));
31
35
 
36
+ var _reactSortableHoc = require("react-sortable-hoc");
37
+
32
38
  var _empty = _interopRequireDefault(require("./assets/empty.png"));
33
39
 
34
40
  var _resetConfig = _interopRequireDefault(require("./resetConfig"));
35
41
 
36
- var _excluded = ["dataSource", "autoSize", "columns", "rowClick", "onDoubleClick", "checkConfig", "summary", "pagination", "hiddenPage", "loading", "virtual", "customCheck", "rowSelection", "columnsState", "tableRowType"];
42
+ var _excluded = ["dataSource", "autoSize", "columns", "rowClick", "onDoubleClick", "checkConfig", "summary", "pagination", "hiddenPage", "loading", "virtual", "sortOpen", "customCheck", "rowSelection", "columnsState", "tableRowType"],
43
+ _excluded2 = ["className", "style"];
37
44
  var Summary = _proTable.default.Summary;
38
45
  exports.Summary = Summary;
46
+ var DragHandle = (0, _reactSortableHoc.SortableHandle)(function () {
47
+ return /*#__PURE__*/_react.default.createElement(_icons.MenuOutlined, {
48
+ style: {
49
+ cursor: 'grab',
50
+ color: '#999'
51
+ }
52
+ });
53
+ });
54
+ var sortDefaultColumnItem = {
55
+ title: '排序',
56
+ dataIndex: 'sort',
57
+ width: 60,
58
+ className: 'drag-visible',
59
+ render: function render() {
60
+ return /*#__PURE__*/_react.default.createElement(DragHandle, null);
61
+ }
62
+ };
39
63
  var ResetTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
40
64
  var dataSource = props.dataSource,
41
65
  autoSize = props.autoSize,
@@ -49,6 +73,8 @@ var ResetTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
49
73
  loading = props.loading,
50
74
  _props$virtual = props.virtual,
51
75
  virtual = _props$virtual === void 0 ? false : _props$virtual,
76
+ _props$sortOpen = props.sortOpen,
77
+ sortOpen = _props$sortOpen === void 0 ? false : _props$sortOpen,
52
78
  customCheck = props.customCheck,
53
79
  rowSelection = props.rowSelection,
54
80
  columnsState = props.columnsState,
@@ -81,7 +107,48 @@ var ResetTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
81
107
  var _useState7 = (0, _react.useState)(),
82
108
  _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
83
109
  columnsStateMap = _useState8[0],
84
- setColumnsStateMap = _useState8[1]; // 原宽度,先宽度,序号
110
+ setColumnsStateMap = _useState8[1];
111
+
112
+ var SortableItem = (0, _reactSortableHoc.SortableElement)(function (props) {
113
+ return /*#__PURE__*/_react.default.createElement("tr", props);
114
+ });
115
+ var SortContainer = (0, _reactSortableHoc.SortableContainer)(function (props) {
116
+ return /*#__PURE__*/_react.default.createElement("tbody", props);
117
+ });
118
+
119
+ var onSortEnd = function onSortEnd(_ref) {
120
+ var oldIndex = _ref.oldIndex,
121
+ newIndex = _ref.newIndex;
122
+
123
+ if (oldIndex !== newIndex) {
124
+ var newData = (0, _sortable.arrayMove)(dataSource, oldIndex, newIndex).filter(function (el) {
125
+ return !!el;
126
+ });
127
+ console.log(newData, 'nnnnnn'); // setDataSource([...newData])
128
+ }
129
+ };
130
+
131
+ var DraggableContainer = function DraggableContainer(props) {
132
+ return /*#__PURE__*/_react.default.createElement(SortContainer, (0, _extends2.default)({
133
+ useDragHandle: true,
134
+ disableAutoscroll: true,
135
+ helperClass: "row-dragging",
136
+ onSortEnd: onSortEnd
137
+ }, props));
138
+ };
139
+
140
+ var DraggableBodyRow = function DraggableBodyRow(props) {
141
+ var className = props.className,
142
+ style = props.style,
143
+ restProps = (0, _objectWithoutProperties2.default)(props, _excluded2);
144
+ var index = dataSource.findIndex(function (x) {
145
+ return x[rowKey || 'index'] === restProps['data-row-key'];
146
+ });
147
+ console.log(dataSource, restProps, 222, index);
148
+ return /*#__PURE__*/_react.default.createElement(SortableItem, (0, _extends2.default)({
149
+ index: index
150
+ }, restProps));
151
+ }; // 原宽度,先宽度,序号
85
152
 
86
153
 
87
154
  var handleResize = function handleResize(sc, size, index) {
@@ -98,7 +165,7 @@ var ResetTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
98
165
  };
99
166
 
100
167
  var resetColumns = (0, _react.useCallback)(function () {
101
- return useColumns.filter(function (item) {
168
+ var result = useColumns.filter(function (item) {
102
169
  return item.show !== false;
103
170
  }).map(function (col, index) {
104
171
  return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, col), {}, {
@@ -113,7 +180,9 @@ var ResetTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
113
180
  }
114
181
  });
115
182
  });
116
- }, [useColumns]);
183
+ console.log(sortOpen ? [sortDefaultColumnItem].concat((0, _toConsumableArray2.default)(result)) : result, sortOpen, 111);
184
+ return sortOpen ? [sortDefaultColumnItem].concat((0, _toConsumableArray2.default)(result)) : result;
185
+ }, [useColumns, sortOpen]);
117
186
  (0, _react.useEffect)(function () {
118
187
  setColumns(columns);
119
188
  }, [columns]); // 行点击事件
@@ -250,10 +319,10 @@ var ResetTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
250
319
  var obj = (0, _objectSpread2.default)({}, columnsState);
251
320
  columns === null || columns === void 0 ? void 0 : columns.forEach(function (item) {
252
321
  /** 目前支持三种 */
253
- var _ref = obj[item.dataIndex || item.key] || {},
254
- order = _ref.order,
255
- show = _ref.show,
256
- fixed = _ref.fixed;
322
+ var _ref2 = obj[item.dataIndex || item.key] || {},
323
+ order = _ref2.order,
324
+ show = _ref2.show,
325
+ fixed = _ref2.fixed;
257
326
 
258
327
  obj[item.dataIndex || item.key] = {
259
328
  fixed: fixed || item.fixed,
@@ -322,7 +391,12 @@ var ResetTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
322
391
  }, /*#__PURE__*/_react.default.createElement(_proTable.default, (0, _extends2.default)({}, config, {
323
392
  loading: loading,
324
393
  dataSource: dataSource,
325
- components: virtual ? vComponents : null,
394
+ components: sortOpen ? {
395
+ body: {
396
+ wrapper: DraggableContainer,
397
+ row: DraggableBodyRow
398
+ }
399
+ } : null,
326
400
  tableClassName: "lm_protable",
327
401
  summary: function summary(pageData) {
328
402
  return _summary && _summary(pageData, resultColumns);
@@ -416,24 +490,25 @@ var ResizeSize = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
416
490
 
417
491
  var handResize = (0, _lodash.throttle)(changeSize, 600);
418
492
  (0, _react.useEffect)(function () {
419
- var _tableWarpRef$current8;
420
-
421
493
  var hiddenPage = props.hiddenPage,
422
494
  customCheck = props.customCheck,
423
495
  summary = props.summary;
424
-
425
- var _tableWarpRef$current5 = (_tableWarpRef$current8 = tableWarpRef.current) === null || _tableWarpRef$current8 === void 0 ? void 0 : _tableWarpRef$current8.getBoundingClientRect(),
426
- _tableWarpRef$current6 = _tableWarpRef$current5.width,
427
- width = _tableWarpRef$current6 === void 0 ? '100%' : _tableWarpRef$current6,
428
- _tableWarpRef$current7 = _tableWarpRef$current5.height,
429
- height = _tableWarpRef$current7 === void 0 ? '100%' : _tableWarpRef$current7;
430
-
431
- var value = summary ? 48 : 0;
496
+ setTimeout(function () {
497
+ var _tableWarpRef$current8;
498
+
499
+ var _tableWarpRef$current5 = (_tableWarpRef$current8 = tableWarpRef.current) === null || _tableWarpRef$current8 === void 0 ? void 0 : _tableWarpRef$current8.getBoundingClientRect(),
500
+ _tableWarpRef$current6 = _tableWarpRef$current5.width,
501
+ width = _tableWarpRef$current6 === void 0 ? '100%' : _tableWarpRef$current6,
502
+ _tableWarpRef$current7 = _tableWarpRef$current5.height,
503
+ height = _tableWarpRef$current7 === void 0 ? '100%' : _tableWarpRef$current7;
504
+
505
+ var value = summary ? 48 : 0;
506
+ setTableSize({
507
+ width: width,
508
+ height: typeof height === 'string' ? "calc(".concat(height, " - ").concat(value, "px)") : height - value
509
+ });
510
+ }, 100);
432
511
  resizeRef.current = window.addEventListener('resize', handResize);
433
- setTableSize({
434
- width: width,
435
- height: typeof height === 'string' ? "calc(".concat(height, " - ").concat(value, "px)") : height - value
436
- });
437
512
  return function () {
438
513
  window.removeEventListener('resize', handResize);
439
514
  };
@@ -1410,3 +1410,16 @@ html {
1410
1410
  height: 48px;
1411
1411
  display: flex;
1412
1412
  }
1413
+ .row-dragging {
1414
+ background: var(--color-6);
1415
+ border: 1px solid var(--color-6);
1416
+ display: flex;
1417
+ align-items: center;
1418
+ font-size: 12px;
1419
+ }
1420
+ .row-dragging td {
1421
+ padding: 16px;
1422
+ }
1423
+ .row-dragging .drag-visible {
1424
+ visibility: visible;
1425
+ }
@@ -28,15 +28,15 @@
28
28
  }
29
29
  .lm-radio-group .ant-radio-button-wrapper {
30
30
  font-size: 12px;
31
- line-height: 30px;
32
31
  height: 32px;
33
- padding: 1px 12px;
32
+ padding: 0px 12px;
34
33
  color: var(--font-color);
35
34
  vertical-align: middle;
36
35
  }
37
36
  .lm-radio-group .ant-radio-button-wrapper .anticon {
38
37
  font-size: 16px;
39
38
  vertical-align: middle;
39
+ line-height: 1;
40
40
  }
41
41
  .lm-radio-group .ant-radio-button-wrapper:hover {
42
42
  color: var(--primary-color);
@@ -44,7 +44,6 @@
44
44
  .lm-radio-group .ant-radio-button-wrapper > span:last-child {
45
45
  display: inline-block;
46
46
  font-size: 12px;
47
- line-height: 30px;
48
47
  max-width: 96px;
49
48
  overflow: hidden;
50
49
  white-space: nowrap;
@@ -73,7 +72,7 @@
73
72
  .lm-radio-group.ant-radio-group-small .ant-radio-button-wrapper {
74
73
  line-height: 22px;
75
74
  height: 24px;
76
- padding: 1px 8px;
75
+ padding: 0px 8px;
77
76
  }
78
77
  .lm-radio-group.ant-radio-group-small .ant-radio-button-wrapper > span:last-child {
79
78
  line-height: 22px;
@@ -17,7 +17,8 @@ var VirList = function VirList(_ref) {
17
17
  children = _ref.children,
18
18
  _ref$size = _ref.size,
19
19
  size = _ref$size === void 0 ? 32 : _ref$size,
20
- parentRef = _ref.parentRef,
20
+ _ref$parentRef = _ref.parentRef,
21
+ parentRef = _ref$parentRef === void 0 ? null : _ref$parentRef,
21
22
  className = _ref.className,
22
23
  _ref$maxHeight = _ref.maxHeight,
23
24
  maxHeight = _ref$maxHeight === void 0 ? 224 : _ref$maxHeight;
@@ -0,0 +1,2 @@
1
+ export { default as useFullscreen } from './useFullscreen';
2
+ export { default as useEvent } from './useEvent';
@@ -0,0 +1,2 @@
1
+ export { default as useFullscreen } from './useFullscreen';
2
+ export { default as useEvent } from './useEvent';
@@ -0,0 +1,2 @@
1
+ declare function useEvent(handler: any): (...args: any[]) => any;
2
+ export default useEvent;
@@ -0,0 +1,16 @@
1
+ import { useCallback, useLayoutEffect, useRef } from 'react'; // * 解决useCallback的依赖传导问题,存储事件
2
+
3
+ function useEvent(handler) {
4
+ var handlerRef = useRef(null); // 同步,运行时间在布局前
5
+
6
+ useLayoutEffect(function () {
7
+ handlerRef.current = handler;
8
+ }); // 存储方法函数
9
+
10
+ return useCallback(function () {
11
+ var fn = handlerRef.current;
12
+ return fn.apply(void 0, arguments);
13
+ }, []);
14
+ }
15
+
16
+ export default useEvent;
@@ -0,0 +1,15 @@
1
+ import type { MutableRefObject } from 'react';
2
+ declare type TargetValue<T> = T | undefined | null;
3
+ declare type TargetType = HTMLElement | Element | Window | Document;
4
+ declare type BasicTarget<T extends TargetType = Element> = (() => TargetValue<T>) | TargetValue<T> | MutableRefObject<TargetValue<T>>;
5
+ interface Options {
6
+ onExit?: () => void;
7
+ onEnter?: () => void;
8
+ }
9
+ declare const useFullscreen: (target: BasicTarget, options?: Options) => {
10
+ isFullscreen: boolean;
11
+ enterFullscreen: () => void;
12
+ exitFullscreen: () => void;
13
+ toggleFullscreen: () => void;
14
+ };
15
+ export default useFullscreen;
@@ -0,0 +1,99 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import { useState, useRef, useEffect } from 'react';
3
+ import { message } from '../../index';
4
+ var isBrowser = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
5
+
6
+ var isFunction = function isFunction(value) {
7
+ return typeof value === 'function';
8
+ };
9
+
10
+ var getTargetElement = function getTargetElement(target, defaultElement) {
11
+ if (!isBrowser) {
12
+ return undefined;
13
+ }
14
+
15
+ if (!target) {
16
+ return defaultElement;
17
+ }
18
+
19
+ var targetElement;
20
+
21
+ if (isFunction(target)) {
22
+ targetElement = target();
23
+ } else if ('current' in target) {
24
+ targetElement = target.current;
25
+ } else {
26
+ targetElement = target;
27
+ }
28
+
29
+ return targetElement;
30
+ };
31
+
32
+ var fullScreenCssText = 'position: fixed;width: 100%;height:100%;top:0;left:0;z-index:1009;background-color: #abcdef;';
33
+
34
+ var useFullscreen = function useFullscreen(target, options) {
35
+ var _ref = options || {},
36
+ onExit = _ref.onExit,
37
+ onEnter = _ref.onEnter;
38
+
39
+ var _useState = useState(false),
40
+ _useState2 = _slicedToArray(_useState, 2),
41
+ isFullscreen = _useState2[0],
42
+ setIsFullscreen = _useState2[1];
43
+
44
+ var originCssTextRef = useRef('');
45
+ var eleRef = useRef(null);
46
+
47
+ var enterFullscreen = function enterFullscreen() {
48
+ onEnter === null || onEnter === void 0 ? void 0 : onEnter();
49
+ setIsFullscreen(true);
50
+ var el = getTargetElement(target);
51
+
52
+ if (!eleRef.current) {
53
+ eleRef.current = el;
54
+ var originCssText = el.style.cssText;
55
+ originCssTextRef.current = originCssText;
56
+ }
57
+
58
+ eleRef.current.style.cssText = "".concat(originCssTextRef.current).concat(fullScreenCssText);
59
+ message.info({
60
+ content: '使用 Esc 键可退出全屏模式',
61
+ key: 'tip'
62
+ });
63
+ };
64
+
65
+ var exitFullscreen = function exitFullscreen() {
66
+ onExit === null || onExit === void 0 ? void 0 : onExit();
67
+ setIsFullscreen(false);
68
+ eleRef.current.style.cssText = "".concat(originCssTextRef.current);
69
+ };
70
+
71
+ var toggleFullscreen = function toggleFullscreen() {
72
+ if (isFullscreen) {
73
+ exitFullscreen();
74
+ } else {
75
+ enterFullscreen();
76
+ }
77
+ };
78
+
79
+ useEffect(function () {
80
+ var fn = function fn(event) {
81
+ if (event.keyCode === 27) {
82
+ exitFullscreen();
83
+ }
84
+ };
85
+
86
+ window.addEventListener('keydown', fn);
87
+ return function () {
88
+ window.removeEventListener('keydown', fn);
89
+ };
90
+ }, []);
91
+ return {
92
+ isFullscreen: isFullscreen,
93
+ enterFullscreen: enterFullscreen,
94
+ exitFullscreen: exitFullscreen,
95
+ toggleFullscreen: toggleFullscreen
96
+ };
97
+ };
98
+
99
+ export default useFullscreen;
package/es/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export { default as Button } from './Button';
2
2
  export { default as ButtonTags } from './ButtonTags';
3
3
  export { default as Card } from './Card';
4
+ export { default as Cascader } from './Cascader';
4
5
  export { default as Checkbox } from './Checkbox';
5
6
  export { default as CkFilter } from './CkFilter';
6
7
  export { default as CustomerService } from './CustomerService';
@@ -17,6 +18,7 @@ export { default as Input } from './Input';
17
18
  export { default as InputNumber } from './InputNumber';
18
19
  export { default as LeftTable } from './LeftTable';
19
20
  export { default as LmTable } from './LmTable';
21
+ export { default as LmSelect } from './LmSelect';
20
22
  export { default as LoadingPage } from './LoadingPage';
21
23
  export { default as Menu } from './Menu';
22
24
  export { default as Modal } from './Modal';
@@ -40,5 +42,6 @@ export { default as Switch } from './Switch';
40
42
  export { default as Image } from './Image';
41
43
  export { default as CustomTableOption } from './CustomTableOption';
42
44
  export { default as Upload } from './Upload';
43
- export type { UploadProps, UploadFile } from './Upload';
45
+ export type { UploadProps, UploadFile, RcFile } from './Upload';
44
46
  export { default as Tooltip } from './Tooltip';
47
+ export { default as Form } from './Form';
package/es/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  export { default as Button } from './Button';
2
2
  export { default as ButtonTags } from './ButtonTags';
3
3
  export { default as Card } from './Card';
4
+ export { default as Cascader } from './Cascader';
4
5
  export { default as Checkbox } from './Checkbox';
5
6
  export { default as CkFilter } from './CkFilter';
6
7
  export { default as CustomerService } from './CustomerService';
@@ -17,6 +18,7 @@ export { default as Input } from './Input';
17
18
  export { default as InputNumber } from './InputNumber';
18
19
  export { default as LeftTable } from './LeftTable';
19
20
  export { default as LmTable } from './LmTable';
21
+ export { default as LmSelect } from './LmSelect';
20
22
  export { default as LoadingPage } from './LoadingPage';
21
23
  export { default as Menu } from './Menu';
22
24
  export { default as Modal } from './Modal';
@@ -40,4 +42,5 @@ export { default as Switch } from './Switch';
40
42
  export { default as Image } from './Image';
41
43
  export { default as CustomTableOption } from './CustomTableOption';
42
44
  export { default as Upload } from './Upload';
43
- export { default as Tooltip } from './Tooltip';
45
+ export { default as Tooltip } from './Tooltip';
46
+ export { default as Form } from './Form';