@nutui/nutui-react-taro 1.4.4 → 1.4.5

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 (219) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/esm/Address.js +5 -5
  3. package/dist/esm/Audio.js +5 -5
  4. package/dist/esm/AvatarContext-7153ad2b.js +3 -1
  5. package/dist/esm/AvatarGroup.js +4 -4
  6. package/dist/esm/Calendar.js +5 -5
  7. package/dist/esm/CalendarItem.js +4 -4
  8. package/dist/esm/Card.js +4 -3
  9. package/dist/esm/Cell.js +2 -2
  10. package/dist/esm/ConfigProvider.js +3 -3
  11. package/dist/esm/CountDown.js +4 -4
  12. package/dist/esm/DatePicker.js +5 -5
  13. package/dist/esm/Dialog.js +4 -4
  14. package/dist/esm/Ellipsis.js +4 -4
  15. package/dist/esm/Empty.js +4 -4
  16. package/dist/esm/FixedNav.js +4 -4
  17. package/dist/esm/Form.js +4 -4
  18. package/dist/esm/FormItem.js +3 -3
  19. package/dist/esm/Grid.js +4 -4
  20. package/dist/esm/GridItem.js +4 -4
  21. package/dist/esm/Image.js +4 -4
  22. package/dist/esm/Infiniteloading.js +4 -4
  23. package/dist/esm/Input.js +4 -4
  24. package/dist/esm/MenuItem.js +4 -4
  25. package/dist/esm/NoticeBar.js +2 -2
  26. package/dist/esm/NumberKeyboard.js +4 -4
  27. package/dist/esm/Pagination.js +4 -4
  28. package/dist/esm/Picker.js +4 -4
  29. package/dist/esm/PullToRefresh.js +4 -4
  30. package/dist/esm/Range.js +4 -4
  31. package/dist/esm/SearchBar.js +4 -4
  32. package/dist/esm/ShortPassword.js +4 -4
  33. package/dist/esm/SideNavBar.js +4 -4
  34. package/dist/esm/Signature.js +4 -4
  35. package/dist/esm/Sticky.js +4 -4
  36. package/dist/esm/Table.js +4 -4
  37. package/dist/esm/Tag.js +3 -2
  38. package/dist/esm/TextArea.js +4 -4
  39. package/dist/esm/TimeDetail.js +4 -4
  40. package/dist/esm/TimePannel.js +4 -4
  41. package/dist/esm/TimeSelect.js +6 -6
  42. package/dist/esm/Uploader.js +4 -4
  43. package/dist/esm/UserContext-68f62e66.js +3 -1
  44. package/dist/esm/UserContext-b4181162.js +3 -1
  45. package/dist/esm/UserContext-be8097d2.js +3 -1
  46. package/dist/esm/VirtualList.js +6 -4
  47. package/dist/esm/WaterMark.js +4 -4
  48. package/dist/esm/actionsheet.taro-a58d3d12.js +45 -83
  49. package/dist/esm/address.taro-79cc7c96.js +461 -0
  50. package/dist/esm/animate.taro-b0e83dd5.js +32 -46
  51. package/dist/esm/animatingnumbers.taro-6f40a2e9.js +93 -134
  52. package/dist/esm/audio.taro-4fadc583.js +161 -0
  53. package/dist/esm/avatar.taro-85ced995.js +93 -119
  54. package/dist/esm/avatargroup-1d900174.js +34 -0
  55. package/dist/esm/backtop.taro-99107c30.js +39 -62
  56. package/dist/esm/badge.taro-fe9171ec.js +40 -58
  57. package/dist/esm/barrage.taro-0e157b5e.js +61 -91
  58. package/dist/esm/bem-893ad28d.js +3 -6
  59. package/dist/esm/button.taro-4ce133b9.js +87 -98
  60. package/dist/esm/calendar.taro-4ed72058.js +38 -0
  61. package/dist/esm/calendaritem.taro-1ebe428d.js +571 -0
  62. package/dist/esm/card.taro-39055e82.js +32 -0
  63. package/dist/esm/cascader.taro-d8cb1c3e.js +397 -636
  64. package/dist/esm/cell.taro-9a04a92e.js +64 -0
  65. package/dist/esm/cellgroup.taro-e094471c.js +18 -27
  66. package/dist/esm/checkbox.taro-0bda9796.js +160 -232
  67. package/dist/esm/circleprogress.taro-47db537c.js +99 -120
  68. package/dist/esm/col.taro-b61c7cba.js +33 -50
  69. package/dist/esm/collapse.taro-af58206c.js +73 -86
  70. package/dist/esm/collapseitem-ce1849d2.js +75 -139
  71. package/dist/esm/configprovider-5eea4f5d.js +19 -0
  72. package/dist/esm/configprovider.taro-26882dd2.js +42 -0
  73. package/dist/esm/countdown.taro-9e40de9c.js +225 -0
  74. package/dist/esm/datepicker.taro-7220e495.js +270 -0
  75. package/dist/esm/dialog.taro-1c03960e.js +123 -0
  76. package/dist/esm/divider.taro-5236fe6a.js +27 -27
  77. package/dist/esm/drag.taro-82b6b27a.js +99 -138
  78. package/dist/esm/elevator.taro-d7d65470.js +185 -259
  79. package/dist/esm/ellipsis.taro-49b6db0c.js +232 -0
  80. package/dist/esm/empty.taro-7bd813f9.js +62 -0
  81. package/dist/esm/fixednav.taro-5ad15202.js +53 -0
  82. package/dist/esm/form.taro-71d32671.js +179 -0
  83. package/dist/esm/formitem.taro-3089489b.js +89 -0
  84. package/dist/esm/grid.taro-e6decfce.js +58 -0
  85. package/dist/esm/grid.taro.context-39636af9.js +4 -2
  86. package/dist/esm/griditem.taro-4cade72e.js +90 -0
  87. package/dist/esm/icon-8dc4de10.js +43 -51
  88. package/dist/esm/icon.taro-1d0d4fb7.js +43 -51
  89. package/dist/esm/image.taro-e6dc5867.js +64 -0
  90. package/dist/esm/imagepreview.taro-3400ea03.js +158 -205
  91. package/dist/esm/index.taro-a36f96fb.js +149 -210
  92. package/dist/esm/indicator.taro-183ea169.js +29 -43
  93. package/dist/esm/infiniteloading.taro-6c2a2e95.js +142 -0
  94. package/dist/esm/input.taro-fd566407.js +243 -0
  95. package/dist/esm/inputnumber.taro-dc39b853.js +129 -177
  96. package/dist/esm/layout.taro-358f014f.js +6 -9
  97. package/dist/esm/menu.taro-4abed328.js +89 -132
  98. package/dist/esm/menuitem.taro-6e8b27c3.js +130 -0
  99. package/dist/esm/navbar.taro-c931c078.js +69 -105
  100. package/dist/esm/noticebar.taro-69ea7673.js +450 -0
  101. package/dist/esm/notify.taro-308e5892.js +66 -97
  102. package/dist/esm/numberkeyboard.taro-194519e4.js +158 -0
  103. package/dist/esm/nutui-react.es.js +44 -44
  104. package/dist/esm/offsetContext-bfb02c25.js +3 -1
  105. package/dist/esm/overlay.taro-98367bc1.js +59 -74
  106. package/dist/esm/pagination.taro-bb490de9.js +124 -0
  107. package/dist/esm/picker.taro-2a8ded7c.js +420 -0
  108. package/dist/esm/popover.taro-46d813e8.js +132 -222
  109. package/dist/esm/popup.taro-cb777e09.js +125 -178
  110. package/dist/esm/price.taro-8801462e.js +75 -86
  111. package/dist/esm/progress.taro-623bc807.js +84 -118
  112. package/dist/esm/pulltorefresh.taro-cab7b51c.js +221 -0
  113. package/dist/esm/range.taro-5d6ff217.js +332 -0
  114. package/dist/esm/rate.taro-10197384.js +64 -111
  115. package/dist/esm/row.taro-37a895de.js +38 -42
  116. package/dist/esm/searchbar.taro-839dd622.js +148 -0
  117. package/dist/esm/shortpassword.taro-182d46f7.js +111 -0
  118. package/dist/esm/sidenavbar.taro-006cf38b.js +35 -0
  119. package/dist/esm/sidenavbaritem.taro-fee11d26.js +9 -22
  120. package/dist/esm/signature.taro-33632585.js +143 -0
  121. package/dist/esm/skeleton.taro-853ce460.js +51 -88
  122. package/dist/esm/step.taro-1c94e067.js +49 -78
  123. package/dist/esm/steps.taro-acf205a0.js +21 -30
  124. package/dist/esm/sticky.taro-d0553f48.js +13 -0
  125. package/dist/esm/subsidenavbar.taro-f46b4c73.js +58 -75
  126. package/dist/esm/swipe.taro-83bc248f.js +164 -254
  127. package/dist/esm/swiper.taro-852f6615.js +424 -505
  128. package/dist/esm/swiperitem-86a3578a.js +20 -28
  129. package/dist/esm/switch.taro-bae2dca0.js +43 -64
  130. package/dist/esm/tabbar.taro-86cece39.js +47 -57
  131. package/dist/esm/tabbaritem.taro-8dfb8055.js +51 -79
  132. package/dist/esm/table.taro-cb4dd2c3.js +92 -0
  133. package/dist/esm/tabpane.taro-91cd6cf4.js +17 -22
  134. package/dist/esm/tabs.taro-e71875fa.js +121 -165
  135. package/dist/esm/tag.taro-00fe554d.js +89 -0
  136. package/dist/esm/textarea.taro-42600f8c.js +74 -0
  137. package/dist/esm/timedetail.taro-c5f564fd.js +44 -0
  138. package/dist/esm/timepannel.taro-29f9dd86.js +22 -0
  139. package/dist/esm/timeselect.taro-3ecce65d.js +133 -0
  140. package/dist/esm/toast.taro-0804b6b4.js +99 -137
  141. package/dist/esm/trendarrow.taro-5a7153e4.js +63 -90
  142. package/dist/esm/types/src/packages/cell/cell.taro.d.ts +0 -1
  143. package/dist/esm/types/src/packages/noticebar/noticebar.d.ts +5 -4
  144. package/dist/esm/types/src/packages/noticebar/noticebar.taro.d.ts +5 -4
  145. package/dist/esm/types/src/packages/uploader/uploader.d.ts +1 -1
  146. package/dist/esm/types/src/packages/virtuallist/virtuallist.taro.d.ts +13 -2
  147. package/dist/esm/typings-1c5f2628.js +7 -6
  148. package/dist/esm/uploader.taro-f80d76d9.js +392 -0
  149. package/dist/esm/useClientRect-bf69d7b3.js +5 -25
  150. package/dist/esm/useTouch-a2ea68c6.js +63 -93
  151. package/dist/esm/video-8a3518c5.js +59 -83
  152. package/dist/esm/virtuallist.taro-e3345ced.js +215 -0
  153. package/dist/esm/watermark.taro-cd9db98a.js +114 -0
  154. package/dist/esm/zh-CN-dfc384d0.js +128 -133
  155. package/dist/locales/base.js +1 -1
  156. package/dist/locales/en-US.js +1 -1
  157. package/dist/locales/id-ID.js +1 -1
  158. package/dist/locales/zh-CN.js +1 -1
  159. package/dist/locales/zh-TW.js +1 -1
  160. package/dist/locales/zh-UG.js +1 -1
  161. package/dist/nutui.react.es.js +634 -5664
  162. package/dist/nutui.react.umd.js +634 -5664
  163. package/dist/packages/noticebar/noticebar.scss +17 -0
  164. package/dist/packages/radio/radio.scss +3 -1
  165. package/dist/packages/row/row.scss +2 -0
  166. package/dist/packages/searchbar/searchbar.scss +1 -1
  167. package/dist/packages/tag/tag.scss +13 -5
  168. package/dist/packages/virtuallist/virtuallist.scss +24 -0
  169. package/dist/style.css +1 -1
  170. package/dist/style.es.js +1 -1
  171. package/dist/styles/temp.scss +2340 -0
  172. package/dist/styles/theme-dark.scss +7 -0
  173. package/dist/styles/theme-default.scss +11 -0
  174. package/dist/styles/variables.scss +1945 -710
  175. package/dist/types/index.d.ts +16 -23
  176. package/package.json +9 -4
  177. package/dist/esm/address.taro-1e2aea24.js +0 -615
  178. package/dist/esm/audio.taro-fddcdfc0.js +0 -228
  179. package/dist/esm/avatargroup-f7f600ff.js +0 -42
  180. package/dist/esm/calendar.taro-72974415.js +0 -83
  181. package/dist/esm/calendaritem.taro-84e889eb.js +0 -580
  182. package/dist/esm/card.taro-a530dfb3.js +0 -61
  183. package/dist/esm/cell.taro-cf50c4f2.js +0 -109
  184. package/dist/esm/configprovider-c7d60e20.js +0 -18
  185. package/dist/esm/configprovider.taro-8bdb3a28.js +0 -50
  186. package/dist/esm/countdown.taro-d7dc8681.js +0 -246
  187. package/dist/esm/datepicker.taro-7199f521.js +0 -304
  188. package/dist/esm/dialog.taro-f54cfbf0.js +0 -187
  189. package/dist/esm/ellipsis.taro-c0de6ff4.js +0 -309
  190. package/dist/esm/empty.taro-dbc66496.js +0 -81
  191. package/dist/esm/fixednav.taro-9e759320.js +0 -97
  192. package/dist/esm/form.taro-880014b1.js +0 -181
  193. package/dist/esm/formitem.taro-3695f4a7.js +0 -136
  194. package/dist/esm/grid.taro-c2cc12d6.js +0 -81
  195. package/dist/esm/griditem.taro-892153cd.js +0 -122
  196. package/dist/esm/image.taro-c30973d5.js +0 -105
  197. package/dist/esm/infiniteloading.taro-b5ddf3cc.js +0 -188
  198. package/dist/esm/input.taro-104130c1.js +0 -361
  199. package/dist/esm/menuitem.taro-216e9f7d.js +0 -193
  200. package/dist/esm/noticebar.taro-94002898.js +0 -368
  201. package/dist/esm/numberkeyboard.taro-5e8f0ddf.js +0 -245
  202. package/dist/esm/pagination.taro-9925ffab.js +0 -169
  203. package/dist/esm/picker.taro-3b5cc054.js +0 -540
  204. package/dist/esm/pulltorefresh.taro-f26a20dd.js +0 -302
  205. package/dist/esm/range.taro-c41e9b90.js +0 -469
  206. package/dist/esm/searchbar.taro-01ed4ea4.js +0 -236
  207. package/dist/esm/shortpassword.taro-3a3bf412.js +0 -190
  208. package/dist/esm/sidenavbar.taro-06026f31.js +0 -66
  209. package/dist/esm/signature.taro-17648cac.js +0 -192
  210. package/dist/esm/sticky.taro-36013e97.js +0 -16
  211. package/dist/esm/table.taro-adda6622.js +0 -139
  212. package/dist/esm/tag.taro-bd900990.js +0 -104
  213. package/dist/esm/textarea.taro-83d5fe73.js +0 -102
  214. package/dist/esm/timedetail.taro-105f5380.js +0 -68
  215. package/dist/esm/timepannel.taro-c66c63dd.js +0 -30
  216. package/dist/esm/timeselect.taro-fc7ec6ee.js +0 -172
  217. package/dist/esm/uploader.taro-a1edf38f.js +0 -529
  218. package/dist/esm/virtuallist.taro-4add61c3.js +0 -315
  219. package/dist/esm/watermark.taro-323d1cf3.js +0 -132
@@ -0,0 +1,64 @@
1
+ import React__default from 'react';
2
+ import Taro from '@tarojs/taro';
3
+ import { c as cn } from './bem-893ad28d.js';
4
+ import { I as Icon } from './icon.taro-1d0d4fb7.js';
5
+ import { C as ComponentDefaults } from './typings-1c5f2628.js';
6
+
7
+ const defaultProps = {
8
+ ...ComponentDefaults,
9
+ title: null,
10
+ subTitle: null,
11
+ desc: '',
12
+ descTextAlign: 'right',
13
+ isLink: false,
14
+ icon: '',
15
+ roundRadius: '6px',
16
+ url: '',
17
+ to: '',
18
+ replace: false,
19
+ center: false,
20
+ size: '',
21
+ className: '',
22
+ iconSlot: null,
23
+ linkSlot: null,
24
+ onClick: (event) => { },
25
+ };
26
+ const Cell = (props) => {
27
+ const { children, onClick, title, subTitle, desc, descTextAlign, isLink, icon, roundRadius, url, to, replace, center, size, className, iconSlot, linkSlot, iconClassPrefix, iconFontClassName, ...rest } = {
28
+ ...defaultProps,
29
+ ...props,
30
+ };
31
+ const b = cn('cell');
32
+ const handleClick = (event) => {
33
+ onClick(event);
34
+ const link = to || url;
35
+ if (link) {
36
+ replace ? Taro.redirectTo({ url: link }) : Taro.navigateTo({ url: link });
37
+ }
38
+ };
39
+ const baseStyle = {
40
+ borderRadius: Number.isNaN(Number(roundRadius))
41
+ ? String(roundRadius)
42
+ : `${roundRadius}px`,
43
+ };
44
+ const styles = title || subTitle || icon
45
+ ? { textAlign: descTextAlign }
46
+ : {
47
+ textAlign: descTextAlign,
48
+ flex: 1,
49
+ };
50
+ return (React__default.createElement("div", { className: `${b({ clickable: !!(isLink || to), center, large: size === 'large' }, [className])} `, onClick: (event) => handleClick(event), style: baseStyle, ...rest }, children || (React__default.createElement(React__default.Fragment, null,
51
+ icon || iconSlot ? (React__default.createElement("div", { className: b('icon') }, iconSlot ||
52
+ (icon ? (React__default.createElement(Icon, { classPrefix: iconClassPrefix, fontClassName: iconFontClassName, name: icon, className: "icon" })) : null))) : null,
53
+ title || subTitle ? (React__default.createElement("div", { className: `${b('title')}` },
54
+ title ? React__default.createElement("div", { className: b('maintitle') }, title) : null,
55
+ subTitle ? (React__default.createElement("div", { className: b('subtitle') }, subTitle)) : null)) : null,
56
+ desc ? (React__default.createElement("div", { className: b('value', {
57
+ alone: !title && !subTitle,
58
+ }), style: styles }, desc)) : null,
59
+ !linkSlot && (isLink || to) ? (React__default.createElement(Icon, { classPrefix: iconClassPrefix, fontClassName: iconFontClassName, name: "right", className: b('link') })) : (linkSlot)))));
60
+ };
61
+ Cell.defaultProps = defaultProps;
62
+ Cell.displayName = 'NutCell';
63
+
64
+ export { Cell as C };
@@ -1,34 +1,25 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
1
  import React__default from 'react';
5
2
  import { c as cn } from './bem-893ad28d.js';
6
- var defaultProps = {
7
- title: '',
8
- desc: '',
9
- className: '',
10
- titleSlot: null,
11
- descSlot: null
3
+
4
+ const defaultProps = {
5
+ title: '',
6
+ desc: '',
7
+ className: '',
8
+ titleSlot: null,
9
+ descSlot: null,
12
10
  };
13
- var CellGroup = function CellGroup(props) {
14
- var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),
15
- children = _defaultProps$props.children,
16
- className = _defaultProps$props.className,
17
- title = _defaultProps$props.title,
18
- desc = _defaultProps$props.desc,
19
- titleSlot = _defaultProps$props.titleSlot,
20
- descSlot = _defaultProps$props.descSlot;
21
- var b = cn('cell-group');
22
- return React__default.createElement("div", {
23
- className: b(null, [className])
24
- }, titleSlot || React__default.createElement(React__default.Fragment, null, title ? React__default.createElement("div", {
25
- className: b('title')
26
- }, title) : null), descSlot || React__default.createElement(React__default.Fragment, null, desc ? React__default.createElement("div", {
27
- className: b('desc')
28
- }, desc) : null), React__default.createElement("div", {
29
- className: b('wrap')
30
- }, children));
11
+ const CellGroup = (props) => {
12
+ const { children, className, title, desc, titleSlot, descSlot } = {
13
+ ...defaultProps,
14
+ ...props,
15
+ };
16
+ const b = cn('cell-group');
17
+ return (React__default.createElement("div", { className: b(null, [className]) },
18
+ titleSlot || (React__default.createElement(React__default.Fragment, null, title ? React__default.createElement("div", { className: b('title') }, title) : null)),
19
+ descSlot || React__default.createElement(React__default.Fragment, null, desc ? React__default.createElement("div", { className: b('desc') }, desc) : null),
20
+ React__default.createElement("div", { className: b('wrap') }, children)));
31
21
  };
32
22
  CellGroup.defaultProps = defaultProps;
33
23
  CellGroup.displayName = 'NutCellGroup';
24
+
34
25
  export { CellGroup as C };
@@ -1,249 +1,177 @@
1
- import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
- import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
5
- var _excluded = ["className", "disabled", "onChange", "checkedValue", "max", "options"],
6
- _excluded2 = ["label", "value", "disabled", "onChange"],
7
- _excluded3 = ["iconName", "iconSize", "label", "className", "textPosition", "iconActiveName", "checked", "disabled", "onChange", "indeterminate", "iconClassPrefix", "iconFontClassName", "iconIndeterminateName", "getParentVals", "max"];
8
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
9
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
10
1
  import React__default, { useState, useImperativeHandle, useEffect, useCallback } from 'react';
11
2
  import { I as Icon } from './icon.taro-1d0d4fb7.js';
12
3
  import { c as cn } from './bem-893ad28d.js';
13
4
  import { C as ComponentDefaults } from './typings-1c5f2628.js';
14
- var defaultProps$1 = {
15
- disabled: false,
16
- checkedValue: [],
17
- max: undefined,
18
- onChange: function onChange(value) {},
19
- options: []
5
+
6
+ const defaultProps$1 = {
7
+ disabled: false,
8
+ checkedValue: [],
9
+ max: undefined,
10
+ onChange: (value) => { },
11
+ options: [],
20
12
  };
21
- var CheckboxGroup = React__default.forwardRef(function (props, ref) {
22
- var _defaultProps$1$props = _objectSpread(_objectSpread({}, defaultProps$1), props),
23
- children = _defaultProps$1$props.children;
24
- var b = cn('checkboxgroup');
25
- var className = props.className,
26
- disabled = props.disabled,
27
- onChange = props.onChange,
28
- checkedValue = props.checkedValue,
29
- max = props.max,
30
- options = props.options,
31
- rest = _objectWithoutProperties(props, _excluded);
32
- var _useState = useState(disabled),
33
- _useState2 = _slicedToArray(_useState, 2),
34
- innerDisabled = _useState2[0],
35
- setInnerDisabled = _useState2[1];
36
- var _useState3 = useState(checkedValue),
37
- _useState4 = _slicedToArray(_useState3, 2),
38
- innerValue = _useState4[0],
39
- setInnerValue = _useState4[1];
40
- useImperativeHandle(ref, function () {
41
- return {
42
- toggleAll: function toggleAll(state) {
43
- if (state === false) {
44
- setInnerValue([]);
45
- } else {
46
- var childrenLabel = [];
47
- React__default.Children.map(children, function (child) {
48
- var childProps = child.props;
49
- childrenLabel.push(childProps.label || child.children);
50
- });
51
- setInnerValue(childrenLabel);
13
+ const CheckboxGroup = React__default.forwardRef((props, ref) => {
14
+ const { children } = { ...defaultProps$1, ...props };
15
+ const b = cn('checkboxgroup');
16
+ const { className, disabled, onChange, checkedValue, max, options, ...rest } = props;
17
+ const [innerDisabled, setInnerDisabled] = useState(disabled);
18
+ const [innerValue, setInnerValue] = useState(checkedValue);
19
+ useImperativeHandle(ref, () => ({
20
+ toggleAll(state) {
21
+ if (state === false) {
22
+ setInnerValue([]);
23
+ }
24
+ else {
25
+ const childrenLabel = [];
26
+ React__default.Children.map(children, (child) => {
27
+ const childProps = child.props;
28
+ childrenLabel.push(childProps.label || child.children);
29
+ });
30
+ setInnerValue(childrenLabel);
31
+ }
32
+ },
33
+ toggleReverse() {
34
+ const childrenLabel = [];
35
+ React__default.Children.map(children, (child) => {
36
+ const childProps = child.props;
37
+ childrenLabel.push(childProps.label || child.children);
38
+ });
39
+ const reverse = childrenLabel.filter((c) => innerValue?.findIndex((v) => v === c) === -1);
40
+ setInnerValue(reverse);
41
+ },
42
+ }));
43
+ useEffect(() => {
44
+ setInnerDisabled(disabled);
45
+ setInnerValue(checkedValue);
46
+ }, [disabled, checkedValue]);
47
+ function handleChildChange(state, label) {
48
+ if (max !== undefined && innerValue && innerValue.length > max)
49
+ return;
50
+ if (innerValue) {
51
+ let clippedValue = [];
52
+ if (state) {
53
+ clippedValue = [...innerValue, label];
54
+ }
55
+ else {
56
+ innerValue?.splice(innerValue?.indexOf(label), 1);
57
+ clippedValue = [...innerValue];
58
+ }
59
+ setInnerValue(clippedValue);
60
+ onChange && onChange(clippedValue);
52
61
  }
53
- },
54
- toggleReverse: function toggleReverse() {
55
- var childrenLabel = [];
56
- React__default.Children.map(children, function (child) {
57
- var childProps = child.props;
58
- childrenLabel.push(childProps.label || child.children);
59
- });
60
- var reverse = childrenLabel.filter(function (c) {
61
- return (innerValue === null || innerValue === void 0 ? void 0 : innerValue.findIndex(function (v) {
62
- return v === c;
63
- })) === -1;
64
- });
65
- setInnerValue(reverse);
66
- }
67
- };
68
- });
69
- useEffect(function () {
70
- setInnerDisabled(disabled);
71
- setInnerValue(checkedValue);
72
- }, [disabled, checkedValue]);
73
- function handleChildChange(state, label) {
74
- if (max !== undefined && innerValue && innerValue.length > max) return;
75
- if (innerValue) {
76
- var clippedValue = [];
77
- if (state) {
78
- clippedValue = [].concat(_toConsumableArray(innerValue), [label]);
79
- } else {
80
- innerValue === null || innerValue === void 0 ? void 0 : innerValue.splice(innerValue === null || innerValue === void 0 ? void 0 : innerValue.indexOf(label), 1);
81
- clippedValue = _toConsumableArray(innerValue);
82
- }
83
- setInnerValue(clippedValue);
84
- onChange && onChange(clippedValue);
85
62
  }
86
- }
87
- function validateChildChecked(child) {
88
- if (!innerValue) return false;
89
- return (innerValue === null || innerValue === void 0 ? void 0 : innerValue.indexOf(child.props.label || child.children)) > -1;
90
- }
91
- function validateChecked(value) {
92
- if (innerValue === null) return false;
93
- return innerValue === value;
94
- }
95
- function getParentVals() {
96
- return innerValue;
97
- }
98
- function cloneChildren() {
99
- return React__default.Children.map(children, function (child) {
100
- var childChecked = validateChildChecked(child);
101
- if (child.type.displayName !== 'NutCheckBox') {
102
- return React__default.cloneElement(child);
103
- }
104
- return React__default.cloneElement(child, {
105
- disabled: innerDisabled,
106
- checked: childChecked,
107
- onChange: handleChildChange,
108
- getParentVals: getParentVals,
109
- max: max
110
- });
111
- });
112
- }
113
- var renderOptionsChildren = useCallback(function () {
114
- return options === null || options === void 0 ? void 0 : options.map(function (_ref) {
115
- var label = _ref.label,
116
- value = _ref.value,
117
- disabled = _ref.disabled,
118
- onChange = _ref.onChange,
119
- rest = _objectWithoutProperties(_ref, _excluded2);
120
- var childChecked = validateChecked(value);
121
- return React__default.createElement(Checkbox, _objectSpread(_objectSpread({
122
- key: value === null || value === void 0 ? void 0 : value.toString(),
123
- children: label,
124
- label: value,
125
- disabled: innerDisabled ? true : disabled,
126
- onChange: handleChildChange
127
- }, rest), {}, {
128
- max: max,
129
- getParentVals: getParentVals,
130
- checked: childChecked
131
- }));
132
- });
133
- }, [innerValue, options]);
134
- return React__default.createElement("div", _objectSpread({
135
- className: "".concat(b(), " ").concat(className || '')
136
- }, rest), options !== null && options !== void 0 && options.length ? renderOptionsChildren() : cloneChildren());
137
- });
138
- CheckboxGroup.defaultProps = defaultProps$1;
139
- CheckboxGroup.displayName = 'NutCheckboxGroup';
140
- var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
141
- checked: false,
142
- disabled: false,
143
- textPosition: 'right',
144
- iconSize: 18,
145
- iconName: 'check-normal',
146
- iconActiveName: 'checked',
147
- iconClassPrefix: 'nut-icon',
148
- iconFontClassName: 'nutui-iconfont',
149
- iconIndeterminateName: 'check-disabled',
150
- onChange: function onChange(state, label) {}
151
- });
152
- var Checkbox = function Checkbox(props) {
153
- var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),
154
- children = _defaultProps$props.children;
155
- var b = cn('checkbox');
156
- var iconName = props.iconName,
157
- iconSize = props.iconSize,
158
- label = props.label,
159
- className = props.className,
160
- textPosition = props.textPosition,
161
- iconActiveName = props.iconActiveName,
162
- checked = props.checked,
163
- disabled = props.disabled,
164
- onChange = props.onChange,
165
- indeterminate = props.indeterminate,
166
- iconClassPrefix = props.iconClassPrefix,
167
- iconFontClassName = props.iconFontClassName,
168
- iconIndeterminateName = props.iconIndeterminateName,
169
- getParentVals = props.getParentVals,
170
- max = props.max,
171
- rest = _objectWithoutProperties(props, _excluded3);
172
- var _useState5 = useState(checked),
173
- _useState6 = _slicedToArray(_useState5, 2),
174
- innerChecked = _useState6[0],
175
- setInnerChecked = _useState6[1];
176
- var _useState7 = useState(disabled),
177
- _useState8 = _slicedToArray(_useState7, 2),
178
- innerDisabled = _useState8[0],
179
- setDisabled = _useState8[1];
180
- var _useState9 = useState(indeterminate),
181
- _useState10 = _slicedToArray(_useState9, 2),
182
- _indeterminate = _useState10[0],
183
- setIndeterminate = _useState10[1];
184
- useEffect(function () {
185
- setInnerChecked(checked);
186
- setDisabled(disabled);
187
- }, [disabled, checked]);
188
- useEffect(function () {
189
- setIndeterminate(indeterminate);
190
- }, [indeterminate]);
191
- var getIconName = function getIconName() {
192
- if (!innerChecked) {
193
- return iconName;
63
+ function validateChildChecked(child) {
64
+ if (!innerValue)
65
+ return false;
66
+ return innerValue?.indexOf(child.props.label || child.children) > -1;
194
67
  }
195
- if (_indeterminate) {
196
- return iconIndeterminateName;
68
+ function validateChecked(value) {
69
+ if (innerValue === null)
70
+ return false;
71
+ return innerValue === value;
197
72
  }
198
- return iconActiveName;
199
- };
200
- var renderIcon = function renderIcon() {
201
- return React__default.createElement(Icon, {
202
- classPrefix: iconClassPrefix,
203
- fontClassName: iconFontClassName,
204
- name: getIconName(),
205
- size: iconSize,
206
- className: color()
207
- });
208
- };
209
- var color = function color() {
210
- if (innerDisabled) {
211
- return 'nut-checkbox__icon--disable';
73
+ function getParentVals() {
74
+ return innerValue;
212
75
  }
213
- if (innerChecked) {
214
- if (_indeterminate) {
215
- return 'nut-checkbox__icon--indeterminate';
216
- }
217
- return 'nut-checkbox__icon';
76
+ function cloneChildren() {
77
+ return React__default.Children.map(children, (child) => {
78
+ const childChecked = validateChildChecked(child);
79
+ if (child.type.displayName !== 'NutCheckBox') {
80
+ return React__default.cloneElement(child);
81
+ }
82
+ return React__default.cloneElement(child, {
83
+ disabled: innerDisabled,
84
+ checked: childChecked,
85
+ onChange: handleChildChange,
86
+ getParentVals,
87
+ max,
88
+ });
89
+ });
218
90
  }
219
- return 'nut-checkbox__icon--unchecked';
220
- // return !innerDisabled ? (!innerChecked ? '#d6d6d6' : '#fa2c19') : '#f5f5f5'
221
- };
91
+ const renderOptionsChildren = useCallback(() => {
92
+ return options?.map(({ label, value, disabled, onChange, ...rest }) => {
93
+ const childChecked = validateChecked(value);
94
+ return (React__default.createElement(Checkbox, { key: value?.toString(), children: label, label: value, disabled: innerDisabled ? true : disabled, onChange: handleChildChange, ...rest, max: max, getParentVals: getParentVals, checked: childChecked }));
95
+ });
96
+ }, [innerValue, options]);
97
+ return (React__default.createElement("div", { className: `${b()} ${className || ''}`, ...rest }, options?.length ? renderOptionsChildren() : cloneChildren()));
98
+ });
99
+ CheckboxGroup.defaultProps = defaultProps$1;
100
+ CheckboxGroup.displayName = 'NutCheckboxGroup';
222
101
 
223
- var renderLabel = function renderLabel() {
224
- return React__default.createElement("span", {
225
- className: "".concat(b('label', {
226
- disabled: innerDisabled
227
- }), " ")
228
- }, children || label);
229
- };
230
- var handleClick = function handleClick() {
231
- if (!disabled) {
232
- var latest = !innerChecked;
233
- if (max !== undefined && latest && getParentVals().length >= max) return;
234
- onChange && onChange(latest, label || children);
235
- setInnerChecked(latest);
236
- }
237
- };
238
- return React__default.createElement("div", _objectSpread(_objectSpread({
239
- className: "".concat(b({
240
- reverse: textPosition === 'left'
241
- }), " ").concat(className || '')
242
- }, rest), {}, {
243
- onClick: handleClick
244
- }), renderIcon(), renderLabel());
102
+ const defaultProps = {
103
+ ...ComponentDefaults,
104
+ checked: false,
105
+ disabled: false,
106
+ textPosition: 'right',
107
+ iconSize: 18,
108
+ iconName: 'check-normal',
109
+ iconActiveName: 'checked',
110
+ iconClassPrefix: 'nut-icon',
111
+ iconFontClassName: 'nutui-iconfont',
112
+ iconIndeterminateName: 'check-disabled',
113
+ onChange: (state, label) => { },
114
+ };
115
+ const Checkbox = (props) => {
116
+ const { children } = {
117
+ ...defaultProps,
118
+ ...props,
119
+ };
120
+ const b = cn('checkbox');
121
+ const { iconName, iconSize, label, className, textPosition, iconActiveName, checked, disabled, onChange, indeterminate, iconClassPrefix, iconFontClassName, iconIndeterminateName, getParentVals, max, ...rest } = props;
122
+ const [innerChecked, setInnerChecked] = useState(checked);
123
+ const [innerDisabled, setDisabled] = useState(disabled);
124
+ const [_indeterminate, setIndeterminate] = useState(indeterminate);
125
+ useEffect(() => {
126
+ setInnerChecked(checked);
127
+ setDisabled(disabled);
128
+ }, [disabled, checked]);
129
+ useEffect(() => {
130
+ setIndeterminate(indeterminate);
131
+ }, [indeterminate]);
132
+ const getIconName = () => {
133
+ if (!innerChecked) {
134
+ return iconName;
135
+ }
136
+ if (_indeterminate) {
137
+ return iconIndeterminateName;
138
+ }
139
+ return iconActiveName;
140
+ };
141
+ const renderIcon = () => {
142
+ return (React__default.createElement(Icon, { classPrefix: iconClassPrefix, fontClassName: iconFontClassName, name: getIconName(), size: iconSize, className: color() }));
143
+ };
144
+ const color = () => {
145
+ if (innerDisabled) {
146
+ return 'nut-checkbox__icon--disable';
147
+ }
148
+ if (innerChecked) {
149
+ if (_indeterminate) {
150
+ return 'nut-checkbox__icon--indeterminate';
151
+ }
152
+ return 'nut-checkbox__icon';
153
+ }
154
+ return 'nut-checkbox__icon--unchecked';
155
+ // return !innerDisabled ? (!innerChecked ? '#d6d6d6' : '#fa2c19') : '#f5f5f5'
156
+ };
157
+ const renderLabel = () => {
158
+ return (React__default.createElement("span", { className: `${b('label', { disabled: innerDisabled })} ` }, children || label));
159
+ };
160
+ const handleClick = () => {
161
+ if (!disabled) {
162
+ const latest = !innerChecked;
163
+ if (max !== undefined && latest && getParentVals().length >= max)
164
+ return;
165
+ onChange && onChange(latest, label || children);
166
+ setInnerChecked(latest);
167
+ }
168
+ };
169
+ return (React__default.createElement("div", { className: `${b({ reverse: textPosition === 'left' })} ${className || ''}`, ...rest, onClick: handleClick },
170
+ renderIcon(),
171
+ renderLabel()));
245
172
  };
246
173
  Checkbox.defaultProps = defaultProps;
247
174
  Checkbox.displayName = 'NutCheckBox';
248
175
  Checkbox.Group = CheckboxGroup;
176
+
249
177
  export { Checkbox as C, CheckboxGroup as a };