@zykj2024/much-library 1.1.6 → 1.1.7-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (269) hide show
  1. package/package.json +8 -7
  2. package/LICENSE +0 -21
  3. package/README.md +0 -35
  4. package/dist/McCascader/city.js +0 -909
  5. package/dist/McCascader/index.css +0 -60
  6. package/dist/McCascader/index.d.ts +0 -19
  7. package/dist/McCascader/index.js +0 -221
  8. package/dist/McContainer/demo/actionBar.d.ts +0 -8
  9. package/dist/McContainer/demo/actionBar.js +0 -118
  10. package/dist/McContainer/demo/base.d.ts +0 -8
  11. package/dist/McContainer/demo/base.js +0 -82
  12. package/dist/McContainer/demo/batch.d.ts +0 -8
  13. package/dist/McContainer/demo/batch.js +0 -129
  14. package/dist/McContainer/demo/collapse.d.ts +0 -8
  15. package/dist/McContainer/demo/collapse.js +0 -77
  16. package/dist/McContainer/demo/expand.d.ts +0 -8
  17. package/dist/McContainer/demo/expand.js +0 -90
  18. package/dist/McContainer/demo/pagination.d.ts +0 -7
  19. package/dist/McContainer/demo/pagination.js +0 -133
  20. package/dist/McContainer/demo/search.d.ts +0 -7
  21. package/dist/McContainer/demo/search.js +0 -102
  22. package/dist/McContainer/demo/standard.d.ts +0 -7
  23. package/dist/McContainer/demo/standard.js +0 -219
  24. package/dist/McContainer/index.css +0 -123
  25. package/dist/McContainer/index.d.ts +0 -153
  26. package/dist/McContainer/index.js +0 -513
  27. package/dist/McContainer/mock/index.d.ts +0 -21
  28. package/dist/McContainer/mock/index.js +0 -50
  29. package/dist/McDateRange/demo/base.d.ts +0 -6
  30. package/dist/McDateRange/demo/base.js +0 -22
  31. package/dist/McDateRange/demo/cancelPresets.d.ts +0 -6
  32. package/dist/McDateRange/demo/cancelPresets.js +0 -23
  33. package/dist/McDateRange/demo/overlap.d.ts +0 -2
  34. package/dist/McDateRange/demo/overlap.js +0 -32
  35. package/dist/McDateRange/index.css +0 -31
  36. package/dist/McDateRange/index.d.ts +0 -28
  37. package/dist/McDateRange/index.js +0 -167
  38. package/dist/McEllipsisMiddle/demo/base.d.ts +0 -6
  39. package/dist/McEllipsisMiddle/demo/base.js +0 -25
  40. package/dist/McEllipsisMiddle/demo/tooltip.d.ts +0 -6
  41. package/dist/McEllipsisMiddle/demo/tooltip.js +0 -35
  42. package/dist/McEllipsisMiddle/index.css +0 -4
  43. package/dist/McEllipsisMiddle/index.d.ts +0 -13
  44. package/dist/McEllipsisMiddle/index.js +0 -42
  45. package/dist/McFonts/index.d.ts +0 -8
  46. package/dist/McFonts/index.js +0 -7
  47. package/dist/McGroupPanel/comps/SelectedItem/index.d.ts +0 -4
  48. package/dist/McGroupPanel/comps/SelectedItem/index.js +0 -75
  49. package/dist/McGroupPanel/index.css +0 -164
  50. package/dist/McGroupPanel/index.d.ts +0 -29
  51. package/dist/McGroupPanel/index.js +0 -411
  52. package/dist/McIconFont/iconfont.js +0 -1
  53. package/dist/McIconFont/index.d.ts +0 -5
  54. package/dist/McIconFont/index.js +0 -8
  55. package/dist/McIcons/business.json +0 -137
  56. package/dist/McIcons/index.css +0 -33
  57. package/dist/McInput/Input.d.ts +0 -19
  58. package/dist/McInput/Input.js +0 -48
  59. package/dist/McInput/Search.d.ts +0 -39
  60. package/dist/McInput/Search.js +0 -81
  61. package/dist/McInput/TextArea.d.ts +0 -11
  62. package/dist/McInput/TextArea.js +0 -37
  63. package/dist/McInput/demo/Input/addonBefore.d.ts +0 -3
  64. package/dist/McInput/demo/Input/addonBefore.js +0 -67
  65. package/dist/McInput/demo/Input/base.d.ts +0 -2
  66. package/dist/McInput/demo/Input/base.js +0 -31
  67. package/dist/McInput/demo/Input/isTrim.d.ts +0 -2
  68. package/dist/McInput/demo/Input/isTrim.js +0 -22
  69. package/dist/McInput/demo/Input/label.d.ts +0 -2
  70. package/dist/McInput/demo/Input/label.js +0 -26
  71. package/dist/McInput/demo/Input/ref.d.ts +0 -3
  72. package/dist/McInput/demo/Input/ref.js +0 -53
  73. package/dist/McInput/demo/Input/status.d.ts +0 -2
  74. package/dist/McInput/demo/Input/status.js +0 -23
  75. package/dist/McInput/demo/Search/search-base.d.ts +0 -2
  76. package/dist/McInput/demo/Search/search-base.js +0 -38
  77. package/dist/McInput/demo/TextArea/text-area-base.d.ts +0 -2
  78. package/dist/McInput/demo/TextArea/text-area-base.js +0 -38
  79. package/dist/McInput/index.css +0 -71
  80. package/dist/McInput/index.d.ts +0 -13
  81. package/dist/McInput/index.js +0 -7
  82. package/dist/McInputNumber/demo/index.d.ts +0 -2
  83. package/dist/McInputNumber/demo/index.js +0 -34
  84. package/dist/McInputNumber/demo/label.d.ts +0 -2
  85. package/dist/McInputNumber/demo/label.js +0 -26
  86. package/dist/McInputNumber/demo/precision.d.ts +0 -2
  87. package/dist/McInputNumber/demo/precision.js +0 -20
  88. package/dist/McInputNumber/index.css +0 -36
  89. package/dist/McInputNumber/index.d.ts +0 -13
  90. package/dist/McInputNumber/index.js +0 -43
  91. package/dist/McLazyLoader/demo/basic.d.ts +0 -2
  92. package/dist/McLazyLoader/demo/basic.js +0 -33
  93. package/dist/McLazyLoader/demo/container.d.ts +0 -2
  94. package/dist/McLazyLoader/demo/container.js +0 -83
  95. package/dist/McLazyLoader/demo/form.d.ts +0 -2
  96. package/dist/McLazyLoader/demo/form.js +0 -38
  97. package/dist/McLazyLoader/demo/has-root.d.ts +0 -2
  98. package/dist/McLazyLoader/demo/has-root.js +0 -44
  99. package/dist/McLazyLoader/demo/hori.d.ts +0 -2
  100. package/dist/McLazyLoader/demo/hori.js +0 -39
  101. package/dist/McLazyLoader/demo/table.d.ts +0 -2
  102. package/dist/McLazyLoader/demo/table.js +0 -73
  103. package/dist/McLazyLoader/index.d.ts +0 -39
  104. package/dist/McLazyLoader/index.js +0 -88
  105. package/dist/McModalProvider/index.d.ts +0 -174
  106. package/dist/McModalProvider/index.js +0 -498
  107. package/dist/McPeriodSelect/demo/base.d.ts +0 -6
  108. package/dist/McPeriodSelect/demo/base.js +0 -19
  109. package/dist/McPeriodSelect/demo/half.d.ts +0 -6
  110. package/dist/McPeriodSelect/demo/half.js +0 -20
  111. package/dist/McPeriodSelect/index.css +0 -189
  112. package/dist/McPeriodSelect/index.d.ts +0 -13
  113. package/dist/McPeriodSelect/index.js +0 -305
  114. package/dist/McPopoverButton/index.d.ts +0 -14
  115. package/dist/McPopoverButton/index.js +0 -52
  116. package/dist/McPopoverForm/index.d.ts +0 -14
  117. package/dist/McPopoverForm/index.js +0 -95
  118. package/dist/McProSelect/demo/async.d.ts +0 -2
  119. package/dist/McProSelect/demo/async.js +0 -66
  120. package/dist/McProSelect/demo/base.d.ts +0 -2
  121. package/dist/McProSelect/demo/base.js +0 -29
  122. package/dist/McProSelect/demo/exclusion-async-rename.d.ts +0 -3
  123. package/dist/McProSelect/demo/exclusion-async-rename.js +0 -103
  124. package/dist/McProSelect/demo/exclusion-rename.d.ts +0 -3
  125. package/dist/McProSelect/demo/exclusion-rename.js +0 -74
  126. package/dist/McProSelect/demo/exclusion.d.ts +0 -3
  127. package/dist/McProSelect/demo/exclusion.js +0 -70
  128. package/dist/McProSelect/demo/require.d.ts +0 -2
  129. package/dist/McProSelect/demo/require.js +0 -82
  130. package/dist/McProSelect/index.d.ts +0 -35
  131. package/dist/McProSelect/index.js +0 -152
  132. package/dist/McResult/default.d.ts +0 -1
  133. package/dist/McResult/default.js +0 -98
  134. package/dist/McResult/demo/403.d.ts +0 -6
  135. package/dist/McResult/demo/403.js +0 -17
  136. package/dist/McResult/demo/404.d.ts +0 -6
  137. package/dist/McResult/demo/404.js +0 -17
  138. package/dist/McResult/demo/500.d.ts +0 -6
  139. package/dist/McResult/demo/500.js +0 -17
  140. package/dist/McResult/demo/building.d.ts +0 -6
  141. package/dist/McResult/demo/building.js +0 -12
  142. package/dist/McResult/demo/empty.d.ts +0 -2
  143. package/dist/McResult/demo/empty.js +0 -11
  144. package/dist/McResult/demo/noFunction.d.ts +0 -2
  145. package/dist/McResult/demo/noFunction.js +0 -11
  146. package/dist/McResult/demo/noUser.d.ts +0 -6
  147. package/dist/McResult/demo/noUser.js +0 -12
  148. package/dist/McResult/demo/preview.d.ts +0 -2
  149. package/dist/McResult/demo/preview.js +0 -19
  150. package/dist/McResult/icon.d.ts +0 -25
  151. package/dist/McResult/icon.js +0 -1014
  152. package/dist/McResult/index.css +0 -20
  153. package/dist/McResult/index.d.ts +0 -31
  154. package/dist/McResult/index.js +0 -119
  155. package/dist/McResult/public/403.svg +0 -164
  156. package/dist/McResult/public/404.svg +0 -123
  157. package/dist/McResult/public/500.svg +0 -129
  158. package/dist/McResult/public/building.svg +0 -127
  159. package/dist/McResult/public/code403.svg +0 -7
  160. package/dist/McResult/public/code404.svg +0 -5
  161. package/dist/McResult/public/code500.svg +0 -5
  162. package/dist/McResult/public/detailEmpty.svg +0 -1
  163. package/dist/McResult/public/empty.svg +0 -1
  164. package/dist/McResult/public/noFunction.svg +0 -1
  165. package/dist/McResult/public/noUser.svg +0 -90
  166. package/dist/McSelect/components/PanelSearchInput/index.css +0 -6
  167. package/dist/McSelect/components/PanelSearchInput/index.d.ts +0 -12
  168. package/dist/McSelect/components/PanelSearchInput/index.js +0 -45
  169. package/dist/McSelect/demo/base.d.ts +0 -2
  170. package/dist/McSelect/demo/base.js +0 -63
  171. package/dist/McSelect/demo/changeOnHidden.d.ts +0 -2
  172. package/dist/McSelect/demo/changeOnHidden.js +0 -43
  173. package/dist/McSelect/demo/dropdownRender.d.ts +0 -7
  174. package/dist/McSelect/demo/dropdownRender.js +0 -78
  175. package/dist/McSelect/demo/exclusion.d.ts +0 -3
  176. package/dist/McSelect/demo/exclusion.js +0 -64
  177. package/dist/McSelect/demo/fetchOptions.d.ts +0 -7
  178. package/dist/McSelect/demo/fetchOptions.js +0 -211
  179. package/dist/McSelect/demo/inexistent.d.ts +0 -2
  180. package/dist/McSelect/demo/inexistent.js +0 -79
  181. package/dist/McSelect/demo/labelInValue.d.ts +0 -2
  182. package/dist/McSelect/demo/labelInValue.js +0 -72
  183. package/dist/McSelect/demo/maxTagCount.d.ts +0 -3
  184. package/dist/McSelect/demo/maxTagCount.js +0 -51
  185. package/dist/McSelect/demo/multiple.d.ts +0 -2
  186. package/dist/McSelect/demo/multiple.js +0 -46
  187. package/dist/McSelect/demo/optionRender.d.ts +0 -3
  188. package/dist/McSelect/demo/optionRender.js +0 -51
  189. package/dist/McSelect/demo/panelInSearch.d.ts +0 -2
  190. package/dist/McSelect/demo/panelInSearch.js +0 -47
  191. package/dist/McSelect/demo/tagRender.d.ts +0 -3
  192. package/dist/McSelect/demo/tagRender.js +0 -51
  193. package/dist/McSelect/index.css +0 -60
  194. package/dist/McSelect/index.d.ts +0 -47
  195. package/dist/McSelect/index.js +0 -436
  196. package/dist/McTag/demo/demo1.d.ts +0 -2
  197. package/dist/McTag/demo/demo1.js +0 -18
  198. package/dist/McTag/demo/demo2.d.ts +0 -2
  199. package/dist/McTag/demo/demo2.js +0 -20
  200. package/dist/McTag/demo/demo3.d.ts +0 -2
  201. package/dist/McTag/demo/demo3.js +0 -19
  202. package/dist/McTag/demo/demo4.d.ts +0 -2
  203. package/dist/McTag/demo/demo4.js +0 -22
  204. package/dist/McTag/index.d.ts +0 -22
  205. package/dist/McTag/index.js +0 -59
  206. package/dist/McThemeConfig/customToken.json +0 -39
  207. package/dist/McThemeConfig/demo/button.d.ts +0 -2
  208. package/dist/McThemeConfig/demo/button.js +0 -226
  209. package/dist/McThemeConfig/demo/card.d.ts +0 -2
  210. package/dist/McThemeConfig/demo/card.js +0 -60
  211. package/dist/McThemeConfig/demo/drawer.d.ts +0 -2
  212. package/dist/McThemeConfig/demo/drawer.js +0 -59
  213. package/dist/McThemeConfig/demo/modal.d.ts +0 -2
  214. package/dist/McThemeConfig/demo/modal.js +0 -78
  215. package/dist/McThemeConfig/demo/radio.d.ts +0 -2
  216. package/dist/McThemeConfig/demo/radio.js +0 -136
  217. package/dist/McThemeConfig/demo/switch.d.ts +0 -2
  218. package/dist/McThemeConfig/demo/switch.js +0 -96
  219. package/dist/McThemeConfig/demo/tabs.d.ts +0 -2
  220. package/dist/McThemeConfig/demo/tabs.js +0 -35
  221. package/dist/McThemeConfig/globalStyle.d.ts +0 -2
  222. package/dist/McThemeConfig/globalStyle.js +0 -198
  223. package/dist/McThemeConfig/index.d.ts +0 -9
  224. package/dist/McThemeConfig/index.js +0 -16
  225. package/dist/McThemeConfig/layoutStyle.d.ts +0 -2
  226. package/dist/McThemeConfig/layoutStyle.js +0 -1
  227. package/dist/McThemeConfig/provider.d.ts +0 -8
  228. package/dist/McThemeConfig/provider.js +0 -20
  229. package/dist/McThemeConfig/themeToken.json +0 -152
  230. package/dist/McTreePanel/SelectedItem.d.ts +0 -4
  231. package/dist/McTreePanel/SelectedItem.js +0 -75
  232. package/dist/McTreePanel/demo/base.d.ts +0 -6
  233. package/dist/McTreePanel/demo/base.js +0 -45
  234. package/dist/McTreePanel/demo/fieldNames.d.ts +0 -6
  235. package/dist/McTreePanel/demo/fieldNames.js +0 -37
  236. package/dist/McTreePanel/demo/inexistent.d.ts +0 -6
  237. package/dist/McTreePanel/demo/inexistent.js +0 -56
  238. package/dist/McTreePanel/demo/labelInValue.d.ts +0 -6
  239. package/dist/McTreePanel/demo/labelInValue.js +0 -56
  240. package/dist/McTreePanel/demo/sortable.d.ts +0 -6
  241. package/dist/McTreePanel/demo/sortable.js +0 -34
  242. package/dist/McTreePanel/index.css +0 -110
  243. package/dist/McTreePanel/index.d.ts +0 -27
  244. package/dist/McTreePanel/index.js +0 -315
  245. package/dist/McTreeSelect/demo/base.d.ts +0 -5
  246. package/dist/McTreeSelect/demo/base.js +0 -58
  247. package/dist/McTreeSelect/demo/inexistent.d.ts +0 -5
  248. package/dist/McTreeSelect/demo/inexistent.js +0 -63
  249. package/dist/McTreeSelect/demo/label.d.ts +0 -5
  250. package/dist/McTreeSelect/demo/label.js +0 -60
  251. package/dist/McTreeSelect/demo/multiple.d.ts +0 -5
  252. package/dist/McTreeSelect/demo/multiple.js +0 -71
  253. package/dist/McTreeSelect/index.css +0 -60
  254. package/dist/McTreeSelect/index.d.ts +0 -13
  255. package/dist/McTreeSelect/index.js +0 -182
  256. package/dist/Utils/index.d.ts +0 -13
  257. package/dist/Utils/index.js +0 -60
  258. package/dist/index.d.ts +0 -28
  259. package/dist/index.js +0 -28
  260. package/dist/styles/demo/basic.d.ts +0 -2
  261. package/dist/styles/demo/basic.js +0 -44
  262. package/dist/styles/demo/delete-icon.d.ts +0 -2
  263. package/dist/styles/demo/delete-icon.js +0 -72
  264. package/dist/styles/demo/form-bottom-0.d.ts +0 -2
  265. package/dist/styles/demo/form-bottom-0.js +0 -33
  266. package/dist/styles/index.css +0 -41
  267. package/dist/styles/mixins.css +0 -2
  268. package/dist/styles/utilities.css +0 -41
  269. package/dist/typings.d.ts +0 -20
@@ -1,51 +0,0 @@
1
- /**
2
- * title: 自定义选择标签
3
- * description: 允许自定义选择标签的样式。
4
- */
5
-
6
- import { Tag } from 'antd';
7
- import { McSelect } from "../..";
8
- import React from 'react';
9
- import { jsx as _jsx } from "react/jsx-runtime";
10
- var options = [{
11
- value: 'gold'
12
- }, {
13
- value: 'lime'
14
- }, {
15
- value: 'green'
16
- }, {
17
- value: 'cyan'
18
- }];
19
- var tagRender = function tagRender(props) {
20
- var label = props.label,
21
- value = props.value,
22
- closable = props.closable,
23
- onClose = props.onClose;
24
- var onPreventMouseDown = function onPreventMouseDown(event) {
25
- event.preventDefault();
26
- event.stopPropagation();
27
- };
28
- return /*#__PURE__*/_jsx(Tag, {
29
- color: value,
30
- onMouseDown: onPreventMouseDown,
31
- closable: closable,
32
- onClose: onClose,
33
- style: {
34
- marginInlineEnd: 4
35
- },
36
- children: label
37
- });
38
- };
39
- var App = function App() {
40
- return /*#__PURE__*/_jsx(McSelect, {
41
- multiple: true,
42
- maxTagCount: undefined,
43
- tagRender: tagRender,
44
- defaultValue: ['gold', 'cyan'],
45
- style: {
46
- width: '100%'
47
- },
48
- options: options
49
- });
50
- };
51
- export default App;
@@ -1,60 +0,0 @@
1
- .mc-select__label {
2
- color: #262626;
3
- font-size: 14px;
4
- position: absolute;
5
- top: 0;
6
- left: 11px;
7
- z-index: 2;
8
- height: 100%;
9
- display: -webkit-box;
10
- display: -ms-flexbox;
11
- display: flex;
12
- -webkit-box-align: center;
13
- -ms-flex-align: center;
14
- align-items: center;
15
- }
16
- .mc-select__label::after {
17
- content: '\FF1A';
18
- margin-left: 2px;
19
- }
20
- .mc-select__label.mc-select--disabled {
21
- color: rgba(0, 0, 0, 0.25);
22
- cursor: no-drop;
23
- }
24
- .mc-select__content {
25
- width: 100%;
26
- height: 100%;
27
- }
28
- .mc-select__content.ant-select .ant-select-selector {
29
- padding-left: var(--selector-pl);
30
- }
31
- .mc-select__content.ant-select .ant-select-selector .ant-select-selection-overflow-item-rest .ant-select-selection-item {
32
- color: #fff;
33
- background: #325cf7;
34
- padding-left: 4px;
35
- }
36
- .mc-select__content.ant-select .ant-select-selector .ant-select-selection-overflow-item-rest .ant-select-selection-item .ant-select-selection-item-content {
37
- margin-right: 0;
38
- }
39
- .mc-select__content.ant-select .ant-select-selector .ant-select-selection-item[title*='「'][title$='」'] {
40
- color: var(--inexistent-color);
41
- }
42
- .mc-select__content.ant-select.ant-select-single .ant-select-selector .ant-select-selection-search {
43
- left: var(--selector-pl);
44
- }
45
- .mc-select__content.ant-select.ant-select-multiple .ant-select-selector .ant-select-selection-placeholder {
46
- left: var(--selector-pl);
47
- }
48
- .mc-select__content.ant-select.ant-select-multiple .ant-select-selector .ant-select-selection-search {
49
- margin-left: 0;
50
- }
51
- .mc-select.mc-select--inline .ant-select-selection-overflow-item:not(
52
- .ant-select-selection-overflow-item-rest,
53
- .ant-select-selection-overflow-item-suffix
54
- ) {
55
- -webkit-box-flex: 1;
56
- -ms-flex: 1;
57
- flex: 1;
58
- min-width: 0;
59
- margin-right: 4px;
60
- }
@@ -1,47 +0,0 @@
1
- import { SelectProps } from 'antd';
2
- import { CSSProperties, FC, ReactNode } from 'react';
3
- import './index.less';
4
- export interface Option {
5
- value: string | number;
6
- label?: React.ReactNode;
7
- title?: string;
8
- disabled?: boolean;
9
- [key: string]: any;
10
- }
11
- type Inexistent = {
12
- inexistentText?: string;
13
- inexistentColor?: string;
14
- reserveOriginalValue?: boolean;
15
- };
16
- export type FetchOptions = (params: {
17
- current: number;
18
- pageSize: number;
19
- keyword?: string;
20
- extra?: any;
21
- }) => Promise<{
22
- data: Option[];
23
- total: number;
24
- }>;
25
- export type McSelectProps = Omit<SelectProps, 'mode' | 'fieldNames'> & {
26
- style?: CSSProperties;
27
- className?: string;
28
- /** 外部控制展示的options */
29
- toFilterOptions?: (options: Option[]) => Option[];
30
- name?: string;
31
- label?: ReactNode;
32
- multiple?: boolean;
33
- changeOnHidden?: boolean;
34
- inexistent?: boolean | Inexistent;
35
- fetchOptions?: FetchOptions;
36
- pageSize?: number;
37
- extra?: any;
38
- options?: Option[];
39
- /** 仅多选生效。默认为false,在下拉框中展示搜索框,会影响回车生成新标签等功能 */
40
- searchInPanel?: boolean;
41
- /** 搜索框提示文字 */
42
- searchInPanelPlaceholder?: string;
43
- /** 仅多选+("非远程"或"远程+labelvalue"")生效。默认为false,将选中项置顶。 */
44
- pinSelectedOptions?: boolean;
45
- };
46
- declare const McSelect: FC<McSelectProps>;
47
- export default McSelect;
@@ -1,436 +0,0 @@
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.css";
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;
@@ -1,2 +0,0 @@
1
- declare const _default: () => import("react/jsx-runtime").JSX.Element;
2
- export default _default;
@@ -1,18 +0,0 @@
1
- /**
2
- * title: 设置本身宽度以支持ellipsis
3
- * description: 在McTag上设置宽度,以支持ellipsis。同时支持复制
4
- */
5
- import McTag from "../index";
6
- import { jsx as _jsx } from "react/jsx-runtime";
7
- export default (function () {
8
- var uri = '/recommend/page/123/page/123/page/123';
9
- return /*#__PURE__*/_jsx(McTag, {
10
- style: {
11
- maxWidth: 150
12
- },
13
- ellipsis: true,
14
- color: "blue",
15
- copyable: true,
16
- children: uri
17
- });
18
- });
@@ -1,2 +0,0 @@
1
- declare const _default: () => import("react/jsx-runtime").JSX.Element;
2
- export default _default;
@@ -1,20 +0,0 @@
1
- /**
2
- * title: 设置父组件宽度以支持ellipsis
3
- * description: 在McTag上设置宽度,以支持ellipsis。同时支持复制
4
- */
5
- import McTag from "../index";
6
- import { jsx as _jsx } from "react/jsx-runtime";
7
- export default (function () {
8
- var uri = '/recommend/page/123/page/123/page/123';
9
- return /*#__PURE__*/_jsx("div", {
10
- style: {
11
- width: 200
12
- },
13
- children: /*#__PURE__*/_jsx(McTag, {
14
- color: "blue",
15
- copyable: true,
16
- ellipsis: true,
17
- children: uri
18
- })
19
- });
20
- });
@@ -1,2 +0,0 @@
1
- declare const _default: () => import("react/jsx-runtime").JSX.Element;
2
- export default _default;
@@ -1,19 +0,0 @@
1
- /**
2
- * title: 支持复制
3
- * description: 普通McTag模式也支持复制
4
- */
5
- import { ExclamationCircleOutlined } from 'much-icons';
6
- import McTag from "../index";
7
- import { jsx as _jsx } from "react/jsx-runtime";
8
- export default (function () {
9
- return /*#__PURE__*/_jsx(McTag, {
10
- style: {
11
- maxWidth: 150
12
- },
13
- ellipsis: true,
14
- color: "warning",
15
- icon: /*#__PURE__*/_jsx(ExclamationCircleOutlined, {}),
16
- copyable: true,
17
- children: "click me to copy"
18
- });
19
- });
@@ -1,2 +0,0 @@
1
- declare const _default: () => import("react/jsx-runtime").JSX.Element;
2
- export default _default;