antd-mobile 5.0.0-rc.4 → 5.0.0-rc.8

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 (257) hide show
  1. package/2x/README.md +12 -1
  2. package/2x/cjs/components/checkbox/checkbox.css +1 -1
  3. package/2x/cjs/components/collapse/collapse.d.ts +2 -2
  4. package/2x/cjs/components/collapse/collapse.js +1 -1
  5. package/2x/cjs/components/date-picker/date-picker.js +1 -1
  6. package/2x/cjs/components/dialog/dialog.d.ts +1 -0
  7. package/2x/cjs/components/dialog/dialog.js +12 -7
  8. package/2x/cjs/components/form/form-item.css +1 -1
  9. package/2x/cjs/components/form/index.css +1 -1
  10. package/2x/cjs/components/image/lazy-detector.js +4 -1
  11. package/2x/cjs/components/image-uploader/image-uploader.js +9 -3
  12. package/2x/cjs/components/image-viewer/slide.js +0 -5
  13. package/2x/cjs/components/index-bar/index-bar.css +1 -1
  14. package/2x/cjs/components/infinite-scroll/infinite-scroll.js +1 -1
  15. package/2x/cjs/components/input/input.d.ts +2 -2
  16. package/2x/cjs/components/list/list.css +5 -4
  17. package/2x/cjs/components/list/list.js +1 -3
  18. package/2x/cjs/components/mask/mask.js +3 -2
  19. package/2x/cjs/components/modal/modal.d.ts +1 -0
  20. package/2x/cjs/components/modal/modal.js +5 -3
  21. package/2x/cjs/components/notice-bar/notice-bar.css +1 -0
  22. package/2x/cjs/components/number-keyboard/number-keyboard.css +2 -2
  23. package/2x/cjs/components/number-keyboard/number-keyboard.js +1 -1
  24. package/2x/cjs/components/passcode-input/index.d.ts +4 -0
  25. package/2x/cjs/components/passcode-input/index.js +13 -0
  26. package/2x/cjs/components/passcode-input/passcode-input.css +166 -0
  27. package/2x/cjs/components/passcode-input/passcode-input.d.ts +35 -0
  28. package/2x/cjs/components/passcode-input/passcode-input.js +169 -0
  29. package/2x/cjs/components/picker/picker.js +5 -3
  30. package/2x/cjs/components/picker-view/picker-view.css +46 -5
  31. package/2x/cjs/components/picker-view/picker-view.js +32 -22
  32. package/2x/cjs/components/picker-view/wheel.d.ts +10 -0
  33. package/{cjs/components/picker-view/column.js → 2x/cjs/components/picker-view/wheel.js} +74 -14
  34. package/2x/cjs/components/progress-bar/progress-bar.css +3 -1
  35. package/2x/cjs/components/progress-bar/progress-bar.d.ts +1 -1
  36. package/2x/cjs/components/radio/radio.css +1 -1
  37. package/2x/cjs/components/rate/rate.css +1 -0
  38. package/2x/cjs/components/search-bar/search-bar.css +5 -0
  39. package/2x/cjs/components/search-bar/search-bar.d.ts +3 -1
  40. package/2x/cjs/components/search-bar/search-bar.js +6 -5
  41. package/2x/cjs/components/side-bar/side-bar.css +2 -0
  42. package/2x/cjs/components/skeleton/index.d.ts +8 -0
  43. package/2x/cjs/components/skeleton/index.js +19 -0
  44. package/2x/cjs/components/skeleton/skeleton.css +45 -0
  45. package/2x/cjs/components/skeleton/skeleton.d.ts +15 -0
  46. package/2x/cjs/components/skeleton/skeleton.js +61 -0
  47. package/2x/cjs/components/stepper/stepper.d.ts +1 -0
  48. package/2x/cjs/components/stepper/stepper.js +4 -2
  49. package/2x/cjs/components/tab-bar/tab-bar.css +1 -1
  50. package/2x/cjs/components/tab-bar/tab-bar.d.ts +1 -0
  51. package/2x/cjs/components/tab-bar/tab-bar.js +24 -11
  52. package/2x/cjs/components/toast/index.d.ts +2 -1
  53. package/2x/cjs/components/toast/index.js +2 -1
  54. package/2x/cjs/components/toast/methods.d.ts +1 -0
  55. package/2x/cjs/components/toast/methods.js +18 -1
  56. package/2x/cjs/components/tree-select/tree-select.css +1 -0
  57. package/2x/cjs/components/virtual-input/virtual-input.js +1 -3
  58. package/2x/cjs/global/global.css +0 -4
  59. package/2x/cjs/index.d.ts +2 -0
  60. package/2x/cjs/index.js +16 -0
  61. package/2x/cjs/utils/use-mutation-effect.js +1 -1
  62. package/2x/cjs/utils/use-props-value.js +1 -1
  63. package/2x/cjs/utils/use-resize-effect.js +1 -1
  64. package/2x/es/components/checkbox/checkbox.css +1 -1
  65. package/2x/es/components/collapse/collapse.d.ts +2 -2
  66. package/2x/es/components/collapse/collapse.js +1 -1
  67. package/2x/es/components/date-picker/date-picker.js +2 -2
  68. package/2x/es/components/dialog/dialog.d.ts +1 -0
  69. package/2x/es/components/dialog/dialog.js +11 -7
  70. package/2x/es/components/form/form-item.css +1 -1
  71. package/2x/es/components/form/index.css +1 -1
  72. package/2x/es/components/image/lazy-detector.js +4 -1
  73. package/2x/es/components/image-uploader/image-uploader.js +10 -4
  74. package/2x/es/components/image-viewer/slide.js +0 -5
  75. package/2x/es/components/index-bar/index-bar.css +1 -1
  76. package/2x/es/components/infinite-scroll/infinite-scroll.js +2 -2
  77. package/2x/es/components/input/input.d.ts +2 -2
  78. package/2x/es/components/list/list.css +5 -4
  79. package/2x/es/components/list/list.js +1 -3
  80. package/2x/es/components/mask/mask.js +3 -2
  81. package/2x/es/components/modal/modal.d.ts +1 -0
  82. package/2x/es/components/modal/modal.js +5 -3
  83. package/2x/es/components/notice-bar/notice-bar.css +1 -0
  84. package/2x/es/components/number-keyboard/number-keyboard.css +2 -2
  85. package/2x/es/components/number-keyboard/number-keyboard.js +2 -2
  86. package/2x/es/components/passcode-input/index.d.ts +4 -0
  87. package/2x/es/components/passcode-input/index.js +3 -0
  88. package/2x/es/components/passcode-input/passcode-input.css +166 -0
  89. package/2x/es/components/passcode-input/passcode-input.d.ts +35 -0
  90. package/2x/es/components/passcode-input/passcode-input.js +149 -0
  91. package/2x/es/components/picker/picker.js +6 -4
  92. package/2x/es/components/picker-view/picker-view.css +46 -5
  93. package/2x/es/components/picker-view/picker-view.js +33 -23
  94. package/2x/es/components/picker-view/wheel.d.ts +10 -0
  95. package/{es/components/picker-view/column.js → 2x/es/components/picker-view/wheel.js} +71 -12
  96. package/2x/es/components/progress-bar/progress-bar.css +3 -1
  97. package/2x/es/components/progress-bar/progress-bar.d.ts +1 -1
  98. package/2x/es/components/radio/radio.css +1 -1
  99. package/2x/es/components/rate/rate.css +1 -0
  100. package/2x/es/components/search-bar/search-bar.css +5 -0
  101. package/2x/es/components/search-bar/search-bar.d.ts +3 -1
  102. package/2x/es/components/search-bar/search-bar.js +6 -5
  103. package/2x/es/components/side-bar/side-bar.css +2 -0
  104. package/2x/es/components/skeleton/index.d.ts +8 -0
  105. package/2x/es/components/skeleton/index.js +7 -0
  106. package/2x/es/components/skeleton/skeleton.css +45 -0
  107. package/2x/es/components/skeleton/skeleton.d.ts +15 -0
  108. package/2x/es/components/skeleton/skeleton.js +36 -0
  109. package/2x/es/components/stepper/stepper.d.ts +1 -0
  110. package/2x/es/components/stepper/stepper.js +4 -2
  111. package/2x/es/components/tab-bar/tab-bar.css +1 -1
  112. package/2x/es/components/tab-bar/tab-bar.d.ts +1 -0
  113. package/2x/es/components/tab-bar/tab-bar.js +22 -11
  114. package/2x/es/components/toast/index.d.ts +2 -1
  115. package/2x/es/components/toast/index.js +3 -2
  116. package/2x/es/components/toast/methods.d.ts +1 -0
  117. package/2x/es/components/toast/methods.js +16 -1
  118. package/2x/es/components/tree-select/tree-select.css +1 -0
  119. package/2x/es/components/virtual-input/virtual-input.js +1 -3
  120. package/2x/es/global/global.css +0 -4
  121. package/2x/es/index.d.ts +2 -0
  122. package/2x/es/index.js +2 -0
  123. package/2x/es/utils/use-mutation-effect.js +2 -2
  124. package/2x/es/utils/use-props-value.js +2 -2
  125. package/2x/es/utils/use-resize-effect.js +2 -2
  126. package/2x/package.json +4 -4
  127. package/README.md +12 -1
  128. package/cjs/components/checkbox/checkbox.css +1 -1
  129. package/cjs/components/collapse/collapse.d.ts +2 -2
  130. package/cjs/components/collapse/collapse.js +1 -1
  131. package/cjs/components/date-picker/date-picker.js +1 -1
  132. package/cjs/components/dialog/dialog.d.ts +1 -0
  133. package/cjs/components/dialog/dialog.js +12 -7
  134. package/cjs/components/form/form-item.css +1 -1
  135. package/cjs/components/form/index.css +1 -1
  136. package/cjs/components/image/lazy-detector.js +4 -1
  137. package/cjs/components/image-uploader/image-uploader.js +9 -3
  138. package/cjs/components/image-viewer/slide.js +0 -5
  139. package/cjs/components/index-bar/index-bar.css +1 -1
  140. package/cjs/components/infinite-scroll/infinite-scroll.js +1 -1
  141. package/cjs/components/input/input.d.ts +2 -2
  142. package/cjs/components/list/list.css +4 -3
  143. package/cjs/components/list/list.js +1 -3
  144. package/cjs/components/mask/mask.js +3 -2
  145. package/cjs/components/modal/modal.d.ts +1 -0
  146. package/cjs/components/modal/modal.js +5 -3
  147. package/cjs/components/notice-bar/notice-bar.css +1 -0
  148. package/cjs/components/number-keyboard/number-keyboard.css +2 -2
  149. package/cjs/components/number-keyboard/number-keyboard.js +1 -1
  150. package/cjs/components/passcode-input/index.d.ts +4 -0
  151. package/cjs/components/passcode-input/index.js +13 -0
  152. package/cjs/components/passcode-input/passcode-input.css +136 -0
  153. package/cjs/components/passcode-input/passcode-input.d.ts +35 -0
  154. package/cjs/components/passcode-input/passcode-input.js +169 -0
  155. package/cjs/components/picker/picker.js +5 -3
  156. package/cjs/components/picker-view/picker-view.css +40 -5
  157. package/cjs/components/picker-view/picker-view.js +32 -22
  158. package/cjs/components/picker-view/wheel.d.ts +10 -0
  159. package/{2x/cjs/components/picker-view/column.js → cjs/components/picker-view/wheel.js} +74 -14
  160. package/cjs/components/progress-bar/progress-bar.css +3 -1
  161. package/cjs/components/progress-bar/progress-bar.d.ts +1 -1
  162. package/cjs/components/radio/radio.css +1 -1
  163. package/cjs/components/rate/rate.css +1 -0
  164. package/cjs/components/search-bar/search-bar.css +4 -0
  165. package/cjs/components/search-bar/search-bar.d.ts +3 -1
  166. package/cjs/components/search-bar/search-bar.js +6 -5
  167. package/cjs/components/side-bar/side-bar.css +2 -0
  168. package/cjs/components/skeleton/index.d.ts +8 -0
  169. package/cjs/components/skeleton/index.js +19 -0
  170. package/cjs/components/skeleton/skeleton.css +39 -0
  171. package/cjs/components/skeleton/skeleton.d.ts +15 -0
  172. package/cjs/components/skeleton/skeleton.js +61 -0
  173. package/cjs/components/stepper/stepper.d.ts +1 -0
  174. package/cjs/components/stepper/stepper.js +4 -2
  175. package/cjs/components/tab-bar/tab-bar.css +1 -1
  176. package/cjs/components/tab-bar/tab-bar.d.ts +1 -0
  177. package/cjs/components/tab-bar/tab-bar.js +24 -11
  178. package/cjs/components/toast/index.d.ts +2 -1
  179. package/cjs/components/toast/index.js +2 -1
  180. package/cjs/components/toast/methods.d.ts +1 -0
  181. package/cjs/components/toast/methods.js +18 -1
  182. package/cjs/components/tree-select/tree-select.css +1 -0
  183. package/cjs/components/virtual-input/virtual-input.js +1 -3
  184. package/cjs/global/global.css +0 -3
  185. package/cjs/index.d.ts +2 -0
  186. package/cjs/index.js +16 -0
  187. package/cjs/utils/use-mutation-effect.js +1 -1
  188. package/cjs/utils/use-props-value.js +1 -1
  189. package/cjs/utils/use-resize-effect.js +1 -1
  190. package/es/components/checkbox/checkbox.css +1 -1
  191. package/es/components/collapse/collapse.d.ts +2 -2
  192. package/es/components/collapse/collapse.js +1 -1
  193. package/es/components/date-picker/date-picker.js +2 -2
  194. package/es/components/dialog/dialog.d.ts +1 -0
  195. package/es/components/dialog/dialog.js +11 -7
  196. package/es/components/form/form-item.css +1 -1
  197. package/es/components/form/index.css +1 -1
  198. package/es/components/image/lazy-detector.js +4 -1
  199. package/es/components/image-uploader/image-uploader.js +10 -4
  200. package/es/components/image-viewer/slide.js +0 -5
  201. package/es/components/index-bar/index-bar.css +1 -1
  202. package/es/components/infinite-scroll/infinite-scroll.js +2 -2
  203. package/es/components/input/input.d.ts +2 -2
  204. package/es/components/list/list.css +4 -3
  205. package/es/components/list/list.js +1 -3
  206. package/es/components/mask/mask.js +3 -2
  207. package/es/components/modal/modal.d.ts +1 -0
  208. package/es/components/modal/modal.js +5 -3
  209. package/es/components/notice-bar/notice-bar.css +1 -0
  210. package/es/components/number-keyboard/number-keyboard.css +2 -2
  211. package/es/components/number-keyboard/number-keyboard.js +2 -2
  212. package/es/components/passcode-input/index.d.ts +4 -0
  213. package/es/components/passcode-input/index.js +3 -0
  214. package/es/components/passcode-input/passcode-input.css +136 -0
  215. package/es/components/passcode-input/passcode-input.d.ts +35 -0
  216. package/es/components/passcode-input/passcode-input.js +149 -0
  217. package/es/components/picker/picker.js +6 -4
  218. package/es/components/picker-view/picker-view.css +40 -5
  219. package/es/components/picker-view/picker-view.js +33 -23
  220. package/es/components/picker-view/wheel.d.ts +10 -0
  221. package/{2x/es/components/picker-view/column.js → es/components/picker-view/wheel.js} +71 -12
  222. package/es/components/progress-bar/progress-bar.css +3 -1
  223. package/es/components/progress-bar/progress-bar.d.ts +1 -1
  224. package/es/components/radio/radio.css +1 -1
  225. package/es/components/rate/rate.css +1 -0
  226. package/es/components/search-bar/search-bar.css +4 -0
  227. package/es/components/search-bar/search-bar.d.ts +3 -1
  228. package/es/components/search-bar/search-bar.js +6 -5
  229. package/es/components/side-bar/side-bar.css +2 -0
  230. package/es/components/skeleton/index.d.ts +8 -0
  231. package/es/components/skeleton/index.js +7 -0
  232. package/es/components/skeleton/skeleton.css +39 -0
  233. package/es/components/skeleton/skeleton.d.ts +15 -0
  234. package/es/components/skeleton/skeleton.js +36 -0
  235. package/es/components/stepper/stepper.d.ts +1 -0
  236. package/es/components/stepper/stepper.js +4 -2
  237. package/es/components/tab-bar/tab-bar.css +1 -1
  238. package/es/components/tab-bar/tab-bar.d.ts +1 -0
  239. package/es/components/tab-bar/tab-bar.js +22 -11
  240. package/es/components/toast/index.d.ts +2 -1
  241. package/es/components/toast/index.js +3 -2
  242. package/es/components/toast/methods.d.ts +1 -0
  243. package/es/components/toast/methods.js +16 -1
  244. package/es/components/tree-select/tree-select.css +1 -0
  245. package/es/components/virtual-input/virtual-input.js +1 -3
  246. package/es/global/global.css +0 -3
  247. package/es/index.d.ts +2 -0
  248. package/es/index.js +2 -0
  249. package/es/utils/use-mutation-effect.js +2 -2
  250. package/es/utils/use-props-value.js +2 -2
  251. package/es/utils/use-resize-effect.js +2 -2
  252. package/package.json +4 -4
  253. package/umd/antd-mobile.js +1 -1
  254. package/2x/cjs/components/picker-view/column.d.ts +0 -9
  255. package/2x/es/components/picker-view/column.d.ts +0 -9
  256. package/cjs/components/picker-view/column.d.ts +0 -9
  257. package/es/components/picker-view/column.d.ts +0 -9
@@ -0,0 +1,136 @@
1
+ .adm-passcode-input {
2
+ position: relative;
3
+ display: inline-block;
4
+ --cell-size: 40px;
5
+ --cell-gap: 6px;
6
+ --dot-size: 10px;
7
+ --border-color: #e5e5e5;
8
+ --border-radius: 8px;
9
+ }
10
+ .adm-passcode-input-cell-container {
11
+ display: inline-flex;
12
+ vertical-align: top;
13
+ }
14
+ .adm-passcode-input-cell {
15
+ flex: none;
16
+ display: flex;
17
+ align-items: center;
18
+ justify-content: center;
19
+ box-sizing: border-box;
20
+ font-size: 18px;
21
+ width: var(--cell-size);
22
+ height: var(--cell-size);
23
+ background: var(--adm-color-white);
24
+ }
25
+ .adm-passcode-input:not(.seperated) {
26
+ border-radius: var(--border-radius);
27
+ overflow: hidden;
28
+ border: 1px solid var(--border-color);
29
+ }
30
+ .adm-passcode-input:not(.seperated) .adm-passcode-input-cell:not(:last-child) {
31
+ border-right: 1px solid var(--border-color);
32
+ }
33
+ .adm-passcode-input:not(.seperated).focused {
34
+ border-color: var(--adm-color-primary);
35
+ box-shadow: 0 0 2px 0 var(--adm-color-primary);
36
+ outline: none;
37
+ }
38
+ .adm-passcode-input:not(.seperated).error {
39
+ border-color: var(--adm-color-danger);
40
+ box-shadow: 0 0 2px 0 var(--adm-color-danger);
41
+ animation: 100ms ease-in-out 0s 3 normal none running adm-shake-horizontal;
42
+ }
43
+ .adm-passcode-input.seperated .adm-passcode-input-cell {
44
+ border-radius: var(--border-radius);
45
+ border: 1px solid var(--border-color);
46
+ }
47
+ .adm-passcode-input.seperated .adm-passcode-input-cell:not(:last-child) {
48
+ margin-right: var(--cell-gap);
49
+ }
50
+ .adm-passcode-input.seperated .adm-passcode-input-cell.focused {
51
+ border-color: var(--adm-color-primary);
52
+ box-shadow: 0 0 2px 0 var(--adm-color-primary);
53
+ }
54
+ .adm-passcode-input.seperated.focused {
55
+ outline: none;
56
+ }
57
+ .adm-passcode-input.seperated.error {
58
+ animation: 100ms ease-in-out 0s 3 normal none running adm-shake-horizontal;
59
+ }
60
+ .adm-passcode-input.seperated.error .adm-passcode-input-cell {
61
+ border-color: var(--adm-color-danger);
62
+ box-shadow: 0 0 2px 0 var(--adm-color-danger);
63
+ }
64
+ .adm-passcode-input-cell.dot::before {
65
+ content: '';
66
+ width: var(--dot-size);
67
+ height: var(--dot-size);
68
+ border-radius: 50%;
69
+ background: var(--adm-color-text);
70
+ }
71
+ .adm-passcode-input-cell.caret::after {
72
+ content: '';
73
+ width: 2px;
74
+ height: 1.1em;
75
+ margin-left: 1px;
76
+ background: var(--adm-color-primary);
77
+ animation: 1s linear infinite adm-caret-blink;
78
+ }
79
+ .adm-passcode-input > .adm-passcode-input-native-input {
80
+ position: absolute;
81
+ left: -200vw;
82
+ top: 0;
83
+ display: block;
84
+ width: 50px;
85
+ height: 20px;
86
+ opacity: 0.5;
87
+ }
88
+ @keyframes adm-shake-horizontal {
89
+ 0% {
90
+ transform: translateX(0);
91
+ }
92
+ 10% {
93
+ transform: translateX(-4px);
94
+ }
95
+ 20% {
96
+ transform: translateX(5px);
97
+ }
98
+ 30% {
99
+ transform: translateX(-1px);
100
+ }
101
+ 40% {
102
+ transform: translateX(8px);
103
+ }
104
+ 50% {
105
+ transform: translateX(0);
106
+ }
107
+ 60% {
108
+ transform: translateX(-8px);
109
+ }
110
+ 70% {
111
+ transform: translateX(1px);
112
+ }
113
+ 80% {
114
+ transform: translateX(-5px);
115
+ }
116
+ 90% {
117
+ transform: translateX(4px);
118
+ }
119
+ 100% {
120
+ transform: translateX(0);
121
+ }
122
+ }
123
+ @keyframes adm-caret-blink {
124
+ from {
125
+ opacity: 1;
126
+ }
127
+ 60% {
128
+ opacity: 1;
129
+ }
130
+ 80% {
131
+ opacity: 0;
132
+ }
133
+ to {
134
+ opacity: 0;
135
+ }
136
+ }
@@ -0,0 +1,35 @@
1
+ import React, { ReactElement } from 'react';
2
+ import { NativeProps } from '../../utils/native-props';
3
+ import type { NumberKeyboardProps } from '../number-keyboard';
4
+ export declare type PasscodeInputProps = {
5
+ value?: string;
6
+ defaultValue?: string;
7
+ onChange?: (val: string) => void;
8
+ length?: number;
9
+ plain?: boolean;
10
+ error?: boolean;
11
+ caret?: boolean;
12
+ seperated?: boolean;
13
+ onBlur?: () => void;
14
+ onFocus?: () => void;
15
+ keyboard?: ReactElement<NumberKeyboardProps>;
16
+ onFill?: (val: string) => void;
17
+ } & NativeProps<'--cell-gap' | '--cell-size'>;
18
+ export declare type PasscodeInputRef = {
19
+ focus: () => void;
20
+ blur: () => void;
21
+ };
22
+ export declare const PasscodeInput: React.ForwardRefExoticComponent<{
23
+ value?: string | undefined;
24
+ defaultValue?: string | undefined;
25
+ onChange?: ((val: string) => void) | undefined;
26
+ length?: number | undefined;
27
+ plain?: boolean | undefined;
28
+ error?: boolean | undefined;
29
+ caret?: boolean | undefined;
30
+ seperated?: boolean | undefined;
31
+ onBlur?: (() => void) | undefined;
32
+ onFocus?: (() => void) | undefined;
33
+ keyboard?: React.ReactElement<NumberKeyboardProps, string | ((props: any) => React.ReactElement<any, any> | null) | (new (props: any) => React.Component<any, any, any>)> | undefined;
34
+ onFill?: ((val: string) => void) | undefined;
35
+ } & NativeProps<"--cell-size" | "--cell-gap"> & React.RefAttributes<PasscodeInputRef>>;
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PasscodeInput = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _withDefaultProps = require("../../utils/with-default-props");
11
+
12
+ var _nativeProps = require("../../utils/native-props");
13
+
14
+ var _classnames = _interopRequireDefault(require("classnames"));
15
+
16
+ var _bound = require("../../utils/bound");
17
+
18
+ var _usePropsValue2 = require("../../utils/use-props-value");
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
21
+
22
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
+
24
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
+
26
+ var classPrefix = 'adm-passcode-input';
27
+ var defaultProps = {
28
+ defaultValue: '',
29
+ length: 6,
30
+ plain: false,
31
+ error: false,
32
+ seperated: false,
33
+ caret: true
34
+ };
35
+ var PasscodeInput = /*#__PURE__*/(0, _react.forwardRef)(function (p, ref) {
36
+ var props = (0, _withDefaultProps.mergeProps)(defaultProps, p); // 防止 length 值不合法
37
+
38
+ var cellLength = props.length > 0 && props.length < Infinity ? Math.floor(props.length) : defaultProps.length;
39
+
40
+ var _useState = (0, _react.useState)(false),
41
+ focused = _useState[0],
42
+ setFocused = _useState[1];
43
+
44
+ var _usePropsValue = (0, _usePropsValue2.usePropsValue)(props),
45
+ value = _usePropsValue[0],
46
+ setValue = _usePropsValue[1];
47
+
48
+ var rootRef = (0, _react.useRef)(null);
49
+ var nativeInputRef = (0, _react.useRef)(null);
50
+ (0, _react.useEffect)(function () {
51
+ var _a;
52
+
53
+ if (value.length >= cellLength) {
54
+ (_a = props.onFill) === null || _a === void 0 ? void 0 : _a.call(props, value);
55
+ }
56
+ }, [props.onFill, value, cellLength]);
57
+
58
+ var onFocus = function onFocus() {
59
+ var _a, _b;
60
+
61
+ if (!props.keyboard) {
62
+ (_a = nativeInputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
63
+ }
64
+
65
+ setFocused(true);
66
+ (_b = props.onFocus) === null || _b === void 0 ? void 0 : _b.call(props);
67
+ };
68
+
69
+ (0, _react.useEffect)(function () {
70
+ if (!focused) return;
71
+ var timeout = window.setTimeout(function () {
72
+ var _a;
73
+
74
+ (_a = rootRef.current) === null || _a === void 0 ? void 0 : _a.scrollIntoView({
75
+ block: 'center',
76
+ inline: 'center',
77
+ behavior: 'smooth'
78
+ });
79
+ }, 100);
80
+ return function () {
81
+ window.clearTimeout(timeout);
82
+ };
83
+ }, [focused]);
84
+
85
+ var onBlur = function onBlur() {
86
+ var _a;
87
+
88
+ setFocused(false);
89
+ (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props);
90
+ };
91
+
92
+ (0, _react.useImperativeHandle)(ref, function () {
93
+ return {
94
+ focus: function focus() {
95
+ var _a;
96
+
97
+ return (_a = rootRef.current) === null || _a === void 0 ? void 0 : _a.focus();
98
+ },
99
+ blur: function blur() {
100
+ var _a, _b;
101
+
102
+ (_a = rootRef.current) === null || _a === void 0 ? void 0 : _a.blur();
103
+ (_b = nativeInputRef.current) === null || _b === void 0 ? void 0 : _b.blur();
104
+ }
105
+ };
106
+ });
107
+
108
+ var renderCells = function renderCells() {
109
+ var cells = [];
110
+ var chars = value.split('');
111
+ var caretIndex = chars.length; // 光标位置index等于当前文字长度
112
+
113
+ var focusedIndex = (0, _bound.bound)(chars.length, 0, cellLength - 1);
114
+
115
+ for (var i = 0; i < cellLength; i++) {
116
+ cells.push( /*#__PURE__*/_react["default"].createElement("div", {
117
+ className: (0, _classnames["default"])(classPrefix + "-cell", {
118
+ caret: props.caret && caretIndex === i && focused,
119
+ focused: focusedIndex === i && focused,
120
+ dot: !props.plain && chars[i]
121
+ }),
122
+ key: i
123
+ }, chars[i] && props.plain ? chars[i] : ''));
124
+ }
125
+
126
+ return cells;
127
+ };
128
+
129
+ var cls = (0, _classnames["default"])(classPrefix, {
130
+ focused: focused,
131
+ error: props.error,
132
+ seperated: props.seperated
133
+ });
134
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, (0, _nativeProps.withNativeProps)(props, /*#__PURE__*/_react["default"].createElement("div", {
135
+ ref: rootRef,
136
+ tabIndex: 0,
137
+ className: cls,
138
+ onFocus: onFocus,
139
+ onBlur: onBlur
140
+ }, /*#__PURE__*/_react["default"].createElement("div", {
141
+ className: classPrefix + "-cell-container"
142
+ }, renderCells()), /*#__PURE__*/_react["default"].createElement("input", {
143
+ ref: nativeInputRef,
144
+ className: classPrefix + "-native-input",
145
+ value: value,
146
+ type: 'text',
147
+ pattern: '[0-9]*',
148
+ inputMode: 'numeric',
149
+ onChange: function onChange(e) {
150
+ setValue(e.target.value.slice(0, props.length));
151
+ }
152
+ }))), props.keyboard && /*#__PURE__*/_react["default"].cloneElement(props.keyboard, {
153
+ visible: focused,
154
+ onInput: function onInput(v) {
155
+ if (value.length < cellLength) {
156
+ setValue((value + v).slice(0, props.length));
157
+ }
158
+ },
159
+ onDelete: function onDelete() {
160
+ setValue(value.slice(0, -1));
161
+ },
162
+ onClose: function onClose() {
163
+ var _a;
164
+
165
+ (_a = rootRef.current) === null || _a === void 0 ? void 0 : _a.blur();
166
+ }
167
+ }));
168
+ });
169
+ exports.PasscodeInput = PasscodeInput;
@@ -65,7 +65,7 @@ var Picker = /*#__PURE__*/(0, _react.memo)(function (p) {
65
65
  setInnerValue = _useState[1];
66
66
 
67
67
  (0, _react.useEffect)(function () {
68
- if (!props.visible) {
68
+ if (innerValue !== value) {
69
69
  setInnerValue(value);
70
70
  }
71
71
  }, [props.visible]);
@@ -74,7 +74,7 @@ var Picker = /*#__PURE__*/(0, _react.memo)(function (p) {
74
74
  setInnerValue(value);
75
75
  }
76
76
  }, [value]);
77
- var onChange = (0, _ahooks.usePersistFn)(function (val, ext) {
77
+ var onChange = (0, _ahooks.useMemoizedFn)(function (val, ext) {
78
78
  var _a;
79
79
 
80
80
  setInnerValue(val);
@@ -127,9 +127,11 @@ var Picker = /*#__PURE__*/(0, _react.memo)(function (p) {
127
127
  afterShow: props.afterShow,
128
128
  afterClose: props.afterClose,
129
129
  onClick: props.onClick,
130
+ forceRender: true,
130
131
  stopPropagation: props.stopPropagation
131
132
  }, pickerElement);
132
133
 
133
134
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, popupElement, (_a = props.children) === null || _a === void 0 ? void 0 : _a.call(props, generateValueExtend(value).items));
134
135
  });
135
- exports.Picker = Picker;
136
+ exports.Picker = Picker;
137
+ Picker.displayName = 'Picker';
@@ -5,6 +5,7 @@
5
5
  display: flex;
6
6
  position: relative;
7
7
  overflow: hidden;
8
+ background: var(--adm-color-white);
8
9
  }
9
10
  .adm-picker-view-column {
10
11
  height: 100%;
@@ -12,6 +13,7 @@
12
13
  user-select: none;
13
14
  touch-action: none;
14
15
  position: relative;
16
+ z-index: 0;
15
17
  }
16
18
  .adm-picker-view-column-wheel {
17
19
  width: 100%;
@@ -49,20 +51,53 @@
49
51
  text-overflow: ellipsis;
50
52
  white-space: nowrap;
51
53
  }
54
+ .adm-picker-view-column-accessible {
55
+ width: 100%;
56
+ height: 100%;
57
+ pointer-events: none;
58
+ opacity: 0;
59
+ display: flex;
60
+ flex-direction: column;
61
+ position: relative;
62
+ }
63
+ .adm-picker-view-column-accessible > * {
64
+ flex: 1;
65
+ text-overflow: ellipsis;
66
+ }
67
+ .adm-picker-view-column-accessible-current {
68
+ position: absolute;
69
+ width: 100%;
70
+ height: 100%;
71
+ }
72
+ .adm-picker-view-column-accessible-button {
73
+ width: 100%;
74
+ height: 100%;
75
+ }
52
76
  .adm-picker-view-mask {
53
77
  position: absolute;
78
+ z-index: 100;
54
79
  left: 0;
80
+ top: 0;
55
81
  width: 100%;
56
- height: calc(50% - 12px);
82
+ height: 100%;
83
+ display: flex;
84
+ flex-direction: column;
57
85
  pointer-events: none;
58
86
  }
59
- .adm-picker-view-mask-top {
60
- top: -5px;
87
+ .adm-picker-view-mask-top,
88
+ .adm-picker-view-mask-bottom {
89
+ flex: auto;
90
+ }
91
+ .adm-picker-view-mask-middle {
92
+ height: 34px;
93
+ box-sizing: border-box;
94
+ flex: none;
95
+ border-top: solid 1px var(--adm-border-color);
61
96
  border-bottom: solid 1px var(--adm-border-color);
97
+ }
98
+ .adm-picker-view-mask-top {
62
99
  background: linear-gradient(0deg, rgba(255, 255, 255, 0.7) 50%, #ffffff);
63
100
  }
64
101
  .adm-picker-view-mask-bottom {
65
- bottom: -5px;
66
- border-top: solid 1px var(--adm-border-color);
67
102
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.7) 50%, #ffffff);
68
103
  }
@@ -9,7 +9,7 @@ var _react = _interopRequireWildcard(require("react"));
9
9
 
10
10
  var _withDefaultProps = require("../../utils/with-default-props");
11
11
 
12
- var _column = require("./column");
12
+ var _wheel = require("./wheel");
13
13
 
14
14
  var _useColumns = require("./use-columns");
15
15
 
@@ -50,36 +50,46 @@ var PickerView = /*#__PURE__*/(0, _react.memo)(function (p) {
50
50
 
51
51
  if (props.value === innerValue) return;
52
52
  setInnerValue(props.value);
53
- }, [props.value]); // Reset `innerValue` after 1s in case user does not update `value` when `onChange` is called
54
-
55
- (0, _ahooks.useDebounceEffect)(function () {
56
- if (props.value !== undefined && props.value !== innerValue) {
57
- setInnerValue(props.value);
58
- }
59
- }, [props.value, innerValue], {
60
- wait: 1000,
61
- leading: false,
62
- trailing: true
63
- });
53
+ }, [props.value]);
54
+ (0, _react.useEffect)(function () {
55
+ if (props.value === innerValue) return;
56
+ var timeout = window.setTimeout(function () {
57
+ if (props.value !== undefined && props.value !== innerValue) {
58
+ setInnerValue(props.value);
59
+ }
60
+ }, 1000);
61
+ return function () {
62
+ window.clearTimeout(timeout);
63
+ };
64
+ }, [props.value, innerValue]);
64
65
  var columns = (0, _useColumns.useColumns)(props.columns, innerValue);
65
66
  var generateValueExtend = (0, _usePickerValueExtend.usePickerValueExtend)(columns);
67
+ var handleSelect = (0, _react.useCallback)(function (val, index) {
68
+ setInnerValue(function (prev) {
69
+ var next = [].concat(prev);
70
+ next[index] = val;
71
+ return next;
72
+ });
73
+ }, []);
66
74
  return (0, _nativeProps.withNativeProps)(props, /*#__PURE__*/_react["default"].createElement("div", {
67
75
  className: "" + classPrefix
68
76
  }, columns.map(function (column, index) {
69
- return /*#__PURE__*/_react["default"].createElement(_column.Column, {
77
+ return /*#__PURE__*/_react["default"].createElement(_wheel.Wheel, {
70
78
  key: index,
79
+ index: index,
71
80
  column: column,
72
81
  value: innerValue[index],
73
- onSelect: function onSelect(val) {
74
- var nextInnerValue = [].concat(innerValue);
75
- nextInnerValue[index] = val;
76
- setInnerValue(nextInnerValue);
77
- }
82
+ onSelect: handleSelect
78
83
  });
79
84
  }), /*#__PURE__*/_react["default"].createElement("div", {
80
- className: classPrefix + "-mask " + classPrefix + "-mask-top"
85
+ className: classPrefix + "-mask"
86
+ }, /*#__PURE__*/_react["default"].createElement("div", {
87
+ className: classPrefix + "-mask-top"
88
+ }), /*#__PURE__*/_react["default"].createElement("div", {
89
+ className: classPrefix + "-mask-middle"
81
90
  }), /*#__PURE__*/_react["default"].createElement("div", {
82
- className: classPrefix + "-mask " + classPrefix + "-mask-bottom"
83
- })));
91
+ className: classPrefix + "-mask-bottom"
92
+ }))));
84
93
  });
85
- exports.PickerView = PickerView;
94
+ exports.PickerView = PickerView;
95
+ PickerView.displayName = 'PickerView';
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { PickerColumnItem, PickerValue } from './index';
3
+ interface Props {
4
+ index: number;
5
+ column: PickerColumnItem[];
6
+ value: PickerValue;
7
+ onSelect: (value: PickerValue, index: number) => void;
8
+ }
9
+ export declare const Wheel: React.NamedExoticComponent<Props>;
10
+ export {};