@nutui/nutui-react-taro 1.3.5 → 1.3.7
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 +14 -0
- package/dist/esm/Audio.js +4 -4
- package/dist/esm/Calendar.js +4 -4
- package/dist/esm/CalendarItem.js +3 -3
- package/dist/esm/DatePicker.js +4 -4
- package/dist/esm/Drag.js +3 -4
- package/dist/esm/Elevator.js +2 -4
- package/dist/esm/Menu.js +2 -2
- package/dist/esm/MenuItem.js +2 -2
- package/dist/esm/NoticeBar.js +3 -3
- package/dist/esm/Picker.js +3 -3
- package/dist/esm/Popover.js +3 -3
- package/dist/esm/Range.js +3 -3
- package/dist/esm/SearchBar.js +3 -2
- package/dist/esm/Signature.js +3 -2
- package/dist/esm/Swipe.js +3 -3
- package/dist/esm/actionsheet.taro-360d8d34.js +15 -25
- package/dist/esm/address.taro-f16cef31.js +151 -219
- package/dist/esm/animatingnumbers.taro-6f40a2e9.js +13 -41
- package/dist/esm/{audio.taro-29f5568f.js → audio.taro-57d4f0da.js} +33 -60
- package/dist/esm/avatar.taro-ec620cdd.js +25 -50
- package/dist/esm/avatargroup-5b2584d9.js +2 -9
- package/dist/esm/backtop.taro-aa8b2bc5.js +29 -55
- package/dist/esm/badge.taro-38684262.js +9 -20
- package/dist/esm/barrage.taro-d86c367a.js +8 -21
- package/dist/esm/button.taro-a9ebb937.js +22 -37
- package/dist/esm/{calendar.taro-438940bd.js → calendar.taro-533b3219.js} +13 -24
- package/dist/esm/{calendaritem.taro-11333579.js → calendaritem.taro-fe5dd4bd.js} +71 -183
- package/dist/esm/card.taro-1bc35ebe.js +14 -20
- package/dist/esm/cascader.taro-77100fb4.js +77 -197
- package/dist/esm/cell.taro-a4c3bb7b.js +20 -30
- package/dist/esm/cellgroup.taro-8c87bf08.js +6 -12
- package/dist/esm/checkbox.taro-104557c1.js +27 -48
- package/dist/esm/checkboxgroup.taro-3d380042.js +12 -30
- package/dist/esm/circleprogress.taro-3c89a157.js +14 -41
- package/dist/esm/col.taro-2a437387.js +11 -22
- package/dist/esm/collapse.taro-72e58ba2.js +11 -27
- package/dist/esm/collapseitem-75843a5e.js +33 -47
- package/dist/esm/configprovider-3e87d67a.js +2 -6
- package/dist/esm/configprovider.taro-6c7b3056.js +4 -14
- package/dist/esm/countdown.taro-f2d9ffed.js +37 -74
- package/dist/esm/{datepicker.taro-1acec61f.js → datepicker.taro-49a4cf0c.js} +43 -104
- package/dist/esm/dialog.taro-492e2b9a.js +27 -58
- package/dist/esm/divider.taro-5236fe6a.js +8 -15
- package/dist/esm/drag.taro-0717c783.js +153 -0
- package/dist/esm/{elevator.taro-8e385785.js → elevator.taro-443253ec.js} +99 -124
- package/dist/esm/empty.taro-ab9c4f03.js +11 -24
- package/dist/esm/fixednav.taro-582322a1.js +16 -27
- package/dist/esm/grid.taro-5d75c0ad.js +13 -28
- package/dist/esm/griditem.taro-866cd288.js +18 -34
- package/dist/esm/icon-8dc4de10.js +11 -21
- package/dist/esm/icon.taro-1d0d4fb7.js +11 -21
- package/dist/esm/imagepreview.taro-1199e977.js +36 -71
- package/dist/esm/indicator.taro-183ea169.js +9 -20
- package/dist/esm/infiniteloading.taro-b95e62bf.js +23 -49
- package/dist/esm/input.taro-2453d7c4.js +62 -106
- package/dist/esm/inputnumber.taro-0cf7c1b7.js +25 -52
- package/dist/esm/layout.taro-358f014f.js +0 -6
- package/dist/esm/{menu.taro-9345dcfd.js → menu.taro-f8ca86db.js} +24 -42
- package/dist/esm/{menuitem.taro-fc0961b7.js → menuitem.taro-7bf564c9.js} +32 -57
- package/dist/esm/navbar.taro-c931c078.js +18 -34
- package/dist/esm/{noticebar.taro-1fa04a96.js → noticebar.taro-332691f9.js} +55 -107
- package/dist/esm/notify.taro-d9c48fae.js +18 -34
- package/dist/esm/numberkeyboard.taro-53c350b8.js +21 -52
- package/dist/esm/nutui-react.es.js +18 -18
- package/dist/esm/offsetContext-0e3d04b3.js +0 -3
- package/dist/esm/overlay.taro-be45fed5.js +12 -23
- package/dist/esm/pagination.taro-62bbd23f.js +38 -71
- package/dist/esm/{picker.taro-6a4dad23.js → picker.taro-f003b725.js} +95 -186
- package/dist/esm/{popover.taro-eddd0bd2.js → popover.taro-7e5dff8c.js} +33 -76
- package/dist/esm/popup.taro-33d0bbc8.js +40 -72
- package/dist/esm/price.taro-97393d8f.js +7 -24
- package/dist/esm/progress.taro-623bc807.js +23 -31
- package/dist/esm/pulltorefresh.taro-e66c78ad.js +29 -92
- package/dist/esm/radio.taro-95d43860.js +24 -47
- package/dist/esm/radiogroup.taro-b5dad516.js +14 -24
- package/dist/esm/{range.taro-515d37a4.js → range.taro-fc7c0b6a.js} +50 -133
- package/dist/esm/rate.taro-69c85081.js +21 -39
- package/dist/esm/row.taro-cec13a7e.js +7 -16
- package/dist/esm/{searchbar.taro-f134fb96.js → searchbar.taro-0d3c0081.js} +55 -70
- package/dist/esm/shortpassword.taro-2e96ca22.js +29 -56
- package/dist/esm/sidenavbar.taro-87f056cd.js +9 -16
- package/dist/esm/sidenavbaritem.taro-77e077f4.js +4 -11
- package/dist/esm/signature.taro-59b3b3ab.js +146 -0
- package/dist/esm/skeleton.taro-b9ff84b9.js +13 -23
- package/dist/esm/step.taro-f1057500.js +12 -28
- package/dist/esm/steps.taro-943f4fbb.js +6 -14
- package/dist/esm/sticky.taro-30d4e453.js +0 -7
- package/dist/esm/subsidenavbar.taro-2c1fcf16.js +7 -22
- package/dist/esm/{swipe.taro-dfb9a049.js → swipe.taro-83bc248f.js} +98 -91
- package/dist/esm/swiper.taro-f314d67a.js +110 -196
- package/dist/esm/swiperitem-d00e7513.js +2 -12
- package/dist/esm/switch.taro-be5eb823.js +13 -27
- package/dist/esm/tabbar.taro-da72fa2c.js +13 -25
- package/dist/esm/tabbaritem.taro-94cd62c2.js +15 -23
- package/dist/esm/table.taro-7ac89a6c.js +19 -39
- package/dist/esm/tabpane.taro-95aa185b.js +4 -10
- package/dist/esm/tabs.taro-86186dff.js +28 -54
- package/dist/esm/tag.taro-95d7f5c2.js +19 -36
- package/dist/esm/textarea.taro-388d1f90.js +18 -35
- package/dist/esm/timedetail.taro-519808cf.js +15 -28
- package/dist/esm/timepannel.taro-9904f6e6.js +5 -12
- package/dist/esm/timeselect.taro-73796bfc.js +35 -59
- package/dist/esm/toast.taro-86862dff.js +26 -46
- package/dist/esm/types/src/packages/elevator/demo.d.ts +1 -0
- package/dist/esm/types/src/packages/searchbar/searchbar.d.ts +2 -0
- package/dist/esm/types/src/packages/searchbar/searchbar.taro.d.ts +2 -0
- package/dist/esm/types/src/packages/signature/signature.taro.d.ts +10 -2
- package/dist/esm/uploader.taro-6184abe7.js +52 -144
- package/dist/esm/{useClientRect-8b7cc406.js → useClientRect-bf69d7b3.js} +1 -40
- package/dist/esm/useTouch-a2ea68c6.js +27 -47
- package/dist/esm/video-c1090c92.js +8 -19
- package/dist/esm/virtuallist.taro-6858f690.js +84 -118
- 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/zh-CN.js +1 -1
- package/dist/locales/zh-TW.js +1 -1
- package/dist/nutui.react.es.js +10848 -11365
- package/dist/nutui.react.umd.js +10840 -11357
- package/dist/packages/menu/menu.scss +4 -0
- package/dist/packages/menuitem/menuitem.scss +27 -2
- package/dist/packages/searchbar/searchbar.scss +20 -3
- package/dist/style.css +1 -1
- package/dist/style.es.js +1 -1
- package/dist/types/index.d.ts +17 -8
- package/package.json +1 -1
- package/dist/esm/drag.taro-56e8c87a.js +0 -134
- package/dist/esm/signature.taro-a9286cd1.js +0 -178
package/dist/style.es.js
CHANGED
package/dist/types/index.d.ts
CHANGED
|
@@ -863,7 +863,7 @@ declare class UploadOptions {
|
|
|
863
863
|
beforeXhrUpload?: Function;
|
|
864
864
|
}
|
|
865
865
|
|
|
866
|
-
declare type FileType<T> = {
|
|
866
|
+
declare type FileType$1<T> = {
|
|
867
867
|
[key: string]: T;
|
|
868
868
|
};
|
|
869
869
|
declare type FileItemStatus = 'ready' | 'uploading' | 'success' | 'error' | 'removed';
|
|
@@ -892,7 +892,7 @@ interface UploaderProps extends IComponent {
|
|
|
892
892
|
sizeType: (keyof sizeType)[];
|
|
893
893
|
sourceType: (keyof sourceType)[];
|
|
894
894
|
maximize: number;
|
|
895
|
-
defaultFileList: FileType<string>[];
|
|
895
|
+
defaultFileList: FileType$1<string>[];
|
|
896
896
|
listType: string;
|
|
897
897
|
uploadIcon: string;
|
|
898
898
|
uploadIconSize: string | number;
|
|
@@ -910,7 +910,7 @@ interface UploaderProps extends IComponent {
|
|
|
910
910
|
defaultImg: string;
|
|
911
911
|
style: React$1.CSSProperties;
|
|
912
912
|
onStart?: (option: UploadOptions) => void;
|
|
913
|
-
onRemove?: (file: FileItem, fileList: FileType<string>[]) => void;
|
|
913
|
+
onRemove?: (file: FileItem, fileList: FileType$1<string>[]) => void;
|
|
914
914
|
onSuccess?: (param: {
|
|
915
915
|
responseText: XMLHttpRequest['responseText'];
|
|
916
916
|
option: UploadOptions;
|
|
@@ -924,14 +924,14 @@ interface UploaderProps extends IComponent {
|
|
|
924
924
|
responseText: XMLHttpRequest['responseText'];
|
|
925
925
|
option: UploadOptions;
|
|
926
926
|
}) => void;
|
|
927
|
-
onUpdate?: (fileList: FileType<string>[]) => void;
|
|
927
|
+
onUpdate?: (fileList: FileType$1<string>[]) => void;
|
|
928
928
|
onOversize?: (file: Taro.chooseImage.ImageFile[]) => void;
|
|
929
929
|
onChange?: (param: {
|
|
930
|
-
fileList: FileType<string>[];
|
|
930
|
+
fileList: FileType$1<string>[];
|
|
931
931
|
}) => void;
|
|
932
932
|
onBeforeUpload?: (file: Taro.chooseImage.ImageFile[]) => Promise<any[]>;
|
|
933
933
|
onBeforeXhrUpload?: (xhr: XMLHttpRequest, options: any) => void;
|
|
934
|
-
onBeforeDelete?: (file: FileItem, files: FileType<string>[]) => boolean;
|
|
934
|
+
onBeforeDelete?: (file: FileItem, files: FileType$1<string>[]) => boolean;
|
|
935
935
|
onFileItemClick?: (file: FileItem) => void;
|
|
936
936
|
}
|
|
937
937
|
declare class FileItem {
|
|
@@ -1033,6 +1033,8 @@ interface SearchBarProps extends IComponent {
|
|
|
1033
1033
|
onBlur?: (value: string, event: Event) => void;
|
|
1034
1034
|
/** 点击清除按钮后触发 */
|
|
1035
1035
|
onClear?: (event: Event) => void;
|
|
1036
|
+
/** 点击取消按钮后触发 */
|
|
1037
|
+
onCancel?: () => void;
|
|
1036
1038
|
/** 点击输入区域时触发 */
|
|
1037
1039
|
onClickInput?: (event: Event) => void;
|
|
1038
1040
|
/** 点击输入框内左侧图标时触发 */
|
|
@@ -1780,13 +1782,20 @@ interface BarrageProps {
|
|
|
1780
1782
|
}
|
|
1781
1783
|
declare const Barrage: React$1.ForwardRefExoticComponent<Partial<BarrageProps> & React$1.RefAttributes<unknown>>;
|
|
1782
1784
|
|
|
1785
|
+
interface FileType {
|
|
1786
|
+
/** jpg 图片 */
|
|
1787
|
+
jpg: any;
|
|
1788
|
+
/** png 图片 */
|
|
1789
|
+
png: any;
|
|
1790
|
+
}
|
|
1783
1791
|
interface SignatureProps {
|
|
1784
|
-
|
|
1792
|
+
canvasId: string;
|
|
1793
|
+
type: keyof FileType;
|
|
1785
1794
|
lineWidth: number;
|
|
1786
1795
|
strokeStyle: string;
|
|
1787
1796
|
unSupportTpl: string;
|
|
1788
1797
|
className: string;
|
|
1789
|
-
confirm?: (
|
|
1798
|
+
confirm?: (dataurl: string) => void;
|
|
1790
1799
|
clear?: () => void;
|
|
1791
1800
|
}
|
|
1792
1801
|
declare const Signature: FunctionComponent<Partial<SignatureProps> & React$1.HTMLAttributes<HTMLDivElement>>;
|
package/package.json
CHANGED
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
4
|
-
var _excluded = ["attract", "direction", "boundary", "children", "className", "style"];
|
|
5
|
-
|
|
6
|
-
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; }
|
|
7
|
-
|
|
8
|
-
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; }
|
|
9
|
-
|
|
10
|
-
import React__default, { useState, useRef, useEffect } from 'react';
|
|
11
|
-
import { useDrag } from '@use-gesture/react';
|
|
12
|
-
import { useSpring, animated } from '@react-spring/web';
|
|
13
|
-
import { c as cn } from './bem-893ad28d.js';
|
|
14
|
-
var defaultProps = {
|
|
15
|
-
attract: false,
|
|
16
|
-
direction: undefined,
|
|
17
|
-
boundary: {
|
|
18
|
-
top: 0,
|
|
19
|
-
left: 0,
|
|
20
|
-
right: 0,
|
|
21
|
-
bottom: 0
|
|
22
|
-
},
|
|
23
|
-
className: ''
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
var Drag = function Drag(props) {
|
|
27
|
-
var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),
|
|
28
|
-
attract = _defaultProps$props.attract,
|
|
29
|
-
direction = _defaultProps$props.direction,
|
|
30
|
-
boundary = _defaultProps$props.boundary,
|
|
31
|
-
children = _defaultProps$props.children,
|
|
32
|
-
className = _defaultProps$props.className,
|
|
33
|
-
style = _defaultProps$props.style,
|
|
34
|
-
reset = _objectWithoutProperties(_defaultProps$props, _excluded);
|
|
35
|
-
|
|
36
|
-
var b = cn('drag');
|
|
37
|
-
|
|
38
|
-
var _useState = useState(boundary),
|
|
39
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
40
|
-
boundaryState = _useState2[0],
|
|
41
|
-
setBoundaryState = _useState2[1];
|
|
42
|
-
|
|
43
|
-
var myDrag = useRef(null);
|
|
44
|
-
|
|
45
|
-
var _useSpring = useSpring(function () {
|
|
46
|
-
return {
|
|
47
|
-
x: 0,
|
|
48
|
-
y: 0
|
|
49
|
-
};
|
|
50
|
-
}),
|
|
51
|
-
_useSpring2 = _slicedToArray(_useSpring, 2),
|
|
52
|
-
currstyle = _useSpring2[0],
|
|
53
|
-
api = _useSpring2[1];
|
|
54
|
-
|
|
55
|
-
var middleLine = useRef(0);
|
|
56
|
-
|
|
57
|
-
var getInfo = function getInfo() {
|
|
58
|
-
var el = myDrag.current;
|
|
59
|
-
|
|
60
|
-
if (el) {
|
|
61
|
-
var offsetWidth = el.offsetWidth,
|
|
62
|
-
offsetHeight = el.offsetHeight,
|
|
63
|
-
offsetTop = el.offsetTop,
|
|
64
|
-
offsetLeft = el.offsetLeft;
|
|
65
|
-
var _document$documentEle = document.documentElement,
|
|
66
|
-
clientWidth = _document$documentEle.clientWidth,
|
|
67
|
-
clientHeight = _document$documentEle.clientHeight;
|
|
68
|
-
var top = boundary.top,
|
|
69
|
-
left = boundary.left,
|
|
70
|
-
bottom = boundary.bottom,
|
|
71
|
-
right = boundary.right;
|
|
72
|
-
setBoundaryState({
|
|
73
|
-
top: -offsetTop + top,
|
|
74
|
-
left: -offsetLeft + left,
|
|
75
|
-
bottom: clientHeight - offsetHeight - offsetTop - bottom,
|
|
76
|
-
right: clientWidth - offsetWidth - offsetLeft - right
|
|
77
|
-
});
|
|
78
|
-
middleLine.current = clientWidth - offsetWidth - offsetLeft - (clientWidth - offsetWidth) / 2;
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
var bind = useDrag(function (_ref) {
|
|
83
|
-
var down = _ref.down,
|
|
84
|
-
last = _ref.last,
|
|
85
|
-
_ref$offset = _slicedToArray(_ref.offset, 2),
|
|
86
|
-
x = _ref$offset[0],
|
|
87
|
-
y = _ref$offset[1];
|
|
88
|
-
|
|
89
|
-
api.start({
|
|
90
|
-
x: x,
|
|
91
|
-
y: y,
|
|
92
|
-
immediate: down
|
|
93
|
-
});
|
|
94
|
-
|
|
95
|
-
if (last) {
|
|
96
|
-
if (props.direction !== 'y' && props.attract) {
|
|
97
|
-
if (x < middleLine.current) {
|
|
98
|
-
api.start({
|
|
99
|
-
x: boundaryState.left,
|
|
100
|
-
y: y,
|
|
101
|
-
immediate: down
|
|
102
|
-
});
|
|
103
|
-
} else {
|
|
104
|
-
api.start({
|
|
105
|
-
x: boundaryState.right,
|
|
106
|
-
y: y,
|
|
107
|
-
immediate: down
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}, {
|
|
113
|
-
from: function from() {
|
|
114
|
-
return [currstyle.x.get(), currstyle.y.get()];
|
|
115
|
-
},
|
|
116
|
-
axis: direction,
|
|
117
|
-
bounds: boundaryState
|
|
118
|
-
});
|
|
119
|
-
useEffect(function () {
|
|
120
|
-
getInfo();
|
|
121
|
-
}, [myDrag]);
|
|
122
|
-
return React__default.createElement("div", _objectSpread(_objectSpread({
|
|
123
|
-
style: style,
|
|
124
|
-
className: "".concat(b(), " ").concat(className)
|
|
125
|
-
}, reset), {}, {
|
|
126
|
-
ref: myDrag
|
|
127
|
-
}), React__default.createElement(animated.div, _objectSpread({
|
|
128
|
-
style: currstyle
|
|
129
|
-
}, bind()), children));
|
|
130
|
-
};
|
|
131
|
-
|
|
132
|
-
Drag.defaultProps = defaultProps;
|
|
133
|
-
Drag.displayName = 'NutDrag';
|
|
134
|
-
export { Drag as D };
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
4
|
-
var _excluded = ["type", "lineWidth", "strokeStyle", "unSupportTpl", "className"];
|
|
5
|
-
|
|
6
|
-
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; }
|
|
7
|
-
|
|
8
|
-
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; }
|
|
9
|
-
|
|
10
|
-
import React__default, { useRef, useState, useEffect } from 'react';
|
|
11
|
-
import { B as Button } from './button.taro-a9ebb937.js';
|
|
12
|
-
import { c as cn } from './bem-893ad28d.js';
|
|
13
|
-
import { u as useConfig } from './configprovider.taro-6c7b3056.js';
|
|
14
|
-
var defaultProps = {
|
|
15
|
-
type: 'png',
|
|
16
|
-
lineWidth: 2,
|
|
17
|
-
strokeStyle: '#000',
|
|
18
|
-
unSupportTpl: '对不起,当前浏览器不支持Canvas,无法使用本控件!',
|
|
19
|
-
className: ''
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
var Signature = function Signature(props) {
|
|
23
|
-
var _useConfig = useConfig(),
|
|
24
|
-
locale = _useConfig.locale;
|
|
25
|
-
|
|
26
|
-
var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),
|
|
27
|
-
type = _defaultProps$props.type,
|
|
28
|
-
lineWidth = _defaultProps$props.lineWidth,
|
|
29
|
-
strokeStyle = _defaultProps$props.strokeStyle,
|
|
30
|
-
unSupportTpl = _defaultProps$props.unSupportTpl,
|
|
31
|
-
className = _defaultProps$props.className,
|
|
32
|
-
rest = _objectWithoutProperties(_defaultProps$props, _excluded);
|
|
33
|
-
|
|
34
|
-
var b = cn('signature');
|
|
35
|
-
var canvasRef = useRef(null);
|
|
36
|
-
var wrapRef = useRef(null);
|
|
37
|
-
|
|
38
|
-
var _useState = useState(0),
|
|
39
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
40
|
-
canvasHeight = _useState2[0],
|
|
41
|
-
setCanvasHeight = _useState2[1];
|
|
42
|
-
|
|
43
|
-
var _useState3 = useState(0),
|
|
44
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
45
|
-
canvasWidth = _useState4[0],
|
|
46
|
-
setCanvasWidth = _useState4[1];
|
|
47
|
-
|
|
48
|
-
var ctx = useRef(null);
|
|
49
|
-
|
|
50
|
-
var isCanvasSupported = function isCanvasSupported() {
|
|
51
|
-
var elem = document.createElement('canvas');
|
|
52
|
-
return !!(elem.getContext && elem.getContext('2d'));
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
var isSupportTouch = ('ontouchstart' in window);
|
|
56
|
-
var events = isSupportTouch ? ['touchstart', 'touchmove', 'touchend', 'touchleave'] : ['mousedown', 'mousemove', 'mouseup', 'mouseleave'];
|
|
57
|
-
useEffect(function () {
|
|
58
|
-
if (isCanvasSupported() && canvasRef.current && wrapRef.current) {
|
|
59
|
-
ctx.current = canvasRef.current.getContext('2d');
|
|
60
|
-
setCanvasWidth(wrapRef.current.offsetWidth);
|
|
61
|
-
setCanvasHeight(wrapRef.current.offsetHeight);
|
|
62
|
-
addEvent();
|
|
63
|
-
}
|
|
64
|
-
}, []);
|
|
65
|
-
|
|
66
|
-
var startEventHandler = function startEventHandler(event) {
|
|
67
|
-
event.preventDefault();
|
|
68
|
-
|
|
69
|
-
if (ctx.current && canvasRef.current) {
|
|
70
|
-
ctx.current.beginPath();
|
|
71
|
-
ctx.current.lineWidth = lineWidth;
|
|
72
|
-
ctx.current.strokeStyle = strokeStyle;
|
|
73
|
-
canvasRef.current.addEventListener(events[1], moveEventHandler, false);
|
|
74
|
-
canvasRef.current.addEventListener(events[2], endEventHandler, false);
|
|
75
|
-
canvasRef.current.addEventListener(events[3], leaveEventHandler, false);
|
|
76
|
-
}
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
var addEvent = function addEvent() {
|
|
80
|
-
if (canvasRef.current) {
|
|
81
|
-
canvasRef.current.addEventListener(events[0], startEventHandler, false);
|
|
82
|
-
}
|
|
83
|
-
};
|
|
84
|
-
|
|
85
|
-
var moveEventHandler = function moveEventHandler(event) {
|
|
86
|
-
event.preventDefault();
|
|
87
|
-
var evt = isSupportTouch ? event.touches[0] : event;
|
|
88
|
-
|
|
89
|
-
if (canvasRef.current && ctx.current) {
|
|
90
|
-
var coverPos = canvasRef.current.getBoundingClientRect();
|
|
91
|
-
var mouseX = evt.clientX - coverPos.left;
|
|
92
|
-
var mouseY = evt.clientY - coverPos.top;
|
|
93
|
-
ctx.current.lineTo(mouseX, mouseY);
|
|
94
|
-
ctx.current.stroke();
|
|
95
|
-
}
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
var endEventHandler = function endEventHandler(event) {
|
|
99
|
-
event.preventDefault();
|
|
100
|
-
|
|
101
|
-
if (canvasRef.current) {
|
|
102
|
-
canvasRef.current.removeEventListener(events[1], moveEventHandler, false);
|
|
103
|
-
canvasRef.current.removeEventListener(events[2], endEventHandler, false);
|
|
104
|
-
}
|
|
105
|
-
};
|
|
106
|
-
|
|
107
|
-
var leaveEventHandler = function leaveEventHandler(event) {
|
|
108
|
-
event.preventDefault();
|
|
109
|
-
|
|
110
|
-
if (canvasRef.current) {
|
|
111
|
-
canvasRef.current.removeEventListener(events[1], moveEventHandler, false);
|
|
112
|
-
canvasRef.current.removeEventListener(events[2], endEventHandler, false);
|
|
113
|
-
}
|
|
114
|
-
};
|
|
115
|
-
|
|
116
|
-
var clear = function clear() {
|
|
117
|
-
if (canvasRef.current && ctx.current) {
|
|
118
|
-
canvasRef.current.addEventListener(events[2], endEventHandler, false);
|
|
119
|
-
ctx.current.clearRect(0, 0, canvasWidth, canvasHeight);
|
|
120
|
-
ctx.current.closePath();
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
props.clear && props.clear();
|
|
124
|
-
};
|
|
125
|
-
|
|
126
|
-
var confirm = function confirm() {
|
|
127
|
-
onSave(canvasRef.current);
|
|
128
|
-
};
|
|
129
|
-
|
|
130
|
-
var onSave = function onSave(canvas) {
|
|
131
|
-
var dataurl;
|
|
132
|
-
|
|
133
|
-
switch (type) {
|
|
134
|
-
case 'png':
|
|
135
|
-
dataurl = canvas.toDataURL('image/png');
|
|
136
|
-
break;
|
|
137
|
-
|
|
138
|
-
case 'jpg':
|
|
139
|
-
dataurl = canvas.toDataURL('image/jpeg', 0.8);
|
|
140
|
-
break;
|
|
141
|
-
|
|
142
|
-
default:
|
|
143
|
-
dataurl = canvas.toDataURL('image/png');
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
clear();
|
|
147
|
-
props.confirm && props.confirm(canvas, dataurl);
|
|
148
|
-
};
|
|
149
|
-
|
|
150
|
-
return React__default.createElement("div", _objectSpread({
|
|
151
|
-
className: "".concat(b(), " ").concat(className)
|
|
152
|
-
}, rest), React__default.createElement("div", {
|
|
153
|
-
className: "".concat(b('inner')),
|
|
154
|
-
ref: wrapRef
|
|
155
|
-
}, isCanvasSupported() ? React__default.createElement("canvas", {
|
|
156
|
-
ref: canvasRef,
|
|
157
|
-
height: canvasHeight,
|
|
158
|
-
width: canvasWidth
|
|
159
|
-
}) : React__default.createElement("p", {
|
|
160
|
-
className: "".concat(b('unsopport'))
|
|
161
|
-
}, locale.signature.unSupportTpl || unSupportTpl)), React__default.createElement(Button, {
|
|
162
|
-
className: "".concat(b('btn')),
|
|
163
|
-
type: "default",
|
|
164
|
-
onClick: function onClick() {
|
|
165
|
-
return clear();
|
|
166
|
-
}
|
|
167
|
-
}, locale.signature.reSign), React__default.createElement(Button, {
|
|
168
|
-
className: "".concat(b('btn')),
|
|
169
|
-
type: "primary",
|
|
170
|
-
onClick: function onClick() {
|
|
171
|
-
return confirm();
|
|
172
|
-
}
|
|
173
|
-
}, locale.confirm));
|
|
174
|
-
};
|
|
175
|
-
|
|
176
|
-
Signature.defaultProps = defaultProps;
|
|
177
|
-
Signature.displayName = 'NutSignature';
|
|
178
|
-
export { Signature as S };
|