@nutui/nutui-react-taro 1.5.2-beta.1 → 1.5.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 (231) hide show
  1. package/dist/esm/ActionSheet.js +90 -14
  2. package/dist/esm/Address.js +620 -21
  3. package/dist/esm/Animate.js +53 -7
  4. package/dist/esm/AnimatingNumbers.js +125 -7
  5. package/dist/esm/Audio.js +264 -19
  6. package/dist/esm/Avatar.js +130 -11
  7. package/dist/esm/{AvatarContext-c96afdcc.js → AvatarContext-15733596.js} +1 -3
  8. package/dist/esm/AvatarGroup.js +41 -11
  9. package/dist/esm/BackTop.js +138 -10
  10. package/dist/esm/Badge.js +71 -9
  11. package/dist/esm/Barrage.js +97 -8
  12. package/dist/esm/Button.js +108 -9
  13. package/dist/esm/Calendar.js +128 -20
  14. package/dist/esm/CalendarItem.js +674 -12
  15. package/dist/esm/Card.js +61 -11
  16. package/dist/esm/Cascader.js +671 -16
  17. package/dist/esm/Cell.js +101 -9
  18. package/dist/esm/CellGroup.js +2 -5
  19. package/dist/esm/Checkbox.js +5 -7
  20. package/dist/esm/CheckboxGroup.js +111 -8
  21. package/dist/esm/CircleProgress.js +114 -8
  22. package/dist/esm/Col.js +57 -7
  23. package/dist/esm/Collapse.js +97 -7
  24. package/dist/esm/CollapseItem.js +146 -8
  25. package/dist/esm/ConfigProvider.js +187 -8
  26. package/dist/esm/CountDown.js +247 -9
  27. package/dist/esm/DatePicker.js +309 -25
  28. package/dist/esm/Dialog.js +296 -17
  29. package/dist/esm/Divider.js +34 -7
  30. package/dist/esm/Drag.js +118 -7
  31. package/dist/esm/Elevator.js +234 -8
  32. package/dist/esm/Ellipsis.js +176 -10
  33. package/dist/esm/Empty.js +79 -8
  34. package/dist/esm/FixedNav.js +103 -14
  35. package/dist/esm/Form.js +215 -10
  36. package/dist/esm/FormItem.js +3 -10
  37. package/dist/esm/Grid.js +81 -11
  38. package/dist/esm/GridItem.js +123 -13
  39. package/dist/esm/Icon.js +2 -5
  40. package/dist/esm/Image.js +169 -11
  41. package/dist/esm/ImagePreview.js +225 -19
  42. package/dist/esm/Indicator.js +50 -7
  43. package/dist/esm/Infiniteloading.js +215 -14
  44. package/dist/esm/Input.js +362 -12
  45. package/dist/esm/InputNumber.js +275 -9
  46. package/dist/esm/Layout.js +13 -5
  47. package/dist/esm/Menu.js +153 -10
  48. package/dist/esm/MenuItem.js +175 -15
  49. package/dist/esm/NavBar.js +114 -9
  50. package/dist/esm/NoticeBar.js +568 -10
  51. package/dist/esm/Notify.js +234 -8
  52. package/dist/esm/NumberKeyboard.js +247 -17
  53. package/dist/esm/Overlay.js +2 -6
  54. package/dist/esm/Pagination.js +168 -9
  55. package/dist/esm/Picker.js +494 -22
  56. package/dist/esm/Popover.js +223 -12
  57. package/dist/esm/Popup.js +193 -13
  58. package/dist/esm/Price.js +84 -6
  59. package/dist/esm/Progress.js +122 -9
  60. package/dist/esm/PullToRefresh.js +276 -13
  61. package/dist/esm/Radio.js +4 -8
  62. package/dist/esm/RadioGroup.js +120 -7
  63. package/dist/esm/Range.js +406 -15
  64. package/dist/esm/Rate.js +121 -9
  65. package/dist/esm/Row.js +49 -7
  66. package/dist/esm/SearchBar.js +235 -12
  67. package/dist/esm/ShortPassword.js +191 -17
  68. package/dist/esm/SideNavBar.js +57 -19
  69. package/dist/esm/SideNavBarItem.js +24 -5
  70. package/dist/esm/Signature.js +153 -13
  71. package/dist/esm/Skeleton.js +98 -12
  72. package/dist/esm/Step.js +87 -10
  73. package/dist/esm/Steps.js +38 -8
  74. package/dist/esm/Sticky.js +190 -11
  75. package/dist/esm/SubSideNavBar.js +78 -6
  76. package/dist/esm/Swipe.js +230 -10
  77. package/dist/esm/Swiper.js +490 -9
  78. package/dist/esm/SwiperItem.js +36 -8
  79. package/dist/esm/Switch.js +71 -6
  80. package/dist/esm/TabPane.js +2 -5
  81. package/dist/esm/Tabbar.js +68 -6
  82. package/dist/esm/TabbarItem.js +78 -9
  83. package/dist/esm/Table.js +140 -12
  84. package/dist/esm/Tabs.js +5 -8
  85. package/dist/esm/Tag.js +110 -10
  86. package/dist/esm/TextArea.js +148 -9
  87. package/dist/esm/TimeDetail.js +67 -9
  88. package/dist/esm/TimePannel.js +29 -9
  89. package/dist/esm/TimeSelect.js +171 -19
  90. package/dist/esm/Toast.js +268 -7
  91. package/dist/esm/TrendArrow.js +99 -7
  92. package/dist/esm/Uploader.js +566 -17
  93. package/dist/esm/{UserContext-0aac9a82.js → UserContext-101ad4a4.js} +1 -3
  94. package/dist/esm/{UserContext-e402e1a6.js → UserContext-2629d479.js} +1 -3
  95. package/dist/esm/{UserContext-e8176108.js → UserContext-b33bcf21.js} +1 -3
  96. package/dist/esm/Video.js +90 -7
  97. package/dist/esm/VirtualList.js +313 -9
  98. package/dist/esm/WaterMark.js +111 -11
  99. package/dist/esm/{bem-350c1702.js → bem-3b438e61.js} +6 -3
  100. package/dist/esm/cellgroup-fcc72767.js +34 -0
  101. package/dist/esm/checkbox-44e13cd0.js +137 -0
  102. package/dist/esm/date-c7aad4c0.js +97 -0
  103. package/dist/esm/formitem-8a73a5fb.js +157 -0
  104. package/dist/esm/get-scroll-parent-5f85dee8.js +24 -0
  105. package/dist/esm/{grid.taro.context-c2bbfb4f.js → grid.context-2ee27d95.js} +2 -4
  106. package/dist/esm/icon-4ef1581c.js +70 -0
  107. package/dist/esm/index-030b7245.js +11 -0
  108. package/dist/esm/nutui-react.es.js +94 -119
  109. package/dist/esm/offsetContext-3ab00d40.js +16 -0
  110. package/dist/esm/overlay-de6c79d5.js +83 -0
  111. package/dist/esm/radio-9f141e6b.js +118 -0
  112. package/dist/esm/render-bbebb760.js +79 -0
  113. package/dist/esm/tabpane-01075e6c.js +29 -0
  114. package/dist/esm/tabs-e1b4e4b1.js +181 -0
  115. package/dist/esm/typings-f27b58f4.js +8 -0
  116. package/dist/esm/useClientRect-56bb675b.js +39 -0
  117. package/dist/esm/useTouch-cf73a407.js +99 -0
  118. package/dist/locales/base.js +1 -1
  119. package/dist/locales/en-US.js +1 -1
  120. package/dist/locales/id-ID.js +1 -1
  121. package/dist/locales/zh-CN.js +1 -1
  122. package/dist/locales/zh-TW.js +1 -1
  123. package/dist/locales/zh-UG.js +1 -1
  124. package/dist/nutui.react.mjs +15025 -13192
  125. package/dist/nutui.react.umd.js +15004 -13169
  126. package/dist/style.mjs +1 -1
  127. package/dist/types/index.d.ts +183 -176
  128. package/package.json +1 -1
  129. package/dist/esm/actionsheet.taro-e6a51446.js +0 -53
  130. package/dist/esm/address.taro-3a9b6396.js +0 -461
  131. package/dist/esm/animate.taro-fb7986d6.js +0 -40
  132. package/dist/esm/animatingnumbers.taro-03e5d61d.js +0 -104
  133. package/dist/esm/audio.taro-87ec8bf2.js +0 -161
  134. package/dist/esm/avatar.taro-3676f38f.js +0 -103
  135. package/dist/esm/avatargroup-f3574510.js +0 -34
  136. package/dist/esm/backtop.taro-66394a36.js +0 -48
  137. package/dist/esm/badge.taro-a4e59c11.js +0 -52
  138. package/dist/esm/barrage.taro-0495a1b2.js +0 -94
  139. package/dist/esm/button.taro-9244d065.js +0 -100
  140. package/dist/esm/calendar.taro-670842ea.js +0 -65
  141. package/dist/esm/calendaritem.taro-2a603571.js +0 -787
  142. package/dist/esm/can-use-dom-3eeb5af4.js +0 -6
  143. package/dist/esm/card.taro-e4c76dad.js +0 -33
  144. package/dist/esm/cascader.taro-eb1fb011.js +0 -438
  145. package/dist/esm/cell.taro-a10a74d3.js +0 -64
  146. package/dist/esm/cellgroup.taro-abe501bc.js +0 -25
  147. package/dist/esm/checkbox.taro-6120e3e3.js +0 -171
  148. package/dist/esm/circleprogress.taro-79854448.js +0 -109
  149. package/dist/esm/col.taro-53eed3cc.js +0 -41
  150. package/dist/esm/collapse.taro-1a9e4ba2.js +0 -83
  151. package/dist/esm/collapseitem-4d0bc55d.js +0 -83
  152. package/dist/esm/configprovider-67d19d3a.js +0 -19
  153. package/dist/esm/configprovider.taro-8d71eb49.js +0 -42
  154. package/dist/esm/countdown.taro-5b17c607.js +0 -226
  155. package/dist/esm/datepicker.taro-6e9b4b8f.js +0 -275
  156. package/dist/esm/dialog.taro-a3267d29.js +0 -118
  157. package/dist/esm/divider.taro-26d1d8b4.js +0 -35
  158. package/dist/esm/drag.taro-79bb8744.js +0 -110
  159. package/dist/esm/elevator.taro-6019669e.js +0 -178
  160. package/dist/esm/ellipsis.taro-f15f26da.js +0 -241
  161. package/dist/esm/empty.taro-04ae4389.js +0 -62
  162. package/dist/esm/fixednav.taro-1f05acaf.js +0 -53
  163. package/dist/esm/form.taro-0c8e7a39.js +0 -179
  164. package/dist/esm/formitem.taro-190a3326.js +0 -89
  165. package/dist/esm/get-scroll-parent-b4a07e65.js +0 -25
  166. package/dist/esm/grid.taro-3503b82c.js +0 -61
  167. package/dist/esm/griditem.taro-cdb3f119.js +0 -98
  168. package/dist/esm/icon-296a1bec.js +0 -63
  169. package/dist/esm/icon.taro-296a1bec.js +0 -63
  170. package/dist/esm/image.taro-142cf512.js +0 -64
  171. package/dist/esm/imagepreview.taro-c50bb0a3.js +0 -167
  172. package/dist/esm/index-5bcb0ff8.js +0 -7
  173. package/dist/esm/indicator.taro-cba8b010.js +0 -37
  174. package/dist/esm/infiniteloading.taro-183bccbf.js +0 -144
  175. package/dist/esm/input.taro-97af6c96.js +0 -240
  176. package/dist/esm/inputnumber.taro-91f65d17.js +0 -130
  177. package/dist/esm/layout.taro-9046d093.js +0 -11
  178. package/dist/esm/menu.taro-7e4038a1.js +0 -99
  179. package/dist/esm/menuitem.taro-96cc4f15.js +0 -130
  180. package/dist/esm/navbar.taro-777c4705.js +0 -79
  181. package/dist/esm/noticebar.taro-4a23cdee.js +0 -448
  182. package/dist/esm/notify.taro-e17c6f82.js +0 -75
  183. package/dist/esm/numberkeyboard.taro-1bc24744.js +0 -159
  184. package/dist/esm/offsetContext-c2a746fa.js +0 -5
  185. package/dist/esm/overlay.taro-21e87fb1.js +0 -69
  186. package/dist/esm/pagination.taro-715a173b.js +0 -124
  187. package/dist/esm/picker.taro-9ad1b7c5.js +0 -473
  188. package/dist/esm/popover.taro-ad5e76ea.js +0 -156
  189. package/dist/esm/popup.taro-01676bff.js +0 -137
  190. package/dist/esm/price.taro-776ed16e.js +0 -83
  191. package/dist/esm/progress.taro-f0ce38e9.js +0 -90
  192. package/dist/esm/pulltorefresh.taro-a294f656.js +0 -181
  193. package/dist/esm/radio.taro-a6eff96c.js +0 -168
  194. package/dist/esm/range.taro-d8fc7656.js +0 -332
  195. package/dist/esm/rate.taro-6cdf03bd.js +0 -75
  196. package/dist/esm/row.taro-f64d4a13.js +0 -46
  197. package/dist/esm/searchbar.taro-0c25927b.js +0 -152
  198. package/dist/esm/shortpassword.taro-9ee034f7.js +0 -111
  199. package/dist/esm/sidenavbar.taro-c307b35e.js +0 -35
  200. package/dist/esm/sidenavbaritem.taro-5a7965d0.js +0 -12
  201. package/dist/esm/signature.taro-ec4e713b.js +0 -143
  202. package/dist/esm/skeleton.taro-76faf63f.js +0 -62
  203. package/dist/esm/step.taro-b7903e8c.js +0 -59
  204. package/dist/esm/steps.taro-c82d2252.js +0 -30
  205. package/dist/esm/sticky.taro-218bda37.js +0 -138
  206. package/dist/esm/subsidenavbar.taro-69cb9752.js +0 -63
  207. package/dist/esm/supports-passive-c85ef996.js +0 -18
  208. package/dist/esm/swipe.taro-ea35f07f.js +0 -177
  209. package/dist/esm/swiper.taro-7a94e211.js +0 -451
  210. package/dist/esm/swiperitem-c9e3d0d5.js +0 -29
  211. package/dist/esm/switch.taro-34ca8228.js +0 -50
  212. package/dist/esm/tabbar.taro-9acfc2fa.js +0 -59
  213. package/dist/esm/tabbaritem.taro-bf517487.js +0 -58
  214. package/dist/esm/table.taro-91fc0c01.js +0 -93
  215. package/dist/esm/tabpane.taro-4ca340ef.js +0 -23
  216. package/dist/esm/tabs.taro-6a7524a4.js +0 -140
  217. package/dist/esm/tag.taro-23ba0834.js +0 -92
  218. package/dist/esm/textarea.taro-442e7350.js +0 -94
  219. package/dist/esm/timedetail.taro-5b2f2269.js +0 -44
  220. package/dist/esm/timepannel.taro-d6e40180.js +0 -22
  221. package/dist/esm/timeselect.taro-a07036f4.js +0 -133
  222. package/dist/esm/toast.taro-d6c14811.js +0 -109
  223. package/dist/esm/trendarrow.taro-b8c5ccd9.js +0 -73
  224. package/dist/esm/typings-b9828dba.js +0 -9
  225. package/dist/esm/uploader.taro-587e6bf3.js +0 -492
  226. package/dist/esm/useClientRect-1f8ed1fe.js +0 -18
  227. package/dist/esm/useTouch-db24bb5c.js +0 -69
  228. package/dist/esm/video-f1be8a91.js +0 -67
  229. package/dist/esm/virtuallist.taro-f0b0270d.js +0 -214
  230. package/dist/esm/watermark.taro-9ce2ae37.js +0 -114
  231. package/dist/esm/zh-CN-c779e6c1.js +0 -131
@@ -1,171 +0,0 @@
1
- import React__default, { createContext, useImperativeHandle, useState, useEffect, useCallback, useContext } from 'react';
2
- import { I as Icon } from './icon.taro-296a1bec.js';
3
- import { c as cn } from './bem-350c1702.js';
4
- import { C as ComponentDefaults } from './typings-b9828dba.js';
5
-
6
- const CheckboxGroupContext = createContext(null);
7
-
8
- const defaultProps$1 = {
9
- disabled: false,
10
- checkedValue: [],
11
- max: undefined,
12
- textPosition: 'right',
13
- direction: 'vertical',
14
- onChange: (value) => { },
15
- options: [],
16
- };
17
- const CheckboxGroup = React__default.forwardRef((props, ref) => {
18
- const { children } = { ...defaultProps$1, ...props };
19
- const b = cn('checkboxgroup');
20
- const { className, disabled, onChange, checkedValue, max, textPosition, direction, options, ...rest } = props;
21
- useImperativeHandle(ref, () => ({
22
- toggleAll(state) {
23
- if (state === false) {
24
- setInnerValue([]);
25
- }
26
- else {
27
- const childrenLabel = [];
28
- React__default.Children.map(children, (child) => {
29
- const childProps = child.props;
30
- childrenLabel.push(childProps.label || child.children);
31
- });
32
- setInnerValue(childrenLabel);
33
- }
34
- },
35
- toggleReverse() {
36
- const childrenLabel = [];
37
- React__default.Children.map(children, (child) => {
38
- const childProps = child.props;
39
- childrenLabel.push(childProps.label || child.children);
40
- });
41
- const reverse = childrenLabel.filter((c) => innerValue?.findIndex((v) => v === c) === -1);
42
- setInnerValue(reverse);
43
- },
44
- }));
45
- const [innerValue, setInnerValue] = useState(checkedValue || []);
46
- useEffect(() => {
47
- setInnerValue(checkedValue || []);
48
- }, [checkedValue]);
49
- const renderOptions = useCallback(() => {
50
- return options?.map(({ label, value, disabled, onChange, ...rest }) => {
51
- return (React__default.createElement(Checkbox, { key: value?.toString(), children: label, label: value, ...rest }));
52
- });
53
- }, [options, max]);
54
- return (React__default.createElement(CheckboxGroupContext.Provider, { value: {
55
- textPosition: textPosition || 'left',
56
- disabled,
57
- max,
58
- checkedValue: innerValue || [],
59
- check: (value) => {
60
- const combined = [...innerValue, value];
61
- setInnerValue(combined);
62
- onChange && onChange(combined);
63
- },
64
- uncheck: (value) => {
65
- const reduced = innerValue.filter((item) => item !== value);
66
- setInnerValue(reduced);
67
- onChange && onChange(reduced);
68
- },
69
- } },
70
- React__default.createElement("div", { className: `${b()} nut-checkboxgroup--${props.direction} ${className || ''}`, ...rest }, options?.length ? renderOptions() : children)));
71
- });
72
- CheckboxGroup.defaultProps = defaultProps$1;
73
- CheckboxGroup.displayName = 'NutCheckboxGroup';
74
-
75
- const defaultProps = {
76
- ...ComponentDefaults,
77
- checked: false,
78
- disabled: false,
79
- textPosition: 'right',
80
- iconSize: 18,
81
- iconName: 'check-normal',
82
- iconActiveName: 'checked',
83
- iconClassPrefix: 'nut-icon',
84
- iconFontClassName: 'nutui-iconfont',
85
- iconIndeterminateName: 'check-disabled',
86
- onChange: (state, label) => { },
87
- };
88
- const Checkbox = (props) => {
89
- const { children } = {
90
- ...defaultProps,
91
- ...props,
92
- };
93
- const b = cn('checkbox');
94
- const { iconName, iconSize, label, className, iconActiveName, checked, disabled, onChange, indeterminate, iconClassPrefix, iconFontClassName, iconIndeterminateName, ...others } = props;
95
- // eslint-disable-next-line prefer-const
96
- let { textPosition, ...rest } = others;
97
- const ctx = useContext(CheckboxGroupContext);
98
- let [innerChecked, setInnerChecked] = useState(checked);
99
- // eslint-disable-next-line prefer-const
100
- let [innerDisabled, setDisabled] = useState(disabled);
101
- const [_indeterminate, setIndeterminate] = useState(indeterminate);
102
- useEffect(() => {
103
- !ctx && setInnerChecked(checked);
104
- setDisabled(disabled);
105
- setIndeterminate(indeterminate);
106
- }, [disabled, checked, indeterminate]);
107
- if (ctx) {
108
- if (ctx.textPosition !== undefined) {
109
- textPosition = ctx.textPosition;
110
- }
111
- innerDisabled = ctx.disabled;
112
- innerChecked = ctx.checkedValue.includes(label);
113
- setInnerChecked = (checked) => {
114
- if (ctx.disabled)
115
- return;
116
- if (checked)
117
- ctx.check(label);
118
- if (!checked)
119
- ctx.uncheck(label);
120
- };
121
- }
122
- const getIconName = () => {
123
- if (!innerChecked) {
124
- return iconName;
125
- }
126
- if (_indeterminate) {
127
- return iconIndeterminateName;
128
- }
129
- return iconActiveName;
130
- };
131
- const renderIcon = () => {
132
- return (React__default.createElement(Icon, { classPrefix: iconClassPrefix, fontClassName: iconFontClassName, name: getIconName(), size: iconSize, className: color() }));
133
- };
134
- const color = () => {
135
- if (innerDisabled) {
136
- return 'nut-checkbox__icon--disable';
137
- }
138
- if (innerChecked) {
139
- if (_indeterminate) {
140
- return 'nut-checkbox__icon--indeterminate';
141
- }
142
- return 'nut-checkbox__icon';
143
- }
144
- return 'nut-checkbox__icon--unchecked';
145
- };
146
- const renderLabel = () => {
147
- return (React__default.createElement("span", { className: `${b('label', { disabled: innerDisabled })} ` }, children || label));
148
- };
149
- const handleClick = () => {
150
- // 禁用的时候直接返回
151
- if (disabled)
152
- return;
153
- // 先转换状态
154
- const latestChecked = !innerChecked;
155
- // 判断是不是有 context 和 max,有的话需要判断是不是超过最大限制
156
- if (ctx && ctx.max !== undefined) {
157
- if (latestChecked && ctx.checkedValue.length >= ctx.max)
158
- return;
159
- }
160
- onChange && onChange(latestChecked, label || children);
161
- setInnerChecked(latestChecked);
162
- };
163
- return (React__default.createElement("div", { className: `${b({ reverse: textPosition === 'left' })} ${className || ''}`, ...rest, onClick: handleClick },
164
- renderIcon(),
165
- renderLabel()));
166
- };
167
- Checkbox.defaultProps = defaultProps;
168
- Checkbox.displayName = 'NutCheckBox';
169
- Checkbox.Group = CheckboxGroup;
170
-
171
- export { Checkbox as C, CheckboxGroup as a };
@@ -1,109 +0,0 @@
1
- import React__default, { useState, useEffect } from 'react';
2
- import classNames from 'classnames';
3
- import { a as isObject } from './index-5bcb0ff8.js';
4
- import { c as cn } from './bem-350c1702.js';
5
-
6
- const defaultProps = {
7
- strokeWidth: 5,
8
- radius: 50,
9
- strokeLinecap: 'round',
10
- circleColor: '#fa2c19',
11
- pathColor: '#e5e9f2',
12
- clockwise: true,
13
- };
14
- const CircleProgress = (props) => {
15
- const { children, progress, className, radius, pathColor, clockwise, circleColor, strokeWidth, style, strokeLinecap, ...restProps } = {
16
- ...defaultProps,
17
- ...props,
18
- };
19
- const [oldValue, setOldValue] = useState(progress);
20
- const b = cn('circleprogress');
21
- const classes = classNames(className, b(''));
22
- const refRandomId = Math.random().toString(36).slice(-8);
23
- const styles = {
24
- height: `${Number(radius) * 2}px`,
25
- width: `${Number(radius) * 2}px`,
26
- ...style,
27
- };
28
- useEffect(() => {
29
- let rafId;
30
- const startTime = Date.now();
31
- const startRate = Number(oldValue); // 30
32
- const endRate = Number(progress); // 40
33
- const duration = Math.abs(((startRate - endRate) * 1000) / +100); // 100
34
- const animate = () => {
35
- const now = Date.now();
36
- const progress = Math.min((now - startTime) / duration, 1);
37
- const rate = progress * (endRate - startRate) + startRate;
38
- setOldValue(Math.min(Math.max(+rate, 0), 100));
39
- if (endRate > startRate ? rate < endRate : rate > endRate) {
40
- rafId = window.requestAnimationFrame(animate);
41
- }
42
- };
43
- if (rafId) {
44
- cancelAnimationFrame(rafId);
45
- }
46
- rafId = window.requestAnimationFrame(animate);
47
- }, [progress]);
48
- const cancelAnimationFrame = function (id) {
49
- clearTimeout(id);
50
- };
51
- const stop = () => {
52
- if (!isObject(circleColor)) {
53
- return [];
54
- }
55
- const color = circleColor;
56
- const colorArr = Object.keys(color).sort((a, b) => parseFloat(a) - parseFloat(b));
57
- const stopArr = [];
58
- colorArr.map((item) => {
59
- const obj = {
60
- key: '',
61
- value: '',
62
- };
63
- obj.key = item;
64
- obj.value = color[item];
65
- stopArr.push(obj);
66
- });
67
- return stopArr;
68
- };
69
- const transColor = (color) => {
70
- return color && color.replace('#', '%23');
71
- };
72
- const format = (progress) => Math.min(Math.max(+progress, 0), 100);
73
- const circleStyle = () => {
74
- const stopArr = stop();
75
- const stopDom = [];
76
- if (stopArr) {
77
- stopArr.map((item) => {
78
- let obj = '';
79
- obj = `%3Cstop offset='${item.key}' stop-color='${transColor(item.value)}'/%3E`;
80
- stopDom.push(obj);
81
- });
82
- }
83
- const perimeter = 283;
84
- const progress = +oldValue;
85
- const offset = (perimeter * Number(format(parseFloat(progress.toFixed(1))))) / 100;
86
- const isWise = props.clockwise ? 1 : 0;
87
- const color = isObject(circleColor)
88
- ? `url(%23${refRandomId})`
89
- : transColor(circleColor);
90
- const d = `M 50 50 m 0 -45 a 45 45 0 1 ${isWise} 0 90 a 45 45 0 1, ${isWise} 0 -90`;
91
- const pa = `%3Cdefs%3E%3ClinearGradient id='${refRandomId}' x1='100%25' y1='0%25' x2='0%25' y2='0%25'%3E${stopDom}%3C/linearGradient%3E%3C/defs%3E`;
92
- const path = `%3Cpath d='${d}' stroke-width='${strokeWidth}' stroke='${transColor(props.pathColor)}' fill='none'/%3E`;
93
- const path1 = `%3Cpath d='${d}' stroke-width='${strokeWidth}' stroke-dasharray='${offset},${perimeter}' stroke-linecap='round' stroke='${transColor(color)}' fill='none'/%3E`;
94
- return {
95
- background: `url("data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E${pa}${path}${path1}%3C/svg%3E")`,
96
- width: '100%',
97
- height: '100%',
98
- };
99
- };
100
- return (React__default.createElement("div", { className: classes, style: styles, ...restProps },
101
- React__default.createElement("div", { style: circleStyle() }),
102
- React__default.createElement("div", { className: "nut-circleprogress-text" }, children || React__default.createElement("div", null,
103
- progress,
104
- "%"))));
105
- };
106
- CircleProgress.defaultProps = defaultProps;
107
- CircleProgress.displayName = 'NutCircleProgress';
108
-
109
- export { CircleProgress as C };
@@ -1,41 +0,0 @@
1
- import React__default, { useState, useContext, useEffect } from 'react';
2
- import classNames from 'classnames';
3
- import { D as DataContext } from './UserContext-0aac9a82.js';
4
-
5
- const defaultProps = {
6
- span: '24',
7
- offset: '0',
8
- gutter: '0',
9
- };
10
- const Col = (props) => {
11
- const { className, style = {}, span, offset, children, onClick, } = {
12
- ...defaultProps,
13
- ...props,
14
- };
15
- const [colName, setColName] = useState('');
16
- const [colStyle, setColStyle] = useState({});
17
- const { gutter } = useContext(DataContext);
18
- const classs = () => {
19
- // 定义col的class类
20
- const prefixCls = 'nut-col';
21
- return `${prefixCls} ${prefixCls}-${span} ${gutter ? `${prefixCls}-gutter` : ''} ${prefixCls}-${offset}`;
22
- };
23
- const getStyle = () => {
24
- // 定义col的style类
25
- const style = {};
26
- style.paddingLeft = `${gutter / 2}px`;
27
- style.paddingRight = `${gutter / 2}px`;
28
- return style;
29
- };
30
- useEffect(() => {
31
- setColName(classs);
32
- setColStyle(getStyle);
33
- }, [span, offset, gutter]);
34
- return (React__default.createElement("div", { className: classNames(colName, className), style: { ...style, ...colStyle }, onClick: (e) => {
35
- onClick && onClick(e, 'col');
36
- } }, children));
37
- };
38
- Col.defaultProps = defaultProps;
39
- Col.displayName = 'NutCol';
40
-
41
- export { Col as C };
@@ -1,83 +0,0 @@
1
- import React__default, { memo, useState, useEffect } from 'react';
2
- import classNames from 'classnames';
3
- import { c as cn } from './bem-350c1702.js';
4
-
5
- const defaultProps = {
6
- activeName: ['0'],
7
- accordion: false,
8
- icon: '',
9
- iconSize: '16px',
10
- iconColor: '',
11
- rotate: 180,
12
- };
13
- function areEqual(prevProps, nextProps) {
14
- return (prevProps.children === nextProps.children &&
15
- JSON.stringify(prevProps.activeName) ===
16
- JSON.stringify(nextProps.activeName));
17
- }
18
- const Collapse = memo((props) => {
19
- const { className, style, children, activeName, accordion, icon, rotate, iconSize, iconColor, onChange, } = {
20
- ...defaultProps,
21
- ...props,
22
- };
23
- const childrenDom = React__default.Children.toArray(children);
24
- const [defaultOpenIndex, setDefaultOpenIndex] = useState([]);
25
- const handleActiveName = () => {
26
- let activeArr = [];
27
- if (!Array.isArray(activeName)) {
28
- activeArr.push(activeName.toString());
29
- }
30
- else {
31
- // 数组
32
- if (accordion && activeName.length > 1) {
33
- console.warn('手风琴模式不支持传递多个打开页签');
34
- }
35
- const activeNameStr = activeName.map((item) => {
36
- return item.toString();
37
- });
38
- activeArr = [...activeNameStr];
39
- }
40
- return activeArr;
41
- };
42
- const colBem = cn('collapse');
43
- useEffect(() => {
44
- const activeArr = handleActiveName();
45
- setDefaultOpenIndex(activeArr);
46
- }, [activeName]);
47
- const onToggle = (isOpen, name) => {
48
- let newOpenIndex = [...defaultOpenIndex];
49
- if (isOpen) {
50
- // 当前状态为true,则变为false,闭合
51
- const removeIndex = newOpenIndex.findIndex((value) => {
52
- return value === name;
53
- });
54
- newOpenIndex.splice(removeIndex, 1);
55
- }
56
- else {
57
- // 当前状态为false,变为true,展开
58
- // eslint-disable-next-line no-lonely-if
59
- if (accordion) {
60
- newOpenIndex = [name];
61
- }
62
- else {
63
- newOpenIndex.push(name);
64
- }
65
- }
66
- setDefaultOpenIndex(newOpenIndex);
67
- onChange && onChange(!isOpen, name);
68
- };
69
- return (React__default.createElement("div", { className: classNames(colBem(), className), style: style }, childrenDom.map((item) => {
70
- return React__default.cloneElement(item, {
71
- isOpen: defaultOpenIndex.includes(item.props.name),
72
- onToggle: (isOpen, name) => onToggle(isOpen, name),
73
- icon,
74
- rotate,
75
- iconSize,
76
- iconColor,
77
- });
78
- })));
79
- }, areEqual);
80
- Collapse.defaultProps = defaultProps;
81
- Collapse.displayName = 'NutCollapse';
82
-
83
- export { Collapse as C };
@@ -1,83 +0,0 @@
1
- import React__default, { useState, useCallback, useEffect } from 'react';
2
- import { c as cn } from './bem-350c1702.js';
3
- import { I as Icon } from './icon-296a1bec.js';
4
- import { C as ComponentDefaults } from './typings-b9828dba.js';
5
-
6
- const defaultProps = {
7
- ...ComponentDefaults,
8
- title: '',
9
- name: '',
10
- isOpen: false,
11
- icon: '',
12
- iconSize: '',
13
- iconColor: '',
14
- disabled: false,
15
- rotate: 180,
16
- subTitle: '',
17
- titleIcon: '',
18
- titleIconColor: '',
19
- titleIconPosition: '',
20
- titleIconSize: '',
21
- childnull: true,
22
- };
23
- const CollapseItem = (props) => {
24
- const { children, title, isOpen, onToggle, name, disabled, icon, rotate, subTitle, titleIcon, titleIconColor, titleIconPosition, titleIconSize, iconSize, iconColor, childnull, iconClassPrefix, iconFontClassName, ...rest } = {
25
- ...defaultProps,
26
- ...props,
27
- };
28
- const [domHeight, setDomHeight] = useState(-1); // 保存content的高度
29
- const [currHeight, setCurrHeight] = useState('auto'); // 设置content的高度
30
- const [update, setUpdate] = useState(false);
31
- const [iconStyle, setIconStyle] = useState({
32
- transform: 'translateY(-50%)',
33
- });
34
- const colBem = cn('collapse-item');
35
- const measuredRef = useCallback((node) => {
36
- if (node !== null) {
37
- setDomHeight(node.getBoundingClientRect().height);
38
- }
39
- }, [update]);
40
- useEffect(() => {
41
- // 一开始content都有高度,在这里根据isOpen,改变其高度
42
- setTimeout(() => {
43
- if (domHeight !== -1) {
44
- isOpen ? setCurrHeight(`${domHeight}px`) : setCurrHeight('0px');
45
- }
46
- const newIconStyle = isOpen
47
- ? { transform: `translateY(-50%) rotate(${rotate}deg)` }
48
- : { transform: 'translateY(-50%)' };
49
- setIconStyle(newIconStyle);
50
- }, 10);
51
- }, [isOpen, domHeight, rotate]);
52
- useEffect(() => {
53
- if (!isOpen) {
54
- setCurrHeight('0px');
55
- }
56
- else {
57
- setCurrHeight('auto');
58
- }
59
- setUpdate(!update);
60
- }, [children, isOpen]);
61
- return (React__default.createElement("div", { className: colBem(), ...rest },
62
- React__default.createElement("div", { className: colBem('header', { disabled }), onClick: () => {
63
- if (disabled)
64
- return;
65
- onToggle && onToggle(isOpen, name);
66
- } },
67
- React__default.createElement("div", { className: colBem('title') },
68
- titleIcon && titleIconPosition === 'left' && (React__default.createElement("b", { className: colBem('title-icon-left') },
69
- React__default.createElement(Icon, { classPrefix: iconClassPrefix, fontClassName: iconFontClassName, name: titleIcon, size: titleIconSize, color: disabled ? '#C2C2C2' : titleIconColor }))),
70
- title,
71
- titleIcon && titleIconPosition === 'right' && (React__default.createElement("b", { className: colBem('title-icon-right') },
72
- React__default.createElement(Icon, { classPrefix: iconClassPrefix, fontClassName: iconFontClassName, name: titleIcon, size: titleIconSize, color: disabled ? '#C2C2C2' : titleIconColor })))),
73
- React__default.createElement("div", { className: colBem('sub-title') }, subTitle),
74
- React__default.createElement("div", { className: colBem('icon-box') },
75
- React__default.createElement("div", { className: colBem('icon'), style: iconStyle },
76
- React__default.createElement(Icon, { classPrefix: iconClassPrefix, fontClassName: iconFontClassName, name: icon, size: iconSize, color: disabled ? '#C2C2C2' : iconColor })))),
77
- childnull && (React__default.createElement("div", { className: colBem('content'), style: { height: currHeight }, ref: measuredRef },
78
- React__default.createElement("div", { className: colBem('content-text') }, children)))));
79
- };
80
- CollapseItem.defaultProps = defaultProps;
81
- CollapseItem.displayName = 'NutCollapseItem';
82
-
83
- export { CollapseItem as C };
@@ -1,19 +0,0 @@
1
- import { createContext, useContext } from 'react';
2
- import 'lodash.kebabcase';
3
- import { z as zhCN } from './zh-CN-c779e6c1.js';
4
-
5
- const defaultConfigRef = {
6
- current: {
7
- locale: zhCN,
8
- },
9
- };
10
- const getDefaultConfig = () => {
11
- return defaultConfigRef.current;
12
- };
13
- // 创建一个 Context 对象
14
- const ConfigContext = createContext(null);
15
- const useConfig = () => {
16
- return useContext(ConfigContext) ?? getDefaultConfig();
17
- };
18
-
19
- export { useConfig as u };
@@ -1,42 +0,0 @@
1
- import React__default, { createContext, useContext, useMemo } from 'react';
2
- import kebabCase from 'lodash.kebabcase';
3
- import { z as zhCN } from './zh-CN-c779e6c1.js';
4
-
5
- const defaultProps = {
6
- locale: zhCN,
7
- };
8
- const defaultConfigRef = {
9
- current: {
10
- locale: zhCN,
11
- },
12
- };
13
- const getDefaultConfig = () => {
14
- return defaultConfigRef.current;
15
- };
16
- // 创建一个 Context 对象
17
- const ConfigContext = createContext(null);
18
- const useConfig = () => {
19
- return useContext(ConfigContext) ?? getDefaultConfig();
20
- };
21
- function convertThemeVarsToCSSVars(themeVars) {
22
- const cssVars = {};
23
- Object.keys(themeVars).forEach((key) => {
24
- cssVars[`--${kebabCase(key)}`] = themeVars[key];
25
- });
26
- return cssVars;
27
- }
28
- const ConfigProvider = (props) => {
29
- const { children, ...config } = { ...defaultProps, ...props };
30
- const parentConfig = useConfig();
31
- const theme = config.theme || {};
32
- const style = useMemo(() => convertThemeVarsToCSSVars(theme), [theme]);
33
- return (React__default.createElement(ConfigContext.Provider, { value: {
34
- ...parentConfig,
35
- ...config,
36
- } },
37
- React__default.createElement("div", { style: style }, children)));
38
- };
39
- ConfigProvider.defaultProps = defaultProps;
40
- ConfigProvider.displayName = 'NutConfigProvider';
41
-
42
- export { ConfigProvider as C, useConfig as u };