@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.
Files changed (129) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/esm/Audio.js +4 -4
  3. package/dist/esm/Calendar.js +4 -4
  4. package/dist/esm/CalendarItem.js +3 -3
  5. package/dist/esm/DatePicker.js +4 -4
  6. package/dist/esm/Drag.js +3 -4
  7. package/dist/esm/Elevator.js +2 -4
  8. package/dist/esm/Menu.js +2 -2
  9. package/dist/esm/MenuItem.js +2 -2
  10. package/dist/esm/NoticeBar.js +3 -3
  11. package/dist/esm/Picker.js +3 -3
  12. package/dist/esm/Popover.js +3 -3
  13. package/dist/esm/Range.js +3 -3
  14. package/dist/esm/SearchBar.js +3 -2
  15. package/dist/esm/Signature.js +3 -2
  16. package/dist/esm/Swipe.js +3 -3
  17. package/dist/esm/actionsheet.taro-360d8d34.js +15 -25
  18. package/dist/esm/address.taro-f16cef31.js +151 -219
  19. package/dist/esm/animatingnumbers.taro-6f40a2e9.js +13 -41
  20. package/dist/esm/{audio.taro-29f5568f.js → audio.taro-57d4f0da.js} +33 -60
  21. package/dist/esm/avatar.taro-ec620cdd.js +25 -50
  22. package/dist/esm/avatargroup-5b2584d9.js +2 -9
  23. package/dist/esm/backtop.taro-aa8b2bc5.js +29 -55
  24. package/dist/esm/badge.taro-38684262.js +9 -20
  25. package/dist/esm/barrage.taro-d86c367a.js +8 -21
  26. package/dist/esm/button.taro-a9ebb937.js +22 -37
  27. package/dist/esm/{calendar.taro-438940bd.js → calendar.taro-533b3219.js} +13 -24
  28. package/dist/esm/{calendaritem.taro-11333579.js → calendaritem.taro-fe5dd4bd.js} +71 -183
  29. package/dist/esm/card.taro-1bc35ebe.js +14 -20
  30. package/dist/esm/cascader.taro-77100fb4.js +77 -197
  31. package/dist/esm/cell.taro-a4c3bb7b.js +20 -30
  32. package/dist/esm/cellgroup.taro-8c87bf08.js +6 -12
  33. package/dist/esm/checkbox.taro-104557c1.js +27 -48
  34. package/dist/esm/checkboxgroup.taro-3d380042.js +12 -30
  35. package/dist/esm/circleprogress.taro-3c89a157.js +14 -41
  36. package/dist/esm/col.taro-2a437387.js +11 -22
  37. package/dist/esm/collapse.taro-72e58ba2.js +11 -27
  38. package/dist/esm/collapseitem-75843a5e.js +33 -47
  39. package/dist/esm/configprovider-3e87d67a.js +2 -6
  40. package/dist/esm/configprovider.taro-6c7b3056.js +4 -14
  41. package/dist/esm/countdown.taro-f2d9ffed.js +37 -74
  42. package/dist/esm/{datepicker.taro-1acec61f.js → datepicker.taro-49a4cf0c.js} +43 -104
  43. package/dist/esm/dialog.taro-492e2b9a.js +27 -58
  44. package/dist/esm/divider.taro-5236fe6a.js +8 -15
  45. package/dist/esm/drag.taro-0717c783.js +153 -0
  46. package/dist/esm/{elevator.taro-8e385785.js → elevator.taro-443253ec.js} +99 -124
  47. package/dist/esm/empty.taro-ab9c4f03.js +11 -24
  48. package/dist/esm/fixednav.taro-582322a1.js +16 -27
  49. package/dist/esm/grid.taro-5d75c0ad.js +13 -28
  50. package/dist/esm/griditem.taro-866cd288.js +18 -34
  51. package/dist/esm/icon-8dc4de10.js +11 -21
  52. package/dist/esm/icon.taro-1d0d4fb7.js +11 -21
  53. package/dist/esm/imagepreview.taro-1199e977.js +36 -71
  54. package/dist/esm/indicator.taro-183ea169.js +9 -20
  55. package/dist/esm/infiniteloading.taro-b95e62bf.js +23 -49
  56. package/dist/esm/input.taro-2453d7c4.js +62 -106
  57. package/dist/esm/inputnumber.taro-0cf7c1b7.js +25 -52
  58. package/dist/esm/layout.taro-358f014f.js +0 -6
  59. package/dist/esm/{menu.taro-9345dcfd.js → menu.taro-f8ca86db.js} +24 -42
  60. package/dist/esm/{menuitem.taro-fc0961b7.js → menuitem.taro-7bf564c9.js} +32 -57
  61. package/dist/esm/navbar.taro-c931c078.js +18 -34
  62. package/dist/esm/{noticebar.taro-1fa04a96.js → noticebar.taro-332691f9.js} +55 -107
  63. package/dist/esm/notify.taro-d9c48fae.js +18 -34
  64. package/dist/esm/numberkeyboard.taro-53c350b8.js +21 -52
  65. package/dist/esm/nutui-react.es.js +18 -18
  66. package/dist/esm/offsetContext-0e3d04b3.js +0 -3
  67. package/dist/esm/overlay.taro-be45fed5.js +12 -23
  68. package/dist/esm/pagination.taro-62bbd23f.js +38 -71
  69. package/dist/esm/{picker.taro-6a4dad23.js → picker.taro-f003b725.js} +95 -186
  70. package/dist/esm/{popover.taro-eddd0bd2.js → popover.taro-7e5dff8c.js} +33 -76
  71. package/dist/esm/popup.taro-33d0bbc8.js +40 -72
  72. package/dist/esm/price.taro-97393d8f.js +7 -24
  73. package/dist/esm/progress.taro-623bc807.js +23 -31
  74. package/dist/esm/pulltorefresh.taro-e66c78ad.js +29 -92
  75. package/dist/esm/radio.taro-95d43860.js +24 -47
  76. package/dist/esm/radiogroup.taro-b5dad516.js +14 -24
  77. package/dist/esm/{range.taro-515d37a4.js → range.taro-fc7c0b6a.js} +50 -133
  78. package/dist/esm/rate.taro-69c85081.js +21 -39
  79. package/dist/esm/row.taro-cec13a7e.js +7 -16
  80. package/dist/esm/{searchbar.taro-f134fb96.js → searchbar.taro-0d3c0081.js} +55 -70
  81. package/dist/esm/shortpassword.taro-2e96ca22.js +29 -56
  82. package/dist/esm/sidenavbar.taro-87f056cd.js +9 -16
  83. package/dist/esm/sidenavbaritem.taro-77e077f4.js +4 -11
  84. package/dist/esm/signature.taro-59b3b3ab.js +146 -0
  85. package/dist/esm/skeleton.taro-b9ff84b9.js +13 -23
  86. package/dist/esm/step.taro-f1057500.js +12 -28
  87. package/dist/esm/steps.taro-943f4fbb.js +6 -14
  88. package/dist/esm/sticky.taro-30d4e453.js +0 -7
  89. package/dist/esm/subsidenavbar.taro-2c1fcf16.js +7 -22
  90. package/dist/esm/{swipe.taro-dfb9a049.js → swipe.taro-83bc248f.js} +98 -91
  91. package/dist/esm/swiper.taro-f314d67a.js +110 -196
  92. package/dist/esm/swiperitem-d00e7513.js +2 -12
  93. package/dist/esm/switch.taro-be5eb823.js +13 -27
  94. package/dist/esm/tabbar.taro-da72fa2c.js +13 -25
  95. package/dist/esm/tabbaritem.taro-94cd62c2.js +15 -23
  96. package/dist/esm/table.taro-7ac89a6c.js +19 -39
  97. package/dist/esm/tabpane.taro-95aa185b.js +4 -10
  98. package/dist/esm/tabs.taro-86186dff.js +28 -54
  99. package/dist/esm/tag.taro-95d7f5c2.js +19 -36
  100. package/dist/esm/textarea.taro-388d1f90.js +18 -35
  101. package/dist/esm/timedetail.taro-519808cf.js +15 -28
  102. package/dist/esm/timepannel.taro-9904f6e6.js +5 -12
  103. package/dist/esm/timeselect.taro-73796bfc.js +35 -59
  104. package/dist/esm/toast.taro-86862dff.js +26 -46
  105. package/dist/esm/types/src/packages/elevator/demo.d.ts +1 -0
  106. package/dist/esm/types/src/packages/searchbar/searchbar.d.ts +2 -0
  107. package/dist/esm/types/src/packages/searchbar/searchbar.taro.d.ts +2 -0
  108. package/dist/esm/types/src/packages/signature/signature.taro.d.ts +10 -2
  109. package/dist/esm/uploader.taro-6184abe7.js +52 -144
  110. package/dist/esm/{useClientRect-8b7cc406.js → useClientRect-bf69d7b3.js} +1 -40
  111. package/dist/esm/useTouch-a2ea68c6.js +27 -47
  112. package/dist/esm/video-c1090c92.js +8 -19
  113. package/dist/esm/virtuallist.taro-6858f690.js +84 -118
  114. package/dist/locales/base.js +1 -1
  115. package/dist/locales/en-US.js +1 -1
  116. package/dist/locales/id-ID.js +1 -1
  117. package/dist/locales/zh-CN.js +1 -1
  118. package/dist/locales/zh-TW.js +1 -1
  119. package/dist/nutui.react.es.js +10848 -11365
  120. package/dist/nutui.react.umd.js +10840 -11357
  121. package/dist/packages/menu/menu.scss +4 -0
  122. package/dist/packages/menuitem/menuitem.scss +27 -2
  123. package/dist/packages/searchbar/searchbar.scss +20 -3
  124. package/dist/style.css +1 -1
  125. package/dist/style.es.js +1 -1
  126. package/dist/types/index.d.ts +17 -8
  127. package/package.json +1 -1
  128. package/dist/esm/drag.taro-56e8c87a.js +0 -134
  129. package/dist/esm/signature.taro-a9286cd1.js +0 -178
package/dist/style.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @nutui/nutui-react-taro v1.3.5 Wed Sep 28 2022 14:39:33 GMT+0800 (China Standard Time)
2
+ * @nutui/nutui-react-taro v1.3.7 Wed Oct 19 2022 16:59:38 GMT+0800 (中国标准时间)
3
3
  * (c) 2021 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
@@ -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
- type: string;
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?: (canvas: HTMLCanvasElement, dataurl: string) => void;
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,6 +1,6 @@
1
1
  {
2
2
  "name": "@nutui/nutui-react-taro",
3
- "version": "1.3.5",
3
+ "version": "1.3.7",
4
4
  "style": "dist/style.css",
5
5
  "main": "dist/nutui.react.umd.js",
6
6
  "module": "dist/esm/nutui-react.es.js",
@@ -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 };