@tuya-miniapp/smart-ui 2.6.4-beta-7 → 2.6.4-beta-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 (623) hide show
  1. package/dist/calendar/calendar.wxml +1 -1
  2. package/dist/common/style/clearfix.css +1 -0
  3. package/dist/common/style/clearfix.wxss +1 -0
  4. package/dist/common/style/ellipsis.css +1 -0
  5. package/dist/common/style/ellipsis.wxss +1 -0
  6. package/dist/common/style/hairline.css +1 -0
  7. package/dist/common/style/hairline.wxss +1 -0
  8. package/dist/common/style/mixins/clearfix.css +0 -0
  9. package/dist/common/style/mixins/clearfix.wxss +0 -0
  10. package/dist/common/style/mixins/ellipsis.css +0 -0
  11. package/dist/common/style/mixins/ellipsis.wxss +0 -0
  12. package/dist/common/style/mixins/hairline.css +1 -0
  13. package/dist/common/style/mixins/hairline.wxss +1 -0
  14. package/dist/common/style/var.css +1 -0
  15. package/dist/common/style/var.wxss +1 -0
  16. package/dist/common/utils.d.ts +1 -0
  17. package/dist/common/utils.js +7 -0
  18. package/dist/loading/index.css +1 -1
  19. package/dist/loading/index.js +5 -5
  20. package/dist/loading/index.wxs +5 -5
  21. package/dist/loading/index.wxss +1 -1
  22. package/dist/picker-column/index.css +1 -1
  23. package/dist/picker-column/index.js +85 -264
  24. package/dist/picker-column/index.wxml +63 -25
  25. package/dist/picker-column/index.wxs +453 -26
  26. package/dist/picker-column/index.wxss +1 -1
  27. package/dist/popup/index.css +1 -0
  28. package/dist/popup/index.wxss +1 -0
  29. package/dist/rate/index.css +1 -0
  30. package/dist/rate/index.wxss +1 -0
  31. package/dist/row/index.css +1 -0
  32. package/dist/row/index.wxss +1 -0
  33. package/dist/search/index.css +1 -0
  34. package/dist/search/index.wxss +1 -0
  35. package/dist/sidebar/index.css +1 -0
  36. package/dist/sidebar/index.wxss +1 -0
  37. package/dist/sidebar-item/index.css +1 -0
  38. package/dist/sidebar-item/index.wxss +1 -0
  39. package/dist/skeleton/index.css +1 -0
  40. package/dist/skeleton/index.wxss +1 -0
  41. package/dist/slider/index.css +1 -0
  42. package/dist/slider/index.wxss +1 -0
  43. package/dist/stepper/index.css +1 -0
  44. package/dist/stepper/index.wxss +1 -0
  45. package/dist/steps/index.css +1 -0
  46. package/dist/steps/index.wxss +1 -0
  47. package/dist/sticky/index.css +1 -0
  48. package/dist/sticky/index.wxss +1 -0
  49. package/dist/swipe-cell/index.css +1 -0
  50. package/dist/swipe-cell/index.wxss +1 -0
  51. package/dist/switch/index.css +1 -0
  52. package/dist/switch/index.wxss +1 -0
  53. package/dist/tab/index.css +1 -0
  54. package/dist/tab/index.wxss +1 -0
  55. package/dist/tabbar/index.css +1 -0
  56. package/dist/tabbar/index.wxss +1 -0
  57. package/dist/tabbar-item/index.css +1 -0
  58. package/dist/tabbar-item/index.wxss +1 -0
  59. package/dist/tabs/index.css +1 -0
  60. package/dist/tabs/index.wxss +1 -0
  61. package/dist/tag/index.css +1 -0
  62. package/dist/tag/index.wxss +1 -0
  63. package/dist/toast/index.css +1 -0
  64. package/dist/toast/index.wxss +1 -0
  65. package/dist/transition/index.css +1 -0
  66. package/dist/transition/index.wxss +1 -0
  67. package/dist/tree-select/index.css +1 -0
  68. package/dist/tree-select/index.wxss +1 -0
  69. package/dist/wxs/strToStyleObject.wxs +10 -0
  70. package/lib/action-sheet/index.css +1 -0
  71. package/lib/action-sheet/index.d.ts +1 -0
  72. package/lib/action-sheet/index.js +121 -0
  73. package/lib/action-sheet/index.json +8 -0
  74. package/lib/action-sheet/index.wxml +87 -0
  75. package/lib/action-sheet/index.wxss +1 -0
  76. package/lib/area/index.css +1 -0
  77. package/lib/area/index.d.ts +1 -0
  78. package/lib/area/index.js +234 -0
  79. package/lib/area/index.json +6 -0
  80. package/lib/area/index.wxml +20 -0
  81. package/lib/area/index.wxs +8 -0
  82. package/lib/area/index.wxss +1 -0
  83. package/lib/battery/index.d.ts +1 -0
  84. package/lib/battery/index.js +105 -0
  85. package/lib/battery/index.json +4 -0
  86. package/lib/battery/index.wxml +1 -0
  87. package/lib/bottom-sheet/index.css +1 -0
  88. package/lib/bottom-sheet/index.d.ts +1 -0
  89. package/lib/bottom-sheet/index.js +82 -0
  90. package/lib/bottom-sheet/index.json +8 -0
  91. package/lib/bottom-sheet/index.wxml +43 -0
  92. package/lib/bottom-sheet/index.wxs +12 -0
  93. package/lib/bottom-sheet/index.wxss +1 -0
  94. package/lib/button/index.css +1 -0
  95. package/lib/button/index.d.ts +1 -0
  96. package/lib/button/index.js +64 -0
  97. package/lib/button/index.json +7 -0
  98. package/lib/button/index.wxml +64 -0
  99. package/lib/button/index.wxs +39 -0
  100. package/lib/button/index.wxss +1 -0
  101. package/lib/calendar/calendar.wxml +84 -0
  102. package/lib/calendar/index.css +1 -0
  103. package/lib/calendar/index.d.ts +1 -0
  104. package/lib/calendar/index.js +465 -0
  105. package/lib/calendar/index.json +12 -0
  106. package/lib/calendar/index.wxml +25 -0
  107. package/lib/calendar/index.wxs +59 -0
  108. package/lib/calendar/index.wxss +1 -0
  109. package/lib/calendar-header/index.css +1 -0
  110. package/lib/calendar-header/index.d.ts +1 -0
  111. package/lib/calendar-header/index.js +75 -0
  112. package/lib/calendar-header/index.json +6 -0
  113. package/lib/calendar-header/index.wxml +27 -0
  114. package/lib/calendar-header/index.wxss +1 -0
  115. package/lib/calendar-month/index.css +1 -0
  116. package/lib/calendar-month/index.d.ts +1 -0
  117. package/lib/calendar-month/index.js +179 -0
  118. package/lib/calendar-month/index.json +3 -0
  119. package/lib/calendar-month/index.wxml +22 -0
  120. package/lib/calendar-month/index.wxs +73 -0
  121. package/lib/calendar-month/index.wxss +1 -0
  122. package/lib/calendar-month-list/index.css +1 -0
  123. package/lib/calendar-month-list/index.d.ts +1 -0
  124. package/lib/calendar-month-list/index.js +105 -0
  125. package/lib/calendar-month-list/index.json +7 -0
  126. package/lib/calendar-month-list/index.wxml +15 -0
  127. package/lib/calendar-month-list/index.wxss +1 -0
  128. package/lib/calendar-utils/types.d.ts +7 -0
  129. package/lib/calendar-utils/types.js +2 -0
  130. package/lib/calendar-utils/utils.d.ts +21 -0
  131. package/lib/calendar-utils/utils.js +175 -0
  132. package/lib/calendar-utils/utils.wxs +25 -0
  133. package/lib/calendar-year-list/index.css +1 -0
  134. package/lib/calendar-year-list/index.d.ts +1 -0
  135. package/lib/calendar-year-list/index.js +115 -0
  136. package/lib/calendar-year-list/index.json +7 -0
  137. package/lib/calendar-year-list/index.wxml +15 -0
  138. package/lib/calendar-year-list/index.wxss +1 -0
  139. package/lib/cascader/index.css +1 -0
  140. package/lib/cascader/index.d.ts +1 -0
  141. package/lib/cascader/index.js +207 -0
  142. package/lib/cascader/index.json +8 -0
  143. package/lib/cascader/index.wxml +56 -0
  144. package/lib/cascader/index.wxs +21 -0
  145. package/lib/cascader/index.wxss +1 -0
  146. package/lib/cell/index.css +1 -0
  147. package/lib/cell/index.d.ts +1 -0
  148. package/lib/cell/index.js +48 -0
  149. package/lib/cell/index.json +6 -0
  150. package/lib/cell/index.wxml +47 -0
  151. package/lib/cell/index.wxs +17 -0
  152. package/lib/cell/index.wxss +1 -0
  153. package/lib/cell-group/index.css +1 -0
  154. package/lib/cell-group/index.d.ts +1 -0
  155. package/lib/cell-group/index.js +14 -0
  156. package/lib/cell-group/index.json +3 -0
  157. package/lib/cell-group/index.wxml +15 -0
  158. package/lib/cell-group/index.wxs +14 -0
  159. package/lib/cell-group/index.wxss +1 -0
  160. package/lib/checkbox/index.css +1 -0
  161. package/lib/checkbox/index.d.ts +1 -0
  162. package/lib/checkbox/index.js +84 -0
  163. package/lib/checkbox/index.json +6 -0
  164. package/lib/checkbox/index.wxml +32 -0
  165. package/lib/checkbox/index.wxs +20 -0
  166. package/lib/checkbox/index.wxss +1 -0
  167. package/lib/checkbox-group/index.css +1 -0
  168. package/lib/checkbox-group/index.d.ts +1 -0
  169. package/lib/checkbox-group/index.js +39 -0
  170. package/lib/checkbox-group/index.json +3 -0
  171. package/lib/checkbox-group/index.wxml +5 -0
  172. package/lib/checkbox-group/index.wxss +1 -0
  173. package/lib/circle/index.css +1 -0
  174. package/lib/circle/index.d.ts +1 -0
  175. package/lib/circle/index.js +134 -0
  176. package/lib/circle/index.json +3 -0
  177. package/lib/circle/index.rjs +232 -0
  178. package/lib/circle/index.wxml +8 -0
  179. package/lib/circle/index.wxss +1 -0
  180. package/lib/col/index.css +1 -0
  181. package/lib/col/index.d.ts +1 -0
  182. package/lib/col/index.js +11 -0
  183. package/lib/col/index.json +3 -0
  184. package/lib/col/index.wxml +9 -0
  185. package/lib/col/index.wxs +18 -0
  186. package/lib/col/index.wxss +1 -0
  187. package/lib/collapse/index.css +1 -0
  188. package/lib/collapse/index.d.ts +1 -0
  189. package/lib/collapse/index.js +48 -0
  190. package/lib/collapse/index.json +3 -0
  191. package/lib/collapse/index.wxml +3 -0
  192. package/lib/collapse/index.wxss +1 -0
  193. package/lib/collapse-item/animate.d.ts +2 -0
  194. package/lib/collapse-item/animate.js +43 -0
  195. package/lib/collapse-item/index.css +1 -0
  196. package/lib/collapse-item/index.d.ts +1 -0
  197. package/lib/collapse-item/index.js +64 -0
  198. package/lib/collapse-item/index.json +6 -0
  199. package/lib/collapse-item/index.wxml +45 -0
  200. package/lib/collapse-item/index.wxss +1 -0
  201. package/lib/common/appLog.d.ts +10 -0
  202. package/lib/common/appLog.js +112 -0
  203. package/lib/common/color.d.ts +7 -0
  204. package/lib/common/color.js +10 -0
  205. package/lib/common/component.d.ts +4 -0
  206. package/lib/common/component.js +49 -0
  207. package/lib/common/index.css +1 -0
  208. package/lib/common/index.wxss +1 -0
  209. package/lib/common/relation.d.ts +15 -0
  210. package/lib/common/relation.js +65 -0
  211. package/lib/common/style/clearfix.css +1 -0
  212. package/lib/common/style/clearfix.wxss +1 -0
  213. package/lib/common/style/ellipsis.css +1 -0
  214. package/lib/common/style/ellipsis.wxss +1 -0
  215. package/lib/common/style/hairline.css +1 -0
  216. package/lib/common/style/hairline.wxss +1 -0
  217. package/lib/common/style/mixins/clearfix.css +0 -0
  218. package/lib/common/style/mixins/clearfix.wxss +0 -0
  219. package/lib/common/style/mixins/ellipsis.css +0 -0
  220. package/lib/common/style/mixins/ellipsis.wxss +0 -0
  221. package/lib/common/style/mixins/hairline.css +1 -0
  222. package/lib/common/style/mixins/hairline.wxss +1 -0
  223. package/lib/common/style/var.css +1 -0
  224. package/lib/common/style/var.wxss +1 -0
  225. package/lib/common/ty.d.ts +7 -0
  226. package/lib/common/ty.js +35 -0
  227. package/lib/common/utils.d.ts +25 -0
  228. package/lib/common/utils.js +148 -0
  229. package/lib/common/validator.d.ts +9 -0
  230. package/lib/common/validator.js +43 -0
  231. package/lib/common/version.d.ts +15 -0
  232. package/lib/common/version.js +70 -0
  233. package/lib/config-provider/index.d.ts +1 -0
  234. package/lib/config-provider/index.js +11 -0
  235. package/lib/config-provider/index.json +3 -0
  236. package/lib/config-provider/index.wxml +5 -0
  237. package/lib/config-provider/index.wxs +29 -0
  238. package/lib/count-down/index.css +1 -0
  239. package/lib/count-down/index.d.ts +1 -0
  240. package/lib/count-down/index.js +104 -0
  241. package/lib/count-down/index.json +3 -0
  242. package/lib/count-down/index.wxml +4 -0
  243. package/lib/count-down/index.wxss +1 -0
  244. package/lib/count-down/utils.d.ts +10 -0
  245. package/lib/count-down/utils.js +64 -0
  246. package/lib/custom-keyboard/index.css +1 -0
  247. package/lib/custom-keyboard/index.d.ts +1 -0
  248. package/lib/custom-keyboard/index.js +156 -0
  249. package/lib/custom-keyboard/index.json +9 -0
  250. package/lib/custom-keyboard/index.wxml +44 -0
  251. package/lib/custom-keyboard/index.wxss +1 -0
  252. package/lib/datetime-picker/index.css +1 -0
  253. package/lib/datetime-picker/index.d.ts +1 -0
  254. package/lib/datetime-picker/index.js +512 -0
  255. package/lib/datetime-picker/index.json +6 -0
  256. package/lib/datetime-picker/index.wxml +22 -0
  257. package/lib/datetime-picker/index.wxss +1 -0
  258. package/lib/definitions/index.d.ts +29 -0
  259. package/lib/definitions/index.js +2 -0
  260. package/lib/dialog/dialog.d.ts +74 -0
  261. package/lib/dialog/dialog.js +137 -0
  262. package/lib/dialog/index.css +1 -0
  263. package/lib/dialog/index.d.ts +1 -0
  264. package/lib/dialog/index.js +222 -0
  265. package/lib/dialog/index.json +10 -0
  266. package/lib/dialog/index.wxml +144 -0
  267. package/lib/dialog/index.wxss +1 -0
  268. package/lib/divider/index.css +1 -0
  269. package/lib/divider/index.d.ts +1 -0
  270. package/lib/divider/index.js +14 -0
  271. package/lib/divider/index.json +4 -0
  272. package/lib/divider/index.wxml +9 -0
  273. package/lib/divider/index.wxs +18 -0
  274. package/lib/divider/index.wxss +1 -0
  275. package/lib/dropdown-item/index.css +1 -0
  276. package/lib/dropdown-item/index.d.ts +1 -0
  277. package/lib/dropdown-item/index.js +150 -0
  278. package/lib/dropdown-item/index.json +8 -0
  279. package/lib/dropdown-item/index.wxml +52 -0
  280. package/lib/dropdown-item/index.wxss +1 -0
  281. package/lib/dropdown-item/shared.d.ts +5 -0
  282. package/lib/dropdown-item/shared.js +2 -0
  283. package/lib/dropdown-menu/index.css +1 -0
  284. package/lib/dropdown-menu/index.d.ts +1 -0
  285. package/lib/dropdown-menu/index.js +137 -0
  286. package/lib/dropdown-menu/index.json +6 -0
  287. package/lib/dropdown-menu/index.wxml +24 -0
  288. package/lib/dropdown-menu/index.wxs +16 -0
  289. package/lib/dropdown-menu/index.wxss +1 -0
  290. package/lib/empty/index.css +1 -0
  291. package/lib/empty/index.d.ts +1 -0
  292. package/lib/empty/index.js +31 -0
  293. package/lib/empty/index.json +4 -0
  294. package/lib/empty/index.wxml +22 -0
  295. package/lib/empty/index.wxs +13 -0
  296. package/lib/empty/index.wxss +1 -0
  297. package/lib/field/cell-input.wxml +59 -0
  298. package/lib/field/cell-textarea.wxml +28 -0
  299. package/lib/field/index.css +1 -0
  300. package/lib/field/index.d.ts +1 -0
  301. package/lib/field/index.js +158 -0
  302. package/lib/field/index.json +7 -0
  303. package/lib/field/index.wxml +4 -0
  304. package/lib/field/index.wxs +19 -0
  305. package/lib/field/index.wxss +1 -0
  306. package/lib/field/input.wxml +30 -0
  307. package/lib/field/props.d.ts +4 -0
  308. package/lib/field/props.js +59 -0
  309. package/lib/field/textarea.wxml +32 -0
  310. package/lib/field/types.d.ts +8 -0
  311. package/lib/field/types.js +2 -0
  312. package/lib/goods-action/index.css +1 -0
  313. package/lib/goods-action/index.d.ts +1 -0
  314. package/lib/goods-action/index.js +17 -0
  315. package/lib/goods-action/index.json +3 -0
  316. package/lib/goods-action/index.wxml +5 -0
  317. package/lib/goods-action/index.wxss +1 -0
  318. package/lib/goods-action-button/index.css +1 -0
  319. package/lib/goods-action-button/index.d.ts +1 -0
  320. package/lib/goods-action-button/index.js +46 -0
  321. package/lib/goods-action-button/index.json +6 -0
  322. package/lib/goods-action-button/index.wxml +35 -0
  323. package/lib/goods-action-button/index.wxss +1 -0
  324. package/lib/goods-action-icon/index.css +1 -0
  325. package/lib/goods-action-icon/index.d.ts +1 -0
  326. package/lib/goods-action-icon/index.js +29 -0
  327. package/lib/goods-action-icon/index.json +7 -0
  328. package/lib/goods-action-icon/index.wxml +41 -0
  329. package/lib/goods-action-icon/index.wxss +1 -0
  330. package/lib/grid/index.css +1 -0
  331. package/lib/grid/index.d.ts +1 -0
  332. package/lib/grid/index.js +57 -0
  333. package/lib/grid/index.json +3 -0
  334. package/lib/grid/index.wxml +8 -0
  335. package/lib/grid/index.wxs +13 -0
  336. package/lib/grid/index.wxss +1 -0
  337. package/lib/grid-item/index.css +1 -0
  338. package/lib/grid-item/index.d.ts +1 -0
  339. package/lib/grid-item/index.js +54 -0
  340. package/lib/grid-item/index.json +6 -0
  341. package/lib/grid-item/index.wxml +27 -0
  342. package/lib/grid-item/index.wxs +32 -0
  343. package/lib/grid-item/index.wxss +1 -0
  344. package/lib/icon/index.css +1 -0
  345. package/lib/icon/index.d.ts +1 -0
  346. package/lib/icon/index.js +23 -0
  347. package/lib/icon/index.json +6 -0
  348. package/lib/icon/index.wxml +30 -0
  349. package/lib/icon/index.wxs +98 -0
  350. package/lib/icon/index.wxss +1 -0
  351. package/lib/image/index.css +1 -0
  352. package/lib/image/index.d.ts +1 -0
  353. package/lib/image/index.js +75 -0
  354. package/lib/image/index.json +7 -0
  355. package/lib/image/index.wxml +40 -0
  356. package/lib/image/index.wxs +42 -0
  357. package/lib/image/index.wxss +1 -0
  358. package/lib/index-anchor/index.css +1 -0
  359. package/lib/index-anchor/index.d.ts +1 -0
  360. package/lib/index-anchor/index.js +28 -0
  361. package/lib/index-anchor/index.json +3 -0
  362. package/lib/index-anchor/index.wxml +14 -0
  363. package/lib/index-anchor/index.wxss +1 -0
  364. package/lib/index-bar/index.css +1 -0
  365. package/lib/index-bar/index.d.ts +1 -0
  366. package/lib/index-bar/index.js +244 -0
  367. package/lib/index-bar/index.json +3 -0
  368. package/lib/index-bar/index.wxml +22 -0
  369. package/lib/index-bar/index.wxss +1 -0
  370. package/lib/info/index.css +1 -0
  371. package/lib/info/index.d.ts +1 -0
  372. package/lib/info/index.js +10 -0
  373. package/lib/info/index.json +3 -0
  374. package/lib/info/index.wxml +7 -0
  375. package/lib/info/index.wxss +1 -0
  376. package/lib/loading/index.css +1 -0
  377. package/lib/loading/index.d.ts +1 -0
  378. package/lib/loading/index.js +44 -0
  379. package/lib/loading/index.json +3 -0
  380. package/lib/loading/index.wxml +17 -0
  381. package/lib/loading/index.wxs +38 -0
  382. package/lib/loading/index.wxss +1 -0
  383. package/lib/mixins/basic.d.ts +1 -0
  384. package/lib/mixins/basic.js +30 -0
  385. package/lib/mixins/button.d.ts +1 -0
  386. package/lib/mixins/button.js +54 -0
  387. package/lib/mixins/link.d.ts +1 -0
  388. package/lib/mixins/link.js +26 -0
  389. package/lib/mixins/page-scroll.d.ts +6 -0
  390. package/lib/mixins/page-scroll.js +47 -0
  391. package/lib/mixins/touch.d.ts +1 -0
  392. package/lib/mixins/touch.js +39 -0
  393. package/lib/mixins/transition.d.ts +1 -0
  394. package/lib/mixins/transition.js +235 -0
  395. package/lib/nav-bar/index.css +1 -0
  396. package/lib/nav-bar/index.d.ts +1 -0
  397. package/lib/nav-bar/index.js +116 -0
  398. package/lib/nav-bar/index.json +6 -0
  399. package/lib/nav-bar/index.wxml +70 -0
  400. package/lib/nav-bar/index.wxs +14 -0
  401. package/lib/nav-bar/index.wxss +1 -0
  402. package/lib/normal-slider/index.css +1 -0
  403. package/lib/normal-slider/index.d.ts +1 -0
  404. package/lib/normal-slider/index.js +160 -0
  405. package/lib/normal-slider/index.json +6 -0
  406. package/lib/normal-slider/index.wxml +35 -0
  407. package/lib/normal-slider/index.wxss +1 -0
  408. package/lib/notice-bar/index.css +1 -0
  409. package/lib/notice-bar/index.d.ts +1 -0
  410. package/lib/notice-bar/index.js +178 -0
  411. package/lib/notice-bar/index.json +6 -0
  412. package/lib/notice-bar/index.wxml +52 -0
  413. package/lib/notice-bar/index.wxs +11 -0
  414. package/lib/notice-bar/index.wxss +1 -0
  415. package/lib/notify/index.css +1 -0
  416. package/lib/notify/index.d.ts +1 -0
  417. package/lib/notify/index.js +80 -0
  418. package/lib/notify/index.json +6 -0
  419. package/lib/notify/index.wxml +22 -0
  420. package/lib/notify/index.wxs +22 -0
  421. package/lib/notify/index.wxss +1 -0
  422. package/lib/notify/notify.d.ts +29 -0
  423. package/lib/notify/notify.js +72 -0
  424. package/lib/overlay/index.css +1 -0
  425. package/lib/overlay/index.d.ts +1 -0
  426. package/lib/overlay/index.js +32 -0
  427. package/lib/overlay/index.json +6 -0
  428. package/lib/overlay/index.wxml +7 -0
  429. package/lib/overlay/index.wxss +1 -0
  430. package/lib/overlay/overlay.wxml +10 -0
  431. package/lib/picker/index.css +1 -0
  432. package/lib/picker/index.d.ts +1 -0
  433. package/lib/picker/index.js +184 -0
  434. package/lib/picker/index.json +7 -0
  435. package/lib/picker/index.wxml +47 -0
  436. package/lib/picker/index.wxs +44 -0
  437. package/lib/picker/index.wxss +1 -0
  438. package/lib/picker/shared.d.ts +33 -0
  439. package/lib/picker/shared.js +36 -0
  440. package/lib/picker/toolbar.wxml +23 -0
  441. package/lib/picker-column/index.css +1 -0
  442. package/lib/picker-column/index.d.ts +1 -0
  443. package/lib/picker-column/index.js +226 -0
  444. package/lib/picker-column/index.json +3 -0
  445. package/lib/picker-column/index.wxml +81 -0
  446. package/lib/picker-column/index.wxs +506 -0
  447. package/lib/picker-column/index.wxss +1 -0
  448. package/lib/popover/index.css +1 -0
  449. package/lib/popover/index.d.ts +1 -0
  450. package/lib/popover/index.js +220 -0
  451. package/lib/popover/index.json +7 -0
  452. package/lib/popover/index.wxml +31 -0
  453. package/lib/popover/index.wxss +1 -0
  454. package/lib/popup/index.css +1 -0
  455. package/lib/popup/index.d.ts +1 -0
  456. package/lib/popup/index.js +122 -0
  457. package/lib/popup/index.json +7 -0
  458. package/lib/popup/index.wxml +21 -0
  459. package/lib/popup/index.wxs +23 -0
  460. package/lib/popup/index.wxss +1 -0
  461. package/lib/popup/popup.wxml +16 -0
  462. package/lib/progress/index.css +1 -0
  463. package/lib/progress/index.d.ts +1 -0
  464. package/lib/progress/index.js +52 -0
  465. package/lib/progress/index.json +3 -0
  466. package/lib/progress/index.wxml +20 -0
  467. package/lib/progress/index.wxs +36 -0
  468. package/lib/progress/index.wxss +1 -0
  469. package/lib/radio/index.css +1 -0
  470. package/lib/radio/index.d.ts +1 -0
  471. package/lib/radio/index.js +75 -0
  472. package/lib/radio/index.json +6 -0
  473. package/lib/radio/index.wxml +32 -0
  474. package/lib/radio/index.wxs +33 -0
  475. package/lib/radio/index.wxss +1 -0
  476. package/lib/radio-group/index.css +1 -0
  477. package/lib/radio-group/index.d.ts +1 -0
  478. package/lib/radio-group/index.js +29 -0
  479. package/lib/radio-group/index.json +3 -0
  480. package/lib/radio-group/index.wxml +5 -0
  481. package/lib/radio-group/index.wxss +1 -0
  482. package/lib/rate/index.css +1 -0
  483. package/lib/rate/index.d.ts +1 -0
  484. package/lib/rate/index.js +107 -0
  485. package/lib/rate/index.json +6 -0
  486. package/lib/rate/index.wxml +35 -0
  487. package/lib/rate/index.wxss +1 -0
  488. package/lib/row/index.css +1 -0
  489. package/lib/row/index.d.ts +1 -0
  490. package/lib/row/index.js +26 -0
  491. package/lib/row/index.json +3 -0
  492. package/lib/row/index.wxml +5 -0
  493. package/lib/row/index.wxs +18 -0
  494. package/lib/row/index.wxss +1 -0
  495. package/lib/search/index.css +1 -0
  496. package/lib/search/index.d.ts +1 -0
  497. package/lib/search/index.js +106 -0
  498. package/lib/search/index.json +7 -0
  499. package/lib/search/index.wxml +57 -0
  500. package/lib/search/index.wxss +1 -0
  501. package/lib/sidebar/index.css +1 -0
  502. package/lib/sidebar/index.d.ts +1 -0
  503. package/lib/sidebar/index.js +36 -0
  504. package/lib/sidebar/index.json +3 -0
  505. package/lib/sidebar/index.wxml +3 -0
  506. package/lib/sidebar/index.wxss +1 -0
  507. package/lib/sidebar-item/index.css +1 -0
  508. package/lib/sidebar-item/index.d.ts +1 -0
  509. package/lib/sidebar-item/index.js +32 -0
  510. package/lib/sidebar-item/index.json +6 -0
  511. package/lib/sidebar-item/index.wxml +18 -0
  512. package/lib/sidebar-item/index.wxss +1 -0
  513. package/lib/skeleton/index.css +1 -0
  514. package/lib/skeleton/index.d.ts +1 -0
  515. package/lib/skeleton/index.js +48 -0
  516. package/lib/skeleton/index.json +4 -0
  517. package/lib/skeleton/index.wxml +29 -0
  518. package/lib/skeleton/index.wxss +1 -0
  519. package/lib/slider/index.css +1 -0
  520. package/lib/slider/index.d.ts +1 -0
  521. package/lib/slider/index.js +208 -0
  522. package/lib/slider/index.json +3 -0
  523. package/lib/slider/index.wxml +68 -0
  524. package/lib/slider/index.wxs +14 -0
  525. package/lib/slider/index.wxss +1 -0
  526. package/lib/stepper/index.css +1 -0
  527. package/lib/stepper/index.d.ts +1 -0
  528. package/lib/stepper/index.js +225 -0
  529. package/lib/stepper/index.json +6 -0
  530. package/lib/stepper/index.wxml +45 -0
  531. package/lib/stepper/index.wxs +32 -0
  532. package/lib/stepper/index.wxss +1 -0
  533. package/lib/steps/index.css +1 -0
  534. package/lib/steps/index.d.ts +1 -0
  535. package/lib/steps/index.js +39 -0
  536. package/lib/steps/index.json +6 -0
  537. package/lib/steps/index.wxml +54 -0
  538. package/lib/steps/index.wxss +1 -0
  539. package/lib/sticky/index.css +1 -0
  540. package/lib/sticky/index.d.ts +1 -0
  541. package/lib/sticky/index.js +128 -0
  542. package/lib/sticky/index.json +3 -0
  543. package/lib/sticky/index.wxml +8 -0
  544. package/lib/sticky/index.wxs +25 -0
  545. package/lib/sticky/index.wxss +1 -0
  546. package/lib/swipe-cell/index.css +1 -0
  547. package/lib/swipe-cell/index.d.ts +1 -0
  548. package/lib/swipe-cell/index.js +142 -0
  549. package/lib/swipe-cell/index.json +3 -0
  550. package/lib/swipe-cell/index.wxml +21 -0
  551. package/lib/swipe-cell/index.wxss +1 -0
  552. package/lib/switch/index.css +1 -0
  553. package/lib/switch/index.d.ts +1 -0
  554. package/lib/switch/index.js +42 -0
  555. package/lib/switch/index.json +6 -0
  556. package/lib/switch/index.wxml +39 -0
  557. package/lib/switch/index.wxs +26 -0
  558. package/lib/switch/index.wxss +1 -0
  559. package/lib/tab/index.css +1 -0
  560. package/lib/tab/index.d.ts +1 -0
  561. package/lib/tab/index.js +66 -0
  562. package/lib/tab/index.json +3 -0
  563. package/lib/tab/index.wxml +8 -0
  564. package/lib/tab/index.wxss +1 -0
  565. package/lib/tabbar/index.css +1 -0
  566. package/lib/tabbar/index.d.ts +1 -0
  567. package/lib/tabbar/index.js +73 -0
  568. package/lib/tabbar/index.json +3 -0
  569. package/lib/tabbar/index.wxml +12 -0
  570. package/lib/tabbar/index.wxss +1 -0
  571. package/lib/tabbar-item/index.css +1 -0
  572. package/lib/tabbar-item/index.d.ts +1 -0
  573. package/lib/tabbar-item/index.js +79 -0
  574. package/lib/tabbar-item/index.json +7 -0
  575. package/lib/tabbar-item/index.wxml +32 -0
  576. package/lib/tabbar-item/index.wxss +1 -0
  577. package/lib/tabs/index.css +1 -0
  578. package/lib/tabs/index.d.ts +1 -0
  579. package/lib/tabs/index.js +329 -0
  580. package/lib/tabs/index.json +7 -0
  581. package/lib/tabs/index.wxml +67 -0
  582. package/lib/tabs/index.wxs +99 -0
  583. package/lib/tabs/index.wxss +1 -0
  584. package/lib/tag/index.css +1 -0
  585. package/lib/tag/index.d.ts +1 -0
  586. package/lib/tag/index.js +34 -0
  587. package/lib/tag/index.json +6 -0
  588. package/lib/tag/index.wxml +17 -0
  589. package/lib/tag/index.wxs +13 -0
  590. package/lib/tag/index.wxss +1 -0
  591. package/lib/toast/icons.d.ts +3 -0
  592. package/lib/toast/icons.js +12 -0
  593. package/lib/toast/index.css +1 -0
  594. package/lib/toast/index.d.ts +1 -0
  595. package/lib/toast/index.js +63 -0
  596. package/lib/toast/index.json +9 -0
  597. package/lib/toast/index.wxml +33 -0
  598. package/lib/toast/index.wxss +1 -0
  599. package/lib/toast/toast.d.ts +35 -0
  600. package/lib/toast/toast.js +116 -0
  601. package/lib/transition/index.css +1 -0
  602. package/lib/transition/index.d.ts +1 -0
  603. package/lib/transition/index.js +15 -0
  604. package/lib/transition/index.json +3 -0
  605. package/lib/transition/index.wxml +9 -0
  606. package/lib/transition/index.wxs +17 -0
  607. package/lib/transition/index.wxss +1 -0
  608. package/lib/tree-select/index.css +1 -0
  609. package/lib/tree-select/index.d.ts +1 -0
  610. package/lib/tree-select/index.js +74 -0
  611. package/lib/tree-select/index.json +8 -0
  612. package/lib/tree-select/index.wxml +41 -0
  613. package/lib/tree-select/index.wxs +12 -0
  614. package/lib/tree-select/index.wxss +1 -0
  615. package/lib/wxs/add-unit.wxs +12 -0
  616. package/lib/wxs/array.wxs +5 -0
  617. package/lib/wxs/bem.wxs +39 -0
  618. package/lib/wxs/memoize.wxs +55 -0
  619. package/lib/wxs/object.wxs +13 -0
  620. package/lib/wxs/strToStyleObject.wxs +10 -0
  621. package/lib/wxs/style.wxs +46 -0
  622. package/lib/wxs/utils.wxs +10 -0
  623. package/package.json +1 -1
@@ -4,33 +4,71 @@
4
4
  <view
5
5
  class="{{ utils.bem('picker-column', { disabled }) }} custom-class"
6
6
  style="{{ computed.rootStyle({ itemHeight, visibleItemCount }) }}"
7
- bind:touchstart="onTouchStart"
8
- catch:touchmove="onTouchMove"
9
- bind:touchend="onTouchEnd"
10
- bind:touchcancel="onTouchEnd"
7
+ instanceId="{{instanceId}}"
8
+ id="{{instanceId}}"
9
+ data-options="{{options}}"
10
+ data-valuekey="{{valueKey}}"
11
+ data-itemheight="{{itemHeight}}"
12
+ data-visibleitemcount="{{visibleItemCount}}"
13
+ data-activeindex="{{activeIndex}}"
14
+ data-loop="{{loop}}"
15
+ data-animationtime="{{animationTime}}"
16
+ options="{{options}}"
17
+ activeindex="{{activeIndex}}"
18
+ loop="{{loop}}"
19
+ valuekey="{{valueKey}}"
20
+ itemheight="{{itemHeight}}"
21
+ visibleitemcount="{{visibleItemCount}}"
22
+ animationtime="{{animationTime}}"
23
+ change:options="{{computed.updateValue(instanceId, 'options')}}"
24
+ change:valuekey="{{computed.updateValue(instanceId,'valueKey')}}"
25
+ change:itemheight="{{computed.updateValue(instanceId,'itemHeight')}}"
26
+ change:visibleitemcount="{{computed.updateValue(instanceId, 'visibleItemCount')}}"
27
+ change:activeindex="{{computed.updateValue(instanceId,'activeIndex')}}"
28
+ change:loop="{{computed.updateValue(instanceId,'loop')}}"
29
+ change:animationtime="{{computed.updateValue(instanceId,'animationTime')}}"
30
+ change:instanceid="{{computed.updateValue(instanceId,'instanceId')}}"
31
+ bind:touchstart="{{computed.touchStart(instanceId)}}"
32
+ catch:touchmove="{{computed.touchMove(instanceId)}}"
33
+ bind:touchend="{{computed.touchEnd(instanceId)}}"
34
+ bind:touchcancel="{{computed.touchEnd(instanceId)}}"
11
35
  >
12
- <view class="smart-picker-column__offset" style="height: {{ itemHeight * options.length }}px;{{ computed.wrapperStyle({ offset, itemHeight, visibleItemCount, animate, duration, renderStart, unit }) }}" id="options">
13
- <view class="smart-picker-column__visual" style="{{ computed.wrapperInterStyle({ offset, itemHeight, visibleItemCount, renderStart }) }}">
14
- <view
15
- wx:for="{{ optionsV }}"
16
- wx:for-item="option"
17
- wx:key="*this"
18
- data-index="{{ renderStart + index }}"
19
- style="{{computed.wrapperItemStyle({ itemHeight, fontStyle, activeStyle: renderStart + index === currentIndex ? activeStyle : '', animationIndex, index: renderStart + index, visibleItemCount })}}"
20
- class="{{ computed.wrapperItemClass({ index, renderStart, animationIndex, option })}}"
21
- >
22
- {{ computed.optionText(option, valueKey) }}
36
+ <view
37
+ id="options"
38
+ class="smart-picker-column__offset"
39
+ style="height: {{ itemHeight * options.length }}px;{{ computed.wrapperStyle({ offset, itemHeight, visibleItemCount, animate, duration, renderStart, unit, loop }) }}"
40
+ >
41
+ <view class="smart-picker-column__visual">
42
+ <view class="smart-picker-column__visual__item_1">
43
+ <view
44
+ wx:for="{{ computed.sliceArray(viewOptions, 0, 10) }}"
45
+ wx:key="index"
46
+ data-index="{{item}}"
47
+ style="{{computed.wrapperItemStyle({ itemHeight, animationIndex, index: item, visibleItemCount })}}"
48
+ class="smart-picker-column__item_{{index}} {{ computed.wrapperItemClass({ index: item, animationIndex, options })}}"
49
+ bind:tap="{{computed.tapItem(instanceId)}}"
50
+ >
51
+ <view
52
+ class="smart-picker-column__item__text"
53
+ style="{{computed.wrapperItemTextStyle({ fontStyle, activeStyle, index: item, animationIndex })}}"
54
+ ></view>
55
+ </view>
56
+ </view>
57
+ <view class="smart-picker-column__visual__item_2">
58
+ <view
59
+ wx:for="{{ computed.sliceArray(viewOptions, 10) }}"
60
+ wx:key="index"
61
+ data-index="{{item}}"
62
+ style="{{computed.wrapperItemStyle({ itemHeight, fontStyle, activeStyle: item === currentIndex ? activeStyle : '', animationIndex, index: item, visibleItemCount })}}"
63
+ class="smart-picker-column__item_{{index + 10}} {{ computed.wrapperItemClass({ index: item, animationIndex, options })}}"
64
+ bind:tap="{{computed.tapItem(instanceId)}}"
65
+ >
66
+ <view
67
+ class="smart-picker-column__item__text"
68
+ style="{{computed.wrapperItemTextStyle({ fontStyle, activeStyle, index: item, animationIndex })}}"
69
+ ></view>
70
+ </view>
23
71
  </view>
24
- </view>
25
- </view>
26
- <view class="smart-picker-column__mask">
27
- <view
28
- wx:for="{{ visibleItemCount }}"
29
- wx:key="index"
30
- class="smart-picker-column__mask__item"
31
- data-index="{{ currentIndex + index - 2 }}"
32
- bind:tap="onClickItem"
33
- >
34
72
  </view>
35
73
  </view>
36
74
  <view wx:if="{{unit}}" class="smart-picker-column__unit" style="height: {{ itemHeight }}px">
@@ -3,6 +3,53 @@ var style = require('../wxs/style.wxs');
3
3
  var addUnit = require('../wxs/add-unit.wxs');
4
4
  var wxUtils = require('../wxs/utils.wxs');
5
5
 
6
+ let startPo = { y: 0 }; // 记录当前拖动元素的开始的位置
7
+
8
+ const setStyle = (ownerInstance, style, selector) => {
9
+ const dom = queryComponent(ownerInstance, selector);
10
+ if (!dom) {
11
+ console.log(selector, '--selector 无法获取');
12
+ return
13
+ }
14
+ dom.setStyle(style);
15
+ };
16
+
17
+ function range(num, min, max) {
18
+ return Math.min(Math.max(num, min), max);
19
+ }
20
+
21
+ function adjustIndex(index, options) {
22
+ const count = options.length;
23
+ index = range(index, 0, count);
24
+ for (let i = index; i < count; i++) {
25
+ if (!isDisabled(options[i])) return i;
26
+ }
27
+ for (let i = index - 1; i >= 0; i--) {
28
+ if (!isDisabled(options[i])) return i;
29
+ }
30
+ }
31
+
32
+ function isDisabled(option) {
33
+ return typeof option === 'object' && option.disabled;
34
+ }
35
+
36
+ function generateRangeArray(start, end) {
37
+ const resultArray = [];
38
+ for (let i = start; i < end; i++) {
39
+ resultArray.push(i);
40
+ }
41
+ return resultArray;
42
+ }
43
+
44
+ const queryComponent = function (ownerInstance, selector) {
45
+ const instance = ownerInstance?.selectComponent(selector);
46
+ return instance;
47
+ };
48
+
49
+ function sliceArray(list, start, end) {
50
+ return list.slice(start, end);
51
+ }
52
+
6
53
  function isObj(x) {
7
54
  var type = typeof x;
8
55
  return x !== null && (type === 'object' || type === 'function');
@@ -27,53 +74,433 @@ function wrapperStyle(data) {
27
74
  'text-indent': data.unit ? '-8rpx' : '0',
28
75
  transition: 'transform ' + data.duration + 'ms ease-out',
29
76
  'line-height': addUnit(data.itemHeight),
30
- transform: 'translate3d(0, ' + offset + ', 0)',
31
77
  });
32
78
  }
33
79
  return style({
34
80
  'text-indent': data.unit ? '-8rpx' : '0',
35
81
  'line-height': addUnit(data.itemHeight),
36
- transform: 'translate3d(0, ' + offset + ', 0)',
37
- });
38
- }
39
-
40
- function wrapperInterStyle(data) {
41
- var offset = data.renderStart * data.itemHeight;
42
- offset = addUnit(offset);
43
- return style({
44
- 'padding-top': offset,
45
82
  });
46
83
  }
47
84
 
48
85
  function wrapperItemStyle(data) {
49
86
  var heightStyleStr = "height: " + data.itemHeight + 'px;'
50
- var fontStyleStr = style(data.fontStyle);
51
- var activeStyleStr = style(data.activeStyle);
87
+ var maxSideShow = data.visibleItemCount + 2;
88
+ var offsetIndex = data.animationIndex - data.index;
89
+ if (Math.abs(offsetIndex) > maxSideShow) heightStyleStr
90
+ const finOffsetIndex = offsetIndex > 0 ? Math.min(offsetIndex, maxSideShow) : Math.max(offsetIndex, -maxSideShow);
91
+ var scale = 1 - Math.abs(finOffsetIndex * 0.15);
92
+ var rotateX = rotateX = Math.abs(finOffsetIndex * 10);
93
+ var direction = offsetIndex > 0 ? 1 : -1;
94
+ var translateYIndex = Math.abs(finOffsetIndex);
95
+ var translateYOffset = translateYIndex * translateYIndex * direction * state.itemHeight * 0.1
96
+ const transStyle = style({
97
+ transform: `rotateX(${rotateX}deg) scale(${scale}) translateY(${translateYOffset}px) translateZ(0)`,
98
+ });
99
+ return transStyle + ';' + heightStyleStr
100
+ }
52
101
 
53
- // var maxSideShow = Math.floor(data.visibleItemCount / 2) + 1;
54
- // var offsetIndex = data.animationIndex - data.index;
55
- // var scale = Math.min(Math.abs(offsetIndex * 0.2), 0.2 * maxSideShow)
56
- // var rotateX = offsetIndex * 25 > 0 ? Math.min(offsetIndex * 25, 25 * maxSideShow) : Math.max(offsetIndex * 25, -25 * maxSideShow)
57
- // var translateYIndex = offsetIndex > 0 ? Math.min(offsetIndex, maxSideShow) : Math.max(offsetIndex, -maxSideShow)
58
- // const transStyle = style({
59
- // transform: `rotateX(${rotateX}deg) scale(${1 - scale}) translateY(${translateYIndex * Math.abs(translateYIndex) * Math.abs(translateYIndex) * data.itemHeight * 0.1}px) translateZ(0)`,
60
- // });
61
- // return transStyle + ';' + heightStyleStr + (fontStyleStr ? fontStyleStr + ';' : fontStyleStr) + activeStyleStr
62
- return heightStyleStr + (fontStyleStr ? fontStyleStr + ';' : fontStyleStr) + activeStyleStr
102
+ function wrapperItemTextStyle(data) {
103
+ var fontStyle = data.fontStyle;
104
+ var activeStyle = data.activeStyle;
105
+ var isActive = Math.abs(data.index - data.animationIndex) < 0.5;
106
+ return fontStyle ? fontStyle + ';' : '' + (isActive ? activeStyle + ';' : '')
63
107
  }
64
108
 
65
109
  function wrapperItemClass(data) {
66
110
  var staticClass = 'smart-ellipsis';
67
111
  var activeClass = 'active-class';
68
- var isActive = Math.abs(data.renderStart + data.index - data.animationIndex) < 0.9;
69
- return staticClass + ' ' + wxUtils.bem('picker-column__item', { disabled: data.option && data.option.disabled, selected: isActive }) + ' ' + (isActive ? activeClass : '');
112
+ var isActive = Math.abs(data.index - data.animationIndex) < 0.5;
113
+ const currOption = data.options[data.index];
114
+ return staticClass + ' ' + wxUtils.bem('picker-column__item', { disabled: currOption && currOption.disabled, selected: isActive }) + ' ' + (isActive ? activeClass : '');
70
115
  }
71
116
 
117
+ var state = {}
118
+
119
+ var preStateObj = {}
120
+
121
+ function updateState(instanceId, key, value) {
122
+ if (!key) return;
123
+ state[instanceId] = state[instanceId] || {}
124
+ state[instanceId][key] = value
125
+ }
126
+
127
+ function getCurrState(instanceId) {
128
+ return state[instanceId]
129
+ }
130
+
131
+ function updatePreState(instanceId, state) {
132
+ const preStateStr = JSON.stringify(state)
133
+ preStateObj[instanceId] = preStateStr;
134
+ }
135
+
136
+ function getPreState(instanceId) {
137
+ return preStateObj[instanceId]
138
+ }
139
+
140
+ function getDomState(ownerInstance) {
141
+ const dom = queryComponent(ownerInstance, '.smart-picker-column');
142
+ const state = dom.getDataset();
143
+ return state
144
+ }
145
+
146
+ function initDomState(instanceId, ownerInstance) {
147
+ const state = getDomState(ownerInstance);
148
+ updateState(instanceId, 'options', state.options)
149
+ updateState(instanceId, 'valueKey', state.valuekey)
150
+ updateState(instanceId, 'itemHeight', state.itemheight)
151
+ updateState(instanceId, 'visibleItemCount', state.visibleitemcount)
152
+ updateState(instanceId, 'activeIndex', state.activeindex)
153
+ updateState(instanceId, 'loop', state.loop)
154
+ updateState(instanceId, 'animationTime', state.animationtime)
155
+ }
156
+
157
+ const updateValue = (instanceId, key) => (newOptions, oldOptions, ownerInstance) => {
158
+ if (!instanceId) return;
159
+ initDomState(instanceId, ownerInstance)
160
+ updateState(instanceId, key, newOptions)
161
+ updateOffset(instanceId, ownerInstance)
162
+ }
163
+
164
+ function updateOffset(instanceId, ownerInstance) {
165
+ const state = getCurrState(instanceId);
166
+ const domState = getDomState(ownerInstance);
167
+ if(getPreState(instanceId) === JSON.stringify(domState) || !state.itemHeight || !state.visibleItemCount || !Array.isArray(state.options) || state.animationTime === undefined) {
168
+ return
169
+ }
170
+ updatePreState(instanceId, domState)
171
+ const sideCount = Math.floor(state.visibleItemCount / 2)
172
+ const optionLength = state.options.length;
173
+ updateState(instanceId, 'sideCount', sideCount);
174
+ const currActiveIndex = state.activeIndex < 0 ? 0 : state.activeIndex >= optionLength ? optionLength - 1 : state.activeIndex;
175
+ const currList = getCurrList(instanceId, state.options, currActiveIndex, ownerInstance)
176
+ updateRenderPartOffset(instanceId, ownerInstance)
177
+ const textVarStyle = {}
178
+ currList.forEach((item, index) => {
179
+ textVarStyle['--picker-item-content_' + index] = "'" + optionText(item, state.valueKey) + "'"
180
+ })
181
+ const offset = state.itemHeight * (sideCount - currActiveIndex);
182
+ updateState(instanceId, 'offset', offset)
183
+ updateState(instanceId,'offsetActiveIndex', currActiveIndex);
184
+ setStyle(ownerInstance, {
185
+ transform: 'translateY(' + addUnit(offset) + ')',
186
+ ...textVarStyle,
187
+ }, '.smart-picker-column__offset');
188
+
189
+ setTimeout(() => {
190
+ updateItemStyle(instanceId, ownerInstance);
191
+ }, 10)
192
+ }
193
+ /** 更新聚焦点位样式 */
194
+ const updateItemStyle = (instanceId, ownerInstance, time) => {
195
+ const state = getCurrState(instanceId);
196
+ const currActiveIndex = state.offsetActiveIndex;
197
+ state.viewIndexList.slice(0, 20).map((item, index) => {
198
+ const viewOptionsActiveIndex = item;
199
+ const maxSideShow = state.sideCount + 2;
200
+ const offsetIndex = currActiveIndex - viewOptionsActiveIndex;
201
+ if(Math.abs(offsetIndex) > maxSideShow) return;
202
+ const finOffsetIndex = offsetIndex > 0 ? Math.min(offsetIndex, maxSideShow) : Math.max(offsetIndex, -maxSideShow);
203
+ const scale = 1 - Math.abs(finOffsetIndex * 0.15);
204
+ const rotateX = Math.abs(finOffsetIndex * 10);
205
+ const direction = offsetIndex > 0 ? 1 : -1;
206
+ const translateYIndex = Math.abs(finOffsetIndex);
207
+ const translateYOffset = translateYIndex * translateYIndex * direction * state.itemHeight * 0.1
208
+ const className = `.smart-picker-column__item_${index}`;
209
+ setStyle(ownerInstance, {
210
+ transform: `rotateX(${rotateX}deg) scale(${scale}) translateY(${translateYOffset}px) translateZ(0)`,
211
+ transition: !time ? 'none' : 'transform ' + time + 'ms',
212
+ }, className);
213
+ })
214
+ }
215
+
216
+ const getTwoPartOffset = (activeIndex) => {
217
+ const currActiveIndex = activeIndex < 0 ? 0 : activeIndex
218
+ let partNum = Math.floor((currActiveIndex) / 10);
219
+ const lastNum = activeIndex - partNum * 10;
220
+ if (lastNum < 5 && partNum > 0) {
221
+ partNum -= 1;
222
+ }
223
+ const part2Times = Math.floor(partNum / 2);
224
+ const part2Percent = partNum % 2;
225
+ const onePartOffset = part2Percent + part2Times;
226
+ const twoPartOffset = part2Times;
227
+ return { onePartOffset , twoPartOffset }
228
+ }
229
+
230
+ const getCurrList = (instanceId, options, activeIndex, ownerInstance) => {
231
+ const { onePartOffset, twoPartOffset } = getTwoPartOffset(activeIndex);
232
+ const isReverse = onePartOffset > twoPartOffset;
233
+ updateState(instanceId, 'onePartOffset', onePartOffset)
234
+ updateState(instanceId, 'twoPartOffset', twoPartOffset)
235
+ const startPart = twoPartOffset + onePartOffset;
236
+ const viewIndexList = !isReverse ? generateRangeArray(startPart * 10, startPart * 10 + 20) : [...generateRangeArray(startPart * 10 + 10, startPart * 10 + 20), ...generateRangeArray(startPart * 10, startPart * 10 + 10)]
237
+ updateState(instanceId,'viewIndexList', viewIndexList)
238
+ // ownerInstance.callMethod('viewOptionsChange', viewIndexList);
239
+ if (!isReverse) return options.slice(startPart * 10, startPart * 10 + 20);
240
+ let firstList = options.slice(startPart * 10 + 10, startPart * 10 + 20);
241
+ const scendList = options.slice(startPart * 10, startPart * 10 + 10);
242
+ if (firstList.length < 10) {
243
+ // firstList = [...firstList, ...options.slice(0, 10 - firstList.length)];
244
+ firstList = [...firstList, ...new Array(10 - firstList.length).fill('')];
245
+ }
246
+ return [...firstList, ...scendList];
247
+ }
248
+
249
+ const updateRenderPartOffset = (instanceId, ownerInstance, direction) => {
250
+ const state = getCurrState(instanceId);
251
+ const offsetDistance = 20 * state.itemHeight;
252
+ setStyle(ownerInstance, {
253
+ transform: 'translateY(' + addUnit(offsetDistance * state.onePartOffset) + ')',
254
+ }, '.smart-picker-column__visual__item_1');
255
+ setStyle(ownerInstance, {
256
+ transform: 'translateY(' + addUnit(offsetDistance * state.twoPartOffset) + ')',
257
+ }, '.smart-picker-column__visual__item_2');
258
+ }
259
+
260
+ const checkNeedUpdateItemStyle = (instanceId, currActiveIndex) => {
261
+ const state = getCurrState(instanceId);
262
+ const { onePartOffset, twoPartOffset } = getTwoPartOffset(currActiveIndex);
263
+ return onePartOffset !== state.onePartOffset || twoPartOffset !== state.twoPartOffset;
264
+ }
265
+
266
+ const updateOptionsStyle = (instanceId, ownerInstance, style, time) => {
267
+ const state = getCurrState(instanceId);
268
+ const needUpdateListOption = checkNeedUpdateItemStyle(instanceId, state.offsetActiveIndex);
269
+ if (!needUpdateListOption) {
270
+ setStyle(ownerInstance, {
271
+ ...style,
272
+ }, '.smart-picker-column__offset');
273
+ updateItemStyle(instanceId, ownerInstance, time);
274
+ return
275
+ }
276
+ const currList = getCurrList(instanceId, state.options, state.offsetActiveIndex, ownerInstance)
277
+ updateRenderPartOffset(instanceId, ownerInstance);
278
+ const textVarStyle = getCSSVarText(instanceId, currList)
279
+ setStyle(ownerInstance, {
280
+ ...style,
281
+ ...textVarStyle,
282
+ }, '.smart-picker-column__offset');
283
+ updateItemStyle(instanceId, ownerInstance, time);
284
+ }
285
+
286
+ const getCSSVarText = (instanceId, currList) => {
287
+ const state = getCurrState(instanceId);
288
+ const textVarStyle = {}
289
+ currList.forEach((item, index) => {
290
+ textVarStyle['--picker-item-content_' + index] = "'" + optionText(item, state.valueKey) + "'"
291
+ })
292
+ return textVarStyle;
293
+ }
294
+
295
+ const touchStart = (instanceId) => (e, ownerInstance) => {
296
+ const state = getCurrState(instanceId);
297
+ if(state.endTimer) {
298
+ clearInterval(state.endTimer);
299
+ updateState(instanceId, 'endTimer', null);
300
+ updateState(instanceId, 'offset', state.offsetting);
301
+ }
302
+ const { pageY } = e.touches[0];
303
+ startPo.y = pageY;
304
+ updateState(instanceId, 'offsetList', []);
305
+ updateState(instanceId, 'moving', false);
306
+ updateState(instanceId, 'offsetting', state.offset);
307
+ }
308
+
309
+
310
+ // 滚动期间:1.更新滚动位置 2.更新聚焦点位样式 3.更新列表渲染起始位置 4.更新列表文字CSS 变量
311
+ const touchMove = (instanceId) => (e, ownerInstance) => {
312
+ const state = getCurrState(instanceId);
313
+ updateState(instanceId, 'moving', true);
314
+ const { pageY } = e.touches[0];
315
+ const offsetY = pageY - startPo.y;
316
+ const offset = state.offset + offsetY;
317
+ const newOffsetList = [...state.offsetList, offset];
318
+ const currActiveIndex = -offset / state.itemHeight + state.sideCount;
319
+ const preIndexLast = Math.abs(state.offsetActiveIndex % 1);
320
+ const curIndexLast = Math.abs(currActiveIndex % 1);
321
+ const offsetCompare = offset - state.offsetting;
322
+ const direction = offsetCompare < 0 ? 'down' : offsetCompare > 0 ? 'up' : state.movingDirection || 'down';
323
+ updateState(instanceId, 'offsetActiveIndex', currActiveIndex);
324
+ updateState(instanceId, 'offsetting', offset);
325
+ updateState(instanceId, 'offsetList', newOffsetList);
326
+ updateState(instanceId, 'movingDirection', direction);
327
+ updateOptionsStyle(instanceId, ownerInstance, {
328
+ transform: 'translateY(' + addUnit(offset) + ')',
329
+ transition: 'none',
330
+ });
331
+ if((direction === 'down' && preIndexLast <= 0.5 && curIndexLast > 0.5) || (direction === 'up' && preIndexLast >= 0.5 && curIndexLast < 0.5)) {
332
+ ownerInstance.callMethod('animationIndexChange', currActiveIndex);
333
+ ownerInstance.callMethod('vibrateShort');
334
+ }
335
+ }
336
+
337
+
338
+ const touchEnd = (instanceId) => function (e, ownerInstance) {
339
+ const state = getCurrState(instanceId);
340
+ if(!state.moving) return;
341
+ const preOffsetList = state.offsetList;
342
+
343
+ const maxUpOptionsDistance = state.loop ? state.itemHeight * 500 : state.sideCount * state.itemHeight;
344
+ const maxDownOptionsDistance = state.loop ? -state.itemHeight * 500 : -Math.max((state.options.length - state.sideCount - 1) * state.itemHeight, 0);
345
+ // 计算最后几帧的平均速度,用于惯性滚动
346
+ let recentVelocity = 0;
347
+ /** -1: 向下, 1: 向上, 0: 无滚动 */
348
+ let scrollDirection = 0;
349
+
350
+ if (preOffsetList.length >= 2) {
351
+ // 计算速度,优先使用最后几帧的数据
352
+ let recentOffset = 0;
353
+ let recentTime = 0;
354
+
355
+ if (preOffsetList.length >= 3) {
356
+ // 有3个或以上数据点,使用最后3个点计算速度
357
+ recentOffset = preOffsetList[preOffsetList.length - 1] - preOffsetList[preOffsetList.length - 3];
358
+ recentTime = 2; // 2帧间隔
359
+ } else if (preOffsetList.length === 2) {
360
+ // 只有2个数据点,使用这2个点计算速度
361
+ recentOffset = preOffsetList[1] - preOffsetList[0];
362
+ recentTime = 1; // 1帧间隔
363
+ }
364
+
365
+ // 计算速度 (px/ms)
366
+ recentVelocity = Math.abs(recentOffset) / (recentTime * 16);
367
+
368
+ // 确定滚动方向
369
+ if (recentOffset > 0) {
370
+ scrollDirection = 1; // 向上滚动
371
+ } else if (recentOffset < 0) {
372
+ scrollDirection = -1; // 向下滚动
373
+ }
374
+ }
375
+
376
+ // 惯性滚动参数配置
377
+ const minVelocity = 0.1; // 最小速度阈值,低于此值停止滚动
378
+ const maxInertiaDistance = state.itemHeight * 8; // 最大惯性滚动距离
379
+
380
+ // 计算惯性滚动距离
381
+ let inertiaDistance = 0;
382
+ if (recentVelocity > minVelocity) {
383
+ // 使用物理公式计算惯性距离:distance = velocity^2 / (2 * friction)
384
+ // 这里简化处理,直接使用速度乘以一个系数
385
+ inertiaDistance = recentVelocity * 200; // 200ms的惯性时间
386
+
387
+ // 限制最大滚动距离
388
+ if (inertiaDistance > maxInertiaDistance) {
389
+ inertiaDistance = maxInertiaDistance;
390
+ }
391
+
392
+ // 根据滚动方向确定正负值
393
+ inertiaDistance = inertiaDistance * scrollDirection;
394
+ }
395
+
396
+ // 计算最终目标位置 和 index
397
+ let targetOffset = Math.round((state.offsetting + inertiaDistance) / state.itemHeight) * state.itemHeight;
398
+ let currTargetActiveIndex = -targetOffset / state.itemHeight + state.sideCount;
399
+ currTargetActiveIndex = adjustIndex(currTargetActiveIndex, state.options);
400
+ targetOffset = -(currTargetActiveIndex - state.sideCount) * state.itemHeight;
401
+
402
+ const isNeedTransition = Math.abs(targetOffset - state.offsetting) > 1;
403
+ const time = isNeedTransition ? state.animationTime : 0;
404
+ const animationOffset = Math.abs(targetOffset - state.offsetting);
405
+ const offsetCount = Math.floor(Math.abs(currTargetActiveIndex - state.offsetActiveIndex));
406
+ if (time > 150 && animationOffset > state.itemHeight) {
407
+ const midTime = 16;
408
+ const count = Math.floor((time - 150) / midTime);
409
+ const midOffset = (targetOffset - state.offsetting)/ count;
410
+ let startCount = 0
411
+ const endTimer = setInterval(() => {
412
+ startCount++;
413
+ const currOffset = state.offsetting + midOffset;
414
+ const currIndex = -currOffset / state.itemHeight + state.sideCount;
415
+ if (startCount >= count) {
416
+ // 动画结束,设置最终状态
417
+ updateState(instanceId, 'offsetActiveIndex', currTargetActiveIndex);
418
+ clearInterval(endTimer);
419
+ updateState(instanceId, 'offsetting', targetOffset);
420
+ updateState(instanceId, 'offset', targetOffset);
421
+ updateState(instanceId, 'moving', false);
422
+ updateOptionsStyle(instanceId, ownerInstance, {
423
+ transform: 'translateY(' + addUnit(Math.round(targetOffset)) + ')',
424
+ transition: 'transform ' + (time ? time + 100 : time) + 'ms',
425
+ });
426
+ if(currTargetActiveIndex !== state.activeIndex) {
427
+ ownerInstance.callMethod('activeIndexChange', currTargetActiveIndex);
428
+ } else {
429
+ ownerInstance.callMethod('animationIndexChange', currTargetActiveIndex);
430
+ }
431
+ return
432
+ };
433
+ updateState(instanceId, 'offsetActiveIndex', currIndex);
434
+ updateState(instanceId, 'offsetting', currOffset);
435
+ updateOptionsStyle(instanceId, ownerInstance, {
436
+ transform: 'translateY(' + addUnit(Math.round(targetOffset)) + ')',
437
+ transition: 'transform ' + (time ? time + 100 : time) + 'ms',
438
+ });
439
+ }, midTime);
440
+ updateState(instanceId, 'endTimer', endTimer);
441
+ ownerInstance.callMethod('vibrateShort', offsetCount);
442
+ } else {
443
+ Math.abs(currTargetActiveIndex - state.offsetActiveIndex) >= 1 && ownerInstance.callMethod('vibrateShort');
444
+ updateState(instanceId, 'offsetActiveIndex', currTargetActiveIndex);
445
+ updateState(instanceId, 'offsetting', targetOffset);
446
+ updateState(instanceId, 'offset', targetOffset);
447
+ updateState(instanceId, 'moving', false);
448
+ updateOptionsStyle(instanceId, ownerInstance, {
449
+ transform: 'translateY(' + addUnit(Math.round(targetOffset)) + ')',
450
+ transition: 'transform ' + (time ? time + 100 : time) + 'ms',
451
+ });
452
+ if(currTargetActiveIndex !== state.activeIndex) {
453
+ ownerInstance.callMethod('activeIndexChange', currTargetActiveIndex);
454
+ } else {
455
+ ownerInstance.callMethod('animationIndexChange', currTargetActiveIndex);
456
+ }
457
+ return
458
+ }
459
+ }
460
+
461
+ const tapItem = (instanceId) => (e, ownerInstance) => {
462
+ const state = getCurrState(instanceId);
463
+ const currTargetActiveIndex = e.currentTarget.dataset.index;
464
+ const option = state.options[currTargetActiveIndex];
465
+ if (option === undefined || option && typeof option === 'object' && option.disabled) return;
466
+ const targetOffset = -(currTargetActiveIndex - state.sideCount) * state.itemHeight;
467
+ if (state.startTimer) {
468
+ clearTimeout(state.startTimer);
469
+ updateState(instanceId, 'startTimer', null);
470
+ }
471
+ if (currTargetActiveIndex === state.offsetActiveIndex) return;
472
+ const offsetCount = Math.abs(currTargetActiveIndex - state.offsetActiveIndex);
473
+ if (state.tapTimer) {
474
+ clearTimeout(state.tapTimer);
475
+ updateState(instanceId, 'tapTimer', null);
476
+ }
477
+ updateState(instanceId, 'offsetActiveIndex', currTargetActiveIndex);
478
+ updateState(instanceId, 'offsetting', targetOffset);
479
+ updateState(instanceId, 'offset', targetOffset);
480
+ updateOptionsStyle(instanceId, ownerInstance, {
481
+ transform: 'translateY(' + addUnit(Math.round(targetOffset)) + ')',
482
+ transition: 'transform 200ms',
483
+ }, 200);
484
+ ownerInstance.callMethod('vibrateShort', offsetCount, 150);
485
+ const tapTimer = setTimeout(() => {
486
+ ownerInstance.callMethod('activeIndexChange', currTargetActiveIndex);
487
+ updateState(instanceId, 'tapTimer', null);
488
+ }, 150);
489
+ updateState(instanceId, 'tapTimer', tapTimer);
490
+ }
491
+
492
+
72
493
  module.exports = {
73
494
  optionText: optionText,
74
495
  rootStyle: rootStyle,
75
496
  wrapperStyle: wrapperStyle,
76
- wrapperInterStyle: wrapperInterStyle,
77
497
  wrapperItemStyle: wrapperItemStyle,
78
- wrapperItemClass: wrapperItemClass
498
+ wrapperItemClass: wrapperItemClass,
499
+ updateValue: updateValue,
500
+ touchStart: touchStart,
501
+ touchMove: touchMove,
502
+ touchEnd: touchEnd,
503
+ sliceArray: sliceArray,
504
+ wrapperItemTextStyle: wrapperItemTextStyle,
505
+ tapItem: tapItem,
79
506
  };
@@ -1 +1 @@
1
- @import '../common/index.wxss';:root{--smart-ui-overlay:rgba(0,0,0,.4);--smart-ui-dialog-background:#fff;--smart-ui-border-image:linear-gradient(90deg,transparent,rgba(0,0,0,.3),transparent)}:root[theme=dark]{--smart-ui-overlay:rgba(0,0,0,.7);--smart-ui-dialog-background:#333;--smart-ui-border-image:linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.3),hsla(0,0%,100%,0))}.smart-picker-column{color:var(--picker-option-selected-text-color,var(--app-B6-N1,#000));font-size:var(--picker-option-font-size,16px);font-weight:var(--font-weight-bold,500);text-align:center}.smart-picker-column,.smart-picker-column__offset{position:relative;width:100%}.smart-picker-column__visual{position:absolute;top:0;width:100%}.smart-picker-column__item{pointer-events:none}.smart-picker-column__item--selected{color:var(--picker-option-selected-text-color,var(--app-B6-N1,#000));font-weight:var(--picker-option-selected-font-weight-bold,var(--font-weight-bold,700))}.smart-picker-column__item--disabled{opacity:var(--picker-option-disabled-opacity,.3)}.smart-picker-column__mask{background:transparent;display:flex;flex-direction:column;height:100%;position:absolute;top:0;width:100%;z-index:10}.smart-picker-column__mask__item{flex:1}.smart-picker-column__unit{align-items:center;display:flex;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);width:100%}.smart-picker-column__unit_text{color:var(--picker-option-unit-text-color,var(--app-B6-N4,rgba(0,0,0,.4)));font-size:var(--picker-option-unit-font-size,12px);left:100%;margin-left:var(--picker-option-unit-mid-size,4px);position:absolute;text-align:left;top:50%;transform:translateY(-50%);white-space:nowrap}.smart-picker-column__max-text{color:transparent;font-size:var(--picker-option-font-size,16px);font-weight:var(--font-weight-bold,500);position:relative}.smart-picker-column--disabled{opacity:var(--picker-option-disabled-opacity,.3)}
1
+ @import '../common/index.wxss';:root{--smart-ui-overlay:rgba(0,0,0,.4);--smart-ui-dialog-background:#fff;--smart-ui-border-image:linear-gradient(90deg,transparent,rgba(0,0,0,.3),transparent)}:root[theme=dark]{--smart-ui-overlay:rgba(0,0,0,.7);--smart-ui-dialog-background:#333;--smart-ui-border-image:linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.3),hsla(0,0%,100%,0))}.smart-picker-column{color:var(--picker-option-selected-text-color,var(--app-B6-N1,#000));font-size:var(--picker-option-font-size,16px);font-weight:var(--font-weight-bold,500);text-align:center}.smart-picker-column,.smart-picker-column__offset{position:relative;width:100%}.smart-picker-column__visual{position:absolute;top:0;width:100%}.smart-picker-column__item--selected{color:var(--picker-option-selected-text-color,var(--app-B6-N1,#000));font-weight:var(--picker-option-selected-font-weight-bold,var(--font-weight-bold,700))}.smart-picker-column__item--disabled{opacity:var(--picker-option-disabled-opacity,.3);pointer-events:none}.smart-picker-column__mask{background:transparent;display:flex;flex-direction:column;height:100%;position:absolute;top:0;width:100%;z-index:10}.smart-picker-column__mask__item{flex:1}.smart-picker-column__unit{align-items:center;display:flex;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);width:100%}.smart-picker-column__unit_text{color:var(--picker-option-unit-text-color,var(--app-B6-N4,rgba(0,0,0,.4)));font-size:var(--picker-option-unit-font-size,12px);left:100%;margin-left:var(--picker-option-unit-mid-size,4px);position:absolute;text-align:left;top:50%;transform:translateY(-50%);white-space:nowrap}.smart-picker-column__max-text{color:transparent;font-size:var(--picker-option-font-size,16px);font-weight:var(--font-weight-bold,500);position:relative}.smart-picker-column--disabled{opacity:var(--picker-option-disabled-opacity,.3)}.smart-picker-column__item_0 .smart-picker-column__item__text:after{content:var(--picker-item-content_0,"")}.smart-picker-column__item_1 .smart-picker-column__item__text:after{content:var(--picker-item-content_1,"")}.smart-picker-column__item_2 .smart-picker-column__item__text:after{content:var(--picker-item-content_2,"")}.smart-picker-column__item_3 .smart-picker-column__item__text:after{content:var(--picker-item-content_3,"")}.smart-picker-column__item_4 .smart-picker-column__item__text:after{content:var(--picker-item-content_4,"")}.smart-picker-column__item_5 .smart-picker-column__item__text:after{content:var(--picker-item-content_5,"")}.smart-picker-column__item_6 .smart-picker-column__item__text:after{content:var(--picker-item-content_6,"")}.smart-picker-column__item_7 .smart-picker-column__item__text:after{content:var(--picker-item-content_7,"")}.smart-picker-column__item_8 .smart-picker-column__item__text:after{content:var(--picker-item-content_8,"")}.smart-picker-column__item_9 .smart-picker-column__item__text:after{content:var(--picker-item-content_9,"")}.smart-picker-column__item_10 .smart-picker-column__item__text:after{content:var(--picker-item-content_10,"")}.smart-picker-column__item_11 .smart-picker-column__item__text:after{content:var(--picker-item-content_11,"")}.smart-picker-column__item_12 .smart-picker-column__item__text:after{content:var(--picker-item-content_12,"")}.smart-picker-column__item_13 .smart-picker-column__item__text:after{content:var(--picker-item-content_13,"")}.smart-picker-column__item_14 .smart-picker-column__item__text:after{content:var(--picker-item-content_14,"")}.smart-picker-column__item_15 .smart-picker-column__item__text:after{content:var(--picker-item-content_15,"")}.smart-picker-column__item_16 .smart-picker-column__item__text:after{content:var(--picker-item-content_16,"")}.smart-picker-column__item_17 .smart-picker-column__item__text:after{content:var(--picker-item-content_17,"")}.smart-picker-column__item_18 .smart-picker-column__item__text:after{content:var(--picker-item-content_18,"")}.smart-picker-column__item_19 .smart-picker-column__item__text:after{content:var(--picker-item-content_19,"")}.smart-picker-column__item_20 .smart-picker-column__item__text:after{content:var(--picker-item-content_20,"")}
@@ -0,0 +1 @@
1
+ @import '../common/index.css';:root{--smart-ui-overlay:rgba(0,0,0,.4);--smart-ui-dialog-background:#fff;--smart-ui-border-image:linear-gradient(90deg,transparent,rgba(0,0,0,.3),transparent)}:root[theme=dark]{--smart-ui-overlay:rgba(0,0,0,.7);--smart-ui-dialog-background:#333;--smart-ui-border-image:linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.3),hsla(0,0%,100%,0))}.smart-popup{-webkit-overflow-scrolling:touch;animation:ease both;background-color:var(--popup-background-color,var(--app-B4,#fff));box-sizing:border-box;max-height:100%;position:fixed;transition-timing-function:ease}.smart-popup--center{left:50%;top:50%;transform:translate3d(-50%,-50%,0)}.smart-popup--center.smart-popup--round{border-radius:var(--popup-round-border-radius,16px);overflow:hidden}.smart-popup--top{left:0;top:0;width:100%}.smart-popup--top.smart-popup--round{border-radius:0 0 var(--popup-round-border-radius,var(--popup-round-border-radius,16px)) var(--popup-round-border-radius,var(--popup-round-border-radius,16px));overflow:hidden}.smart-popup--right{right:0;top:50%;transform:translate3d(0,-50%,0)}.smart-popup--right.smart-popup--round{border-radius:var(--popup-round-border-radius,var(--popup-round-border-radius,16px)) 0 0 var(--popup-round-border-radius,var(--popup-round-border-radius,16px));overflow:hidden}.smart-popup--bottom{bottom:0;left:0;width:100%}.smart-popup--bottom.smart-popup--round{border-radius:var(--popup-round-border-radius,var(--popup-round-border-radius,16px)) var(--popup-round-border-radius,var(--popup-round-border-radius,16px)) 0 0;overflow:hidden}.smart-popup--left{left:0;top:50%;transform:translate3d(0,-50%,0)}.smart-popup--left.smart-popup--round{border-radius:0 var(--popup-round-border-radius,var(--popup-round-border-radius,16px)) var(--popup-round-border-radius,var(--popup-round-border-radius,16px)) 0;overflow:hidden}.smart-popup--bottom.smart-popup--safeTabBar,.smart-popup--top.smart-popup--safeTabBar{bottom:var(--tabbar-height,55px)}.smart-popup--safeTop{padding-top:env(safe-area-inset-top)}.smart-popup__close-icon{color:var(--popup-close-icon-color,#969799);font-size:var(--popup-close-icon-size,24px);position:absolute;z-index:var(--popup-close-icon-z-index,1)}.smart-popup__close-icon--top-left{left:var(--popup-close-icon-margin,12px);top:var(--popup-close-icon-margin,12px)}.smart-popup__close-icon--top-right{right:var(--popup-close-icon-margin,12px);top:var(--popup-close-icon-margin,12px)}.smart-popup__close-icon--bottom-left{bottom:var(--popup-close-icon-margin,12px);left:var(--popup-close-icon-margin,12px)}.smart-popup__close-icon--bottom-right{bottom:var(--popup-close-icon-margin,12px);right:var(--popup-close-icon-margin,12px)}.smart-popup__close-icon:active{opacity:.6}.smart-scale-enter-active,.smart-scale-leave-active{transition-property:opacity,transform}.smart-scale-enter,.smart-scale-leave-to{opacity:0;transform:translate3d(-50%,-50%,0) scale(.7)}.smart-fade-enter-active,.smart-fade-leave-active{transition-property:opacity}.smart-fade-enter,.smart-fade-leave-to{opacity:0}.smart-center-enter-active,.smart-center-leave-active{transition-property:opacity}.smart-center-enter,.smart-center-leave-to{opacity:0}.smart-bottom-enter-active,.smart-bottom-leave-active,.smart-left-enter-active,.smart-left-leave-active,.smart-right-enter-active,.smart-right-leave-active,.smart-top-enter-active,.smart-top-leave-active{transition-property:transform}.smart-bottom-enter,.smart-bottom-leave-to{transform:translate3d(0,100%,0)}.smart-top-enter,.smart-top-leave-to{transform:translate3d(0,-100%,0)}.smart-left-enter,.smart-left-leave-to{transform:translate3d(-100%,-50%,0)}.smart-right-enter,.smart-right-leave-to{transform:translate3d(100%,-50%,0)}
@@ -0,0 +1 @@
1
+ @import '../common/index.wxss';:root{--smart-ui-overlay:rgba(0,0,0,.4);--smart-ui-dialog-background:#fff;--smart-ui-border-image:linear-gradient(90deg,transparent,rgba(0,0,0,.3),transparent)}:root[theme=dark]{--smart-ui-overlay:rgba(0,0,0,.7);--smart-ui-dialog-background:#333;--smart-ui-border-image:linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.3),hsla(0,0%,100%,0))}.smart-popup{-webkit-overflow-scrolling:touch;animation:ease both;background-color:var(--popup-background-color,var(--app-B4,#fff));box-sizing:border-box;max-height:100%;position:fixed;transition-timing-function:ease}.smart-popup--center{left:50%;top:50%;transform:translate3d(-50%,-50%,0)}.smart-popup--center.smart-popup--round{border-radius:var(--popup-round-border-radius,16px);overflow:hidden}.smart-popup--top{left:0;top:0;width:100%}.smart-popup--top.smart-popup--round{border-radius:0 0 var(--popup-round-border-radius,var(--popup-round-border-radius,16px)) var(--popup-round-border-radius,var(--popup-round-border-radius,16px));overflow:hidden}.smart-popup--right{right:0;top:50%;transform:translate3d(0,-50%,0)}.smart-popup--right.smart-popup--round{border-radius:var(--popup-round-border-radius,var(--popup-round-border-radius,16px)) 0 0 var(--popup-round-border-radius,var(--popup-round-border-radius,16px));overflow:hidden}.smart-popup--bottom{bottom:0;left:0;width:100%}.smart-popup--bottom.smart-popup--round{border-radius:var(--popup-round-border-radius,var(--popup-round-border-radius,16px)) var(--popup-round-border-radius,var(--popup-round-border-radius,16px)) 0 0;overflow:hidden}.smart-popup--left{left:0;top:50%;transform:translate3d(0,-50%,0)}.smart-popup--left.smart-popup--round{border-radius:0 var(--popup-round-border-radius,var(--popup-round-border-radius,16px)) var(--popup-round-border-radius,var(--popup-round-border-radius,16px)) 0;overflow:hidden}.smart-popup--bottom.smart-popup--safeTabBar,.smart-popup--top.smart-popup--safeTabBar{bottom:var(--tabbar-height,55px)}.smart-popup--safeTop{padding-top:env(safe-area-inset-top)}.smart-popup__close-icon{color:var(--popup-close-icon-color,#969799);font-size:var(--popup-close-icon-size,24px);position:absolute;z-index:var(--popup-close-icon-z-index,1)}.smart-popup__close-icon--top-left{left:var(--popup-close-icon-margin,12px);top:var(--popup-close-icon-margin,12px)}.smart-popup__close-icon--top-right{right:var(--popup-close-icon-margin,12px);top:var(--popup-close-icon-margin,12px)}.smart-popup__close-icon--bottom-left{bottom:var(--popup-close-icon-margin,12px);left:var(--popup-close-icon-margin,12px)}.smart-popup__close-icon--bottom-right{bottom:var(--popup-close-icon-margin,12px);right:var(--popup-close-icon-margin,12px)}.smart-popup__close-icon:active{opacity:.6}.smart-scale-enter-active,.smart-scale-leave-active{transition-property:opacity,transform}.smart-scale-enter,.smart-scale-leave-to{opacity:0;transform:translate3d(-50%,-50%,0) scale(.7)}.smart-fade-enter-active,.smart-fade-leave-active{transition-property:opacity}.smart-fade-enter,.smart-fade-leave-to{opacity:0}.smart-center-enter-active,.smart-center-leave-active{transition-property:opacity}.smart-center-enter,.smart-center-leave-to{opacity:0}.smart-bottom-enter-active,.smart-bottom-leave-active,.smart-left-enter-active,.smart-left-leave-active,.smart-right-enter-active,.smart-right-leave-active,.smart-top-enter-active,.smart-top-leave-active{transition-property:transform}.smart-bottom-enter,.smart-bottom-leave-to{transform:translate3d(0,100%,0)}.smart-top-enter,.smart-top-leave-to{transform:translate3d(0,-100%,0)}.smart-left-enter,.smart-left-leave-to{transform:translate3d(-100%,-50%,0)}.smart-right-enter,.smart-right-leave-to{transform:translate3d(100%,-50%,0)}
@@ -0,0 +1 @@
1
+ @import '../common/index.css';:root{--smart-ui-overlay:rgba(0,0,0,.4);--smart-ui-dialog-background:#fff;--smart-ui-border-image:linear-gradient(90deg,transparent,rgba(0,0,0,.3),transparent)}:root[theme=dark]{--smart-ui-overlay:rgba(0,0,0,.7);--smart-ui-dialog-background:#333;--smart-ui-border-image:linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.3),hsla(0,0%,100%,0))}.smart-rate{display:inline-flex;-webkit-user-select:none;user-select:none}.smart-rate__item{padding:0 var(--rate-horizontal-padding,2px);position:relative}.smart-rate__item:not(:last-child){padding-right:var(--rate-icon-gutter,4px)}.smart-rate__icon{color:var(--rate-icon-void-color,#c8c9cc);display:block;font-size:var(--rate-icon-size,20px);height:100%}.smart-rate__icon--half{left:var(--rate-horizontal-padding,2px);overflow:hidden;position:absolute;top:0;width:.5em}.smart-rate__icon--full,.smart-rate__icon--half{color:var(--rate-icon-full-color,#ee0a24)}.smart-rate__icon--disabled{color:var(--rate-icon-disabled-color,#c8c9cc)}
@@ -0,0 +1 @@
1
+ @import '../common/index.wxss';:root{--smart-ui-overlay:rgba(0,0,0,.4);--smart-ui-dialog-background:#fff;--smart-ui-border-image:linear-gradient(90deg,transparent,rgba(0,0,0,.3),transparent)}:root[theme=dark]{--smart-ui-overlay:rgba(0,0,0,.7);--smart-ui-dialog-background:#333;--smart-ui-border-image:linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.3),hsla(0,0%,100%,0))}.smart-rate{display:inline-flex;-webkit-user-select:none;user-select:none}.smart-rate__item{padding:0 var(--rate-horizontal-padding,2px);position:relative}.smart-rate__item:not(:last-child){padding-right:var(--rate-icon-gutter,4px)}.smart-rate__icon{color:var(--rate-icon-void-color,#c8c9cc);display:block;font-size:var(--rate-icon-size,20px);height:100%}.smart-rate__icon--half{left:var(--rate-horizontal-padding,2px);overflow:hidden;position:absolute;top:0;width:.5em}.smart-rate__icon--full,.smart-rate__icon--half{color:var(--rate-icon-full-color,#ee0a24)}.smart-rate__icon--disabled{color:var(--rate-icon-disabled-color,#c8c9cc)}
@@ -0,0 +1 @@
1
+ @import '../common/index.css';.smart-row:after{clear:both;content:"";display:table}
@@ -0,0 +1 @@
1
+ @import '../common/index.wxss';.smart-row:after{clear:both;content:"";display:table}