@seakoi/native-ui 1.1.3 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (376) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/dist/commonjs/components/base/carousel/carousel-indicator.js +56 -0
  3. package/dist/commonjs/components/base/carousel/carousel-slides.js +140 -0
  4. package/dist/commonjs/components/base/carousel/carousel.js +114 -122
  5. package/dist/commonjs/components/base/carousel/hooks/index.js +0 -14
  6. package/dist/commonjs/components/base/carousel/hooks/use-carousel-index.js +16 -13
  7. package/dist/commonjs/components/base/carousel/hooks/use-carousel-lifecycle.js +6 -2
  8. package/dist/commonjs/components/base/carousel/hooks/use-carousel-pan-responder.js +40 -12
  9. package/dist/commonjs/components/base/carousel/hooks/use-carousel-position.js +6 -2
  10. package/dist/commonjs/components/base/carousel/index.js +1 -15
  11. package/dist/commonjs/components/base/carousel/style/index.js +12 -0
  12. package/dist/commonjs/components/base/date-picker/date-picker.js +56 -44
  13. package/dist/commonjs/components/base/date-picker/date-range-picker.js +142 -50
  14. package/dist/commonjs/components/base/date-picker/style/index.js +15 -0
  15. package/dist/commonjs/components/base/date-picker-view/date-picker-view.js +19 -53
  16. package/dist/commonjs/components/base/date-picker-view/index.js +0 -22
  17. package/dist/commonjs/components/base/index.js +53 -9
  18. package/dist/commonjs/components/base/input/base-input.js +4 -2
  19. package/dist/commonjs/components/base/overflow/all-mode-overflow.js +49 -0
  20. package/dist/commonjs/components/base/overflow/fixed-count-overflow.js +70 -0
  21. package/dist/commonjs/components/base/overflow/index.js +16 -0
  22. package/dist/commonjs/components/base/overflow/overflow.js +72 -0
  23. package/dist/commonjs/components/base/overflow/responsive-overflow.js +280 -0
  24. package/dist/commonjs/components/base/overflow/style/index.js +39 -0
  25. package/dist/commonjs/components/base/overflow/types.js +5 -0
  26. package/dist/commonjs/components/base/picker/index.js +26 -4
  27. package/dist/commonjs/components/base/picker/picker-content.js +64 -0
  28. package/dist/commonjs/components/base/picker/picker-context.js +9 -0
  29. package/dist/commonjs/components/base/picker/picker-field.js +39 -0
  30. package/dist/commonjs/components/base/picker/picker.js +26 -95
  31. package/dist/commonjs/components/base/picker/style/index.js +8 -4
  32. package/dist/commonjs/components/base/picker-backup/base-picker-container.js +50 -0
  33. package/dist/commonjs/components/base/picker-backup/index.js +27 -0
  34. package/dist/commonjs/components/base/picker-backup/picker-backup.js +75 -0
  35. package/dist/commonjs/components/base/picker-backup/picker-copy.js +106 -0
  36. package/dist/commonjs/components/base/{picker → picker-backup}/picker-trigger.js +5 -5
  37. package/dist/commonjs/components/base/picker-backup/style/index.js +19 -0
  38. package/dist/commonjs/components/base/picker-backup/utils.js +53 -0
  39. package/dist/commonjs/components/base/picker-view/picker-view-column.js +15 -0
  40. package/dist/commonjs/components/base/picker-view/picker-view.js +4 -4
  41. package/dist/commonjs/components/base/portal/portal-host.js +5 -3
  42. package/dist/commonjs/components/base/select/hooks/use-select-actions.js +155 -0
  43. package/dist/commonjs/components/base/select/hooks/use-select-options.js +169 -0
  44. package/dist/commonjs/components/base/select/hooks/use-selector.js +104 -0
  45. package/dist/commonjs/components/base/select/index.js +16 -0
  46. package/dist/commonjs/components/base/select/select-multiple-content.js +182 -0
  47. package/dist/commonjs/components/base/select/select-popup.js +233 -0
  48. package/dist/commonjs/components/base/select/select-single-content.js +100 -0
  49. package/dist/commonjs/components/base/select/select-suffix.js +67 -0
  50. package/dist/commonjs/components/base/select/select.js +285 -0
  51. package/dist/commonjs/components/base/select/style/index.js +40 -0
  52. package/dist/commonjs/components/base/select/style/select-multiple-content-styles.js +46 -0
  53. package/dist/commonjs/components/base/select/style/select-popup-styles.js +67 -0
  54. package/dist/commonjs/components/base/select/style/select-single-content-styles.js +28 -0
  55. package/dist/commonjs/components/base/select/style/select-styles.js +46 -0
  56. package/dist/commonjs/components/base/select/style/select-suffix-styles.js +21 -0
  57. package/dist/commonjs/components/base/select/types.js +5 -0
  58. package/dist/commonjs/components/base/tabs/style/index.js +37 -0
  59. package/dist/commonjs/components/base/tabs/tabs.js +90 -45
  60. package/dist/commonjs/components/base/tag/index.js +20 -0
  61. package/dist/commonjs/components/base/tag/style/index.js +89 -0
  62. package/dist/commonjs/components/base/tag/tag-context.js +12 -0
  63. package/dist/commonjs/components/base/tag/tag-group.js +35 -0
  64. package/dist/commonjs/components/base/tag/tag.js +47 -0
  65. package/dist/commonjs/components/base/tag/types.js +5 -0
  66. package/dist/commonjs/native-provider/native-provider.js +5 -5
  67. package/dist/commonjs/shared/utils/index.js +11 -0
  68. package/dist/commonjs/shared/utils/object.js +39 -0
  69. package/dist/module/components/base/carousel/carousel-indicator.js +51 -0
  70. package/dist/module/components/base/carousel/carousel-slides.js +135 -0
  71. package/dist/module/components/base/carousel/carousel.js +116 -124
  72. package/dist/module/components/base/carousel/hooks/index.js +0 -2
  73. package/dist/module/components/base/carousel/hooks/use-carousel-index.js +15 -11
  74. package/dist/module/components/base/carousel/hooks/use-carousel-lifecycle.js +6 -2
  75. package/dist/module/components/base/carousel/hooks/use-carousel-pan-responder.js +40 -11
  76. package/dist/module/components/base/carousel/hooks/use-carousel-position.js +5 -1
  77. package/dist/module/components/base/carousel/index.js +1 -5
  78. package/dist/module/components/base/carousel/style/index.js +12 -0
  79. package/dist/module/components/base/date-picker/date-picker.js +60 -48
  80. package/dist/module/components/base/date-picker/date-range-picker.js +146 -54
  81. package/dist/module/components/base/date-picker/style/index.js +11 -0
  82. package/dist/module/components/base/date-picker-view/date-picker-view.js +23 -57
  83. package/dist/module/components/base/date-picker-view/index.js +1 -3
  84. package/dist/module/components/base/index.js +4 -0
  85. package/dist/module/components/base/input/base-input.js +4 -2
  86. package/dist/module/components/base/overflow/all-mode-overflow.js +43 -0
  87. package/dist/module/components/base/overflow/fixed-count-overflow.js +64 -0
  88. package/dist/module/components/base/overflow/index.js +3 -0
  89. package/dist/module/components/base/overflow/overflow.js +66 -0
  90. package/dist/module/components/base/overflow/responsive-overflow.js +274 -0
  91. package/dist/module/components/base/overflow/style/index.js +36 -0
  92. package/dist/module/components/base/overflow/types.js +3 -0
  93. package/dist/module/components/base/picker/index.js +9 -1
  94. package/dist/module/components/base/picker/picker-content.js +58 -0
  95. package/dist/module/components/base/picker/picker-context.js +4 -0
  96. package/dist/module/components/base/picker/picker-field.js +34 -0
  97. package/dist/module/components/base/picker/picker.js +29 -98
  98. package/dist/module/components/base/picker/style/index.js +7 -3
  99. package/dist/module/components/base/picker-backup/base-picker-container.js +44 -0
  100. package/dist/module/components/base/picker-backup/index.js +4 -0
  101. package/dist/module/components/base/picker-backup/picker-backup.js +69 -0
  102. package/dist/module/components/base/picker-backup/picker-copy.js +101 -0
  103. package/dist/module/components/base/{picker → picker-backup}/picker-trigger.js +2 -2
  104. package/dist/module/components/base/picker-backup/style/index.js +15 -0
  105. package/dist/module/components/base/picker-backup/utils.js +48 -0
  106. package/dist/module/components/base/picker-view/picker-view-column.js +15 -0
  107. package/dist/module/components/base/picker-view/picker-view.js +4 -4
  108. package/dist/module/components/base/portal/portal-host.js +4 -3
  109. package/dist/module/components/base/select/hooks/use-select-actions.js +151 -0
  110. package/dist/module/components/base/select/hooks/use-select-options.js +162 -0
  111. package/dist/module/components/base/select/hooks/use-selector.js +100 -0
  112. package/dist/module/components/base/select/index.js +3 -0
  113. package/dist/module/components/base/select/select-multiple-content.js +176 -0
  114. package/dist/module/components/base/select/select-popup.js +227 -0
  115. package/dist/module/components/base/select/select-single-content.js +94 -0
  116. package/dist/module/components/base/select/select-suffix.js +61 -0
  117. package/dist/module/components/base/select/select.js +279 -0
  118. package/dist/module/components/base/select/style/index.js +7 -0
  119. package/dist/module/components/base/select/style/select-multiple-content-styles.js +43 -0
  120. package/dist/module/components/base/select/style/select-popup-styles.js +64 -0
  121. package/dist/module/components/base/select/style/select-single-content-styles.js +25 -0
  122. package/dist/module/components/base/select/style/select-styles.js +43 -0
  123. package/dist/module/components/base/select/style/select-suffix-styles.js +18 -0
  124. package/dist/module/components/base/select/types.js +3 -0
  125. package/dist/module/components/base/tabs/style/index.js +33 -0
  126. package/dist/module/components/base/tabs/tabs.js +92 -47
  127. package/dist/module/components/base/tag/index.js +5 -0
  128. package/dist/module/components/base/tag/style/index.js +85 -0
  129. package/dist/module/components/base/tag/tag-context.js +8 -0
  130. package/dist/module/components/base/tag/tag-group.js +29 -0
  131. package/dist/module/components/base/tag/tag.js +41 -0
  132. package/dist/module/components/base/tag/types.js +3 -0
  133. package/dist/module/native-provider/native-provider.js +5 -5
  134. package/dist/module/shared/utils/index.js +2 -1
  135. package/dist/module/shared/utils/object.js +35 -0
  136. package/dist/typescript/components/base/carousel/carousel-indicator.d.ts +42 -0
  137. package/dist/typescript/components/base/carousel/carousel-indicator.d.ts.map +1 -0
  138. package/dist/typescript/components/base/carousel/carousel-slides.d.ts +49 -0
  139. package/dist/typescript/components/base/carousel/carousel-slides.d.ts.map +1 -0
  140. package/dist/typescript/components/base/carousel/carousel.d.ts +16 -11
  141. package/dist/typescript/components/base/carousel/carousel.d.ts.map +1 -1
  142. package/dist/typescript/components/base/carousel/hooks/index.d.ts +0 -2
  143. package/dist/typescript/components/base/carousel/hooks/index.d.ts.map +1 -1
  144. package/dist/typescript/components/base/carousel/hooks/use-carousel-index.d.ts.map +1 -1
  145. package/dist/typescript/components/base/carousel/hooks/use-carousel-lifecycle.d.ts.map +1 -1
  146. package/dist/typescript/components/base/carousel/hooks/use-carousel-pan-responder.d.ts.map +1 -1
  147. package/dist/typescript/components/base/carousel/hooks/use-carousel-position.d.ts.map +1 -1
  148. package/dist/typescript/components/base/carousel/index.d.ts +1 -4
  149. package/dist/typescript/components/base/carousel/index.d.ts.map +1 -1
  150. package/dist/typescript/components/base/carousel/style/index.d.ts +12 -0
  151. package/dist/typescript/components/base/carousel/style/index.d.ts.map +1 -1
  152. package/dist/typescript/components/base/carousel/types.d.ts +8 -17
  153. package/dist/typescript/components/base/carousel/types.d.ts.map +1 -1
  154. package/dist/typescript/components/base/date-picker/date-picker.d.ts +4 -2
  155. package/dist/typescript/components/base/date-picker/date-picker.d.ts.map +1 -1
  156. package/dist/typescript/components/base/date-picker/date-range-picker.d.ts +12 -3
  157. package/dist/typescript/components/base/date-picker/date-range-picker.d.ts.map +1 -1
  158. package/dist/typescript/components/base/date-picker/style/index.d.ts +9 -0
  159. package/dist/typescript/components/base/date-picker/style/index.d.ts.map +1 -0
  160. package/dist/typescript/components/base/date-picker-view/date-picker-view.d.ts +1 -6
  161. package/dist/typescript/components/base/date-picker-view/date-picker-view.d.ts.map +1 -1
  162. package/dist/typescript/components/base/date-picker-view/index.d.ts +0 -2
  163. package/dist/typescript/components/base/date-picker-view/index.d.ts.map +1 -1
  164. package/dist/typescript/components/base/date-picker-view/types.d.ts +1 -1
  165. package/dist/typescript/components/base/index.d.ts +4 -0
  166. package/dist/typescript/components/base/index.d.ts.map +1 -1
  167. package/dist/typescript/components/base/input/base-input.d.ts.map +1 -1
  168. package/dist/typescript/components/base/overflow/all-mode-overflow.d.ts +11 -0
  169. package/dist/typescript/components/base/overflow/all-mode-overflow.d.ts.map +1 -0
  170. package/dist/typescript/components/base/overflow/fixed-count-overflow.d.ts +11 -0
  171. package/dist/typescript/components/base/overflow/fixed-count-overflow.d.ts.map +1 -0
  172. package/dist/typescript/components/base/overflow/index.d.ts +3 -0
  173. package/dist/typescript/components/base/overflow/index.d.ts.map +1 -0
  174. package/dist/typescript/components/base/overflow/overflow.d.ts +13 -0
  175. package/dist/typescript/components/base/overflow/overflow.d.ts.map +1 -0
  176. package/dist/typescript/components/base/overflow/responsive-overflow.d.ts +12 -0
  177. package/dist/typescript/components/base/overflow/responsive-overflow.d.ts.map +1 -0
  178. package/dist/typescript/components/base/overflow/style/index.d.ts +31 -0
  179. package/dist/typescript/components/base/overflow/style/index.d.ts.map +1 -0
  180. package/dist/typescript/components/base/overflow/types.d.ts +77 -0
  181. package/dist/typescript/components/base/overflow/types.d.ts.map +1 -0
  182. package/dist/typescript/components/base/picker/index.d.ts +7 -1
  183. package/dist/typescript/components/base/picker/index.d.ts.map +1 -1
  184. package/dist/typescript/components/base/picker/picker-content.d.ts +27 -0
  185. package/dist/typescript/components/base/picker/picker-content.d.ts.map +1 -0
  186. package/dist/typescript/components/base/picker/picker-context.d.ts +18 -0
  187. package/dist/typescript/components/base/picker/picker-context.d.ts.map +1 -0
  188. package/dist/typescript/components/base/picker/picker-field.d.ts +10 -0
  189. package/dist/typescript/components/base/picker/picker-field.d.ts.map +1 -0
  190. package/dist/typescript/components/base/picker/picker.d.ts +22 -11
  191. package/dist/typescript/components/base/picker/picker.d.ts.map +1 -1
  192. package/dist/typescript/components/base/picker/style/index.d.ts +6 -2
  193. package/dist/typescript/components/base/picker/style/index.d.ts.map +1 -1
  194. package/dist/typescript/components/base/picker-backup/base-picker-container.d.ts +15 -0
  195. package/dist/typescript/components/base/picker-backup/base-picker-container.d.ts.map +1 -0
  196. package/dist/typescript/components/base/picker-backup/index.d.ts +3 -0
  197. package/dist/typescript/components/base/picker-backup/index.d.ts.map +1 -0
  198. package/dist/typescript/components/base/picker-backup/picker-backup.d.ts +26 -0
  199. package/dist/typescript/components/base/picker-backup/picker-backup.d.ts.map +1 -0
  200. package/dist/typescript/components/base/picker-backup/picker-copy.d.ts +13 -0
  201. package/dist/typescript/components/base/picker-backup/picker-copy.d.ts.map +1 -0
  202. package/dist/typescript/components/base/picker-backup/picker-trigger.d.ts.map +1 -0
  203. package/dist/typescript/components/base/picker-backup/style/index.d.ts +13 -0
  204. package/dist/typescript/components/base/picker-backup/style/index.d.ts.map +1 -0
  205. package/dist/typescript/components/base/picker-backup/utils.d.ts +8 -0
  206. package/dist/typescript/components/base/picker-backup/utils.d.ts.map +1 -0
  207. package/dist/typescript/components/base/picker-view/picker-view-column.d.ts.map +1 -1
  208. package/dist/typescript/components/base/picker-view/utils/picker.d.ts +3 -3
  209. package/dist/typescript/components/base/picker-view/utils/picker.d.ts.map +1 -1
  210. package/dist/typescript/components/base/portal/portal-host.d.ts +1 -0
  211. package/dist/typescript/components/base/portal/portal-host.d.ts.map +1 -1
  212. package/dist/typescript/components/base/portal/types.d.ts +2 -0
  213. package/dist/typescript/components/base/portal/types.d.ts.map +1 -1
  214. package/dist/typescript/components/base/select/hooks/use-select-actions.d.ts +144 -0
  215. package/dist/typescript/components/base/select/hooks/use-select-actions.d.ts.map +1 -0
  216. package/dist/typescript/components/base/select/hooks/use-select-options.d.ts +91 -0
  217. package/dist/typescript/components/base/select/hooks/use-select-options.d.ts.map +1 -0
  218. package/dist/typescript/components/base/select/hooks/use-selector.d.ts +90 -0
  219. package/dist/typescript/components/base/select/hooks/use-selector.d.ts.map +1 -0
  220. package/dist/typescript/components/base/select/index.d.ts +3 -0
  221. package/dist/typescript/components/base/select/index.d.ts.map +1 -0
  222. package/dist/typescript/components/base/select/select-multiple-content.d.ts +51 -0
  223. package/dist/typescript/components/base/select/select-multiple-content.d.ts.map +1 -0
  224. package/dist/typescript/components/base/select/select-popup.d.ts +107 -0
  225. package/dist/typescript/components/base/select/select-popup.d.ts.map +1 -0
  226. package/dist/typescript/components/base/select/select-single-content.d.ts +48 -0
  227. package/dist/typescript/components/base/select/select-single-content.d.ts.map +1 -0
  228. package/dist/typescript/components/base/select/select-suffix.d.ts +43 -0
  229. package/dist/typescript/components/base/select/select-suffix.d.ts.map +1 -0
  230. package/dist/typescript/components/base/select/select.d.ts +40 -0
  231. package/dist/typescript/components/base/select/select.d.ts.map +1 -0
  232. package/dist/typescript/components/base/select/style/index.d.ts +6 -0
  233. package/dist/typescript/components/base/select/style/index.d.ts.map +1 -0
  234. package/dist/typescript/components/base/select/style/select-multiple-content-styles.d.ts +40 -0
  235. package/dist/typescript/components/base/select/style/select-multiple-content-styles.d.ts.map +1 -0
  236. package/dist/typescript/components/base/select/style/select-popup-styles.d.ts +61 -0
  237. package/dist/typescript/components/base/select/style/select-popup-styles.d.ts.map +1 -0
  238. package/dist/typescript/components/base/select/style/select-single-content-styles.d.ts +22 -0
  239. package/dist/typescript/components/base/select/style/select-single-content-styles.d.ts.map +1 -0
  240. package/dist/typescript/components/base/select/style/select-styles.d.ts +40 -0
  241. package/dist/typescript/components/base/select/style/select-styles.d.ts.map +1 -0
  242. package/dist/typescript/components/base/select/style/select-suffix-styles.d.ts +15 -0
  243. package/dist/typescript/components/base/select/style/select-suffix-styles.d.ts.map +1 -0
  244. package/dist/typescript/components/base/select/types.d.ts +206 -0
  245. package/dist/typescript/components/base/select/types.d.ts.map +1 -0
  246. package/dist/typescript/components/base/tabs/style/index.d.ts +29 -0
  247. package/dist/typescript/components/base/tabs/style/index.d.ts.map +1 -0
  248. package/dist/typescript/components/base/tabs/tabs.d.ts +26 -5
  249. package/dist/typescript/components/base/tabs/tabs.d.ts.map +1 -1
  250. package/dist/typescript/components/base/tag/index.d.ts +5 -0
  251. package/dist/typescript/components/base/tag/index.d.ts.map +1 -0
  252. package/dist/typescript/components/base/tag/style/index.d.ts +61 -0
  253. package/dist/typescript/components/base/tag/style/index.d.ts.map +1 -0
  254. package/dist/typescript/components/base/tag/tag-context.d.ts +3 -0
  255. package/dist/typescript/components/base/tag/tag-context.d.ts.map +1 -0
  256. package/dist/typescript/components/base/tag/tag-group.d.ts +4 -0
  257. package/dist/typescript/components/base/tag/tag-group.d.ts.map +1 -0
  258. package/dist/typescript/components/base/tag/tag.d.ts +4 -0
  259. package/dist/typescript/components/base/tag/tag.d.ts.map +1 -0
  260. package/dist/typescript/components/base/tag/types.d.ts +48 -0
  261. package/dist/typescript/components/base/tag/types.d.ts.map +1 -0
  262. package/dist/typescript/native-provider/native-provider.d.ts +2 -0
  263. package/dist/typescript/native-provider/native-provider.d.ts.map +1 -1
  264. package/dist/typescript/shared/utils/index.d.ts +1 -0
  265. package/dist/typescript/shared/utils/index.d.ts.map +1 -1
  266. package/dist/typescript/shared/utils/object.d.ts +21 -0
  267. package/dist/typescript/shared/utils/object.d.ts.map +1 -0
  268. package/package.json +1 -1
  269. package/src/components/base/carousel/carousel-indicator.tsx +80 -0
  270. package/src/components/base/carousel/carousel-slides.tsx +177 -0
  271. package/src/components/base/carousel/carousel.tsx +108 -118
  272. package/src/components/base/carousel/hooks/index.ts +0 -2
  273. package/src/components/base/carousel/hooks/use-carousel-index.ts +13 -9
  274. package/src/components/base/carousel/hooks/use-carousel-lifecycle.ts +4 -3
  275. package/src/components/base/carousel/hooks/use-carousel-pan-responder.ts +40 -16
  276. package/src/components/base/carousel/hooks/use-carousel-position.ts +4 -1
  277. package/src/components/base/carousel/index.ts +1 -3
  278. package/src/components/base/carousel/style/index.ts +12 -0
  279. package/src/components/base/carousel/types.ts +8 -21
  280. package/src/components/base/date-picker/date-picker.tsx +64 -61
  281. package/src/components/base/date-picker/date-range-picker.tsx +178 -70
  282. package/src/components/base/date-picker/style/index.ts +10 -0
  283. package/src/components/base/date-picker-view/date-picker-view.tsx +21 -68
  284. package/src/components/base/date-picker-view/index.ts +0 -2
  285. package/src/components/base/date-picker-view/types.ts +1 -1
  286. package/src/components/base/index.ts +4 -0
  287. package/src/components/base/input/base-input.tsx +4 -2
  288. package/src/components/base/overflow/all-mode-overflow.tsx +49 -0
  289. package/src/components/base/overflow/fixed-count-overflow.tsx +71 -0
  290. package/src/components/base/overflow/index.ts +2 -0
  291. package/src/components/base/overflow/overflow.tsx +60 -0
  292. package/src/components/base/overflow/responsive-overflow.tsx +349 -0
  293. package/src/components/base/overflow/style/index.ts +32 -0
  294. package/src/components/base/overflow/types.ts +75 -0
  295. package/src/components/base/picker/index.ts +11 -1
  296. package/src/components/base/picker/picker-content.tsx +90 -0
  297. package/src/components/base/picker/picker-context.ts +19 -0
  298. package/src/components/base/picker/picker-field.tsx +56 -0
  299. package/src/components/base/picker/picker.tsx +49 -116
  300. package/src/components/base/picker/style/index.ts +4 -2
  301. package/src/components/base/picker-backup/base-picker-container.tsx +55 -0
  302. package/src/components/base/picker-backup/index.ts +2 -0
  303. package/src/components/base/picker-backup/picker-backup.tsx +110 -0
  304. package/src/components/base/picker-backup/picker-copy.tsx +125 -0
  305. package/src/components/base/{picker → picker-backup}/picker-trigger.tsx +2 -2
  306. package/src/components/base/picker-backup/style/index.ts +14 -0
  307. package/src/components/base/picker-backup/utils.ts +62 -0
  308. package/src/components/base/picker-view/picker-view-column.tsx +20 -0
  309. package/src/components/base/picker-view/picker-view.tsx +4 -4
  310. package/src/components/base/picker-view/utils/picker.ts +3 -5
  311. package/src/components/base/portal/portal-host.tsx +13 -3
  312. package/src/components/base/portal/types.ts +2 -0
  313. package/src/components/base/select/hooks/use-select-actions.ts +263 -0
  314. package/src/components/base/select/hooks/use-select-options.ts +250 -0
  315. package/src/components/base/select/hooks/use-selector.ts +155 -0
  316. package/src/components/base/select/index.ts +2 -0
  317. package/src/components/base/select/select-multiple-content.tsx +292 -0
  318. package/src/components/base/select/select-popup.tsx +384 -0
  319. package/src/components/base/select/select-single-content.tsx +127 -0
  320. package/src/components/base/select/select-suffix.tsx +100 -0
  321. package/src/components/base/select/select.tsx +302 -0
  322. package/src/components/base/select/style/index.ts +5 -0
  323. package/src/components/base/select/style/select-multiple-content-styles.ts +41 -0
  324. package/src/components/base/select/style/select-popup-styles.ts +62 -0
  325. package/src/components/base/select/style/select-single-content-styles.ts +23 -0
  326. package/src/components/base/select/style/select-styles.ts +41 -0
  327. package/src/components/base/select/style/select-suffix-styles.ts +16 -0
  328. package/src/components/base/select/types.ts +261 -0
  329. package/src/components/base/tabs/style/index.ts +32 -0
  330. package/src/components/base/tabs/tabs.tsx +146 -55
  331. package/src/components/base/tag/index.ts +5 -0
  332. package/src/components/base/tag/style/index.tsx +84 -0
  333. package/src/components/base/tag/tag-context.ts +9 -0
  334. package/src/components/base/tag/tag-group.tsx +31 -0
  335. package/src/components/base/tag/tag.tsx +50 -0
  336. package/src/components/base/tag/types.ts +71 -0
  337. package/src/native-provider/native-provider.tsx +4 -4
  338. package/src/shared/utils/index.ts +1 -0
  339. package/src/shared/utils/object.ts +37 -0
  340. package/dist/commonjs/components/base/carousel/carousel-item.js +0 -45
  341. package/dist/commonjs/components/base/carousel/constants.js +0 -25
  342. package/dist/commonjs/components/base/carousel/hooks/use-carousel-indicator.js +0 -63
  343. package/dist/commonjs/components/base/carousel/hooks/use-carousel-slides.js +0 -95
  344. package/dist/commonjs/components/base/carousel/utils.js +0 -63
  345. package/dist/commonjs/components/base/date-picker-view/date-range-picker-view.js +0 -145
  346. package/dist/commonjs/components/base/date-picker-view/date-time-picker.js +0 -39
  347. package/dist/module/components/base/carousel/carousel-item.js +0 -40
  348. package/dist/module/components/base/carousel/constants.js +0 -21
  349. package/dist/module/components/base/carousel/hooks/use-carousel-indicator.js +0 -58
  350. package/dist/module/components/base/carousel/hooks/use-carousel-slides.js +0 -90
  351. package/dist/module/components/base/carousel/utils.js +0 -55
  352. package/dist/module/components/base/date-picker-view/date-range-picker-view.js +0 -138
  353. package/dist/module/components/base/date-picker-view/date-time-picker.js +0 -34
  354. package/dist/typescript/components/base/carousel/carousel-item.d.ts +0 -26
  355. package/dist/typescript/components/base/carousel/carousel-item.d.ts.map +0 -1
  356. package/dist/typescript/components/base/carousel/constants.d.ts +0 -17
  357. package/dist/typescript/components/base/carousel/constants.d.ts.map +0 -1
  358. package/dist/typescript/components/base/carousel/hooks/use-carousel-indicator.d.ts +0 -37
  359. package/dist/typescript/components/base/carousel/hooks/use-carousel-indicator.d.ts.map +0 -1
  360. package/dist/typescript/components/base/carousel/hooks/use-carousel-slides.d.ts +0 -51
  361. package/dist/typescript/components/base/carousel/hooks/use-carousel-slides.d.ts.map +0 -1
  362. package/dist/typescript/components/base/carousel/utils.d.ts +0 -25
  363. package/dist/typescript/components/base/carousel/utils.d.ts.map +0 -1
  364. package/dist/typescript/components/base/date-picker-view/date-range-picker-view.d.ts +0 -26
  365. package/dist/typescript/components/base/date-picker-view/date-range-picker-view.d.ts.map +0 -1
  366. package/dist/typescript/components/base/date-picker-view/date-time-picker.d.ts +0 -3
  367. package/dist/typescript/components/base/date-picker-view/date-time-picker.d.ts.map +0 -1
  368. package/dist/typescript/components/base/picker/picker-trigger.d.ts.map +0 -1
  369. package/src/components/base/carousel/carousel-item.tsx +0 -35
  370. package/src/components/base/carousel/constants.ts +0 -19
  371. package/src/components/base/carousel/hooks/use-carousel-indicator.tsx +0 -84
  372. package/src/components/base/carousel/hooks/use-carousel-slides.tsx +0 -131
  373. package/src/components/base/carousel/utils.ts +0 -55
  374. package/src/components/base/date-picker-view/date-range-picker-view.tsx +0 -191
  375. package/src/components/base/date-picker-view/date-time-picker.tsx +0 -34
  376. /package/dist/typescript/components/base/{picker → picker-backup}/picker-trigger.d.ts +0 -0
@@ -4,16 +4,24 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.Tabs = void 0;
7
+ var _ahooks = require("ahooks");
7
8
  var _react = require("react");
8
9
  var _reactNative = require("react-native");
9
10
  var _index = require("./../index.js");
10
11
  var _index2 = require("../../../native-provider/index.js");
12
+ var _index3 = require("./style/index.js");
11
13
  var _jsxRuntime = require("react/jsx-runtime");
12
14
  const Tabs = ({
13
15
  tabs,
14
- onChange
16
+ equalWidth = false,
17
+ variant = 'underline',
18
+ ...restProps
15
19
  }) => {
16
- const styles = useStyles();
20
+ const [activeValue, setActiveValue] = (0, _ahooks.useControllableValue)(restProps, {
21
+ trigger: 'onChange',
22
+ defaultValue: restProps.defaultValue ?? tabs[0]?.value
23
+ });
24
+ const styles = (0, _index3.useTabsStyles)();
17
25
  const theme = (0, _index2.useTheme)();
18
26
  const tabNum = tabs.length;
19
27
  const scrollViewWidthRef = (0, _react.useRef)(0);
@@ -41,27 +49,21 @@ const Tabs = ({
41
49
  };
42
50
  initIndicator();
43
51
  };
44
- const normalizedTabs = tabs.map(tab => {
45
- if (typeof tab === 'string') {
46
- return {
47
- label: tab,
48
- value: tab
49
- };
50
- }
51
- });
52
52
  const navigateTo = index => {
53
53
  const targetLayout = layouts.current[index];
54
54
  const left = targetLayout.tab.x + (targetLayout.tab.width - targetLayout.text.width) / 2;
55
- const width = targetLayout.text.width;
56
- _reactNative.Animated.parallel([_reactNative.Animated.timing(animatedIndicatorLeft.current, {
57
- toValue: left,
58
- useNativeDriver: false,
59
- duration: 300
60
- }), _reactNative.Animated.timing(animatedIndicatorWidth.current, {
61
- toValue: width,
62
- useNativeDriver: false,
63
- duration: 300
64
- })]).start();
55
+ if (variant === 'underline') {
56
+ const width = targetLayout.text.width;
57
+ _reactNative.Animated.parallel([_reactNative.Animated.timing(animatedIndicatorLeft.current, {
58
+ toValue: left,
59
+ useNativeDriver: false,
60
+ duration: 300
61
+ }), _reactNative.Animated.timing(animatedIndicatorWidth.current, {
62
+ toValue: width,
63
+ useNativeDriver: false,
64
+ duration: 300
65
+ })]).start();
66
+ }
65
67
  const hh = scrollViewWidthRef.current / 2;
66
68
  scrollViewRef.current?.scrollTo({
67
69
  x: targetLayout.tab.x + targetLayout.tab.width / 2 - hh,
@@ -69,10 +71,10 @@ const Tabs = ({
69
71
  });
70
72
  };
71
73
  const genOnPress = (v, index) => {
72
- onChange?.(v);
74
+ setActiveValue?.(v.value);
73
75
  navigateTo(index);
74
76
  };
75
- const initIndicator = (0, _react.useCallback)(() => {
77
+ const initIndicator = (0, _ahooks.useMemoizedFn)(() => {
76
78
  const layoutItems = layouts.current.filter(item => item.tab && item.text);
77
79
  if (layoutItems.length === layouts.current.length) {
78
80
  setState(s => ({
@@ -80,7 +82,7 @@ const Tabs = ({
80
82
  layoutFinish: true
81
83
  }));
82
84
  }
83
- }, []);
85
+ });
84
86
  const indicatorJSX = (0, _react.useMemo)(() => {
85
87
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.View, {
86
88
  style: {
@@ -93,22 +95,72 @@ const Tabs = ({
93
95
  }
94
96
  });
95
97
  }, [theme]);
96
- const tabsJSX = normalizedTabs.map((item, index) => {
98
+ const renderTab = (0, _ahooks.useMemoizedFn)((tab, index) => {
99
+ const isActive = activeValue === tab.value;
100
+ const badgeCount = tab.badge !== undefined ? typeof tab.badge === 'number' ? tab.badge : undefined : undefined;
101
+ if (variant === 'label') {
102
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
103
+ onLayout: genOnLayoutTab(index),
104
+ style: [{
105
+ paddingVertical: 10,
106
+ zIndex: tabNum - index
107
+ }, equalWidth && {
108
+ flex: 1
109
+ }],
110
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Badge, {
111
+ count: badgeCount,
112
+ visible: tab.badge !== undefined,
113
+ size: "small",
114
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
115
+ activeOpacity: 0.7,
116
+ onPress: () => genOnPress(tab, index),
117
+ style: [styles.labelTab, isActive && styles.labelTabActive, equalWidth && {
118
+ alignSelf: 'stretch',
119
+ justifyContent: 'center',
120
+ alignItems: 'center'
121
+ }],
122
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Text, {
123
+ onLayout: genOnLayoutText(index),
124
+ style: [styles.labelText, isActive && styles.labelTextActive],
125
+ size: 14,
126
+ children: tab.label
127
+ })
128
+ })
129
+ })
130
+ }, tab.value);
131
+ }
97
132
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
98
- style: styles.tabItem,
99
- onPress: () => genOnPress(item, index),
133
+ style: [styles.tabItem, {
134
+ zIndex: tabNum - index
135
+ }, equalWidth && {
136
+ flex: 1,
137
+ justifyContent: 'center',
138
+ alignItems: 'center'
139
+ }],
140
+ onPress: () => genOnPress(tab, index),
100
141
  onLayout: genOnLayoutTab(index),
101
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Text, {
102
- onLayout: genOnLayoutText(index),
103
- children: item?.label
142
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Badge, {
143
+ count: badgeCount,
144
+ visible: tab.badge !== undefined,
145
+ size: "small",
146
+ offset: [-4, -4],
147
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Text, {
148
+ color: isActive ? theme.palette.fontGray1 : theme.palette.fontGray2,
149
+ font: isActive ? 'semiBold' : 'regular',
150
+ onLayout: genOnLayoutText(index),
151
+ size: 14,
152
+ children: tab?.label
153
+ })
104
154
  })
105
- }, item?.value);
155
+ }, tab?.value);
106
156
  });
107
157
  (0, _react.useEffect)(() => {
108
158
  if (state.layoutFinish) {
109
- navigateTo(0);
159
+ const index = tabs.findIndex(item => item.value === activeValue);
160
+ navigateTo(index === -1 ? 0 : index);
110
161
  }
111
- }, [state.layoutFinish]);
162
+ // eslint-disable-next-line react-hooks/exhaustive-deps
163
+ }, [state.layoutFinish, activeValue]);
112
164
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
113
165
  style: styles.container,
114
166
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.ScrollView, {
@@ -116,22 +168,15 @@ const Tabs = ({
116
168
  horizontal: true,
117
169
  showsHorizontalScrollIndicator: false,
118
170
  onLayout: onLayoutScrollView,
171
+ scrollEnabled: !equalWidth,
119
172
  contentContainerStyle: {
120
173
  alignContent: 'center',
121
- columnGap: 16
174
+ columnGap: 8,
175
+ flexGrow: equalWidth ? 1 : 0,
176
+ paddingHorizontal: 16
122
177
  },
123
- children: [tabsJSX, indicatorJSX]
178
+ children: [tabs.map(renderTab), indicatorJSX]
124
179
  })
125
180
  });
126
181
  };
127
- exports.Tabs = Tabs;
128
- const useStyles = (0, _index2.createThemedStyles)(() => {
129
- return {
130
- container: {
131
- paddingHorizontal: 16
132
- },
133
- tabItem: {
134
- paddingVertical: 16
135
- }
136
- };
137
- });
182
+ exports.Tabs = Tabs;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {};
7
+ exports.default = void 0;
8
+ var _tag = require("./tag.js");
9
+ Object.keys(_tag).forEach(function (key) {
10
+ if (key === "default" || key === "__esModule") return;
11
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
12
+ if (key in exports && exports[key] === _tag[key]) return;
13
+ Object.defineProperty(exports, key, {
14
+ enumerable: true,
15
+ get: function () {
16
+ return _tag[key];
17
+ }
18
+ });
19
+ });
20
+ var _default = exports.default = _tag.Tag;
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useTagStyles = exports.useTagGroupStyles = void 0;
7
+ var _index = require("../../../../native-provider/index.js");
8
+ const useTagStyles = exports.useTagStyles = (0, _index.createThemedStyles)((theme, props) => {
9
+ const {
10
+ themeColor = 'primary'
11
+ } = props;
12
+ const BASE_COLOR_MAP = {
13
+ primary: {
14
+ baseColor: theme.palette.brand7,
15
+ lightColor: theme.palette.brand1
16
+ },
17
+ danger: {
18
+ baseColor: theme.palette.error6,
19
+ lightColor: theme.palette.error1
20
+ },
21
+ default: {
22
+ baseColor: theme.palette.gray6,
23
+ lightColor: theme.palette.gray2
24
+ }
25
+ };
26
+ const Color = BASE_COLOR_MAP[themeColor];
27
+ return {
28
+ tag: {},
29
+ large: {
30
+ paddingHorizontal: 8,
31
+ paddingVertical: 4,
32
+ borderRadius: 4
33
+ },
34
+ medium: {
35
+ paddingHorizontal: 6,
36
+ paddingVertical: 2,
37
+ borderRadius: 2
38
+ },
39
+ small: {
40
+ paddingHorizontal: 4,
41
+ paddingVertical: 1.5,
42
+ borderRadius: 1.5
43
+ },
44
+ disabled: {
45
+ opacity: 0.5
46
+ },
47
+ 'font-small': {
48
+ fontSize: 10
49
+ },
50
+ 'font-medium': {
51
+ fontSize: 12
52
+ },
53
+ 'font-large': {
54
+ fontSize: 14
55
+ },
56
+ filled: {
57
+ backgroundColor: Color.lightColor
58
+ },
59
+ 'text-filled': {
60
+ color: Color.baseColor
61
+ },
62
+ outlined: {
63
+ borderColor: Color.baseColor,
64
+ borderWidth: 0.5
65
+ },
66
+ 'text-outlined': {
67
+ color: Color.baseColor
68
+ },
69
+ solid: {
70
+ backgroundColor: Color.baseColor
71
+ },
72
+ 'text-solid': {
73
+ color: '#fff'
74
+ }
75
+ };
76
+ });
77
+ const useTagGroupStyles = exports.useTagGroupStyles = (0, _index.createThemedStyles)(() => {
78
+ return {
79
+ container: {
80
+ flexDirection: 'row',
81
+ alignItems: 'center',
82
+ flexWrap: 'wrap'
83
+ },
84
+ vertical: {
85
+ flexDirection: 'column',
86
+ alignItems: 'stretch'
87
+ }
88
+ };
89
+ });
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TagContext = void 0;
7
+ var _react = require("react");
8
+ const TagContext = exports.TagContext = /*#__PURE__*/(0, _react.createContext)({
9
+ size: 'medium',
10
+ disabled: false
11
+ });
12
+ TagContext.displayName = 'TagContext';
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TagGroup = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _index = require("./style/index.js");
10
+ var _tagContext = require("./tag-context.js");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ const TagGroup = ({
14
+ children,
15
+ direction = 'horizontal',
16
+ gap = 16,
17
+ style,
18
+ size,
19
+ disabled
20
+ }) => {
21
+ const groupStyles = (0, _index.useTagGroupStyles)();
22
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_tagContext.TagContext.Provider, {
23
+ value: {
24
+ size,
25
+ disabled
26
+ },
27
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
28
+ style: [groupStyles.container, direction === 'vertical' && groupStyles.vertical, gap > 0 && {
29
+ gap
30
+ }, style],
31
+ children: children
32
+ })
33
+ });
34
+ };
35
+ exports.TagGroup = TagGroup;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Tag = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _index = require("./../index.js");
10
+ var _index2 = require("./style/index.js");
11
+ var _tagContext = require("./tag-context.js");
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
+ const Tag = ({
15
+ text,
16
+ variant = 'solid',
17
+ style,
18
+ theme = 'primary',
19
+ disabled: customDisabled,
20
+ size,
21
+ child,
22
+ textStyle,
23
+ onPress
24
+ }) => {
25
+ const context = (0, _react.use)(_tagContext.TagContext);
26
+ const mergedDisabled = customDisabled ?? context.disabled ?? false;
27
+ const mergedSize = size ?? context.size ?? 'medium';
28
+ const styles = (0, _index2.useTagStyles)({
29
+ variant,
30
+ themeColor: theme,
31
+ mergedSize
32
+ });
33
+ const tagStyle = (0, _react.useMemo)(() => {
34
+ return [styles.tag, styles[variant], styles[mergedSize], style];
35
+ }, [mergedSize, style, variant, styles]);
36
+ const tagNode = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
37
+ style: tagStyle,
38
+ onPress: mergedDisabled ? undefined : onPress,
39
+ disabled: mergedDisabled,
40
+ children: child ? child : /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Text, {
41
+ style: [styles[`text-${variant}`], styles[`font-${mergedSize}`], textStyle],
42
+ children: text
43
+ })
44
+ });
45
+ return tagNode;
46
+ };
47
+ exports.Tag = Tag;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.NativeProvider = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
- var _reactNative = require("react-native");
9
8
  var _index = require("../components/base/index.js");
10
9
  var _index2 = require("../shared/theme/index.js");
11
10
  var _index3 = require("./contexts/index.js");
@@ -19,9 +18,9 @@ const NativeProvider = ({
19
18
  children,
20
19
  navigators,
21
20
  errorBoundary,
22
- request = null
21
+ request = null,
22
+ portalHostProps
23
23
  }) => {
24
- const isNative = _reactNative.Platform.OS !== 'web';
25
24
  const themeContextValue = (0, _react.useMemo)(() => (0, _index2.createTheme)(theme), [theme]);
26
25
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_safeAreaCompactProvider.SafeAreaCompactProvider, {
27
26
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_index3.ConfigContext, {
@@ -34,9 +33,10 @@ const NativeProvider = ({
34
33
  value: themeContextValue,
35
34
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_errorBoundary.ErrorBoundary, {
36
35
  ...errorBoundary,
37
- children: isNative ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Portal.Host, {
36
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Portal.Host, {
37
+ ...portalHostProps,
38
38
  children: children
39
- }) : children
39
+ })
40
40
  })
41
41
  })
42
42
  })
@@ -24,4 +24,15 @@ Object.keys(_error).forEach(function (key) {
24
24
  return _error[key];
25
25
  }
26
26
  });
27
+ });
28
+ var _object = require("./object.js");
29
+ Object.keys(_object).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _object[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _object[key];
36
+ }
37
+ });
27
38
  });
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.shallowEqual = void 0;
7
+ var _lodashEs = require("lodash-es");
8
+ /**
9
+ * 浅比较两个对象是否相等
10
+ *
11
+ * 仅比较对象的第一层属性,使用严格相等(===)进行比较。
12
+ * 不会递归比较嵌套对象或数组的内容。
13
+ *
14
+ * @param a - 第一个对象
15
+ * @param b - 第二个对象
16
+ * @returns 如果两个对象的所有第一层属性都相等则返回 true,否则返回 false。如果 a/b 有一个非对象,则直接比较二者
17
+ *
18
+ * @example
19
+ * shallowEqual({ a: 1, b: 2 }, { a: 1, b: 2 }); // true
20
+ * shallowEqual({ a: 1 }, { a: 1, b: 2 }); // false
21
+ * shallowEqual({ a: { x: 1 } }, { a: { x: 1 } }); // false
22
+ * shallowEqual(null, null); // true
23
+ * shallowEqual(null, undefined); // false
24
+ * shallowEqual(1, 1); // true
25
+ * shallowEqual(1, '1'); // false
26
+ */
27
+ const shallowEqual = (a, b) => {
28
+ if ((0, _lodashEs.isNil)(a) || (0, _lodashEs.isNil)(b)) {
29
+ return a === b;
30
+ }
31
+ if (typeof a !== 'object' || typeof b !== 'object') {
32
+ return a === b;
33
+ }
34
+ const aKeys = Object.keys(a);
35
+ const bKeys = Object.keys(b);
36
+ if (aKeys.length !== bKeys.length) return false;
37
+ return aKeys.every(key => a[key] === b[key]);
38
+ };
39
+ exports.shallowEqual = shallowEqual;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ import { View } from 'react-native';
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ /**
6
+ * 轮播图指示器渲染组件
7
+ *
8
+ * 负责渲染轮播图底部的指示器(小圆点),支持自定义指示器或使用默认样式。
9
+ * 当轮播项总数小于等于 1 时,不显示指示器。
10
+ *
11
+ * @param props - 组件属性配置
12
+ * @param props.indicator - 指示器配置(false 表示不显示,函数表示自定义渲染)
13
+ * @param props.indicatorProps - 指示器属性配置(颜色、样式)
14
+ * @param props.total - 轮播项总数
15
+ * @param props.current - 当前激活的索引
16
+ * @param props.activeColor - 激活状态的指示器颜色
17
+ * @param props.inactiveColor - 非激活状态的指示器颜色
18
+ * @param props.styles - 指示器样式对象
19
+ *
20
+ * @returns 渲染的指示器内容或 null
21
+ */
22
+ export const CarouselIndicator = props => {
23
+ const {
24
+ indicator,
25
+ indicatorProps,
26
+ total,
27
+ current,
28
+ activeColor,
29
+ inactiveColor,
30
+ styles
31
+ } = props;
32
+ if (indicator === false) return null;
33
+ if (total <= 1) return null;
34
+ if (typeof indicator === 'function') {
35
+ return indicator(total, current);
36
+ }
37
+ const dotActiveColor = indicatorProps?.color ?? activeColor;
38
+ return /*#__PURE__*/_jsx(View, {
39
+ style: [styles.indicatorContainer, indicatorProps?.style],
40
+ children: Array.from({
41
+ length: total
42
+ }, (_, i) => {
43
+ const isActive = i === current;
44
+ return /*#__PURE__*/_jsx(View, {
45
+ style: [styles.indicatorDot, {
46
+ backgroundColor: isActive ? dotActiveColor : inactiveColor
47
+ }, isActive && styles.indicatorDotActive]
48
+ }, i);
49
+ })
50
+ });
51
+ };
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+
3
+ import { useMemoizedFn } from 'ahooks';
4
+ import { clamp } from 'lodash-es';
5
+ import { useMemo } from 'react';
6
+ import { View } from 'react-native';
7
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
8
+ /**
9
+ * 轮播图滑块渲染组件
10
+ *
11
+ * 负责渲染轮播图的滑块内容,使用 data + renderItem 模式。
12
+ * 实现虚拟渲染优化,仅渲染可见范围内的滑块,并处理循环播放时的克隆逻辑。
13
+ * 为虚拟渲染添加前后占位空间,确保滚动位置正确。
14
+ *
15
+ * @template Data - 数据项类型
16
+ * @param props - 组件属性配置
17
+ * @param props.data - 数据源数组
18
+ * @param props.renderItem - 渲染每一项的函数
19
+ * @param props.total - 轮播项总数
20
+ * @param props.virtualRange - 虚拟渲染范围(start、end、isVirtual)
21
+ * @param props.loopEnabled - 是否启用循环播放
22
+ * @param props.clonesBefore - 循环播放时前置克隆节点数量
23
+ * @param props.direction - 滑动方向
24
+ * @param props.slidePixels - 单个滑块的像素大小
25
+ * @param props.extTotal - 扩展后的总数(包含克隆节点)
26
+ *
27
+ * @returns 渲染的滑块内容或 null
28
+ */
29
+ export const CarouselSlides = props => {
30
+ const {
31
+ data,
32
+ renderItem,
33
+ total,
34
+ virtualRange,
35
+ loopEnabled,
36
+ clonesBefore,
37
+ direction,
38
+ slidePixels,
39
+ extTotal
40
+ } = props;
41
+
42
+ // 计算滑块包装器样式
43
+ const slideWrapperStyle = useMemo(() => {
44
+ return direction === 'horizontal' ? {
45
+ width: slidePixels,
46
+ height: '100%'
47
+ } : {
48
+ height: slidePixels,
49
+ width: '100%'
50
+ };
51
+ }, [direction, slidePixels]);
52
+
53
+ // 计算虚拟渲染的占位空间样式
54
+ const spacerStyles = useMemo(() => {
55
+ if (!virtualRange) return null;
56
+ const {
57
+ start,
58
+ end
59
+ } = virtualRange;
60
+ const leadingSize = start * slidePixels;
61
+ const trailingSize = (extTotal - end - 1) * slidePixels;
62
+ return {
63
+ leading: direction === 'horizontal' ? {
64
+ width: leadingSize
65
+ } : {
66
+ height: leadingSize
67
+ },
68
+ trailing: direction === 'horizontal' ? {
69
+ width: trailingSize
70
+ } : {
71
+ height: trailingSize
72
+ },
73
+ leadingSize,
74
+ trailingSize
75
+ };
76
+ }, [virtualRange, slidePixels, extTotal, direction]);
77
+ const getIndexFromExtIndex = useMemoizedFn(extIndex => {
78
+ if (!loopEnabled) return clamp(extIndex, 0, total - 1);
79
+ if (extIndex < clonesBefore) {
80
+ return ((extIndex - clonesBefore) % total + total) % total;
81
+ }
82
+ if (extIndex >= clonesBefore + total) {
83
+ return (extIndex - clonesBefore - total) % total;
84
+ }
85
+ return extIndex - clonesBefore;
86
+ });
87
+
88
+ // 渲染滑块元素
89
+ const slideElements = useMemo(() => {
90
+ if (!virtualRange) return null;
91
+ const {
92
+ start,
93
+ end
94
+ } = virtualRange;
95
+ const elements = [];
96
+ const getElementForExtIndex = extIndex => {
97
+ const logicalIndex = loopEnabled ? getIndexFromExtIndex(extIndex) : clamp(extIndex, 0, total - 1);
98
+ const item = data[logicalIndex];
99
+ return renderItem(item, logicalIndex);
100
+ };
101
+ for (let extIndex = start; extIndex <= end; extIndex += 1) {
102
+ const element = getElementForExtIndex(extIndex);
103
+ if (!element) continue;
104
+ elements.push(/*#__PURE__*/_jsx(View, {
105
+ style: slideWrapperStyle,
106
+ children: element
107
+ }, extIndex));
108
+ }
109
+ return elements;
110
+ }, [virtualRange, loopEnabled, total, data, renderItem, slideWrapperStyle, getIndexFromExtIndex]);
111
+
112
+ // 前置占位空间
113
+ const leadSpacer = useMemo(() => {
114
+ if (!virtualRange?.isVirtual || !spacerStyles || spacerStyles.leadingSize <= 0) {
115
+ return null;
116
+ }
117
+ return /*#__PURE__*/_jsx(View, {
118
+ style: spacerStyles.leading
119
+ });
120
+ }, [virtualRange?.isVirtual, spacerStyles]);
121
+
122
+ // 后置占位空间
123
+ const trailSpacer = useMemo(() => {
124
+ if (!virtualRange?.isVirtual || !spacerStyles || spacerStyles.trailingSize <= 0) {
125
+ return null;
126
+ }
127
+ return /*#__PURE__*/_jsx(View, {
128
+ style: spacerStyles.trailing
129
+ });
130
+ }, [virtualRange?.isVirtual, spacerStyles]);
131
+ if (!virtualRange) return null;
132
+ return /*#__PURE__*/_jsxs(_Fragment, {
133
+ children: [leadSpacer, slideElements, trailSpacer]
134
+ });
135
+ };