@nutui/nutui-react 2.3.12-beta.0 → 2.4.0-beta.0
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.
- package/CHANGELOG.md +48 -0
- package/dist/esm/ActionSheet.js +30 -76
- package/dist/esm/Address.js +80 -171
- package/dist/esm/Animate.js +21 -49
- package/dist/esm/AnimatingNumbers/style/style.css +1 -1
- package/dist/esm/AnimatingNumbers.js +47 -120
- package/dist/esm/Audio.js +88 -159
- package/dist/esm/Avatar.js +44 -91
- package/dist/esm/AvatarCropper.js +149 -268
- package/dist/esm/AvatarGroup.js +13 -44
- package/dist/esm/BackTop.js +34 -75
- package/dist/esm/Badge/style/style.css +1 -1
- package/dist/esm/Barrage.js +49 -83
- package/dist/esm/Calendar.js +27 -119
- package/dist/esm/CalendarCard.js +180 -291
- package/dist/esm/CalendarItem.js +253 -314
- package/dist/esm/Card.js +38 -72
- package/dist/esm/Cell.js +27 -62
- package/dist/esm/CellGroup.js +16 -45
- package/dist/esm/Checkbox/style/style.css +1 -1
- package/dist/esm/CheckboxGroup/style/style.css +1 -1
- package/dist/esm/CheckboxGroup.js +52 -85
- package/dist/esm/CircleProgress.js +42 -93
- package/dist/esm/Col.js +17 -48
- package/dist/esm/Collapse/style/style.css +1 -1
- package/dist/esm/Collapse.js +18 -49
- package/dist/esm/CollapseItem/style/style.css +1 -1
- package/dist/esm/ConfigProvider.js +3 -2
- package/dist/esm/CountDown.js +63 -102
- package/dist/esm/DatePicker.js +88 -128
- package/dist/esm/Dialog/style/style.css +1 -1
- package/dist/esm/Dialog.js +124 -197
- package/dist/esm/Divider.js +16 -36
- package/dist/esm/Drag.js +32 -76
- package/dist/esm/Elevator.js +93 -133
- package/dist/esm/Ellipsis.js +71 -92
- package/dist/esm/Empty.js +31 -70
- package/dist/esm/FixedNav.js +32 -81
- package/dist/esm/Form.js +28 -61
- package/dist/esm/Grid.js +27 -51
- package/dist/esm/Image.js +47 -102
- package/dist/esm/ImagePreview.js +82 -135
- package/dist/esm/InfiniteLoading.js +77 -159
- package/dist/esm/Input.js +57 -125
- package/dist/esm/InputNumber/style/style.css +1 -1
- package/dist/esm/InputNumber.js +67 -97
- package/dist/esm/Layout.js +4 -28
- package/dist/esm/Loading.js +13 -40
- package/dist/esm/Menu.js +51 -105
- package/dist/esm/NavBar.js +46 -85
- package/dist/esm/NoticeBar/style/style.css +1 -1
- package/dist/esm/NoticeBar.js +158 -227
- package/dist/esm/Notify.js +87 -178
- package/dist/esm/NumberKeyboard.js +84 -150
- package/dist/esm/Pagination.js +58 -97
- package/dist/esm/Picker.js +215 -276
- package/dist/esm/Popover/style/style.css +1 -1
- package/dist/esm/Popover.js +112 -159
- package/dist/esm/Price.js +23 -60
- package/dist/esm/Progress.js +47 -77
- package/dist/esm/PullToRefresh.js +94 -201
- package/dist/esm/RadioGroup.js +23 -53
- package/dist/esm/Range.js +113 -177
- package/dist/esm/Rate.js +48 -95
- package/dist/esm/Row.js +19 -43
- package/dist/esm/SearchBar.js +52 -119
- package/dist/esm/ShortPassword.js +58 -106
- package/dist/esm/SideNavBar.js +34 -59
- package/dist/esm/SideNavBarItem.js +7 -36
- package/dist/esm/Signature.js +49 -84
- package/dist/esm/Skeleton.js +31 -68
- package/dist/esm/Space.js +7 -34
- package/dist/esm/Step.js +35 -64
- package/dist/esm/Steps.js +16 -40
- package/dist/esm/Sticky.js +64 -108
- package/dist/esm/SubSideNavBar.js +42 -71
- package/dist/esm/Swipe/style/style.css +1 -1
- package/dist/esm/Swipe.js +79 -143
- package/dist/esm/Swiper.js +137 -184
- package/dist/esm/SwiperItem.js +13 -38
- package/dist/esm/Switch.js +20 -53
- package/dist/esm/TabPane.js +6 -30
- package/dist/esm/Tabbar/style/style.css +1 -1
- package/dist/esm/Tabbar.js +29 -59
- package/dist/esm/TabbarItem/style/style.css +1 -1
- package/dist/esm/Table.js +99 -147
- package/dist/esm/Tag.js +30 -74
- package/dist/esm/TextArea.js +37 -82
- package/dist/esm/TimeDetail.js +20 -58
- package/dist/esm/TimeSelect.js +57 -95
- package/dist/esm/Toast.js +110 -197
- package/dist/esm/Tour/style/style.css +1 -1
- package/dist/esm/Tour.js +88 -132
- package/dist/esm/TrendArrow.js +32 -74
- package/dist/esm/Uploader.js +226 -346
- package/dist/esm/UserContext.js +1 -1
- package/dist/esm/Video.js +34 -67
- package/dist/esm/VirtualList.js +127 -160
- package/dist/esm/WaterMark.js +24 -68
- package/dist/esm/badge2.js +26 -53
- package/dist/esm/button2.js +30 -63
- package/dist/esm/can-use-dom.js +1 -1
- package/dist/esm/cascader2.js +307 -536
- package/dist/esm/checkbox2.js +70 -96
- package/dist/esm/collapseitem2.js +48 -86
- package/dist/esm/configprovider2.js +43 -1003
- package/dist/esm/context.js +1 -1
- package/dist/esm/context2.js +1 -1
- package/dist/esm/context3.js +1 -1
- package/dist/esm/context4.js +1 -1
- package/dist/esm/context5.js +8 -8
- package/dist/esm/date.js +88 -66
- package/dist/esm/formitem2.js +236 -1510
- package/dist/esm/get-scroll-parent.js +8 -10
- package/dist/esm/griditem2.js +34 -52
- package/dist/esm/index.js +5 -12
- package/dist/esm/indicator2.js +13 -42
- package/dist/esm/menuitem2.js +81 -124
- package/dist/esm/overlay2.js +39 -78
- package/dist/esm/pad-zero.js +3 -4
- package/dist/esm/popup2.js +79 -124
- package/dist/esm/px-check.js +2 -2
- package/dist/esm/radio2.js +48 -79
- package/dist/esm/raf.js +5 -3
- package/dist/esm/render.js +17 -54
- package/dist/esm/safearea2.js +3 -5
- package/dist/esm/supports-passive.js +3 -3
- package/dist/esm/tabbaritem2.js +42 -58
- package/dist/esm/tabs2.js +82 -120
- package/dist/esm/tslib.es6.js +47 -0
- package/dist/esm/types/src/packages/button/demos/h5/demo1.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/h5/demo2.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/h5/demo3.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/h5/demo4.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/h5/demo5.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/h5/demo6.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/h5/demo7.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/h5/demo8.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/h5/demo9.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/taro/demo1.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/taro/demo10.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/taro/demo2.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/taro/demo3.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/taro/demo4.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/taro/demo5.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/taro/demo6.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/taro/demo7.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/taro/demo8.d.ts +3 -0
- package/dist/esm/types/src/packages/button/demos/taro/demo9.d.ts +3 -0
- package/dist/esm/types/src/packages/cell/demo.d.ts +0 -1
- package/dist/esm/types/src/packages/cell/demo.taro.d.ts +0 -1
- package/dist/esm/types/src/packages/cell/demos/h5/demo1.d.ts +3 -0
- package/dist/esm/types/src/packages/cell/demos/h5/demo2.d.ts +3 -0
- package/dist/esm/types/src/packages/cell/demos/h5/demo3.d.ts +3 -0
- package/dist/esm/types/src/packages/cell/demos/h5/demo4.d.ts +3 -0
- package/dist/esm/types/src/packages/cell/demos/h5/demo5.d.ts +3 -0
- package/dist/esm/types/src/packages/cell/demos/h5/demo6.d.ts +3 -0
- package/dist/esm/types/src/packages/cell/demos/h5/demo7.d.ts +3 -0
- package/dist/esm/types/src/packages/cell/demos/taro/demo1.d.ts +3 -0
- package/dist/esm/types/src/packages/cell/demos/taro/demo2.d.ts +3 -0
- package/dist/esm/types/src/packages/cell/demos/taro/demo3.d.ts +3 -0
- package/dist/esm/types/src/packages/cell/demos/taro/demo4.d.ts +3 -0
- package/dist/esm/types/src/packages/cell/demos/taro/demo5.d.ts +3 -0
- package/dist/esm/types/src/packages/cell/demos/taro/demo6.d.ts +3 -0
- package/dist/esm/types/src/packages/cell/demos/taro/demo7.d.ts +3 -0
- package/dist/esm/types/src/packages/checkboxgroup/checkboxgroup.d.ts +1 -0
- package/dist/esm/types/src/packages/checkboxgroup/checkboxgroup.taro.d.ts +1 -0
- package/dist/esm/types/src/packages/checkboxgroup/context.d.ts +1 -0
- package/dist/esm/types/src/packages/configprovider/configprovider.d.ts +1 -0
- package/dist/esm/types/src/packages/configprovider/configprovider.taro.d.ts +1 -0
- package/dist/esm/types/src/packages/configprovider/index.d.ts +2 -2
- package/dist/esm/types/src/packages/configprovider/index.taro.d.ts +2 -2
- package/dist/esm/types/src/packages/configprovider/types.d.ts +1 -1
- package/dist/esm/types/src/packages/dialog/config.d.ts +3 -3
- package/dist/esm/types/src/packages/dialog/index.d.ts +1 -1
- package/dist/esm/types/src/packages/inputnumber/inputnumber.taro.d.ts +2 -0
- package/dist/esm/types/src/packages/noticebar/index.d.ts +1 -0
- package/dist/esm/types/src/packages/noticebar/noticebar.d.ts +2 -0
- package/dist/esm/types/src/packages/noticebar/noticebar.taro.d.ts +2 -0
- package/dist/esm/types/src/packages/noticebar/types.d.ts +1 -0
- package/dist/esm/types/src/packages/popover/index.d.ts +2 -1
- package/dist/esm/types/src/packages/popover/index.taro.d.ts +2 -1
- package/dist/esm/types/src/packages/popover/popover.d.ts +2 -12
- package/dist/esm/types/src/packages/popover/popover.taro.d.ts +2 -12
- package/dist/esm/types/src/packages/popover/types.d.ts +14 -0
- package/dist/esm/types/src/packages/table/useTableSticky.d.ts +1 -1
- package/dist/esm/types/src/packages/toast/toast.taro.d.ts +7 -3
- package/dist/esm/types/src/packages/tour/tour.d.ts +1 -1
- package/dist/esm/types/src/packages/tour/tour.taro.d.ts +1 -1
- package/dist/esm/typings.js +1 -1
- package/dist/esm/use-click-away.js +9 -13
- package/dist/esm/use-client-rect.js +4 -4
- package/dist/esm/use-props-value.js +10 -15
- package/dist/esm/use-refs.js +5 -7
- package/dist/esm/use-touch.js +16 -20
- package/dist/locales/base.js +1 -1
- package/dist/locales/en-US.js +1 -1
- package/dist/locales/id-ID.js +1 -1
- package/dist/locales/tr-TR.js +1 -1
- package/dist/locales/zh-CN.js +1 -1
- package/dist/locales/zh-TW.js +1 -1
- package/dist/locales/zh-UG.js +1 -1
- package/dist/nutui.react.es.js +297 -310
- package/dist/nutui.react.umd.js +294 -307
- package/dist/packages/animatingnumbers/countup.scss +1 -0
- package/dist/packages/badge/badge.scss +2 -0
- package/dist/packages/checkbox/checkbox.scss +19 -0
- package/dist/packages/checkboxgroup/checkboxgroup.scss +25 -0
- package/dist/packages/collapseitem/collapseitem.scss +1 -6
- package/dist/packages/dialog/dialog.scss +8 -1
- package/dist/packages/noticebar/noticebar.scss +19 -1
- package/dist/packages/popover/popover.scss +21 -0
- package/dist/packages/swipe/swipe.scss +2 -0
- package/dist/style.css +1 -1
- package/dist/style.mjs +1 -1
- package/dist/styles/variables-jmapp.scss +17 -0
- package/dist/styles/variables.scss +19 -12
- package/dist/types/index.d.ts +98 -98
- package/dist/types/packages/actionsheet/actionsheet.d.ts +1 -1
- package/dist/types/packages/actionsheet/actionsheet.taro.d.ts +1 -1
- package/dist/types/packages/address/address.d.ts +1 -1
- package/dist/types/packages/address/address.taro.d.ts +1 -1
- package/dist/types/packages/address/customRender.d.ts +1 -1
- package/dist/types/packages/address/customRender.taro.d.ts +1 -1
- package/dist/types/packages/avatar/avatar.d.ts +1 -1
- package/dist/types/packages/avatar/avatar.taro.d.ts +1 -1
- package/dist/types/packages/badge/badge.d.ts +1 -1
- package/dist/types/packages/button/demos/h5/demo1.d.ts +3 -0
- package/dist/types/packages/button/demos/h5/demo2.d.ts +3 -0
- package/dist/types/packages/button/demos/h5/demo3.d.ts +3 -0
- package/dist/types/packages/button/demos/h5/demo4.d.ts +3 -0
- package/dist/types/packages/button/demos/h5/demo5.d.ts +3 -0
- package/dist/types/packages/button/demos/h5/demo6.d.ts +3 -0
- package/dist/types/packages/button/demos/h5/demo7.d.ts +3 -0
- package/dist/types/packages/button/demos/h5/demo8.d.ts +3 -0
- package/dist/types/packages/button/demos/h5/demo9.d.ts +3 -0
- package/dist/types/packages/button/demos/taro/demo1.d.ts +3 -0
- package/dist/types/packages/button/demos/taro/demo10.d.ts +3 -0
- package/dist/types/packages/button/demos/taro/demo2.d.ts +3 -0
- package/dist/types/packages/button/demos/taro/demo3.d.ts +3 -0
- package/dist/types/packages/button/demos/taro/demo4.d.ts +3 -0
- package/dist/types/packages/button/demos/taro/demo5.d.ts +3 -0
- package/dist/types/packages/button/demos/taro/demo6.d.ts +3 -0
- package/dist/types/packages/button/demos/taro/demo7.d.ts +3 -0
- package/dist/types/packages/button/demos/taro/demo8.d.ts +3 -0
- package/dist/types/packages/button/demos/taro/demo9.d.ts +3 -0
- package/dist/types/packages/calendaritem/calendaritem.d.ts +1 -1
- package/dist/types/packages/calendaritem/calendaritem.taro.d.ts +1 -1
- package/dist/types/packages/cascader/cascader.d.ts +1 -1
- package/dist/types/packages/cascader/cascader.taro.d.ts +1 -1
- package/dist/types/packages/cell/cell.d.ts +1 -1
- package/dist/types/packages/cell/cell.taro.d.ts +1 -1
- package/dist/types/packages/cell/demos/h5/demo1.d.ts +3 -0
- package/dist/types/packages/cell/demos/h5/demo2.d.ts +3 -0
- package/dist/types/packages/cell/demos/h5/demo3.d.ts +3 -0
- package/dist/types/packages/cell/demos/h5/demo4.d.ts +3 -0
- package/dist/types/packages/cell/demos/h5/demo5.d.ts +3 -0
- package/dist/types/packages/cell/demos/h5/demo6.d.ts +3 -0
- package/dist/types/packages/cell/demos/h5/demo7.d.ts +3 -0
- package/dist/types/packages/cell/demos/taro/demo1.d.ts +3 -0
- package/dist/types/packages/cell/demos/taro/demo2.d.ts +3 -0
- package/dist/types/packages/cell/demos/taro/demo3.d.ts +3 -0
- package/dist/types/packages/cell/demos/taro/demo4.d.ts +3 -0
- package/dist/types/packages/cell/demos/taro/demo5.d.ts +3 -0
- package/dist/types/packages/cell/demos/taro/demo6.d.ts +3 -0
- package/dist/types/packages/cell/demos/taro/demo7.d.ts +3 -0
- package/dist/types/packages/checkbox/checkbox.d.ts +2 -2
- package/dist/types/packages/checkbox/checkbox.taro.d.ts +2 -2
- package/dist/types/packages/checkboxgroup/checkboxgroup.d.ts +3 -2
- package/dist/types/packages/checkboxgroup/checkboxgroup.taro.d.ts +3 -2
- package/dist/types/packages/checkboxgroup/context.d.ts +1 -0
- package/dist/types/packages/configprovider/configprovider.d.ts +1 -0
- package/dist/types/packages/configprovider/configprovider.taro.d.ts +1 -0
- package/dist/types/packages/configprovider/index.d.ts +2 -2
- package/dist/types/packages/configprovider/index.taro.d.ts +2 -2
- package/dist/types/packages/configprovider/types.d.ts +1 -1
- package/dist/types/packages/datepicker/datepicker.d.ts +1 -1
- package/dist/types/packages/datepicker/datepicker.taro.d.ts +1 -1
- package/dist/types/packages/dialog/config.d.ts +3 -3
- package/dist/types/packages/dialog/dialogwrap.d.ts +1 -1
- package/dist/types/packages/dialog/index.d.ts +1 -1
- package/dist/types/packages/empty/empty.d.ts +16 -4
- package/dist/types/packages/fixednav/fixednav.d.ts +1 -1
- package/dist/types/packages/fixednav/fixednav.taro.d.ts +1 -1
- package/dist/types/packages/form/form.d.ts +1 -1
- package/dist/types/packages/form/form.taro.d.ts +1 -1
- package/dist/types/packages/form/index.d.ts +1 -1
- package/dist/types/packages/form/index.taro.d.ts +1 -1
- package/dist/types/packages/inputnumber/inputnumber.taro.d.ts +2 -0
- package/dist/types/packages/menu/menu.d.ts +1 -1
- package/dist/types/packages/menu/menu.taro.d.ts +1 -1
- package/dist/types/packages/noticebar/index.d.ts +1 -0
- package/dist/types/packages/noticebar/noticebar.d.ts +6 -0
- package/dist/types/packages/noticebar/noticebar.taro.d.ts +2 -0
- package/dist/types/packages/noticebar/types.d.ts +1 -0
- package/dist/types/packages/numberkeyboard/numberkeyboard.d.ts +1 -1
- package/dist/types/packages/numberkeyboard/numberkeyboard.taro.d.ts +1 -1
- package/dist/types/packages/nutui.react.d.ts +98 -98
- package/dist/types/packages/nutui.react.taro.d.ts +98 -98
- package/dist/types/packages/nutui.taro.react.build.d.ts +98 -98
- package/dist/types/packages/picker/picker.d.ts +1 -1
- package/dist/types/packages/picker/picker.taro.d.ts +1 -1
- package/dist/types/packages/popover/index.d.ts +2 -1
- package/dist/types/packages/popover/index.taro.d.ts +2 -1
- package/dist/types/packages/popover/popover.d.ts +3 -13
- package/dist/types/packages/popover/popover.taro.d.ts +3 -13
- package/dist/types/packages/popover/types.d.ts +14 -0
- package/dist/types/packages/popup/popup.d.ts +1 -1
- package/dist/types/packages/popup/popup.taro.d.ts +1 -1
- package/dist/types/packages/radio/radio.d.ts +2 -2
- package/dist/types/packages/radio/radio.taro.d.ts +2 -2
- package/dist/types/packages/rate/rate.d.ts +1 -1
- package/dist/types/packages/shortpassword/shortpassword.d.ts +1 -1
- package/dist/types/packages/shortpassword/shortpassword.taro.d.ts +1 -1
- package/dist/types/packages/swiper/index.d.ts +1 -1
- package/dist/types/packages/swiper/index.taro.d.ts +1 -1
- package/dist/types/packages/table/useTableSticky.d.ts +1 -1
- package/dist/types/packages/tabs/tabs.d.ts +1 -1
- package/dist/types/packages/tabs/tabs.taro.d.ts +1 -1
- package/dist/types/packages/timedetail/timedetail.d.ts +1 -1
- package/dist/types/packages/timedetail/timedetail.taro.d.ts +1 -1
- package/dist/types/packages/toast/toast.d.ts +2 -2
- package/dist/types/packages/toast/toast.taro.d.ts +7 -3
- package/dist/types/packages/tour/tour.d.ts +1 -1
- package/dist/types/packages/tour/tour.taro.d.ts +1 -1
- package/package.json +5 -1
|
@@ -1,30 +1,4 @@
|
|
|
1
|
-
import
|
|
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 = ["children", "toolbar", "maxZoom", "space", "toolbarPosition", "editText", "shape", "className", "style", "onConfirm", "onCancel"];
|
|
6
|
-
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
7
|
-
function ownKeys(e, r) {
|
|
8
|
-
var t = Object.keys(e);
|
|
9
|
-
if (Object.getOwnPropertySymbols) {
|
|
10
|
-
var o = Object.getOwnPropertySymbols(e);
|
|
11
|
-
r && (o = o.filter(function(r2) {
|
|
12
|
-
return Object.getOwnPropertyDescriptor(e, r2).enumerable;
|
|
13
|
-
})), t.push.apply(t, o);
|
|
14
|
-
}
|
|
15
|
-
return t;
|
|
16
|
-
}
|
|
17
|
-
function _objectSpread(e) {
|
|
18
|
-
for (var r = 1; r < arguments.length; r++) {
|
|
19
|
-
var t = null != arguments[r] ? arguments[r] : {};
|
|
20
|
-
r % 2 ? ownKeys(Object(t), true).forEach(function(r2) {
|
|
21
|
-
_defineProperty(e, r2, t[r2]);
|
|
22
|
-
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r2) {
|
|
23
|
-
Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2));
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
return e;
|
|
27
|
-
}
|
|
1
|
+
import { _ as __rest, a as __awaiter } from "./tslib.es6.js";
|
|
28
2
|
import React__default, { useRef, useState, useMemo, useCallback, useEffect } from "react";
|
|
29
3
|
import classNames from "classnames";
|
|
30
4
|
import Button from "./Button.js";
|
|
@@ -32,36 +6,24 @@ import { C as ComponentDefaults } from "./typings.js";
|
|
|
32
6
|
import { u as useTouch } from "./use-touch.js";
|
|
33
7
|
import { p as preventDefault, c as clamp } from "./index.js";
|
|
34
8
|
import { g as getRect } from "./use-client-rect.js";
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
},
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
var classPrefix = "nut-avatar-cropper";
|
|
54
|
-
var AvatarCropper = function AvatarCropper2(props) {
|
|
55
|
-
var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), children = _defaultProps$props.children, toolbar = _defaultProps$props.toolbar, maxZoom = _defaultProps$props.maxZoom, space = _defaultProps$props.space, toolbarPosition = _defaultProps$props.toolbarPosition, editText = _defaultProps$props.editText, shape = _defaultProps$props.shape, className = _defaultProps$props.className, style = _defaultProps$props.style, onConfirm = _defaultProps$props.onConfirm, onCancel = _defaultProps$props.onCancel, rest = _objectWithoutProperties(_defaultProps$props, _excluded);
|
|
56
|
-
var cls = classNames(classPrefix, className, shape === "round" && "round");
|
|
57
|
-
var toolbarPositionCls = classNames("".concat(classPrefix, "-popup-toolbar"), toolbarPosition);
|
|
58
|
-
var inputImageRef = useRef(null);
|
|
59
|
-
var cropperPopupRef = useRef(null);
|
|
60
|
-
var canvasRef = useRef(null);
|
|
61
|
-
var _useState = useState(false), _useState2 = _slicedToArray(_useState, 2), visible = _useState2[0], setVisible = _useState2[1];
|
|
62
|
-
var _useState3 = useState(false), _useState4 = _slicedToArray(_useState3, 2), moving = _useState4[0], setMoving = _useState4[1];
|
|
63
|
-
var _useState5 = useState(false), _useState6 = _slicedToArray(_useState5, 2), zooming = _useState6[0], setZooming = _useState6[1];
|
|
64
|
-
var _useState7 = useState({
|
|
9
|
+
const defaultProps = Object.assign(Object.assign({}, ComponentDefaults), { maxZoom: 3, space: 10, toolbar: [
|
|
10
|
+
React__default.createElement(Button, { type: "danger", key: "cancel" }, "取消"),
|
|
11
|
+
React__default.createElement(Button, { key: "reset" }, "重置"),
|
|
12
|
+
React__default.createElement(Button, { key: "rotate" }, "旋转"),
|
|
13
|
+
React__default.createElement(Button, { type: "success", key: "confirm" }, "确认")
|
|
14
|
+
], toolbarPosition: "bottom", editText: "编辑", shape: "square" });
|
|
15
|
+
const classPrefix = `nut-avatar-cropper`;
|
|
16
|
+
const AvatarCropper = (props) => {
|
|
17
|
+
const _a = Object.assign(Object.assign({}, defaultProps), props), { children, toolbar, maxZoom, space, toolbarPosition, editText, shape, className, style, onConfirm, onCancel } = _a, rest = __rest(_a, ["children", "toolbar", "maxZoom", "space", "toolbarPosition", "editText", "shape", "className", "style", "onConfirm", "onCancel"]);
|
|
18
|
+
const cls = classNames(classPrefix, className, shape === "round" && "round");
|
|
19
|
+
const toolbarPositionCls = classNames(`${classPrefix}-popup-toolbar`, toolbarPosition);
|
|
20
|
+
const inputImageRef = useRef(null);
|
|
21
|
+
const cropperPopupRef = useRef(null);
|
|
22
|
+
const canvasRef = useRef(null);
|
|
23
|
+
const [visible, setVisible] = useState(false);
|
|
24
|
+
const [moving, setMoving] = useState(false);
|
|
25
|
+
const [zooming, setZooming] = useState(false);
|
|
26
|
+
const [state, setState] = useState({
|
|
65
27
|
defScale: 1,
|
|
66
28
|
scale: 1,
|
|
67
29
|
angle: 0,
|
|
@@ -69,8 +31,8 @@ var AvatarCropper = function AvatarCropper2(props) {
|
|
|
69
31
|
moveY: 0,
|
|
70
32
|
displayWidth: 0,
|
|
71
33
|
displayHeight: 0
|
|
72
|
-
})
|
|
73
|
-
|
|
34
|
+
});
|
|
35
|
+
const defDrawImage = {
|
|
74
36
|
img: new Image(),
|
|
75
37
|
sx: 0,
|
|
76
38
|
sy: 0,
|
|
@@ -82,60 +44,56 @@ var AvatarCropper = function AvatarCropper2(props) {
|
|
|
82
44
|
height: 0
|
|
83
45
|
// 要使用的图像的高度
|
|
84
46
|
};
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
47
|
+
const [drawImage, setDrawImg] = useState(Object.assign({}, defDrawImage));
|
|
48
|
+
const devicePixelRatio = window.devicePixelRatio || 1;
|
|
49
|
+
const touch = useTouch();
|
|
50
|
+
const highlightStyle = useMemo(() => {
|
|
51
|
+
const width = `${drawImage.swidth / devicePixelRatio}px`;
|
|
52
|
+
const height = width;
|
|
91
53
|
return {
|
|
92
54
|
width,
|
|
93
55
|
height,
|
|
94
56
|
borderRadius: shape === "round" ? "50%" : ""
|
|
95
57
|
};
|
|
96
58
|
}, [devicePixelRatio, drawImage.swidth]);
|
|
97
|
-
|
|
59
|
+
const isAngle = useMemo(() => {
|
|
98
60
|
return state.angle === 90 || state.angle === 270;
|
|
99
61
|
}, [state.angle]);
|
|
100
|
-
|
|
101
|
-
|
|
62
|
+
const maxMoveX = useMemo(() => {
|
|
63
|
+
const { swidth, height } = drawImage;
|
|
102
64
|
if (isAngle) {
|
|
103
65
|
return Math.max(0, (height * state.scale - swidth) / 2);
|
|
104
66
|
}
|
|
105
67
|
return Math.max(0, (state.displayWidth * state.scale - swidth) / 2);
|
|
106
68
|
}, [state.scale, state.displayWidth, drawImage, isAngle]);
|
|
107
|
-
|
|
108
|
-
|
|
69
|
+
const maxMoveY = useMemo(() => {
|
|
70
|
+
const { swidth, height } = drawImage;
|
|
109
71
|
if (isAngle) {
|
|
110
72
|
return Math.max(0, (state.displayWidth * state.scale - swidth) / 2);
|
|
111
73
|
}
|
|
112
74
|
return Math.max(0, (height * state.scale - swidth) / 2);
|
|
113
75
|
}, [state.scale, state.displayWidth, drawImage, isAngle]);
|
|
114
|
-
|
|
115
|
-
return new Promise(
|
|
116
|
-
|
|
117
|
-
reader.onloadend =
|
|
118
|
-
return resolve(e.target.result);
|
|
119
|
-
};
|
|
76
|
+
const fileToDataURL = (file) => {
|
|
77
|
+
return new Promise((resolve) => {
|
|
78
|
+
const reader = new FileReader();
|
|
79
|
+
reader.onloadend = (e) => resolve(e.target.result);
|
|
120
80
|
reader.readAsDataURL(file);
|
|
121
81
|
});
|
|
122
82
|
};
|
|
123
|
-
|
|
124
|
-
return new Promise(
|
|
125
|
-
|
|
126
|
-
img.onload =
|
|
127
|
-
return resolve(img);
|
|
128
|
-
};
|
|
83
|
+
const dataURLToImage = (dataURL) => {
|
|
84
|
+
return new Promise((resolve) => {
|
|
85
|
+
const img = new Image();
|
|
86
|
+
img.onload = () => resolve(img);
|
|
129
87
|
img.src = dataURL;
|
|
130
88
|
});
|
|
131
89
|
};
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
90
|
+
const draw = useCallback(() => {
|
|
91
|
+
const { img, width, height, x, y, swidth } = drawImage;
|
|
92
|
+
const { moveX, moveY, scale, angle, displayWidth, displayHeight } = state;
|
|
93
|
+
const canvas = canvasRef.current;
|
|
136
94
|
if (!canvas)
|
|
137
95
|
return;
|
|
138
|
-
|
|
96
|
+
const ctx = canvas.getContext("2d");
|
|
139
97
|
canvas.width = displayWidth;
|
|
140
98
|
canvas.height = displayHeight;
|
|
141
99
|
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
|
@@ -148,31 +106,27 @@ var AvatarCropper = function AvatarCropper2(props) {
|
|
|
148
106
|
ctx.scale(scale, scale);
|
|
149
107
|
ctx.drawImage(img, x, y, width, height);
|
|
150
108
|
}, [drawImage, state, devicePixelRatio, space]);
|
|
151
|
-
useEffect(
|
|
109
|
+
useEffect(() => {
|
|
152
110
|
if (Math.abs(state.moveX) > maxMoveX) {
|
|
153
|
-
setState(
|
|
154
|
-
moveX: maxMoveX
|
|
155
|
-
}));
|
|
111
|
+
setState(Object.assign(Object.assign({}, state), { moveX: maxMoveX }));
|
|
156
112
|
}
|
|
157
113
|
if (Math.abs(state.moveY) > maxMoveY) {
|
|
158
|
-
setState(
|
|
159
|
-
moveY: maxMoveY
|
|
160
|
-
}));
|
|
114
|
+
setState(Object.assign(Object.assign({}, state), { moveY: maxMoveY }));
|
|
161
115
|
}
|
|
162
116
|
draw();
|
|
163
117
|
}, [state, maxMoveX, maxMoveY, draw]);
|
|
164
|
-
|
|
165
|
-
|
|
118
|
+
const setDrawImgs = (image) => {
|
|
119
|
+
const rect = getRect(cropperPopupRef.current);
|
|
166
120
|
if (!rect)
|
|
167
121
|
return;
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
122
|
+
const { width: clientWidth, height: clientHeight } = rect;
|
|
123
|
+
const canvasWidth = state.displayWidth = clientWidth * devicePixelRatio;
|
|
124
|
+
const canvasHeight = state.displayHeight = clientHeight * devicePixelRatio;
|
|
125
|
+
const copyDrawImg = Object.assign({}, defDrawImage);
|
|
126
|
+
const { width: imgWidth, height: imgHeight } = image;
|
|
173
127
|
copyDrawImg.img = image;
|
|
174
|
-
|
|
175
|
-
|
|
128
|
+
const isPortrait = imgHeight > imgWidth;
|
|
129
|
+
const rate = isPortrait ? imgWidth / imgHeight : imgHeight / imgWidth;
|
|
176
130
|
copyDrawImg.width = canvasWidth;
|
|
177
131
|
copyDrawImg.height = isPortrait ? canvasWidth / rate : canvasWidth * rate;
|
|
178
132
|
copyDrawImg.x = -copyDrawImg.width / 2;
|
|
@@ -182,233 +136,160 @@ var AvatarCropper = function AvatarCropper2(props) {
|
|
|
182
136
|
copyDrawImg.sx = space * devicePixelRatio;
|
|
183
137
|
copyDrawImg.sy = (canvasHeight - copyDrawImg.swidth) / 2;
|
|
184
138
|
setDrawImg(copyDrawImg);
|
|
185
|
-
|
|
186
|
-
setState(
|
|
187
|
-
defScale: scale
|
|
188
|
-
}));
|
|
139
|
+
const scale = copyDrawImg.swidth / (isPortrait ? copyDrawImg.width : copyDrawImg.height);
|
|
140
|
+
setState(Object.assign(Object.assign({}, state), { defScale: scale }));
|
|
189
141
|
resetScale(scale);
|
|
190
142
|
};
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
break;
|
|
204
|
-
}
|
|
205
|
-
return _context.abrupt("return");
|
|
206
|
-
case 5:
|
|
207
|
-
_context.next = 7;
|
|
208
|
-
return fileToDataURL(files[0]);
|
|
209
|
-
case 7:
|
|
210
|
-
base64 = _context.sent;
|
|
211
|
-
_context.next = 10;
|
|
212
|
-
return dataURLToImage(base64);
|
|
213
|
-
case 10:
|
|
214
|
-
image = _context.sent;
|
|
215
|
-
setDrawImgs(image);
|
|
216
|
-
case 12:
|
|
217
|
-
case "end":
|
|
218
|
-
return _context.stop();
|
|
219
|
-
}
|
|
220
|
-
}, _callee);
|
|
221
|
-
}));
|
|
222
|
-
return function inputImageChange2(_x) {
|
|
223
|
-
return _ref.apply(this, arguments);
|
|
224
|
-
};
|
|
225
|
-
}();
|
|
226
|
-
var resetScale = function resetScale2(scale) {
|
|
227
|
-
setState(_objectSpread(_objectSpread({}, state), {}, {
|
|
228
|
-
moveX: 0,
|
|
229
|
-
moveY: 0,
|
|
230
|
-
angle: 0,
|
|
231
|
-
scale: scale || state.defScale,
|
|
232
|
-
defScale: scale || state.defScale
|
|
233
|
-
}));
|
|
143
|
+
const inputImageChange = (event) => __awaiter(void 0, void 0, void 0, function* () {
|
|
144
|
+
setVisible(true);
|
|
145
|
+
const $el = event.target;
|
|
146
|
+
const { files } = $el;
|
|
147
|
+
if (!(files === null || files === void 0 ? void 0 : files.length))
|
|
148
|
+
return;
|
|
149
|
+
const base64 = yield fileToDataURL(files[0]);
|
|
150
|
+
const image = yield dataURLToImage(base64);
|
|
151
|
+
setDrawImgs(image);
|
|
152
|
+
});
|
|
153
|
+
const resetScale = (scale) => {
|
|
154
|
+
setState(Object.assign(Object.assign({}, state), { moveX: 0, moveY: 0, angle: 0, scale: scale || state.defScale, defScale: scale || state.defScale }));
|
|
234
155
|
};
|
|
235
|
-
|
|
156
|
+
const setScale = (scale) => {
|
|
236
157
|
scale = clamp(scale, 0.3, +maxZoom + 1);
|
|
237
158
|
if (scale !== state.scale) {
|
|
238
|
-
setState(
|
|
239
|
-
scale
|
|
240
|
-
}));
|
|
159
|
+
setState(Object.assign(Object.assign({}, state), { scale }));
|
|
241
160
|
}
|
|
242
161
|
};
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
};
|
|
246
|
-
var _useState11 = useState({
|
|
162
|
+
const getDistance = (touches) => Math.sqrt(Math.pow(touches[0].clientX - touches[1].clientX, 2) + Math.pow(touches[0].clientY - touches[1].clientY, 2));
|
|
163
|
+
const [startMove, setStartMove] = useState({
|
|
247
164
|
startMoveX: 0,
|
|
248
165
|
startMoveY: 0,
|
|
249
166
|
startScale: 0,
|
|
250
167
|
startDistance: 0
|
|
251
|
-
})
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
168
|
+
});
|
|
169
|
+
const { startMoveX, startMoveY, startScale, startDistance } = startMove;
|
|
170
|
+
const onTouchStart = (event) => {
|
|
171
|
+
const { touches } = event;
|
|
172
|
+
const { offsetX } = touch;
|
|
256
173
|
touch.start(event);
|
|
257
|
-
|
|
258
|
-
setStartMove(
|
|
259
|
-
startMoveX: state.moveX,
|
|
260
|
-
startMoveY: state.moveY
|
|
261
|
-
}));
|
|
174
|
+
const fingerNum = touches === null || touches === void 0 ? void 0 : touches.length;
|
|
175
|
+
setStartMove(Object.assign(Object.assign({}, startMove), { startMoveX: state.moveX, startMoveY: state.moveY }));
|
|
262
176
|
setMoving(fingerNum === 1);
|
|
263
177
|
setZooming(fingerNum === 2 && !offsetX.current);
|
|
264
178
|
if (fingerNum === 2 && !offsetX.current) {
|
|
265
|
-
setStartMove(
|
|
266
|
-
startScale: state.scale,
|
|
267
|
-
startDistance: getDistance(event.touches)
|
|
268
|
-
}));
|
|
179
|
+
setStartMove(Object.assign(Object.assign({}, startMove), { startScale: state.scale, startDistance: getDistance(event.touches) }));
|
|
269
180
|
}
|
|
270
181
|
};
|
|
271
|
-
|
|
272
|
-
|
|
182
|
+
const onTouchMove = (event) => {
|
|
183
|
+
const { touches } = event;
|
|
273
184
|
touch.move(event);
|
|
274
185
|
if (moving || zooming) {
|
|
275
186
|
preventDefault(event, true);
|
|
276
187
|
}
|
|
277
188
|
if (moving) {
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
setState(
|
|
282
|
-
moveX: clamp(moveX, -maxMoveX, maxMoveX),
|
|
283
|
-
moveY: clamp(moveY, -maxMoveY, maxMoveY)
|
|
284
|
-
}));
|
|
189
|
+
const { deltaX, deltaY } = touch;
|
|
190
|
+
const moveX = deltaX.current * state.scale + startMoveX;
|
|
191
|
+
const moveY = deltaY.current * state.scale + startMoveY;
|
|
192
|
+
setState(Object.assign(Object.assign({}, state), { moveX: clamp(moveX, -maxMoveX, maxMoveX), moveY: clamp(moveY, -maxMoveY, maxMoveY) }));
|
|
285
193
|
}
|
|
286
194
|
if (zooming && touches.length === 2) {
|
|
287
|
-
|
|
288
|
-
|
|
195
|
+
const distance = getDistance(touches);
|
|
196
|
+
const scale = startScale * distance / startDistance;
|
|
289
197
|
setScale(scale);
|
|
290
198
|
}
|
|
291
199
|
};
|
|
292
|
-
|
|
293
|
-
|
|
200
|
+
const onTouchEnd = (event) => {
|
|
201
|
+
let stopPropagation = false;
|
|
294
202
|
if (moving || zooming) {
|
|
295
203
|
stopPropagation = !(moving && startMoveX === state.moveX && startMoveY === state.moveY);
|
|
296
204
|
if (!event.touches.length) {
|
|
297
205
|
if (zooming) {
|
|
298
|
-
setState(
|
|
299
|
-
moveX: clamp(state.moveX, -maxMoveX, maxMoveX),
|
|
300
|
-
moveY: clamp(state.moveY, -maxMoveY, maxMoveY)
|
|
301
|
-
}));
|
|
206
|
+
setState(Object.assign(Object.assign({}, state), { moveX: clamp(state.moveX, -maxMoveX, maxMoveX), moveY: clamp(state.moveY, -maxMoveY, maxMoveY) }));
|
|
302
207
|
setZooming(false);
|
|
303
208
|
}
|
|
304
209
|
setMoving(false);
|
|
305
|
-
setStartMove(
|
|
306
|
-
startMoveX: 0,
|
|
307
|
-
startMoveY: 0,
|
|
308
|
-
startScale: state.defScale
|
|
309
|
-
}));
|
|
210
|
+
setStartMove(Object.assign(Object.assign({}, startMove), { startMoveX: 0, startMoveY: 0, startScale: state.defScale }));
|
|
310
211
|
if (state.scale < state.defScale) {
|
|
311
212
|
resetScale();
|
|
312
213
|
}
|
|
313
214
|
if (state.scale > maxZoom) {
|
|
314
|
-
setState(
|
|
315
|
-
scale: +maxZoom
|
|
316
|
-
}));
|
|
215
|
+
setState(Object.assign(Object.assign({}, state), { scale: +maxZoom }));
|
|
317
216
|
}
|
|
318
217
|
}
|
|
319
218
|
}
|
|
320
219
|
preventDefault(event, stopPropagation);
|
|
321
220
|
touch.reset();
|
|
322
221
|
};
|
|
323
|
-
|
|
324
|
-
setState(
|
|
325
|
-
angle: 0
|
|
326
|
-
}));
|
|
222
|
+
const reset = () => {
|
|
223
|
+
setState(Object.assign(Object.assign({}, state), { angle: 0 }));
|
|
327
224
|
};
|
|
328
|
-
|
|
225
|
+
const rotate = () => {
|
|
329
226
|
if (state.angle === 270) {
|
|
330
|
-
setState(
|
|
331
|
-
angle: 0
|
|
332
|
-
}));
|
|
227
|
+
setState(Object.assign(Object.assign({}, state), { angle: 0 }));
|
|
333
228
|
return;
|
|
334
229
|
}
|
|
335
|
-
setState(
|
|
336
|
-
angle: state.angle + 90
|
|
337
|
-
}));
|
|
230
|
+
setState(Object.assign(Object.assign({}, state), { angle: state.angle + 90 }));
|
|
338
231
|
};
|
|
339
|
-
|
|
340
|
-
var isEmit = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
|
|
232
|
+
const cancel = (isEmit = true) => {
|
|
341
233
|
setVisible(false);
|
|
342
234
|
resetScale();
|
|
343
235
|
inputImageRef.current && (inputImageRef.current.value = "");
|
|
344
236
|
isEmit && onCancel && onCancel();
|
|
345
237
|
};
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
238
|
+
const confirm = () => {
|
|
239
|
+
const canvas = canvasRef.current;
|
|
240
|
+
const { sx, sy, swidth } = drawImage;
|
|
241
|
+
const width = swidth;
|
|
242
|
+
const height = swidth;
|
|
243
|
+
const croppedCanvas = document.createElement("canvas");
|
|
244
|
+
const croppedCtx = croppedCanvas.getContext("2d");
|
|
353
245
|
croppedCanvas.width = width;
|
|
354
246
|
croppedCanvas.height = height;
|
|
355
247
|
canvas && croppedCtx.drawImage(canvas, sx, sy, width, height, 0, 0, width, height);
|
|
356
|
-
|
|
248
|
+
const imageDataURL = croppedCanvas.toDataURL("image/png");
|
|
357
249
|
onConfirm && onConfirm(imageDataURL);
|
|
358
250
|
cancel(false);
|
|
359
251
|
};
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
return React__default.createElement(
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
className: "".concat(classPrefix, "-popup-toolbar-item"),
|
|
368
|
-
onClick: function onClick(_e) {
|
|
369
|
-
return action();
|
|
370
|
-
}
|
|
371
|
-
}, toolbar[index]);
|
|
372
|
-
})));
|
|
252
|
+
const ToolBar = () => {
|
|
253
|
+
const actions = [cancel, reset, rotate, confirm];
|
|
254
|
+
return React__default.createElement(
|
|
255
|
+
React__default.Fragment,
|
|
256
|
+
null,
|
|
257
|
+
React__default.createElement("div", { className: `${classPrefix}-popup-toolbar-flex` }, actions.map((action, index) => React__default.createElement("div", { key: index, className: `${classPrefix}-popup-toolbar-item`, onClick: (_e) => action() }, toolbar[index])))
|
|
258
|
+
);
|
|
373
259
|
};
|
|
374
|
-
|
|
375
|
-
return React__default.createElement(
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
}, React__default.createElement(ToolBar, null))));
|
|
260
|
+
const CropperPopup = () => {
|
|
261
|
+
return React__default.createElement(
|
|
262
|
+
React__default.Fragment,
|
|
263
|
+
null,
|
|
264
|
+
React__default.createElement(
|
|
265
|
+
"div",
|
|
266
|
+
{ ref: cropperPopupRef, className: `${classPrefix}-popup`, style: { display: visible ? "block" : "none" } },
|
|
267
|
+
React__default.createElement("canvas", { ref: canvasRef, className: `${classPrefix}-popup-canvas` }),
|
|
268
|
+
React__default.createElement(
|
|
269
|
+
"div",
|
|
270
|
+
{ className: `${classPrefix}-popup-highlight`, onTouchStart, onTouchMove, onTouchEnd },
|
|
271
|
+
React__default.createElement("div", { className: "highlight", style: highlightStyle })
|
|
272
|
+
),
|
|
273
|
+
React__default.createElement(
|
|
274
|
+
"div",
|
|
275
|
+
{ className: toolbarPositionCls },
|
|
276
|
+
React__default.createElement(ToolBar, null)
|
|
277
|
+
)
|
|
278
|
+
)
|
|
279
|
+
);
|
|
395
280
|
};
|
|
396
|
-
return React__default.createElement(
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
"aria-label": "选择图片"
|
|
409
|
-
}), React__default.createElement("div", {
|
|
410
|
-
className: "nut-avatar-cropper-edit-text"
|
|
411
|
-
}, editText)), CropperPopup());
|
|
281
|
+
return React__default.createElement(
|
|
282
|
+
React__default.Fragment,
|
|
283
|
+
null,
|
|
284
|
+
React__default.createElement(
|
|
285
|
+
"div",
|
|
286
|
+
Object.assign({ className: cls }, rest, { style }),
|
|
287
|
+
children,
|
|
288
|
+
React__default.createElement("input", { ref: inputImageRef, type: "file", accept: "image/*", className: `${classPrefix}-input`, onChange: (e) => inputImageChange(e), "aria-label": "选择图片" }),
|
|
289
|
+
React__default.createElement("div", { className: "nut-avatar-cropper-edit-text" }, editText)
|
|
290
|
+
),
|
|
291
|
+
CropperPopup()
|
|
292
|
+
);
|
|
412
293
|
};
|
|
413
294
|
AvatarCropper.defaultProps = defaultProps;
|
|
414
295
|
AvatarCropper.displayName = "NutAvatarCropper";
|
package/dist/esm/AvatarGroup.js
CHANGED
|
@@ -1,54 +1,23 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
-
function ownKeys(e, r) {
|
|
3
|
-
var t = Object.keys(e);
|
|
4
|
-
if (Object.getOwnPropertySymbols) {
|
|
5
|
-
var o = Object.getOwnPropertySymbols(e);
|
|
6
|
-
r && (o = o.filter(function(r2) {
|
|
7
|
-
return Object.getOwnPropertyDescriptor(e, r2).enumerable;
|
|
8
|
-
})), t.push.apply(t, o);
|
|
9
|
-
}
|
|
10
|
-
return t;
|
|
11
|
-
}
|
|
12
|
-
function _objectSpread(e) {
|
|
13
|
-
for (var r = 1; r < arguments.length; r++) {
|
|
14
|
-
var t = null != arguments[r] ? arguments[r] : {};
|
|
15
|
-
r % 2 ? ownKeys(Object(t), true).forEach(function(r2) {
|
|
16
|
-
_defineProperty(e, r2, t[r2]);
|
|
17
|
-
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r2) {
|
|
18
|
-
Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2));
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
return e;
|
|
22
|
-
}
|
|
23
1
|
import React__default, { useRef } from "react";
|
|
24
2
|
import classNames from "classnames";
|
|
25
3
|
import { A as AvatarContext } from "./context2.js";
|
|
26
4
|
import { C as ComponentDefaults } from "./typings.js";
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
var classPrefix = "nut-avatar-group";
|
|
36
|
-
var AvatarGroup = function AvatarGroup2(props) {
|
|
37
|
-
var propAvatarGroup = _objectSpread(_objectSpread({}, defaultProps), props);
|
|
38
|
-
var className = propAvatarGroup.className, style = propAvatarGroup.style, children = propAvatarGroup.children;
|
|
39
|
-
var avatarGroupRef = useRef(null);
|
|
40
|
-
var cls = classNames(classPrefix, className);
|
|
41
|
-
var parentAvatar = {
|
|
5
|
+
const defaultProps = Object.assign(Object.assign({}, ComponentDefaults), { maxContent: "", max: "", maxBackground: "#eee", maxColor: "#666", gap: "-8", level: "left" });
|
|
6
|
+
const classPrefix = `nut-avatar-group`;
|
|
7
|
+
const AvatarGroup = (props) => {
|
|
8
|
+
const propAvatarGroup = Object.assign(Object.assign({}, defaultProps), props);
|
|
9
|
+
const { className, style, children } = propAvatarGroup;
|
|
10
|
+
const avatarGroupRef = useRef(null);
|
|
11
|
+
const cls = classNames(classPrefix, className);
|
|
12
|
+
const parentAvatar = {
|
|
42
13
|
propAvatarGroup,
|
|
43
14
|
avatarGroupRef
|
|
44
15
|
};
|
|
45
|
-
return React__default.createElement(
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
className: cls,
|
|
49
|
-
|
|
50
|
-
ref: avatarGroupRef
|
|
51
|
-
}, children));
|
|
16
|
+
return React__default.createElement(
|
|
17
|
+
AvatarContext.Provider,
|
|
18
|
+
{ value: parentAvatar },
|
|
19
|
+
React__default.createElement("div", { className: cls, style, ref: avatarGroupRef }, children)
|
|
20
|
+
);
|
|
52
21
|
};
|
|
53
22
|
AvatarGroup.defaultProps = defaultProps;
|
|
54
23
|
AvatarGroup.displayName = "NutAvatarGroup";
|