@zykj2024/much-library 1.1.7-beta.3 → 1.1.7-beta.4

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 (167) hide show
  1. package/dist/esm/McCascader/city.js +909 -0
  2. package/dist/esm/McCascader/index.d.ts +19 -0
  3. package/dist/esm/McCascader/index.js +221 -0
  4. package/dist/esm/McCascader/index.less +72 -0
  5. package/dist/esm/McContainer/index.d.ts +192 -0
  6. package/dist/esm/McContainer/index.js +522 -0
  7. package/dist/esm/McContainer/index.less +132 -0
  8. package/dist/esm/McDateRange/index.d.ts +28 -0
  9. package/dist/esm/McDateRange/index.js +167 -0
  10. package/dist/esm/McDateRange/index.less +33 -0
  11. package/dist/esm/McEllipsis/index.d.ts +40 -0
  12. package/dist/esm/McEllipsis/index.js +115 -0
  13. package/dist/esm/McEllipsis/index.less +9 -0
  14. package/dist/esm/McEllipsisMiddle/index.d.ts +13 -0
  15. package/dist/esm/McEllipsisMiddle/index.js +42 -0
  16. package/dist/esm/McEllipsisMiddle/index.less +9 -0
  17. package/dist/esm/McFonts/index.d.ts +8 -0
  18. package/dist/esm/McFonts/index.js +7 -0
  19. package/dist/esm/McGroupPanel/comps/SelectedItem/index.d.ts +4 -0
  20. package/dist/esm/McGroupPanel/comps/SelectedItem/index.js +75 -0
  21. package/dist/esm/McGroupPanel/index.d.ts +30 -0
  22. package/dist/esm/McGroupPanel/index.js +426 -0
  23. package/dist/esm/McGroupPanel/index.less +161 -0
  24. package/dist/esm/McIconFont/iconfont.js +1 -0
  25. package/dist/esm/McIconFont/index.d.ts +5 -0
  26. package/dist/esm/McIconFont/index.js +8 -0
  27. package/dist/esm/McIcons/business.json +137 -0
  28. package/dist/esm/McIcons/index.less +22 -0
  29. package/dist/esm/McInput/Input.d.ts +19 -0
  30. package/dist/esm/McInput/Input.js +48 -0
  31. package/dist/esm/McInput/Search.d.ts +39 -0
  32. package/dist/esm/McInput/Search.js +81 -0
  33. package/dist/esm/McInput/TextArea.d.ts +11 -0
  34. package/dist/esm/McInput/TextArea.js +37 -0
  35. package/dist/esm/McInput/demo/Input/addonBefore.d.ts +3 -0
  36. package/dist/esm/McInput/demo/Input/addonBefore.js +67 -0
  37. package/dist/esm/McInput/demo/Input/base.d.ts +2 -0
  38. package/dist/esm/McInput/demo/Input/base.js +31 -0
  39. package/dist/esm/McInput/demo/Input/isTrim.d.ts +2 -0
  40. package/dist/esm/McInput/demo/Input/isTrim.js +22 -0
  41. package/dist/esm/McInput/demo/Input/label.d.ts +2 -0
  42. package/dist/esm/McInput/demo/Input/label.js +26 -0
  43. package/dist/esm/McInput/demo/Input/ref.d.ts +3 -0
  44. package/dist/esm/McInput/demo/Input/ref.js +53 -0
  45. package/dist/esm/McInput/demo/Input/status.d.ts +2 -0
  46. package/dist/esm/McInput/demo/Input/status.js +23 -0
  47. package/dist/esm/McInput/demo/Search/search-base.d.ts +2 -0
  48. package/dist/esm/McInput/demo/Search/search-base.js +38 -0
  49. package/dist/esm/McInput/demo/TextArea/text-area-base.d.ts +2 -0
  50. package/dist/esm/McInput/demo/TextArea/text-area-base.js +38 -0
  51. package/dist/esm/McInput/index.d.ts +13 -0
  52. package/dist/esm/McInput/index.js +7 -0
  53. package/dist/esm/McInput/index.less +62 -0
  54. package/dist/esm/McInputNumber/index.d.ts +16 -0
  55. package/dist/esm/McInputNumber/index.js +50 -0
  56. package/dist/esm/McInputNumber/index.less +18 -0
  57. package/dist/esm/McLazyLoader/index.d.ts +39 -0
  58. package/dist/esm/McLazyLoader/index.js +88 -0
  59. package/dist/esm/McListSelect/comps/ListSelect.d.ts +67 -0
  60. package/dist/esm/McListSelect/comps/ListSelect.js +289 -0
  61. package/dist/esm/McListSelect/comps/ListSelectPanel.d.ts +138 -0
  62. package/dist/esm/McListSelect/comps/ListSelectPanel.js +451 -0
  63. package/dist/esm/McListSelect/comps/SelectedItem.d.ts +17 -0
  64. package/dist/esm/McListSelect/comps/SelectedItem.js +76 -0
  65. package/dist/esm/McListSelect/index.d.ts +10 -0
  66. package/dist/esm/McListSelect/index.js +5 -0
  67. package/dist/esm/McListSelect/index.less +257 -0
  68. package/dist/esm/McModalProvider/index.d.ts +174 -0
  69. package/dist/esm/McModalProvider/index.js +498 -0
  70. package/dist/esm/McPeriodSelect/index.d.ts +13 -0
  71. package/dist/esm/McPeriodSelect/index.js +305 -0
  72. package/dist/esm/McPeriodSelect/index.less +187 -0
  73. package/dist/esm/McPopoverButton/index.d.ts +14 -0
  74. package/dist/esm/McPopoverButton/index.js +52 -0
  75. package/dist/esm/McPopoverForm/index.d.ts +14 -0
  76. package/dist/esm/McPopoverForm/index.js +95 -0
  77. package/dist/esm/McProSelect/index.d.ts +35 -0
  78. package/dist/esm/McProSelect/index.js +152 -0
  79. package/dist/esm/McResult/default.d.ts +1 -0
  80. package/dist/esm/McResult/default.js +98 -0
  81. package/dist/esm/McResult/icon.d.ts +25 -0
  82. package/dist/esm/McResult/icon.js +1014 -0
  83. package/dist/esm/McResult/index.d.ts +31 -0
  84. package/dist/esm/McResult/index.js +119 -0
  85. package/dist/esm/McResult/index.less +18 -0
  86. package/dist/esm/McResult/public/403.svg +164 -0
  87. package/dist/esm/McResult/public/404.svg +123 -0
  88. package/dist/esm/McResult/public/500.svg +129 -0
  89. package/dist/esm/McResult/public/building.svg +127 -0
  90. package/dist/esm/McResult/public/code403.svg +7 -0
  91. package/dist/esm/McResult/public/code404.svg +5 -0
  92. package/dist/esm/McResult/public/code500.svg +5 -0
  93. package/dist/esm/McResult/public/detailEmpty.svg +1 -0
  94. package/dist/esm/McResult/public/empty.svg +1 -0
  95. package/dist/esm/McResult/public/noFunction.svg +1 -0
  96. package/dist/esm/McResult/public/noUser.svg +90 -0
  97. package/dist/esm/McSelect/components/PanelSearchInput/index.d.ts +12 -0
  98. package/dist/esm/McSelect/components/PanelSearchInput/index.js +45 -0
  99. package/dist/esm/McSelect/components/PanelSearchInput/index.less +7 -0
  100. package/dist/esm/McSelect/index.d.ts +47 -0
  101. package/dist/esm/McSelect/index.js +436 -0
  102. package/dist/esm/McSelect/index.less +72 -0
  103. package/dist/esm/McTag/index.d.ts +22 -0
  104. package/dist/esm/McTag/index.js +59 -0
  105. package/dist/esm/McThemeConfig/customToken.json +39 -0
  106. package/dist/esm/McThemeConfig/globalStyle.d.ts +2 -0
  107. package/dist/esm/McThemeConfig/globalStyle.js +198 -0
  108. package/dist/esm/McThemeConfig/index.d.ts +9 -0
  109. package/dist/esm/McThemeConfig/index.js +16 -0
  110. package/dist/esm/McThemeConfig/layoutStyle.d.ts +2 -0
  111. package/dist/esm/McThemeConfig/layoutStyle.js +1 -0
  112. package/dist/esm/McThemeConfig/provider.d.ts +8 -0
  113. package/dist/esm/McThemeConfig/provider.js +20 -0
  114. package/dist/esm/McThemeConfig/themeToken.json +152 -0
  115. package/dist/esm/McTreePanel/SelectedItem.d.ts +4 -0
  116. package/dist/esm/McTreePanel/SelectedItem.js +75 -0
  117. package/dist/esm/McTreePanel/index.d.ts +27 -0
  118. package/dist/esm/McTreePanel/index.js +315 -0
  119. package/dist/esm/McTreePanel/index.less +106 -0
  120. package/dist/esm/McTreeSelect/index.d.ts +13 -0
  121. package/dist/esm/McTreeSelect/index.js +182 -0
  122. package/dist/esm/McTreeSelect/index.less +72 -0
  123. package/dist/esm/McUpload/comps/McFormUpload/comps/UploadForVal/index.d.ts +38 -0
  124. package/dist/esm/McUpload/comps/McFormUpload/comps/UploadForVal/index.js +209 -0
  125. package/dist/esm/McUpload/comps/McFormUpload/comps/UploadForVal/index.less +6 -0
  126. package/dist/esm/McUpload/comps/McFormUpload/index.d.ts +7 -0
  127. package/dist/esm/McUpload/comps/McFormUpload/index.js +29 -0
  128. package/dist/esm/McUpload/comps/McUploadCmp/index.d.ts +49 -0
  129. package/dist/esm/McUpload/comps/McUploadCmp/index.js +396 -0
  130. package/dist/esm/McUpload/comps/McUploadCmp/index.less +68 -0
  131. package/dist/esm/McUpload/comps/McUploadDragger/index.d.ts +49 -0
  132. package/dist/esm/McUpload/comps/McUploadDragger/index.js +264 -0
  133. package/dist/esm/McUpload/comps/McUploadTrigger/index.d.ts +39 -0
  134. package/dist/esm/McUpload/comps/McUploadTrigger/index.js +318 -0
  135. package/dist/esm/McUpload/comps/McUploadTrigger/index.less +204 -0
  136. package/dist/esm/McUpload/index.d.ts +14 -0
  137. package/dist/esm/McUpload/index.js +9 -0
  138. package/dist/esm/McUpload/tools/calculateMD5/index.d.ts +3 -0
  139. package/dist/esm/McUpload/tools/calculateMD5/index.js +94 -0
  140. package/dist/esm/McUpload/tools/calculateMD5/md5Worker.js +44 -0
  141. package/dist/esm/McUpload/tools/getUid.d.ts +1 -0
  142. package/dist/esm/McUpload/tools/getUid.js +6 -0
  143. package/dist/esm/McUpload/tools/materialVerification.d.ts +50 -0
  144. package/dist/esm/McUpload/tools/materialVerification.js +257 -0
  145. package/dist/esm/McUpload/tools/uploadTools.d.ts +5 -0
  146. package/dist/esm/McUpload/tools/uploadTools.js +56 -0
  147. package/dist/esm/Utils/index.d.ts +8 -0
  148. package/dist/esm/Utils/index.js +9 -0
  149. package/dist/esm/Utils/lib/Queue/PriorityQueue.d.ts +21 -0
  150. package/dist/esm/Utils/lib/Queue/PriorityQueue.js +197 -0
  151. package/dist/esm/Utils/lib/Queue/TaskQueue.d.ts +17 -0
  152. package/dist/esm/Utils/lib/Queue/TaskQueue.js +199 -0
  153. package/dist/esm/Utils/lib/Queue/tools/BinaryHeap.d.ts +25 -0
  154. package/dist/esm/Utils/lib/Queue/tools/BinaryHeap.js +184 -0
  155. package/dist/esm/Utils/lib/Queue/tools/publicDependencyMethod.d.ts +6 -0
  156. package/dist/esm/Utils/lib/Queue/tools/publicDependencyMethod.js +26 -0
  157. package/dist/esm/Utils/lib/Queue/types/baseTaskQueue.d.ts +23 -0
  158. package/dist/esm/Utils/lib/Queue/types/baseTaskQueue.js +10 -0
  159. package/dist/esm/Utils/lib/copyToClipboard.d.ts +8 -0
  160. package/dist/esm/Utils/lib/copyToClipboard.js +54 -0
  161. package/dist/esm/index.d.ts +34 -0
  162. package/dist/esm/index.js +33 -0
  163. package/dist/esm/styles/index.less +2 -0
  164. package/dist/esm/styles/mixins.less +52 -0
  165. package/dist/esm/styles/utilities.less +51 -0
  166. package/dist/esm/typings.d.ts +20 -0
  167. package/package.json +4 -3
@@ -0,0 +1,436 @@
1
+ import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
2
+ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
4
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
5
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
6
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
7
+ import _typeof from "@babel/runtime/helpers/esm/typeof";
8
+ var _excluded = ["style", "className", "label", "multiple", "changeOnHidden", "inexistent", "fetchOptions", "pageSize", "extra", "value", "onChange", "labelInValue", "options", "disabled", "maxTagCount", "onSearch", "onPopupScroll", "onBlur", "onDropdownVisibleChange", "toFilterOptions", "searchInPanel", "pinSelectedOptions", "searchInPanelPlaceholder"];
9
+ import { Empty, Popover, Select, Spin } from 'antd';
10
+ import { debounce } from "../Utils";
11
+ import { forwardRef, useCallback, useEffect, useMemo, useRef, useState } from 'react';
12
+ import PanelSearchInput from "./components/PanelSearchInput";
13
+ import "./index.less";
14
+ import { jsx as _jsx } from "react/jsx-runtime";
15
+ import { Fragment as _Fragment } from "react/jsx-runtime";
16
+ import { jsxs as _jsxs } from "react/jsx-runtime";
17
+ // 将已选的option置顶
18
+ var createPinedSelectedOptions = function createPinedSelectedOptions(options, selectedValues) {
19
+ if (!options || options.length === 0) return [];
20
+ if (!selectedValues || selectedValues.length === 0) return options;
21
+ var isLabelInValue = _typeof(selectedValues[0]) === 'object';
22
+ if (isLabelInValue) {
23
+ var unselectedOptions = options.filter(function (o) {
24
+ return !selectedValues.some(function (v) {
25
+ return v.value === o.value;
26
+ });
27
+ });
28
+ return [].concat(_toConsumableArray(selectedValues), _toConsumableArray(unselectedOptions));
29
+ } else {
30
+ var _options$filter;
31
+ // options中找不到的就不展示
32
+ var selectedOptions = selectedValues.map(function (v) {
33
+ return options.find(function (o) {
34
+ return o.value === v;
35
+ });
36
+ }).filter(function (o) {
37
+ return Boolean(o);
38
+ });
39
+ var _unselectedOptions = (_options$filter = options.filter(function (x) {
40
+ return !selectedValues.includes(x.value);
41
+ })) !== null && _options$filter !== void 0 ? _options$filter : [];
42
+ return [].concat(_toConsumableArray(selectedOptions), _toConsumableArray(_unselectedOptions));
43
+ }
44
+ };
45
+ var McSelect = /*#__PURE__*/forwardRef(function (props, ref) {
46
+ var style = props.style,
47
+ className = props.className,
48
+ label = props.label,
49
+ multiple = props.multiple,
50
+ changeOnHidden = props.changeOnHidden,
51
+ _props$inexistent = props.inexistent,
52
+ inexistent = _props$inexistent === void 0 ? false : _props$inexistent,
53
+ fetchOptions = props.fetchOptions,
54
+ _props$pageSize = props.pageSize,
55
+ pageSize = _props$pageSize === void 0 ? 20 : _props$pageSize,
56
+ extra = props.extra,
57
+ value = props.value,
58
+ onChange = props.onChange,
59
+ labelInValue = props.labelInValue,
60
+ options = props.options,
61
+ disabled = props.disabled,
62
+ maxTagCount = props.maxTagCount,
63
+ onSearch = props.onSearch,
64
+ onPopupScroll = props.onPopupScroll,
65
+ onBlur = props.onBlur,
66
+ onDropdownVisibleChange = props.onDropdownVisibleChange,
67
+ toFilterOptions = props.toFilterOptions,
68
+ _props$searchInPanel = props.searchInPanel,
69
+ searchInPanel = _props$searchInPanel === void 0 ? false : _props$searchInPanel,
70
+ _props$pinSelectedOpt = props.pinSelectedOptions,
71
+ pinSelectedOptions = _props$pinSelectedOpt === void 0 ? false : _props$pinSelectedOpt,
72
+ searchInPanelPlaceholder = props.searchInPanelPlaceholder,
73
+ rest = _objectWithoutProperties(props, _excluded);
74
+ var _ref = typeof inexistent === 'boolean' ? {} : inexistent,
75
+ _ref$inexistentText = _ref.inexistentText,
76
+ inexistentText = _ref$inexistentText === void 0 ? '不存在' : _ref$inexistentText,
77
+ _ref$inexistentColor = _ref.inexistentColor,
78
+ inexistentColor = _ref$inexistentColor === void 0 ? '#ff4d4f' : _ref$inexistentColor,
79
+ _ref$reserveOriginalV = _ref.reserveOriginalValue,
80
+ reserveOriginalValue = _ref$reserveOriginalV === void 0 ? false : _ref$reserveOriginalV;
81
+ var _maxTagCount = useMemo(function () {
82
+ return props.hasOwnProperty('maxTagCount') ? maxTagCount : 1;
83
+ }, [maxTagCount]);
84
+
85
+ /* 获取label宽度 */
86
+ var labelRef = useRef();
87
+ var _useState = useState(11),
88
+ _useState2 = _slicedToArray(_useState, 2),
89
+ paddingLeft = _useState2[0],
90
+ setPaddingLeft = _useState2[1];
91
+ var labelResizeObserver = new ResizeObserver(function (entries) {
92
+ setPaddingLeft(entries[0].contentRect.width + 11);
93
+ });
94
+ useEffect(function () {
95
+ labelRef.current && labelResizeObserver.observe(labelRef.current);
96
+ return function () {
97
+ return labelResizeObserver.disconnect();
98
+ };
99
+ }, []);
100
+
101
+ /* 基础数据 */
102
+ var _useState3 = useState(),
103
+ _useState4 = _slicedToArray(_useState3, 2),
104
+ selectValue = _useState4[0],
105
+ setSelectValue = _useState4[1];
106
+ var _selectValue = useRef();
107
+ var _useState5 = useState([]),
108
+ _useState6 = _slicedToArray(_useState5, 2),
109
+ selectOptions = _useState6[0],
110
+ setSelectOptions = _useState6[1];
111
+ var _selectOptions = useRef([]);
112
+ var _useState7 = useState(''),
113
+ _useState8 = _slicedToArray(_useState7, 2),
114
+ searchValue = _useState8[0],
115
+ setSearchValue = _useState8[1];
116
+ var _useState9 = useState(false),
117
+ _useState10 = _slicedToArray(_useState9, 2),
118
+ fetching = _useState10[0],
119
+ setFetching = _useState10[1];
120
+ var _extra = useRef(null);
121
+ var _current = useRef(1);
122
+ var _maxPage = useRef(1);
123
+ var _listEl = useRef();
124
+ var _open = useRef(false);
125
+ var _oldValue = useRef();
126
+ var _changeOption = useRef();
127
+ var _inexistent = useRef(false);
128
+ var panelSearchInputRef = useRef(null);
129
+ var useDefaultSearch = !(multiple && searchInPanel);
130
+ var optionWithPriority = useMemo(function () {
131
+ if (pinSelectedOptions && multiple) {
132
+ if (fetchOptions && !labelInValue) {
133
+ console.warn('远程搜索下,pinSelectedOptions只支持labelInValue模式,建议修改');
134
+ } else {
135
+ return createPinedSelectedOptions(selectOptions, selectValue);
136
+ }
137
+ }
138
+ return selectOptions;
139
+ }, [selectOptions, selectValue]);
140
+ var filteredOptions = toFilterOptions ? toFilterOptions(optionWithPriority) : optionWithPriority; // 只要有render就需要重新生成options
141
+
142
+ // 监听值和备选项的变化(赋值备选项,执行不存在值的判断逻辑)
143
+ useEffect(function () {
144
+ // 若已执行不存在外抛undefined逻辑,则不再向下执行后续代码,并重置标记
145
+ if (!fetchOptions && inexistent && _inexistent.current) {
146
+ _inexistent.current = false;
147
+ return;
148
+ }
149
+ var _v = value;
150
+ // 若非异步分页查询时,赋值备选项(执行不存在值的判断逻辑)
151
+ if (!fetchOptions) {
152
+ // 赋值备选项
153
+ setSelectOptions(options || []);
154
+ /* 若inexistent为true,判断不存在情况并重置值 */
155
+ if (inexistent) {
156
+ if (multiple) {
157
+ _v = (_v ? Array.isArray(_v) ? _v : [_v] : []).map(function (i) {
158
+ return options !== null && options !== void 0 && options.some(function (item) {
159
+ return item.value === (labelInValue ? i.value : i);
160
+ }) ? i : labelInValue ? _objectSpread(_objectSpread({}, i), {}, {
161
+ value: i.value + "\u300C".concat(inexistentText, "\u300D"),
162
+ label: (i.label || i.value) + "\u300C".concat(inexistentText, "\u300D")
163
+ }) : i + "\u300C".concat(inexistentText, "\u300D");
164
+ });
165
+ } else {
166
+ _v = _v || _v === 0 || _v === false ? options !== null && options !== void 0 && options.some(function (item) {
167
+ return item.value === (labelInValue ? _v.value : _v);
168
+ }) ? _v : labelInValue ? _objectSpread(_objectSpread({}, _v), {}, {
169
+ value: _v.value + "\u300C".concat(inexistentText, "\u300D"),
170
+ label: (_v.label || _v.value) + "\u300C".concat(inexistentText, "\u300D")
171
+ }) : _v + "\u300C".concat(inexistentText, "\u300D") : undefined;
172
+ }
173
+ // 若当前value包含不存在值,且不保留原值时,则向外抛出undefined,并标记_inexistent为true
174
+ if (_v && JSON.stringify(_v).indexOf("\u300C".concat(inexistentText, "\u300D")) !== -1 && !reserveOriginalValue) {
175
+ _inexistent.current = true;
176
+ onChange === null || onChange === void 0 || onChange(undefined, undefined);
177
+ }
178
+ }
179
+ }
180
+ setSelectValue(_v);
181
+ _selectValue.current = _v;
182
+ }, [value, JSON.stringify(options), fetchOptions, inexistent, multiple, labelInValue]);
183
+
184
+ // 组件change事件
185
+ var change = function change(v, option) {
186
+ var _v = v,
187
+ _option = option;
188
+ // 若inexistent为true且非异步分页查询,当重新触发change事件时,将不存在的项移除(仅多选时需处理)
189
+ if (inexistent && !fetchOptions && multiple) {
190
+ _v = v.filter(function (i) {
191
+ return ('' + (labelInValue ? i.value : i)).indexOf("\u300C".concat(inexistentText, "\u300D")) === -1;
192
+ });
193
+ _option = option.filter(function (i) {
194
+ return ('' + i.value).indexOf("\u300C".concat(inexistentText, "\u300D")) === -1;
195
+ });
196
+ }
197
+ if (multiple && changeOnHidden || !props.hasOwnProperty('value')) {
198
+ setSelectValue(_v);
199
+ }
200
+ _selectValue.current = _v;
201
+ _changeOption.current = _option;
202
+ if (multiple && changeOnHidden) {
203
+ // 若为多选且隐藏时触发onChange事件
204
+ if (!_open.current) {
205
+ onChange === null || onChange === void 0 || onChange(_v, _option);
206
+ }
207
+ } else {
208
+ onChange === null || onChange === void 0 || onChange(_v, _option);
209
+ }
210
+ };
211
+
212
+ /* 异步分页查询 */
213
+ // 异步加载备选项的方法
214
+ var loadOptions = useCallback( /*#__PURE__*/function () {
215
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(keyword, current) {
216
+ var _yield$fetchOptions, data, total, newOptions;
217
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
218
+ while (1) switch (_context.prev = _context.next) {
219
+ case 0:
220
+ if (!fetchOptions) {
221
+ _context.next = 15;
222
+ break;
223
+ }
224
+ _current.current = current;
225
+ if (current === 1) {
226
+ setSelectOptions([]);
227
+ _selectOptions.current = [];
228
+ }
229
+ setFetching(true);
230
+ _context.next = 6;
231
+ return fetchOptions({
232
+ current: current,
233
+ pageSize: pageSize,
234
+ keyword: keyword,
235
+ extra: extra
236
+ });
237
+ case 6:
238
+ _yield$fetchOptions = _context.sent;
239
+ data = _yield$fetchOptions.data;
240
+ total = _yield$fetchOptions.total;
241
+ newOptions = (current === 1 ? [] : _selectOptions.current || []).concat(data || []);
242
+ _maxPage.current = Math.ceil(total / pageSize) || 1;
243
+ // 下拉列表滚动至最新数据的位置
244
+ if (_listEl.current) {
245
+ _listEl.current.target.scrollTop = (_selectOptions.current || []).length * 32;
246
+ }
247
+ setSelectOptions(newOptions);
248
+ _selectOptions.current = newOptions;
249
+ setFetching(false);
250
+ case 15:
251
+ case "end":
252
+ return _context.stop();
253
+ }
254
+ }, _callee);
255
+ }));
256
+ return function (_x, _x2) {
257
+ return _ref2.apply(this, arguments);
258
+ };
259
+ }(), [fetchOptions, pageSize, extra, multiple]);
260
+
261
+ // 搜索防抖函数
262
+ var debounceSearcher = useMemo(function () {
263
+ return debounce(loadOptions, 350);
264
+ }, [loadOptions]);
265
+
266
+ // 文本框值变化时回调
267
+ var search = function search(v) {
268
+ var _v = (v === null || v === void 0 ? void 0 : v.trim()) || '';
269
+ setSearchValue(_v);
270
+ if (fetchOptions) {
271
+ debounceSearcher(_v, 1);
272
+ }
273
+ onSearch === null || onSearch === void 0 || onSearch(_v);
274
+ };
275
+
276
+ // 监听分页查询的的额外参数变化,重置查询
277
+ useEffect(function () {
278
+ if (_extra.current !== extra) {
279
+ setSearchValue('');
280
+ loadOptions('', 1);
281
+ }
282
+ _extra.current = extra;
283
+ }, [extra, loadOptions]);
284
+
285
+ // 滚动触底防抖函数。注意需要pageSize要够大,否则不会触发滚动条滚动,也就不会翻页。建议用默认的20
286
+ var debounceScrollor = useMemo(function () {
287
+ var scroll = function scroll(e) {
288
+ var start = e.target.scrollTop + e.target.offsetHeight;
289
+ var end = e.target.scrollHeight;
290
+ // 触底时,若当前不是最后一页,则加载下一页
291
+ if (start === end && _current.current < _maxPage.current) {
292
+ loadOptions(searchValue, _current.current + 1);
293
+ }
294
+ };
295
+ return debounce(scroll, 350);
296
+ }, [loadOptions, searchValue]);
297
+
298
+ // 下拉列表滚动时的回调
299
+ var popupScroll = function popupScroll(e) {
300
+ if (fetchOptions) {
301
+ if (!_listEl.current) {
302
+ _listEl.current = e;
303
+ }
304
+ debounceScrollor(e);
305
+ }
306
+ onPopupScroll === null || onPopupScroll === void 0 || onPopupScroll(e);
307
+ };
308
+ var clearSearchData = function clearSearchData() {
309
+ setSearchValue('');
310
+ loadOptions('', 1);
311
+ };
312
+
313
+ // 失去焦点时的回调(若为异步分页查询,需重置查询)
314
+ var blur = function blur(e) {
315
+ // 若当前文本框有值,则清空文本框并重置查询
316
+ if (useDefaultSearch && searchValue) {
317
+ clearSearchData();
318
+ }
319
+ onBlur === null || onBlur === void 0 || onBlur(e);
320
+ };
321
+
322
+ // 展开下拉菜单的回调
323
+ var dropdownVisibleChange = function dropdownVisibleChange(open) {
324
+ if (multiple && changeOnHidden) {
325
+ _open.current = open;
326
+ if (open) {
327
+ _oldValue.current = _selectValue.current;
328
+ } else {
329
+ if (JSON.stringify(_selectValue.current) !== JSON.stringify(_oldValue.current)) {
330
+ onChange === null || onChange === void 0 || onChange(_selectValue.current, _changeOption.current);
331
+ }
332
+ }
333
+ }
334
+ // 新版搜索交互逻辑
335
+ if (!useDefaultSearch) {
336
+ if (open) {
337
+ var _panelSearchInputRef$;
338
+ (_panelSearchInputRef$ = panelSearchInputRef.current) === null || _panelSearchInputRef$ === void 0 || _panelSearchInputRef$.focus();
339
+ } else if (searchValue) {
340
+ // 避免界面抖动
341
+ setTimeout(clearSearchData, 200);
342
+ }
343
+ }
344
+ onDropdownVisibleChange === null || onDropdownVisibleChange === void 0 || onDropdownVisibleChange(open);
345
+ };
346
+ var renderDropdownPanel = function renderDropdownPanel(menu) {
347
+ if (!multiple || !searchInPanel) {
348
+ return menu;
349
+ }
350
+ return /*#__PURE__*/_jsxs(_Fragment, {
351
+ children: [/*#__PURE__*/_jsx(PanelSearchInput, {
352
+ ref: panelSearchInputRef,
353
+ placeholder: searchInPanelPlaceholder,
354
+ searchValue: searchValue,
355
+ onSearch: search
356
+ }), menu, filteredOptions.length > 0 && fetching && /*#__PURE__*/_jsx("div", {
357
+ style: {
358
+ color: '#999',
359
+ fontSize: 12,
360
+ textAlign: 'center'
361
+ },
362
+ children: "\u52A0\u8F7D\u4E2D..."
363
+ })]
364
+ });
365
+ };
366
+ return /*#__PURE__*/_jsxs("div", {
367
+ style: _objectSpread({
368
+ position: label ? 'relative' : 'static',
369
+ height: multiple ? 'auto' : 32,
370
+ '--selector-pl': "".concat(paddingLeft, "px"),
371
+ '--inexistent-color': inexistentColor
372
+ }, style),
373
+ className: "mc-select ".concat(multiple && _maxTagCount === 1 ? 'mc-select--inline' : '', " ").concat(className || ''),
374
+ children: [label && /*#__PURE__*/_jsx("span", {
375
+ ref: labelRef,
376
+ className: "mc-select__label ".concat(disabled ? 'mc-select--disabled' : ''),
377
+ children: label
378
+ }), /*#__PURE__*/_jsx(Select, _objectSpread(_objectSpread({
379
+ ref: ref,
380
+ className: "mc-select__content",
381
+ value: selectValue,
382
+ onChange: change,
383
+ labelInValue: labelInValue,
384
+ options: filteredOptions,
385
+ disabled: disabled,
386
+ placeholder: "\u8BF7\u9009\u62E9",
387
+ showSearch: useDefaultSearch // 否则会和panel中的search冲突
388
+ ,
389
+ optionFilterProp: "label",
390
+ allowClear: true,
391
+ maxTagCount: _maxTagCount,
392
+ maxTagPlaceholder: function maxTagPlaceholder(v) {
393
+ return /*#__PURE__*/_jsx(Popover, {
394
+ overlayStyle: {
395
+ maxWidth: 300
396
+ },
397
+ content: v.map(function (_ref3, index) {
398
+ var _ref4;
399
+ var value = _ref3.value,
400
+ label = _ref3.label;
401
+ return /*#__PURE__*/_jsxs("span", {
402
+ children: [index !== 0 && /*#__PURE__*/_jsx("span", {
403
+ children: ", "
404
+ }), /*#__PURE__*/_jsx("span", {
405
+ style: {
406
+ color: ((_ref4 = '' + value) === null || _ref4 === void 0 ? void 0 : _ref4.indexOf("\u300C".concat(inexistentText, "\u300D"))) === -1 ? 'rgba(0, 0, 0, 0.88)' : inexistentColor
407
+ },
408
+ children: label
409
+ })]
410
+ }, value);
411
+ }),
412
+ children: /*#__PURE__*/_jsx("span", {
413
+ children: '+' + v.length
414
+ })
415
+ });
416
+ },
417
+ filterOption: fetchOptions ? false : true,
418
+ searchValue: useDefaultSearch ? searchValue : undefined,
419
+ onSearch: useDefaultSearch ? search : undefined,
420
+ loading: fetching,
421
+ notFoundContent: fetching ? /*#__PURE__*/_jsx(Spin, {
422
+ size: "small"
423
+ }) : /*#__PURE__*/_jsx(Empty, {
424
+ image: Empty.PRESENTED_IMAGE_SIMPLE
425
+ }),
426
+ onPopupScroll: popupScroll,
427
+ onBlur: blur,
428
+ onDropdownVisibleChange: dropdownVisibleChange,
429
+ dropdownRender: renderDropdownPanel
430
+ }, rest), {}, {
431
+ mode: multiple ? 'multiple' : undefined,
432
+ fieldNames: undefined
433
+ }))]
434
+ });
435
+ });
436
+ export default McSelect;
@@ -0,0 +1,72 @@
1
+ .mc-select {
2
+ &__label {
3
+ color: #262626;
4
+ font-size: 14px;
5
+ position: absolute;
6
+ top: 0;
7
+ left: 11px;
8
+ z-index: 2;
9
+ height: 100%;
10
+ display: flex;
11
+ align-items: center;
12
+
13
+ &::after {
14
+ content: '\FF1A';
15
+ margin-left: 2px;
16
+ }
17
+
18
+ &.mc-select--disabled {
19
+ color: rgba(0, 0, 0, 25%);
20
+ cursor: no-drop;
21
+ }
22
+ }
23
+
24
+ &__content {
25
+ width: 100%;
26
+ height: 100%;
27
+
28
+ &.ant-select {
29
+ .ant-select-selector {
30
+ padding-left: var(--selector-pl);
31
+
32
+ .ant-select-selection-overflow-item-rest .ant-select-selection-item {
33
+ color: #fff;
34
+ background: #325cf7;
35
+ padding-left: 4px;
36
+
37
+ .ant-select-selection-item-content {
38
+ margin-right: 0;
39
+ }
40
+ }
41
+
42
+ .ant-select-selection-item[title*='「'][title$='」'] {
43
+ color: var(--inexistent-color);
44
+ }
45
+ }
46
+
47
+ &.ant-select-single .ant-select-selector .ant-select-selection-search {
48
+ left: var(--selector-pl);
49
+ }
50
+
51
+ &.ant-select-multiple .ant-select-selector {
52
+ .ant-select-selection-placeholder {
53
+ left: var(--selector-pl);
54
+ }
55
+
56
+ .ant-select-selection-search {
57
+ margin-left: 0;
58
+ }
59
+ }
60
+ }
61
+ }
62
+
63
+ &.mc-select--inline
64
+ .ant-select-selection-overflow-item:not(
65
+ .ant-select-selection-overflow-item-rest,
66
+ .ant-select-selection-overflow-item-suffix
67
+ ) {
68
+ flex: 1;
69
+ min-width: 0;
70
+ margin-right: 4px;
71
+ }
72
+ }
@@ -0,0 +1,22 @@
1
+ /// <reference types="react" />
2
+ import { TagProps } from 'antd';
3
+ import { EllipsisConfig } from 'antd/es/typography/Base';
4
+ interface McTagProps {
5
+ /**
6
+ * @description 为true时,使用默认行为,展示tooltip;为对象时,传递给Typography.Text的ellipsis属性
7
+ * @default undefined
8
+ */
9
+ ellipsis?: true | EllipsisConfig;
10
+ /**
11
+ * @description 是否可复制
12
+ * @default 默认为false
13
+ */
14
+ copyable?: boolean;
15
+ /**
16
+ * @description 省略模式时,设置文字样式。(一般用不上)
17
+ * @default undefined
18
+ */
19
+ ellipsisTextStyle?: React.CSSProperties;
20
+ }
21
+ declare const McTag: (props: TagProps & McTagProps) => import("react/jsx-runtime").JSX.Element;
22
+ export default McTag;
@@ -0,0 +1,59 @@
1
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
+ var _excluded = ["ellipsis", "children", "copyable", "onClick", "ellipsisTextStyle"],
4
+ _excluded2 = ["style"];
5
+ import { message, Tag, Typography } from 'antd';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ var McTag = function McTag(props) {
8
+ var ellipsis = props.ellipsis,
9
+ children = props.children,
10
+ copyable = props.copyable,
11
+ _onClick = props.onClick,
12
+ ellipsisTextStyle = props.ellipsisTextStyle,
13
+ tagProps = _objectWithoutProperties(props, _excluded);
14
+ var useEllipsis = typeof children === 'string' && !!ellipsis;
15
+ var style = tagProps.style,
16
+ restTagProps = _objectWithoutProperties(tagProps, _excluded2);
17
+ var renderChildren = function renderChildren() {
18
+ if (useEllipsis) {
19
+ return /*#__PURE__*/_jsx(Typography.Text, {
20
+ style: _objectSpread({
21
+ color: 'inherit',
22
+ fontSize: 'inherit'
23
+ }, ellipsisTextStyle),
24
+ ellipsis: ellipsis === true ? {
25
+ tooltip: children
26
+ } : ellipsis,
27
+ children: children
28
+ });
29
+ }
30
+ return children;
31
+ };
32
+ return /*#__PURE__*/_jsx(Tag, _objectSpread(_objectSpread({
33
+ onClick: function onClick(e) {
34
+ if (copyable) {
35
+ var copyText = typeof copyable === 'string' ? copyable : children;
36
+ if (!(typeof copyText === 'string')) {
37
+ if (process.env.NODE_ENV === 'development') throw Error('copyable prop only support string children or string copyable');
38
+ return;
39
+ }
40
+ if (navigator.clipboard) {
41
+ navigator.clipboard.writeText(copyText).then(function () {
42
+ return message.success('复制成功!');
43
+ }, function () {
44
+ return message.error('复制失败!');
45
+ });
46
+ } else {
47
+ message.error('当前域名无权限使用剪切板');
48
+ }
49
+ }
50
+ if (_onClick) _onClick(e);
51
+ },
52
+ style: _objectSpread({
53
+ maxWidth: useEllipsis ? '100%' : 'none'
54
+ }, style)
55
+ }, restTagProps), {}, {
56
+ children: renderChildren()
57
+ }));
58
+ };
59
+ export default McTag;
@@ -0,0 +1,39 @@
1
+ {
2
+ "CustomToken": {
3
+ "Button": {
4
+ "defaultBorderColorDisable": "rgb(246, 246, 246)",
5
+ "resetBg": "#fff",
6
+ "activeColor": "#284AC6",
7
+ "hoverColor": "#5B7DF9",
8
+ "dangerBg": "rgba(255, 77, 79, 0.1)",
9
+ "dangerBorderColor": "rgba(255, 77, 79, 0.01)",
10
+ "dangerHoverColor": "#FF7172",
11
+ "dangerActiveColor": "#CC3E3F",
12
+ "secondaryBorderColor": "#D9D9D9",
13
+ "secondaryBorderColorDisabled": "#F5F5F5",
14
+ "secondaryColorDisabled": "#B7B3B3",
15
+ "secondaryBgDisabled": "rgba(38, 38, 38, 0.04)",
16
+ "dashedBorderColor": "#D9D9D9",
17
+ "addBg": "#EAEEFE",
18
+ "addHoverBg": "#ECF0FE",
19
+ "primaryColorDisabled": "#fff"
20
+ },
21
+ "Tabs": {
22
+ "cardTabListBg": "#F0F4F9",
23
+ "cardTabRadius": 12,
24
+ "cardTabItemLineColor": "#D8D8D8",
25
+ "cardTabItemBorder": "1px solid #F0F4F9",
26
+ "cardTabItemActiveBorder": "1px solid #FFFFFF"
27
+ },
28
+ "Pagination": {
29
+ "totalTextColor": "rgba(0, 0, 0, 0.43)",
30
+ "itemActiveColor": "#FFFFFF",
31
+ "itemActiveHoverBorderColor": "transparent"
32
+ },
33
+ "Radio": {
34
+ "buttonLineBg": "rgb(216, 216, 216)",
35
+ "buttonLineHeight": 16,
36
+ "buttonCheckedBorderColorDisabled": "#B3B3B3"
37
+ }
38
+ }
39
+ }
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;