@pointcloud/pcloud-components 0.0.1 → 0.1.1

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 (79) hide show
  1. package/README.md +47 -47
  2. package/dist/esm/AdvancedFilter/FormFilter.d.ts +1 -0
  3. package/dist/esm/AdvancedFilter/styles/index.less +2 -1
  4. package/dist/esm/DCascader/index.d.ts +28 -0
  5. package/dist/esm/DCascader/index.js +231 -0
  6. package/dist/esm/DCascader/index.less +20 -0
  7. package/dist/esm/DInput/index.d.ts +19 -0
  8. package/dist/esm/DInput/index.js +128 -0
  9. package/dist/esm/DSelect/index.d.ts +25 -0
  10. package/dist/esm/DSelect/index.js +187 -0
  11. package/dist/esm/DTable/index.d.ts +39 -0
  12. package/dist/esm/DTable/index.js +246 -0
  13. package/dist/esm/DTable/index.less +62 -0
  14. package/dist/esm/DTreeSelect/index.d.ts +26 -0
  15. package/dist/esm/DTreeSelect/index.js +209 -0
  16. package/dist/esm/DTreeSelect/index.less +9 -0
  17. package/dist/esm/ErrorBoundary/index.d.ts +1 -0
  18. package/dist/esm/ErrorBoundary/index.less +2 -1
  19. package/dist/esm/LabelValue/styles/index.less +2 -1
  20. package/dist/esm/Loading/index.d.ts +1 -1
  21. package/dist/esm/Loading/loading.d.ts +1 -0
  22. package/dist/esm/Loading/styles/index.less +2 -1
  23. package/dist/esm/NoData/index.d.ts +1 -0
  24. package/dist/esm/NoData/styles/index.less +2 -1
  25. package/dist/esm/commonStyle/index.less +1 -0
  26. package/dist/esm/index.d.ts +10 -0
  27. package/dist/esm/index.js +6 -1
  28. package/dist/umd/pcloud-components.min.css +1 -1
  29. package/dist/umd/pcloud-components.min.js +1 -114
  30. package/package.json +4 -4
  31. package/dist/cjs/AdvancedFilter/FormFilter.d.ts +0 -5
  32. package/dist/cjs/AdvancedFilter/FormFilter.js +0 -158
  33. package/dist/cjs/AdvancedFilter/demos/demo1.d.ts +0 -3
  34. package/dist/cjs/AdvancedFilter/demos/demo1.js +0 -56
  35. package/dist/cjs/AdvancedFilter/demos/demo2.d.ts +0 -3
  36. package/dist/cjs/AdvancedFilter/demos/demo2.js +0 -63
  37. package/dist/cjs/AdvancedFilter/demos/demo3.d.ts +0 -3
  38. package/dist/cjs/AdvancedFilter/demos/demo3.js +0 -113
  39. package/dist/cjs/AdvancedFilter/index.d.ts +0 -5
  40. package/dist/cjs/AdvancedFilter/index.js +0 -114
  41. package/dist/cjs/AdvancedFilter/interface.d.ts +0 -97
  42. package/dist/cjs/AdvancedFilter/interface.js +0 -17
  43. package/dist/cjs/AdvancedFilter/styles/index.less +0 -115
  44. package/dist/cjs/ErrorBoundary/index.d.ts +0 -6
  45. package/dist/cjs/ErrorBoundary/index.js +0 -45
  46. package/dist/cjs/ErrorBoundary/index.less +0 -42
  47. package/dist/cjs/LabelValue/demos/demo1.d.ts +0 -3
  48. package/dist/cjs/LabelValue/demos/demo1.js +0 -35
  49. package/dist/cjs/LabelValue/demos/demo2.d.ts +0 -3
  50. package/dist/cjs/LabelValue/demos/demo2.js +0 -36
  51. package/dist/cjs/LabelValue/demos/demo3.d.ts +0 -3
  52. package/dist/cjs/LabelValue/demos/demo3.js +0 -36
  53. package/dist/cjs/LabelValue/index.d.ts +0 -16
  54. package/dist/cjs/LabelValue/index.js +0 -50
  55. package/dist/cjs/LabelValue/interface.d.ts +0 -29
  56. package/dist/cjs/LabelValue/interface.js +0 -17
  57. package/dist/cjs/LabelValue/styles/index.less +0 -18
  58. package/dist/cjs/index.d.ts +0 -4
  59. package/dist/cjs/index.js +0 -38
  60. package/dist/esm/AdvancedFilter/demos/demo1.d.ts +0 -2
  61. package/dist/esm/AdvancedFilter/demos/demo1.js +0 -25
  62. package/dist/esm/AdvancedFilter/demos/demo2.d.ts +0 -2
  63. package/dist/esm/AdvancedFilter/demos/demo2.js +0 -39
  64. package/dist/esm/AdvancedFilter/demos/demo3.d.ts +0 -2
  65. package/dist/esm/AdvancedFilter/demos/demo3.js +0 -86
  66. package/dist/esm/LabelValue/demos/demo1.d.ts +0 -2
  67. package/dist/esm/LabelValue/demos/demo1.js +0 -9
  68. package/dist/esm/LabelValue/demos/demo2.d.ts +0 -2
  69. package/dist/esm/LabelValue/demos/demo2.js +0 -10
  70. package/dist/esm/LabelValue/demos/demo3.d.ts +0 -2
  71. package/dist/esm/LabelValue/demos/demo3.js +0 -10
  72. package/dist/esm/Loading/demos/demo1.d.ts +0 -2
  73. package/dist/esm/Loading/demos/demo1.js +0 -17
  74. package/dist/esm/Loading/demos/demo2.d.ts +0 -2
  75. package/dist/esm/Loading/demos/demo2.js +0 -18
  76. package/dist/esm/NoData/demos/demo1.d.ts +0 -2
  77. package/dist/esm/NoData/demos/demo1.js +0 -12
  78. package/dist/esm/NoData/demos/demo2.d.ts +0 -2
  79. package/dist/esm/NoData/demos/demo2.js +0 -14
package/README.md CHANGED
@@ -1,47 +1,47 @@
1
- # pui-components
2
-
3
- pui-components 是一套基于 Antd v4.19.3 + React v17.0.0 开发的业务组件库。
4
-
5
- ## 开始
6
-
7
- 安装依赖
8
-
9
- ```bash
10
- $ npm i
11
- ```
12
-
13
- 启动服务
14
-
15
- ```bash
16
- $ npm start
17
- ```
18
-
19
- 构建文档
20
-
21
- ```bash
22
- $ npm run docs:build
23
- ```
24
-
25
- 构建库
26
-
27
- ```bash
28
- $ npm run build
29
- ```
30
-
31
- 发布文档站点
32
-
33
- ```bash
34
- $ npm run deploy
35
- ```
36
-
37
- 构建 Docker 镜像
38
-
39
- ```bash
40
- $ npm run docker:build
41
- ```
42
-
43
- 推送 Docker 镜像
44
-
45
- ```bash
46
- $ npm run docker:push
47
- ```
1
+ # pui-components
2
+
3
+ pui-components 是一套基于 Antd v4.19.3 + React v17.0.0 开发的业务组件库。
4
+
5
+ ## 开始
6
+
7
+ 安装依赖
8
+
9
+ ```bash
10
+ $ npm i
11
+ ```
12
+
13
+ 启动服务
14
+
15
+ ```bash
16
+ $ npm start
17
+ ```
18
+
19
+ 构建文档
20
+
21
+ ```bash
22
+ $ npm run docs:build
23
+ ```
24
+
25
+ 构建库
26
+
27
+ ```bash
28
+ $ npm run build
29
+ ```
30
+
31
+ 发布文档站点
32
+
33
+ ```bash
34
+ $ npm run deploy
35
+ ```
36
+
37
+ 构建 Docker 镜像
38
+
39
+ ```bash
40
+ $ npm run docker:build
41
+ ```
42
+
43
+ 推送 Docker 镜像
44
+
45
+ ```bash
46
+ $ npm run docker:push
47
+ ```
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { FProps } from './interface';
2
3
  import './styles/index.less';
3
4
  declare const _default: (props: FProps) => JSX.Element;
@@ -1,4 +1,5 @@
1
- .pui-search-filter {
1
+ @import '../../commonStyle/index.less';
2
+ .@{prefix}-search-filter {
2
3
  align-items: center;
3
4
  width: 100%;
4
5
  margin-top: 10px;
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+ import { DefaultOptionType, CascaderProps, CascaderRef } from 'antd/lib/cascader';
3
+ import './index.less';
4
+ /**
5
+ *
6
+ * 如何只显示选中的子节点
7
+ */
8
+ export declare type DCascaderProps = Omit<CascaderProps<any>, 'options' | 'loadData' | 'loading'> & {
9
+ /** antd的options属性,同onSearch属性,可以是一个options数组,或一个返回等价options数组的promise */
10
+ options?: DefaultOptionType[] | ((value?: string, option?: DefaultOptionType, options?: DefaultOptionType[]) => Promise<DefaultOptionType[] | any[]>);
11
+ /** antd的loadData属性,动态加载子级列表数据,默认使用options所提供的方法,如果传入null,则表示不进行动态加载,该方法要求返回一个options数组或与其等价的Promise */
12
+ loadData?: ((value?: string, option?: DefaultOptionType, options?: DefaultOptionType[]) => Promise<DefaultOptionType[] | any[]>) | null;
13
+ /** 等同antd的loadData属性,用于监听antd loadData事件*/
14
+ onLoadData?: (value?: string, option?: DefaultOptionType, options?: DefaultOptionType[]) => void;
15
+ /** antd的loading属性,是否显示加载中:传入数字表示延迟加载,单位毫秒,0等同于false */
16
+ loading?: boolean | number;
17
+ };
18
+ declare const DCascader: React.ForwardRefExoticComponent<Omit<CascaderProps<any>, "options" | "loading" | "loadData"> & {
19
+ /** antd的options属性,同onSearch属性,可以是一个options数组,或一个返回等价options数组的promise */
20
+ options?: DefaultOptionType[] | ((value?: string, option?: DefaultOptionType, options?: DefaultOptionType[]) => Promise<DefaultOptionType[] | any[]>) | undefined;
21
+ /** antd的loadData属性,动态加载子级列表数据,默认使用options所提供的方法,如果传入null,则表示不进行动态加载,该方法要求返回一个options数组或与其等价的Promise */
22
+ loadData?: ((value?: string, option?: DefaultOptionType, options?: DefaultOptionType[]) => Promise<DefaultOptionType[] | any[]>) | null | undefined;
23
+ /** 等同antd的loadData属性,用于监听antd loadData事件*/
24
+ onLoadData?: ((value?: string, option?: DefaultOptionType, options?: DefaultOptionType[]) => void) | undefined;
25
+ /** antd的loading属性,是否显示加载中:传入数字表示延迟加载,单位毫秒,0等同于false */
26
+ loading?: number | boolean | undefined;
27
+ } & React.RefAttributes<CascaderRef>>;
28
+ export default DCascader;
@@ -0,0 +1,231 @@
1
+ var _excluded = ["className", "popupClassName", "fieldNames", "options", "onChange", "loadData", "onLoadData", "loading"];
2
+
3
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
4
+
5
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
6
+
7
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
8
+
9
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
10
+
11
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
12
+
13
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
14
+
15
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
16
+
17
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
18
+
19
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
20
+
21
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
22
+
23
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
24
+
25
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
26
+
27
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
28
+
29
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
30
+
31
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
32
+
33
+ /*
34
+ * @Author : wangfeihu
35
+ * @Date : 2023-05-18 13:35:38
36
+ * @LastEditors : wangfeihu
37
+ * @LastEditTime : 2023-05-26 16:18:55
38
+ * @Description : 基于antd的Cascader组件
39
+ */
40
+ import React, { useRef, forwardRef, useState, useEffect, useMemo, useContext } from 'react';
41
+ import { Cascader } from 'antd';
42
+ import { ConfigContext } from "../ConfigProvider";
43
+ import "./index.less";
44
+ /**
45
+ *
46
+ * 如何只显示选中的子节点
47
+ */
48
+
49
+ import { jsx as _jsx } from "react/jsx-runtime";
50
+
51
+ function InternalCascader(props, ref) {
52
+ var _props$className = props.className,
53
+ className = _props$className === void 0 ? '' : _props$className,
54
+ _props$popupClassName = props.popupClassName,
55
+ popupClassName = _props$popupClassName === void 0 ? '' : _props$popupClassName,
56
+ fieldNames = props.fieldNames,
57
+ initOptions = props.options,
58
+ onChange = props.onChange,
59
+ loadData = props.loadData,
60
+ onLoadData = props.onLoadData,
61
+ initLoading = props.loading,
62
+ otherProps = _objectWithoutProperties(props, _excluded);
63
+
64
+ var _useContext = useContext(ConfigContext),
65
+ getPrefixCls = _useContext.getPrefixCls;
66
+
67
+ var _useState = useState([]),
68
+ _useState2 = _slicedToArray(_useState, 2),
69
+ options = _useState2[0],
70
+ setOptions = _useState2[1];
71
+
72
+ var _useState3 = useState(typeof initLoading === 'boolean' ? initLoading : true),
73
+ _useState4 = _slicedToArray(_useState3, 2),
74
+ loading = _useState4[0],
75
+ setLoading = _useState4[1];
76
+
77
+ var loadingParamsRef = useRef(null); // 数据加载同步处理引用
78
+
79
+ var loadingRef = useRef({
80
+ timer: null,
81
+ status: 'done'
82
+ }); // options加载状态引用
83
+
84
+ var timestamp = new Date().getTime();
85
+
86
+ var _className = "".concat(getPrefixCls('cascader'), " d-cascader-").concat(timestamp, " ").concat(className);
87
+
88
+ var _popupClassName = "".concat(getPrefixCls('cascader-dropdown'), " d-cascader-dropdown-").concat(timestamp, " ").concat(popupClassName);
89
+
90
+ var _fieldNames = _objectSpread({
91
+ label: 'label',
92
+ value: 'value',
93
+ children: 'children'
94
+ }, fieldNames);
95
+
96
+ var _loadingState = getDelayTime(loading, 600); // loading: 默认600ms,false或0表示不开启
97
+
98
+
99
+ var _loading = typeof initLoading === 'boolean' ? initLoading : loading; // 将外部传入的options转化为统一的异步请求方法
100
+
101
+
102
+ var getOptionsFun = useMemo(function () {
103
+ return typeof initOptions === 'function' ? initOptions : function () {
104
+ return Promise.resolve(initOptions || []);
105
+ };
106
+ }, [initOptions]);
107
+
108
+ var updateOptions = function updateOptions(fun, value) {
109
+ // 设置加载中状态
110
+ if (_loadingState > 0) {
111
+ loadingRef.current.status = 'loading';
112
+ clearTimeout(loadingRef.current.timer);
113
+ loadingRef.current.timer = setTimeout(function () {
114
+ loadingRef.current.status === 'loading' && setLoading(true);
115
+ }, _loadingState);
116
+ } // 发起请求
117
+
118
+
119
+ loadingParamsRef.current = value;
120
+ fun === null || fun === void 0 ? void 0 : fun(value).then(function (response) {
121
+ if (loadingParamsRef.current === value) {
122
+ setOptions(response);
123
+ setLoading(false);
124
+ loadingRef.current.status = 'done';
125
+ }
126
+ }).catch(function () {
127
+ if (loadingParamsRef.current === value) {
128
+ setLoading(false);
129
+ loadingRef.current.status = 'done';
130
+ }
131
+ });
132
+ };
133
+
134
+ var _loadData = function _loadData(selectedOptions) {
135
+ var targetOption = selectedOptions[selectedOptions.length - 1];
136
+ onLoadData && onLoadData(targetOption[_fieldNames.value], targetOption, selectedOptions);
137
+
138
+ var _getOptions = typeof initOptions === 'function' ? initOptions : null;
139
+
140
+ var loadFn = loadData === null ? loadData : loadData || _getOptions;
141
+
142
+ if (typeof loadFn === 'function') {
143
+ loadFn === null || loadFn === void 0 ? void 0 : loadFn(targetOption[_fieldNames.value], targetOption, selectedOptions).then(function (response) {
144
+ targetOption[_fieldNames.children] = response;
145
+ targetOption.loading = false;
146
+ setOptions(_toConsumableArray(options));
147
+ }).catch(function () {
148
+ targetOption.loading = false;
149
+ setOptions(_toConsumableArray(options));
150
+ });
151
+ }
152
+ };
153
+
154
+ var _onChange = function _onChange(value, selectedOptions) {
155
+ return onChange === null || onChange === void 0 ? void 0 : onChange(value, selectedOptions);
156
+ }; // 初始加载数据
157
+ // eslint-disable-next-line react-hooks/exhaustive-deps
158
+
159
+
160
+ useEffect(function () {
161
+ return updateOptions(getOptionsFun);
162
+ }, [getOptionsFun]); // 操作dom设置下拉菜单样式,使下拉菜单宽度与选择框保持一致
163
+
164
+ useEffect(function () {
165
+ var dSelectDropDom = document.querySelector(".d-cascader-dropdown-".concat(timestamp));
166
+
167
+ if (dSelectDropDom) {
168
+ updateDropDom(dSelectDropDom, timestamp);
169
+ } else {
170
+ var observer = new MutationObserver(function (mutations) {
171
+ var _ref = mutations[0] || {},
172
+ addedNodes = _ref.addedNodes;
173
+
174
+ for (var i = 0; i < addedNodes.length; i++) {
175
+ if (typeof addedNodes[i]['querySelector'] === 'function') {
176
+ var _dSelectDropDom = addedNodes[i]['querySelector'](".d-cascader-dropdown-".concat(timestamp));
177
+
178
+ if (_dSelectDropDom) {
179
+ observer.disconnect();
180
+ updateDropDom(_dSelectDropDom, timestamp);
181
+ }
182
+ }
183
+ }
184
+ });
185
+ observer.observe(document.body, {
186
+ childList: true
187
+ });
188
+ return function () {
189
+ return observer === null || observer === void 0 ? void 0 : observer.disconnect();
190
+ };
191
+ }
192
+ }, [timestamp]);
193
+ return /*#__PURE__*/_jsx(Cascader, _objectSpread(_objectSpread({}, otherProps), {}, {
194
+ ref: ref,
195
+ fieldNames: _fieldNames,
196
+ loadData: _loadData,
197
+ className: _className,
198
+ popupClassName: _popupClassName,
199
+ options: options,
200
+ loading: _loading,
201
+ onChange: _onChange
202
+ }));
203
+ } // 获取延时时间,默认800ms,true代表默认时间,false代表0
204
+
205
+
206
+ function getDelayTime(value) {
207
+ var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 800;
208
+
209
+ if (value === true) {
210
+ return defaultValue;
211
+ } else if (value === false) {
212
+ return 0;
213
+ } else {
214
+ return typeof value === 'number' ? Number(value) || 0 : defaultValue;
215
+ }
216
+ }
217
+
218
+ function updateDropDom(dSelectDropDom, timestamp) {
219
+ var dSelectDom = document.querySelector(".d-cascader-".concat(timestamp));
220
+ var dSelectDropFirstMenu = dSelectDropDom.querySelector('ul.ant-cascader-menu');
221
+
222
+ if (dSelectDom) {
223
+ // 获取选择框宽度并恢复其初始样式
224
+ dSelectDropDom.style.minWidth = "".concat(dSelectDom.clientWidth, "px");
225
+ dSelectDropFirstMenu.style.minWidth = "".concat(dSelectDom.clientWidth, "px"); // className && dSelectDom.setAttribute('class', className.replace(`d-cascader-${timestamp}`, ''));
226
+ // dSelectDropDom.setAttribute('class', dSelectDropDom.className.replace(`d-cascader-dropdown-${timestamp}`, ''));
227
+ }
228
+ }
229
+
230
+ var DCascader = /*#__PURE__*/forwardRef(InternalCascader);
231
+ export default DCascader;
@@ -0,0 +1,20 @@
1
+ @import '../commonStyle/index.less';
2
+ .@{prefix}-cascader-dropdown .ant-cascader-menu {
3
+ &::-webkit-scrollbar {
4
+ width: 8px;
5
+ height: 8px;
6
+ }
7
+ // 轨道拖动部分的背景颜色
8
+ &::-webkit-scrollbar-thumb {
9
+ background-color: rgba(0, 0, 0, 0.5);
10
+ border-radius: 8px;
11
+ }
12
+ // 轨道背景颜色
13
+ &::-webkit-scrollbar-track {
14
+ border-radius: 2px;
15
+ }
16
+ // x、y两条轨道的交叉处
17
+ &::-webkit-scrollbar-corner {
18
+ background-color: #f1f1f1;
19
+ }
20
+ }
@@ -0,0 +1,19 @@
1
+ import React, { ChangeEvent } from 'react';
2
+ import { InputProps, InputRef } from 'antd';
3
+ export declare type DInputProps = Omit<InputProps, 'onChange'> & {
4
+ /** 输入框内容变化时的回调 */
5
+ onChange?: (value: string, event: ChangeEvent<HTMLInputElement>) => void;
6
+ /** 是否启用合成输入 */
7
+ enableCompose?: boolean;
8
+ /** 是否开启防抖: true表示800毫秒,false或0表示不开启 */
9
+ debounce?: boolean | number;
10
+ };
11
+ declare const DInput: React.ForwardRefExoticComponent<Omit<InputProps, "onChange"> & {
12
+ /** 输入框内容变化时的回调 */
13
+ onChange?: ((value: string, event: ChangeEvent<HTMLInputElement>) => void) | undefined;
14
+ /** 是否启用合成输入 */
15
+ enableCompose?: boolean | undefined;
16
+ /** 是否开启防抖: true表示800毫秒,false或0表示不开启 */
17
+ debounce?: number | boolean | undefined;
18
+ } & React.RefAttributes<InputRef>>;
19
+ export default DInput;
@@ -0,0 +1,128 @@
1
+ var _excluded = ["className", "onChange", "onCompositionStart", "onCompositionEnd", "value", "debounce", "enableCompose"];
2
+
3
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
+
5
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
+
7
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
8
+
9
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
10
+
11
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
12
+
13
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
14
+
15
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
16
+
17
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
18
+
19
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
20
+
21
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
22
+
23
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
24
+
25
+ /*
26
+ * @Author : wangfeihu
27
+ * @Date : 2023-05-16 10:08:26
28
+ * @LastEditors : wangfeihu
29
+ * @LastEditTime : 2023-05-26 09:44:03
30
+ * @Description : 基于antd的Input组件
31
+ */
32
+ import React, { useRef, forwardRef, useState, useContext } from 'react';
33
+ import { Input } from 'antd';
34
+ import { ConfigContext } from "../ConfigProvider";
35
+ import { jsx as _jsx } from "react/jsx-runtime";
36
+
37
+ function InternalInput(props, ref) {
38
+ var _props$className = props.className,
39
+ className = _props$className === void 0 ? '' : _props$className,
40
+ onChange = props.onChange,
41
+ onCompositionStart = props.onCompositionStart,
42
+ onCompositionEnd = props.onCompositionEnd,
43
+ initValue = props.value,
44
+ _props$debounce = props.debounce,
45
+ debounce = _props$debounce === void 0 ? false : _props$debounce,
46
+ _props$enableCompose = props.enableCompose,
47
+ enableCompose = _props$enableCompose === void 0 ? true : _props$enableCompose,
48
+ otherProps = _objectWithoutProperties(props, _excluded);
49
+
50
+ var _useContext = useContext(ConfigContext),
51
+ getPrefixCls = _useContext.getPrefixCls;
52
+
53
+ var _useState = useState(initValue),
54
+ _useState2 = _slicedToArray(_useState, 2),
55
+ value = _useState2[0],
56
+ setValue = _useState2[1];
57
+
58
+ var _useState3 = useState(false),
59
+ _useState4 = _slicedToArray(_useState3, 2),
60
+ composeFlag = _useState4[0],
61
+ setComposeFlag = _useState4[1];
62
+
63
+ var debounceRef = useRef();
64
+
65
+ var _className = "".concat(getPrefixCls('input'), " ").concat(className); // debounce: 默认800ms,false或0表示不开启
66
+
67
+
68
+ var _debounce = getDebounceTime(debounce);
69
+
70
+ var emitChange = function emitChange(_value, e) {
71
+ if (_debounce > 0) {
72
+ clearTimeout(debounceRef.current);
73
+ debounceRef.current = setTimeout(function () {
74
+ onChange === null || onChange === void 0 ? void 0 : onChange(_value, e);
75
+ }, _debounce);
76
+ } else {
77
+ onChange === null || onChange === void 0 ? void 0 : onChange(_value, e);
78
+ }
79
+ }; // 监听用户onChange事件(如果正在进行合成输入,则不响应用户事件)
80
+
81
+
82
+ var _onChange = function _onChange(e) {
83
+ var _value = e.target.value;
84
+ setValue(_value);
85
+ if (!composeFlag) emitChange(_value, e);
86
+ }; // 监听合成输入开始事件(执行用户事件并置合成标记为true)
87
+
88
+
89
+ var _onCompositionStart = function _onCompositionStart(e) {
90
+ onCompositionStart === null || onCompositionStart === void 0 ? void 0 : onCompositionStart(e);
91
+ enableCompose && setComposeFlag(true);
92
+ }; // 监听合成输入结束事件(执行用户事件并置合成标记为false,同时触发用户onChange事件)
93
+
94
+
95
+ var _onCompositionEnd = function _onCompositionEnd(e) {
96
+ onCompositionEnd === null || onCompositionEnd === void 0 ? void 0 : onCompositionEnd(e);
97
+
98
+ if (enableCompose) {
99
+ setComposeFlag(false);
100
+ emitChange(e.target.value, e);
101
+ }
102
+ };
103
+
104
+ return /*#__PURE__*/_jsx(Input, _objectSpread(_objectSpread({}, otherProps), {}, {
105
+ className: _className,
106
+ ref: ref,
107
+ value: value,
108
+ onChange: _onChange,
109
+ onCompositionStart: _onCompositionStart,
110
+ onCompositionEnd: _onCompositionEnd
111
+ }));
112
+ } // 获取防抖超时时间,debounce: 默认800ms,false或0表示不开启
113
+
114
+
115
+ function getDebounceTime(debounce) {
116
+ var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 800;
117
+
118
+ if (debounce === true) {
119
+ return defaultValue;
120
+ } else if (debounce === false) {
121
+ return 0;
122
+ } else {
123
+ return typeof debounce === 'number' ? debounce : defaultValue;
124
+ }
125
+ }
126
+
127
+ var DInput = /*#__PURE__*/forwardRef(InternalInput);
128
+ export default DInput;
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { SelectProps } from 'antd';
3
+ import { DefaultOptionType } from 'antd/lib/select';
4
+ import { BaseSelectRef } from 'rc-select/lib/BaseSelect';
5
+ export declare type DSelectProps = Omit<SelectProps, 'options' | 'onSearch' | 'loading'> & {
6
+ /** antd的onSearch属性,onSearch有效时showSearch自动为true */
7
+ onSearch?: (params?: any) => Promise<DefaultOptionType[] | any[]>;
8
+ /** antd的options属性,可以是一个options数组,或一个返回等价options数组的promise */
9
+ options?: DefaultOptionType[] | DSelectProps['onSearch'];
10
+ /** antd的loading属性,是否显示加载中:传入数字表示延迟加载,单位毫秒,0等同于false */
11
+ loading?: boolean | number;
12
+ /** 是否开启防抖: true表示800毫秒,true表示默认值,false或0表示不开启 */
13
+ debounce?: boolean | number;
14
+ };
15
+ declare const DSelect: React.ForwardRefExoticComponent<Omit<SelectProps<any, DefaultOptionType>, "onSearch" | "options" | "loading"> & {
16
+ /** antd的onSearch属性,onSearch有效时showSearch自动为true */
17
+ onSearch?: ((params?: any) => Promise<DefaultOptionType[] | any[]>) | undefined;
18
+ /** antd的options属性,可以是一个options数组,或一个返回等价options数组的promise */
19
+ options?: DefaultOptionType[] | DSelectProps['onSearch'];
20
+ /** antd的loading属性,是否显示加载中:传入数字表示延迟加载,单位毫秒,0等同于false */
21
+ loading?: number | boolean | undefined;
22
+ /** 是否开启防抖: true表示800毫秒,true表示默认值,false或0表示不开启 */
23
+ debounce?: number | boolean | undefined;
24
+ } & React.RefAttributes<BaseSelectRef>>;
25
+ export default DSelect;