@seakoi/native-ui 1.1.3 → 1.2.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 (224) hide show
  1. package/CHANGELOG.md +17 -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 +30 -8
  18. package/dist/commonjs/components/base/picker/index.js +26 -4
  19. package/dist/commonjs/components/base/picker/picker-content.js +60 -0
  20. package/dist/commonjs/components/base/picker/picker-context.js +9 -0
  21. package/dist/commonjs/components/base/picker/picker-field.js +37 -0
  22. package/dist/commonjs/components/base/picker/picker.js +22 -96
  23. package/dist/commonjs/components/base/picker/style/index.js +1 -3
  24. package/dist/commonjs/components/base/picker-backup/base-picker-container.js +50 -0
  25. package/dist/commonjs/components/base/picker-backup/index.js +27 -0
  26. package/dist/commonjs/components/base/picker-backup/picker-backup.js +75 -0
  27. package/dist/commonjs/components/base/picker-backup/picker-copy.js +106 -0
  28. package/dist/commonjs/components/base/{picker → picker-backup}/picker-trigger.js +5 -5
  29. package/dist/commonjs/components/base/picker-backup/style/index.js +19 -0
  30. package/dist/commonjs/components/base/picker-backup/utils.js +53 -0
  31. package/dist/commonjs/components/base/picker-view/picker-view-column.js +15 -0
  32. package/dist/commonjs/components/base/picker-view/picker-view.js +4 -4
  33. package/dist/commonjs/components/base/tag/index.js +20 -0
  34. package/dist/commonjs/components/base/tag/style/index.js +89 -0
  35. package/dist/commonjs/components/base/tag/tag-context.js +12 -0
  36. package/dist/commonjs/components/base/tag/tag-group.js +35 -0
  37. package/dist/commonjs/components/base/tag/tag.js +47 -0
  38. package/dist/commonjs/components/base/tag/types.js +5 -0
  39. package/dist/module/components/base/carousel/carousel-indicator.js +51 -0
  40. package/dist/module/components/base/carousel/carousel-slides.js +135 -0
  41. package/dist/module/components/base/carousel/carousel.js +116 -124
  42. package/dist/module/components/base/carousel/hooks/index.js +0 -2
  43. package/dist/module/components/base/carousel/hooks/use-carousel-index.js +15 -11
  44. package/dist/module/components/base/carousel/hooks/use-carousel-lifecycle.js +6 -2
  45. package/dist/module/components/base/carousel/hooks/use-carousel-pan-responder.js +40 -11
  46. package/dist/module/components/base/carousel/hooks/use-carousel-position.js +5 -1
  47. package/dist/module/components/base/carousel/index.js +1 -5
  48. package/dist/module/components/base/carousel/style/index.js +12 -0
  49. package/dist/module/components/base/date-picker/date-picker.js +60 -48
  50. package/dist/module/components/base/date-picker/date-range-picker.js +146 -54
  51. package/dist/module/components/base/date-picker/style/index.js +11 -0
  52. package/dist/module/components/base/date-picker-view/date-picker-view.js +23 -57
  53. package/dist/module/components/base/date-picker-view/index.js +1 -3
  54. package/dist/module/components/base/index.js +2 -0
  55. package/dist/module/components/base/picker/index.js +9 -1
  56. package/dist/module/components/base/picker/picker-content.js +54 -0
  57. package/dist/module/components/base/picker/picker-context.js +4 -0
  58. package/dist/module/components/base/picker/picker-field.js +32 -0
  59. package/dist/module/components/base/picker/picker.js +25 -99
  60. package/dist/module/components/base/picker/style/index.js +1 -3
  61. package/dist/module/components/base/picker-backup/base-picker-container.js +44 -0
  62. package/dist/module/components/base/picker-backup/index.js +4 -0
  63. package/dist/module/components/base/picker-backup/picker-backup.js +69 -0
  64. package/dist/module/components/base/picker-backup/picker-copy.js +101 -0
  65. package/dist/module/components/base/{picker → picker-backup}/picker-trigger.js +2 -2
  66. package/dist/module/components/base/picker-backup/style/index.js +15 -0
  67. package/dist/module/components/base/picker-backup/utils.js +48 -0
  68. package/dist/module/components/base/picker-view/picker-view-column.js +15 -0
  69. package/dist/module/components/base/picker-view/picker-view.js +4 -4
  70. package/dist/module/components/base/tag/index.js +5 -0
  71. package/dist/module/components/base/tag/style/index.js +85 -0
  72. package/dist/module/components/base/tag/tag-context.js +8 -0
  73. package/dist/module/components/base/tag/tag-group.js +29 -0
  74. package/dist/module/components/base/tag/tag.js +41 -0
  75. package/dist/module/components/base/tag/types.js +3 -0
  76. package/dist/typescript/components/base/carousel/carousel-indicator.d.ts +42 -0
  77. package/dist/typescript/components/base/carousel/carousel-indicator.d.ts.map +1 -0
  78. package/dist/typescript/components/base/carousel/carousel-slides.d.ts +49 -0
  79. package/dist/typescript/components/base/carousel/carousel-slides.d.ts.map +1 -0
  80. package/dist/typescript/components/base/carousel/carousel.d.ts +16 -11
  81. package/dist/typescript/components/base/carousel/carousel.d.ts.map +1 -1
  82. package/dist/typescript/components/base/carousel/hooks/index.d.ts +0 -2
  83. package/dist/typescript/components/base/carousel/hooks/index.d.ts.map +1 -1
  84. package/dist/typescript/components/base/carousel/hooks/use-carousel-index.d.ts.map +1 -1
  85. package/dist/typescript/components/base/carousel/hooks/use-carousel-lifecycle.d.ts.map +1 -1
  86. package/dist/typescript/components/base/carousel/hooks/use-carousel-pan-responder.d.ts.map +1 -1
  87. package/dist/typescript/components/base/carousel/hooks/use-carousel-position.d.ts.map +1 -1
  88. package/dist/typescript/components/base/carousel/index.d.ts +1 -4
  89. package/dist/typescript/components/base/carousel/index.d.ts.map +1 -1
  90. package/dist/typescript/components/base/carousel/style/index.d.ts +12 -0
  91. package/dist/typescript/components/base/carousel/style/index.d.ts.map +1 -1
  92. package/dist/typescript/components/base/carousel/types.d.ts +8 -17
  93. package/dist/typescript/components/base/carousel/types.d.ts.map +1 -1
  94. package/dist/typescript/components/base/date-picker/date-picker.d.ts +4 -2
  95. package/dist/typescript/components/base/date-picker/date-picker.d.ts.map +1 -1
  96. package/dist/typescript/components/base/date-picker/date-range-picker.d.ts +12 -3
  97. package/dist/typescript/components/base/date-picker/date-range-picker.d.ts.map +1 -1
  98. package/dist/typescript/components/base/date-picker/style/index.d.ts +9 -0
  99. package/dist/typescript/components/base/date-picker/style/index.d.ts.map +1 -0
  100. package/dist/typescript/components/base/date-picker-view/date-picker-view.d.ts +1 -6
  101. package/dist/typescript/components/base/date-picker-view/date-picker-view.d.ts.map +1 -1
  102. package/dist/typescript/components/base/date-picker-view/index.d.ts +0 -2
  103. package/dist/typescript/components/base/date-picker-view/index.d.ts.map +1 -1
  104. package/dist/typescript/components/base/date-picker-view/types.d.ts +1 -1
  105. package/dist/typescript/components/base/index.d.ts +2 -0
  106. package/dist/typescript/components/base/index.d.ts.map +1 -1
  107. package/dist/typescript/components/base/picker/index.d.ts +7 -1
  108. package/dist/typescript/components/base/picker/index.d.ts.map +1 -1
  109. package/dist/typescript/components/base/picker/picker-content.d.ts +15 -0
  110. package/dist/typescript/components/base/picker/picker-content.d.ts.map +1 -0
  111. package/dist/typescript/components/base/picker/picker-context.d.ts +18 -0
  112. package/dist/typescript/components/base/picker/picker-context.d.ts.map +1 -0
  113. package/dist/typescript/components/base/picker/picker-field.d.ts +10 -0
  114. package/dist/typescript/components/base/picker/picker-field.d.ts.map +1 -0
  115. package/dist/typescript/components/base/picker/picker.d.ts +13 -11
  116. package/dist/typescript/components/base/picker/picker.d.ts.map +1 -1
  117. package/dist/typescript/components/base/picker/style/index.d.ts +0 -2
  118. package/dist/typescript/components/base/picker/style/index.d.ts.map +1 -1
  119. package/dist/typescript/components/base/picker-backup/base-picker-container.d.ts +15 -0
  120. package/dist/typescript/components/base/picker-backup/base-picker-container.d.ts.map +1 -0
  121. package/dist/typescript/components/base/picker-backup/index.d.ts +3 -0
  122. package/dist/typescript/components/base/picker-backup/index.d.ts.map +1 -0
  123. package/dist/typescript/components/base/picker-backup/picker-backup.d.ts +26 -0
  124. package/dist/typescript/components/base/picker-backup/picker-backup.d.ts.map +1 -0
  125. package/dist/typescript/components/base/picker-backup/picker-copy.d.ts +13 -0
  126. package/dist/typescript/components/base/picker-backup/picker-copy.d.ts.map +1 -0
  127. package/dist/typescript/components/base/picker-backup/picker-trigger.d.ts.map +1 -0
  128. package/dist/typescript/components/base/picker-backup/style/index.d.ts +13 -0
  129. package/dist/typescript/components/base/picker-backup/style/index.d.ts.map +1 -0
  130. package/dist/typescript/components/base/picker-backup/utils.d.ts +8 -0
  131. package/dist/typescript/components/base/picker-backup/utils.d.ts.map +1 -0
  132. package/dist/typescript/components/base/picker-view/picker-view-column.d.ts.map +1 -1
  133. package/dist/typescript/components/base/picker-view/utils/picker.d.ts +3 -3
  134. package/dist/typescript/components/base/picker-view/utils/picker.d.ts.map +1 -1
  135. package/dist/typescript/components/base/tag/index.d.ts +5 -0
  136. package/dist/typescript/components/base/tag/index.d.ts.map +1 -0
  137. package/dist/typescript/components/base/tag/style/index.d.ts +61 -0
  138. package/dist/typescript/components/base/tag/style/index.d.ts.map +1 -0
  139. package/dist/typescript/components/base/tag/tag-context.d.ts +3 -0
  140. package/dist/typescript/components/base/tag/tag-context.d.ts.map +1 -0
  141. package/dist/typescript/components/base/tag/tag-group.d.ts +4 -0
  142. package/dist/typescript/components/base/tag/tag-group.d.ts.map +1 -0
  143. package/dist/typescript/components/base/tag/tag.d.ts +4 -0
  144. package/dist/typescript/components/base/tag/tag.d.ts.map +1 -0
  145. package/dist/typescript/components/base/tag/types.d.ts +48 -0
  146. package/dist/typescript/components/base/tag/types.d.ts.map +1 -0
  147. package/package.json +1 -1
  148. package/src/components/base/carousel/carousel-indicator.tsx +80 -0
  149. package/src/components/base/carousel/carousel-slides.tsx +177 -0
  150. package/src/components/base/carousel/carousel.tsx +108 -118
  151. package/src/components/base/carousel/hooks/index.ts +0 -2
  152. package/src/components/base/carousel/hooks/use-carousel-index.ts +13 -9
  153. package/src/components/base/carousel/hooks/use-carousel-lifecycle.ts +4 -3
  154. package/src/components/base/carousel/hooks/use-carousel-pan-responder.ts +40 -16
  155. package/src/components/base/carousel/hooks/use-carousel-position.ts +4 -1
  156. package/src/components/base/carousel/index.ts +1 -3
  157. package/src/components/base/carousel/style/index.ts +12 -0
  158. package/src/components/base/carousel/types.ts +8 -21
  159. package/src/components/base/date-picker/date-picker.tsx +64 -61
  160. package/src/components/base/date-picker/date-range-picker.tsx +178 -70
  161. package/src/components/base/date-picker/style/index.ts +10 -0
  162. package/src/components/base/date-picker-view/date-picker-view.tsx +21 -68
  163. package/src/components/base/date-picker-view/index.ts +0 -2
  164. package/src/components/base/date-picker-view/types.ts +1 -1
  165. package/src/components/base/index.ts +2 -0
  166. package/src/components/base/picker/index.ts +11 -1
  167. package/src/components/base/picker/picker-content.tsx +75 -0
  168. package/src/components/base/picker/picker-context.ts +19 -0
  169. package/src/components/base/picker/picker-field.tsx +50 -0
  170. package/src/components/base/picker/picker.tsx +38 -114
  171. package/src/components/base/picker/style/index.ts +0 -2
  172. package/src/components/base/picker-backup/base-picker-container.tsx +55 -0
  173. package/src/components/base/picker-backup/index.ts +2 -0
  174. package/src/components/base/picker-backup/picker-backup.tsx +110 -0
  175. package/src/components/base/picker-backup/picker-copy.tsx +125 -0
  176. package/src/components/base/{picker → picker-backup}/picker-trigger.tsx +2 -2
  177. package/src/components/base/picker-backup/style/index.ts +14 -0
  178. package/src/components/base/picker-backup/utils.ts +62 -0
  179. package/src/components/base/picker-view/picker-view-column.tsx +20 -0
  180. package/src/components/base/picker-view/picker-view.tsx +4 -4
  181. package/src/components/base/picker-view/utils/picker.ts +3 -5
  182. package/src/components/base/tag/index.ts +5 -0
  183. package/src/components/base/tag/style/index.tsx +84 -0
  184. package/src/components/base/tag/tag-context.ts +9 -0
  185. package/src/components/base/tag/tag-group.tsx +31 -0
  186. package/src/components/base/tag/tag.tsx +50 -0
  187. package/src/components/base/tag/types.ts +71 -0
  188. package/dist/commonjs/components/base/carousel/carousel-item.js +0 -45
  189. package/dist/commonjs/components/base/carousel/constants.js +0 -25
  190. package/dist/commonjs/components/base/carousel/hooks/use-carousel-indicator.js +0 -63
  191. package/dist/commonjs/components/base/carousel/hooks/use-carousel-slides.js +0 -95
  192. package/dist/commonjs/components/base/carousel/utils.js +0 -63
  193. package/dist/commonjs/components/base/date-picker-view/date-range-picker-view.js +0 -145
  194. package/dist/commonjs/components/base/date-picker-view/date-time-picker.js +0 -39
  195. package/dist/module/components/base/carousel/carousel-item.js +0 -40
  196. package/dist/module/components/base/carousel/constants.js +0 -21
  197. package/dist/module/components/base/carousel/hooks/use-carousel-indicator.js +0 -58
  198. package/dist/module/components/base/carousel/hooks/use-carousel-slides.js +0 -90
  199. package/dist/module/components/base/carousel/utils.js +0 -55
  200. package/dist/module/components/base/date-picker-view/date-range-picker-view.js +0 -138
  201. package/dist/module/components/base/date-picker-view/date-time-picker.js +0 -34
  202. package/dist/typescript/components/base/carousel/carousel-item.d.ts +0 -26
  203. package/dist/typescript/components/base/carousel/carousel-item.d.ts.map +0 -1
  204. package/dist/typescript/components/base/carousel/constants.d.ts +0 -17
  205. package/dist/typescript/components/base/carousel/constants.d.ts.map +0 -1
  206. package/dist/typescript/components/base/carousel/hooks/use-carousel-indicator.d.ts +0 -37
  207. package/dist/typescript/components/base/carousel/hooks/use-carousel-indicator.d.ts.map +0 -1
  208. package/dist/typescript/components/base/carousel/hooks/use-carousel-slides.d.ts +0 -51
  209. package/dist/typescript/components/base/carousel/hooks/use-carousel-slides.d.ts.map +0 -1
  210. package/dist/typescript/components/base/carousel/utils.d.ts +0 -25
  211. package/dist/typescript/components/base/carousel/utils.d.ts.map +0 -1
  212. package/dist/typescript/components/base/date-picker-view/date-range-picker-view.d.ts +0 -26
  213. package/dist/typescript/components/base/date-picker-view/date-range-picker-view.d.ts.map +0 -1
  214. package/dist/typescript/components/base/date-picker-view/date-time-picker.d.ts +0 -3
  215. package/dist/typescript/components/base/date-picker-view/date-time-picker.d.ts.map +0 -1
  216. package/dist/typescript/components/base/picker/picker-trigger.d.ts.map +0 -1
  217. package/src/components/base/carousel/carousel-item.tsx +0 -35
  218. package/src/components/base/carousel/constants.ts +0 -19
  219. package/src/components/base/carousel/hooks/use-carousel-indicator.tsx +0 -84
  220. package/src/components/base/carousel/hooks/use-carousel-slides.tsx +0 -131
  221. package/src/components/base/carousel/utils.ts +0 -55
  222. package/src/components/base/date-picker-view/date-range-picker-view.tsx +0 -191
  223. package/src/components/base/date-picker-view/date-time-picker.tsx +0 -34
  224. /package/dist/typescript/components/base/{picker → picker-backup}/picker-trigger.d.ts +0 -0
@@ -1,145 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.DateRangePickerView = void 0;
7
- var _dayjs = _interopRequireDefault(require("dayjs"));
8
- var _react = _interopRequireWildcard(require("react"));
9
- var _index = require("./../index.js");
10
- var _index2 = require("./style/index.js");
11
- var _utils = require("./utils.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
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
- const DateRangePickerView = ({
16
- onClose,
17
- min,
18
- max,
19
- value,
20
- defaultValue,
21
- onChange,
22
- title = '自定义日期',
23
- startText = '请选择开始时间',
24
- endText = '请选择结束时间',
25
- confirmText = '确定',
26
- resetText = '重置',
27
- formatter
28
- }) => {
29
- const styles = (0, _index2.useDateRangePickerStyles)();
30
-
31
- /** 当前编辑的是 start 还是 end */
32
- const [selected, setSelected] = (0, _react.useState)('start');
33
-
34
- /** 初始化 draft */
35
- const [draft, setDraft] = (0, _react.useState)(() => {
36
- if (value) return (0, _utils.sortRange)(value);
37
- if (defaultValue) return (0, _utils.sortRange)(defaultValue);
38
- return [new Date(), undefined];
39
- });
40
- const _startText = draft[0] && (typeof formatter === 'string' ? (0, _dayjs.default)(draft[0]).format(formatter) : formatter(draft[0])) || startText;
41
- const _endText = draft[1] && (typeof formatter === 'string' ? (0, _dayjs.default)(draft[1]).format(formatter) : formatter(draft[1])) || endText;
42
-
43
- /** Picker 当前值 */
44
- const pickerValue = (selected === 'start' ? draft[0] : draft[1]) ?? new Date();
45
-
46
- /** Picker 可选范围 - 优化依赖 */
47
- const minDate = (0, _react.useMemo)(() => {
48
- return selected === 'end' ? draft[0] ?? min : min;
49
- }, [selected, draft, min]);
50
- const maxDate = (0, _react.useMemo)(() => {
51
- return selected === 'start' ? draft[1] ?? max : max;
52
- }, [selected, draft, max]);
53
-
54
- /** Picker 改 draft */
55
- const onChangePicker = (0, _react.useCallback)(date => {
56
- setDraft(prev => {
57
- const index = selected === 'start' ? 0 : 1;
58
- // 如果日期相同,不更新
59
- if (prev[index]?.getTime() === date.getTime()) {
60
- return prev;
61
- }
62
- const next = [prev[0], prev[1]];
63
- next[index] = date;
64
- return next;
65
- });
66
- }, [selected]);
67
- const changeSelected = (0, _react.useCallback)(nextSelected => {
68
- setSelected(nextSelected);
69
- setDraft(prev => {
70
- const next = [prev[0], prev[1]];
71
- const index = nextSelected === 'start' ? 0 : 1;
72
- next[index] ??= new Date();
73
- return next;
74
- });
75
- }, []);
76
-
77
- /** 重置 */
78
- const onReset = (0, _react.useCallback)(() => {
79
- setDraft([new Date(), undefined]);
80
- setSelected('start');
81
- }, []);
82
-
83
- /** 是否可以确定 */
84
- const canConfirm = Boolean(draft[0] && draft[1]);
85
-
86
- /** 确定:唯一对外出口 */
87
- const onConfirm = (0, _react.useCallback)(() => {
88
- if (!draft[0] || !draft[1]) return;
89
-
90
- // start > end 自动修正
91
- onChange?.((0, _utils.sortRange)([draft[0], draft[1]]));
92
- }, [draft, onChange]);
93
-
94
- // 受控模式:检测外部 value 变化
95
- (0, _react.useEffect)(() => {
96
- if (value) {
97
- const sorted = (0, _utils.sortRange)(value);
98
- setDraft(sorted);
99
- }
100
- }, [value]);
101
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_index.Flex, {
102
- vertical: true,
103
- align: "stretch",
104
- style: styles.container,
105
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_index.ModalHeader, {
106
- title: title,
107
- onClose: onClose
108
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_index.Flex, {
109
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Button, {
110
- variant: "outline",
111
- theme: selected === 'start' ? 'primary' : 'default',
112
- block: true,
113
- text: _startText,
114
- onPress: () => changeSelected('start')
115
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Text, {
116
- children: "\u2014"
117
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Button, {
118
- variant: "outline",
119
- theme: selected === 'end' ? 'primary' : 'default',
120
- block: true,
121
- text: _endText,
122
- onPress: () => changeSelected('end')
123
- })]
124
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.DateTimePicker, {
125
- value: pickerValue,
126
- min: minDate,
127
- max: maxDate,
128
- onChange: onChangePicker
129
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_index.Button.Group, {
130
- block: true,
131
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Button, {
132
- size: "large",
133
- text: resetText,
134
- theme: "secondary",
135
- onPress: onReset
136
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Button, {
137
- size: "large",
138
- text: confirmText,
139
- onPress: onConfirm,
140
- disabled: !canConfirm
141
- })]
142
- })]
143
- });
144
- };
145
- exports.DateRangePickerView = DateRangePickerView;
@@ -1,39 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.DateTimePicker = void 0;
7
- var _ahooks = require("ahooks");
8
- var _react = require("react");
9
- var _index = require("./../index.js");
10
- var _useDateTimePicker = require("./hooks/use-date-time-picker.js");
11
- var _jsxRuntime = require("react/jsx-runtime");
12
- const DateTimePicker = ({
13
- mode = 'Y-D',
14
- min,
15
- max,
16
- ...restProps
17
- }) => {
18
- // 确保有一个稳定的默认日期值
19
- const defaultDate = (0, _react.useMemo)(() => new Date(), []);
20
- const [value, onChange] = (0, _ahooks.useControllableValue)(restProps, {
21
- defaultValue: defaultDate
22
- });
23
-
24
- // 确保 value 始终有值,避免 undefined 传递给 hook
25
- const safeValue = value ?? defaultDate;
26
- const [values, columns, onChangePicker] = (0, _useDateTimePicker.useDateTimePicker)({
27
- mode,
28
- value: safeValue,
29
- onChange,
30
- min,
31
- max
32
- });
33
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.PickerView, {
34
- columns: columns,
35
- value: values,
36
- onChange: onChangePicker
37
- });
38
- };
39
- exports.DateTimePicker = DateTimePicker;
@@ -1,40 +0,0 @@
1
- "use strict";
2
-
3
- import { View } from 'react-native';
4
- import { jsx as _jsx } from "react/jsx-runtime";
5
- const FULL_SIZE_STYLE = {
6
- height: '100%',
7
- width: '100%'
8
- };
9
-
10
- /**
11
- * 轮播项组件
12
- *
13
- * 用于包裹轮播图中的每一项内容,自动填充父容器的宽高。
14
- *
15
- * @example
16
- * ```tsx
17
- * <Carousel>
18
- * <Carousel.Item>
19
- * <Image source={image1} />
20
- * </Carousel.Item>
21
- * <Carousel.Item>
22
- * <Image source={image2} />
23
- * </Carousel.Item>
24
- * </Carousel>
25
- * ```
26
- *
27
- * @param props - 组件属性
28
- * @param props.children - 轮播项内容
29
- * @param props.style - 容器样式
30
- * @returns 轮播项组件
31
- */
32
- export const CarouselItem = ({
33
- children,
34
- style
35
- }) => {
36
- return /*#__PURE__*/_jsx(View, {
37
- style: [FULL_SIZE_STYLE, style],
38
- children: children
39
- });
40
- };
@@ -1,21 +0,0 @@
1
- "use strict";
2
-
3
- /**
4
- * 轮播图动画时长(毫秒)
5
- */
6
- export const CAROUSEL_ANIMATION_DURATION = 300;
7
-
8
- /**
9
- * 橡皮筋效果阻尼系数
10
- */
11
- export const RUBBERBAND_DAMPING = 0.35;
12
-
13
- /**
14
- * 手势识别最小移动距离(像素)
15
- */
16
- export const GESTURE_MIN_DISTANCE = 5;
17
-
18
- /**
19
- * 速度投影系数(用于计算惯性滑动距离)
20
- */
21
- export const VELOCITY_PROJECTION_FACTOR = 2000;
@@ -1,58 +0,0 @@
1
- "use strict";
2
-
3
- import { useMemoizedFn } from 'ahooks';
4
- import { StyleSheet, View } from 'react-native';
5
- import { jsx as _jsx } from "react/jsx-runtime";
6
- /**
7
- * 轮播图指示器渲染 Hook
8
- *
9
- * 负责渲染轮播图底部的指示器(小圆点),支持自定义指示器或使用默认样式。
10
- * 当轮播项总数小于等于 1 时,不显示指示器。
11
- *
12
- * @param params - Hook 参数配置
13
- * @param params.indicator - 指示器配置(false 表示不显示,函数表示自定义渲染)
14
- * @param params.indicatorProps - 指示器属性配置(颜色、样式)
15
- * @param params.total - 轮播项总数
16
- * @param params.current - 当前激活的索引
17
- * @param params.activeColor - 激活状态的指示器颜色
18
- * @param params.inactiveColor - 非激活状态的指示器颜色
19
- * @param params.styles - 指示器样式对象
20
- *
21
- * @returns Hook 返回值
22
- * @returns renderIndicator - 渲染指示器的方法,返回 ReactNode 或 null
23
- */
24
- export const useCarouselIndicator = params => {
25
- const {
26
- indicator,
27
- indicatorProps,
28
- total,
29
- current,
30
- activeColor,
31
- inactiveColor,
32
- styles
33
- } = params;
34
- const renderIndicator = useMemoizedFn(() => {
35
- if (indicator === false) return null;
36
- if (total <= 1) return null;
37
- if (typeof indicator === 'function') {
38
- return indicator(total, current);
39
- }
40
- const dotActiveColor = indicatorProps?.color ?? activeColor;
41
- return /*#__PURE__*/_jsx(View, {
42
- style: StyleSheet.flatten([styles.indicatorContainer, indicatorProps?.style]),
43
- children: Array.from({
44
- length: total
45
- }, (_, i) => {
46
- const isActive = i === current;
47
- return /*#__PURE__*/_jsx(View, {
48
- style: StyleSheet.flatten([styles.indicatorDot, {
49
- backgroundColor: isActive ? dotActiveColor : inactiveColor
50
- }, isActive && styles.indicatorDotActive])
51
- }, i);
52
- })
53
- });
54
- });
55
- return {
56
- renderIndicator
57
- };
58
- };
@@ -1,90 +0,0 @@
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 { isRenderPropChildren, normalizeChildren } from "../utils.js";
8
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
9
- /**
10
- * 轮播图滑块渲染 Hook
11
- *
12
- * 负责渲染轮播图的滑块内容,支持静态子组件和 render prop 两种方式。
13
- * 实现虚拟渲染优化,仅渲染可见范围内的滑块,并处理循环播放时的克隆逻辑。
14
- * 为虚拟渲染添加前后占位空间,确保滚动位置正确。
15
- *
16
- * @param params - Hook 参数配置
17
- * @param params.children - 轮播项内容(静态子组件或 render prop 函数)
18
- * @param params.total - 轮播项总数
19
- * @param params.virtualRange - 虚拟渲染范围(start、end、isVirtual)
20
- * @param params.loopEnabled - 是否启用循环播放
21
- * @param params.clonesBefore - 循环播放时前置克隆节点数量
22
- * @param params.slideWrapperStyle - 滑块包装器样式
23
- * @param params.spacerStyles - 虚拟渲染占位空间样式
24
- * @param params.slideStyles - 滑块样式对象
25
- *
26
- * @returns Hook 返回值
27
- * @returns staticSlides - 静态滑块数组(仅在非 render prop 模式下有值)
28
- * @returns renderSlides - 渲染滑块的方法,返回 ReactNode 或 null
29
- */
30
- export const useCarouselSlides = params => {
31
- const {
32
- children,
33
- total,
34
- virtualRange,
35
- loopEnabled,
36
- clonesBefore,
37
- slideWrapperStyle,
38
- spacerStyles,
39
- slideStyles
40
- } = params;
41
- const staticSlides = useMemo(() => {
42
- if (isRenderPropChildren(children)) return [];
43
- return normalizeChildren(children, total);
44
- }, [children, total]);
45
- const getIndexFromExtIndex = useMemoizedFn(extIndex => {
46
- if (!loopEnabled) return clamp(extIndex, 0, total - 1);
47
- if (extIndex < clonesBefore) {
48
- return ((extIndex - clonesBefore) % total + total) % total;
49
- }
50
- if (extIndex >= clonesBefore + total) {
51
- return (extIndex - clonesBefore - total) % total;
52
- }
53
- return extIndex - clonesBefore;
54
- });
55
- const renderSlides = useMemoizedFn(() => {
56
- if (!virtualRange) return null;
57
- const {
58
- start,
59
- end,
60
- isVirtual
61
- } = virtualRange;
62
- const getElementForExtIndex = extIndex => {
63
- const logicalIndex = loopEnabled ? getIndexFromExtIndex(extIndex) : clamp(extIndex, 0, total - 1);
64
- if (isRenderPropChildren(children)) return children(logicalIndex);
65
- return staticSlides[logicalIndex];
66
- };
67
- const slideElements = [];
68
- for (let extIndex = start; extIndex <= end; extIndex += 1) {
69
- const element = getElementForExtIndex(extIndex);
70
- if (!element) continue;
71
- slideElements.push(/*#__PURE__*/_jsx(View, {
72
- style: [slideStyles.slide, slideWrapperStyle],
73
- children: element
74
- }, extIndex));
75
- }
76
- const leadSpacer = isVirtual && spacerStyles && spacerStyles.leadingSize > 0 ? /*#__PURE__*/_jsx(View, {
77
- style: spacerStyles.leading
78
- }) : null;
79
- const trailSpacer = isVirtual && spacerStyles && spacerStyles.trailingSize > 0 ? /*#__PURE__*/_jsx(View, {
80
- style: spacerStyles.trailing
81
- }) : null;
82
- return /*#__PURE__*/_jsxs(_Fragment, {
83
- children: [leadSpacer, slideElements, trailSpacer]
84
- });
85
- });
86
- return {
87
- staticSlides,
88
- renderSlides
89
- };
90
- };
@@ -1,55 +0,0 @@
1
- "use strict";
2
-
3
- import { Children } from 'react';
4
- export const isRenderPropChildren = children => {
5
- return typeof children === 'function';
6
- };
7
- export const normalizeChildren = (children, total) => {
8
- if (!children) return [];
9
- if (isRenderPropChildren(children)) {
10
- return Array.from({
11
- length: total
12
- }, (_, i) => children(i));
13
- }
14
- return Children.toArray(children);
15
- };
16
- export const getDefaultTotal = children => {
17
- if (!children) return 0;
18
- if (isRenderPropChildren(children)) return 0;
19
- return Array.isArray(children) ? children.length : 1;
20
- };
21
-
22
- /**
23
- * 计算轮播边界索引范围
24
- *
25
- * @param params - 参数配置
26
- * @param params.total - 轮播项总数
27
- * @param params.slideSize - 单个滑块所占百分比 (0-100)
28
- * @param params.trackOffset - 轨道偏移百分比 (0-100)
29
- * @param params.stuckAtBoundary - 是否在边界处卡住
30
- * @returns 边界索引范围 { min, max }
31
- */
32
- export const getBoundaryIndexRange = params => {
33
- const {
34
- total,
35
- slideSize,
36
- trackOffset,
37
- stuckAtBoundary
38
- } = params;
39
- if (total <= 0) return {
40
- min: 0,
41
- max: 0
42
- };
43
- if (!stuckAtBoundary) return {
44
- min: 0,
45
- max: total - 1
46
- };
47
- const slideRatio = slideSize / 100;
48
- const offsetRatio = trackOffset / 100;
49
- const min = 0 + offsetRatio / (slideRatio || 1);
50
- const max = total - 1 - (1 - slideRatio - offsetRatio) / (slideRatio || 1);
51
- return {
52
- min,
53
- max
54
- };
55
- };
@@ -1,138 +0,0 @@
1
- "use strict";
2
-
3
- import dayjs from 'dayjs';
4
- import React, { useCallback, useEffect, useMemo, useState } from 'react';
5
- import { Button, DateTimePicker, Flex, ModalHeader, Text } from "./../index.js";
6
- import { useDateRangePickerStyles } from "./style/index.js";
7
- import { sortRange } from "./utils.js";
8
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
- export const DateRangePickerView = ({
10
- onClose,
11
- min,
12
- max,
13
- value,
14
- defaultValue,
15
- onChange,
16
- title = '自定义日期',
17
- startText = '请选择开始时间',
18
- endText = '请选择结束时间',
19
- confirmText = '确定',
20
- resetText = '重置',
21
- formatter
22
- }) => {
23
- const styles = useDateRangePickerStyles();
24
-
25
- /** 当前编辑的是 start 还是 end */
26
- const [selected, setSelected] = useState('start');
27
-
28
- /** 初始化 draft */
29
- const [draft, setDraft] = useState(() => {
30
- if (value) return sortRange(value);
31
- if (defaultValue) return sortRange(defaultValue);
32
- return [new Date(), undefined];
33
- });
34
- const _startText = draft[0] && (typeof formatter === 'string' ? dayjs(draft[0]).format(formatter) : formatter(draft[0])) || startText;
35
- const _endText = draft[1] && (typeof formatter === 'string' ? dayjs(draft[1]).format(formatter) : formatter(draft[1])) || endText;
36
-
37
- /** Picker 当前值 */
38
- const pickerValue = (selected === 'start' ? draft[0] : draft[1]) ?? new Date();
39
-
40
- /** Picker 可选范围 - 优化依赖 */
41
- const minDate = useMemo(() => {
42
- return selected === 'end' ? draft[0] ?? min : min;
43
- }, [selected, draft, min]);
44
- const maxDate = useMemo(() => {
45
- return selected === 'start' ? draft[1] ?? max : max;
46
- }, [selected, draft, max]);
47
-
48
- /** Picker 改 draft */
49
- const onChangePicker = useCallback(date => {
50
- setDraft(prev => {
51
- const index = selected === 'start' ? 0 : 1;
52
- // 如果日期相同,不更新
53
- if (prev[index]?.getTime() === date.getTime()) {
54
- return prev;
55
- }
56
- const next = [prev[0], prev[1]];
57
- next[index] = date;
58
- return next;
59
- });
60
- }, [selected]);
61
- const changeSelected = useCallback(nextSelected => {
62
- setSelected(nextSelected);
63
- setDraft(prev => {
64
- const next = [prev[0], prev[1]];
65
- const index = nextSelected === 'start' ? 0 : 1;
66
- next[index] ??= new Date();
67
- return next;
68
- });
69
- }, []);
70
-
71
- /** 重置 */
72
- const onReset = useCallback(() => {
73
- setDraft([new Date(), undefined]);
74
- setSelected('start');
75
- }, []);
76
-
77
- /** 是否可以确定 */
78
- const canConfirm = Boolean(draft[0] && draft[1]);
79
-
80
- /** 确定:唯一对外出口 */
81
- const onConfirm = useCallback(() => {
82
- if (!draft[0] || !draft[1]) return;
83
-
84
- // start > end 自动修正
85
- onChange?.(sortRange([draft[0], draft[1]]));
86
- }, [draft, onChange]);
87
-
88
- // 受控模式:检测外部 value 变化
89
- useEffect(() => {
90
- if (value) {
91
- const sorted = sortRange(value);
92
- setDraft(sorted);
93
- }
94
- }, [value]);
95
- return /*#__PURE__*/_jsxs(Flex, {
96
- vertical: true,
97
- align: "stretch",
98
- style: styles.container,
99
- children: [/*#__PURE__*/_jsx(ModalHeader, {
100
- title: title,
101
- onClose: onClose
102
- }), /*#__PURE__*/_jsxs(Flex, {
103
- children: [/*#__PURE__*/_jsx(Button, {
104
- variant: "outline",
105
- theme: selected === 'start' ? 'primary' : 'default',
106
- block: true,
107
- text: _startText,
108
- onPress: () => changeSelected('start')
109
- }), /*#__PURE__*/_jsx(Text, {
110
- children: "\u2014"
111
- }), /*#__PURE__*/_jsx(Button, {
112
- variant: "outline",
113
- theme: selected === 'end' ? 'primary' : 'default',
114
- block: true,
115
- text: _endText,
116
- onPress: () => changeSelected('end')
117
- })]
118
- }), /*#__PURE__*/_jsx(DateTimePicker, {
119
- value: pickerValue,
120
- min: minDate,
121
- max: maxDate,
122
- onChange: onChangePicker
123
- }), /*#__PURE__*/_jsxs(Button.Group, {
124
- block: true,
125
- children: [/*#__PURE__*/_jsx(Button, {
126
- size: "large",
127
- text: resetText,
128
- theme: "secondary",
129
- onPress: onReset
130
- }), /*#__PURE__*/_jsx(Button, {
131
- size: "large",
132
- text: confirmText,
133
- onPress: onConfirm,
134
- disabled: !canConfirm
135
- })]
136
- })]
137
- });
138
- };
@@ -1,34 +0,0 @@
1
- "use strict";
2
-
3
- import { useControllableValue } from 'ahooks';
4
- import { useMemo } from 'react';
5
- import { PickerView } from "./../index.js";
6
- import { useDateTimePicker } from "./hooks/use-date-time-picker.js";
7
- import { jsx as _jsx } from "react/jsx-runtime";
8
- export const DateTimePicker = ({
9
- mode = 'Y-D',
10
- min,
11
- max,
12
- ...restProps
13
- }) => {
14
- // 确保有一个稳定的默认日期值
15
- const defaultDate = useMemo(() => new Date(), []);
16
- const [value, onChange] = useControllableValue(restProps, {
17
- defaultValue: defaultDate
18
- });
19
-
20
- // 确保 value 始终有值,避免 undefined 传递给 hook
21
- const safeValue = value ?? defaultDate;
22
- const [values, columns, onChangePicker] = useDateTimePicker({
23
- mode,
24
- value: safeValue,
25
- onChange,
26
- min,
27
- max
28
- });
29
- return /*#__PURE__*/_jsx(PickerView, {
30
- columns: columns,
31
- value: values,
32
- onChange: onChangePicker
33
- });
34
- };
@@ -1,26 +0,0 @@
1
- import type { FC, PropsWithChildren } from 'react';
2
- import type { CarouselItemProps } from './types';
3
- /**
4
- * 轮播项组件
5
- *
6
- * 用于包裹轮播图中的每一项内容,自动填充父容器的宽高。
7
- *
8
- * @example
9
- * ```tsx
10
- * <Carousel>
11
- * <Carousel.Item>
12
- * <Image source={image1} />
13
- * </Carousel.Item>
14
- * <Carousel.Item>
15
- * <Image source={image2} />
16
- * </Carousel.Item>
17
- * </Carousel>
18
- * ```
19
- *
20
- * @param props - 组件属性
21
- * @param props.children - 轮播项内容
22
- * @param props.style - 容器样式
23
- * @returns 轮播项组件
24
- */
25
- export declare const CarouselItem: FC<PropsWithChildren<CarouselItemProps>>;
26
- //# sourceMappingURL=carousel-item.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"carousel-item.d.ts","sourceRoot":"","sources":["../../../../../src/components/base/carousel/carousel-item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAGnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAIjD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAKjE,CAAC"}
@@ -1,17 +0,0 @@
1
- /**
2
- * 轮播图动画时长(毫秒)
3
- */
4
- export declare const CAROUSEL_ANIMATION_DURATION = 300;
5
- /**
6
- * 橡皮筋效果阻尼系数
7
- */
8
- export declare const RUBBERBAND_DAMPING = 0.35;
9
- /**
10
- * 手势识别最小移动距离(像素)
11
- */
12
- export declare const GESTURE_MIN_DISTANCE = 5;
13
- /**
14
- * 速度投影系数(用于计算惯性滑动距离)
15
- */
16
- export declare const VELOCITY_PROJECTION_FACTOR = 2000;
17
- //# sourceMappingURL=constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/components/base/carousel/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC;;GAEG;AACH,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC;;GAEG;AACH,eAAO,MAAM,0BAA0B,OAAO,CAAC"}