@sheinx/hooks 3.9.0-beta.9 → 3.9.1-beta.1

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 (121) hide show
  1. package/cjs/common/use-collapse-animation/index.d.ts +3 -0
  2. package/cjs/common/use-collapse-animation/index.d.ts.map +1 -0
  3. package/cjs/common/use-collapse-animation/index.js +13 -0
  4. package/cjs/common/use-collapse-animation/use-collapse-animation.d.ts +35 -0
  5. package/cjs/common/use-collapse-animation/use-collapse-animation.d.ts.map +1 -0
  6. package/cjs/common/use-collapse-animation/use-collapse-animation.js +107 -0
  7. package/cjs/common/use-filter/use-filter.type.d.ts +1 -1
  8. package/cjs/common/use-filter/use-filter.type.d.ts.map +1 -1
  9. package/cjs/common/use-input-able/use-Input-able.d.ts.map +1 -1
  10. package/cjs/common/use-input-able/use-Input-able.js +6 -7
  11. package/cjs/components/use-button/use-button.d.ts +2 -2
  12. package/cjs/components/use-carousel/use-carousel.d.ts +12 -0
  13. package/cjs/components/use-carousel/use-carousel.d.ts.map +1 -1
  14. package/cjs/components/use-carousel/use-carousel.js +67 -17
  15. package/cjs/components/use-datepicker/use-date.d.ts.map +1 -1
  16. package/cjs/components/use-datepicker/use-date.js +7 -7
  17. package/cjs/components/use-datepicker/use-date.type.d.ts +2 -1
  18. package/cjs/components/use-datepicker/use-date.type.d.ts.map +1 -1
  19. package/cjs/components/use-datepicker/use-datepicker-range.d.ts +2 -2
  20. package/cjs/components/use-datepicker/use-datepicker-range.d.ts.map +1 -1
  21. package/cjs/components/use-datepicker/use-datepicker-range.js +7 -16
  22. package/cjs/components/use-datepicker/use-month.d.ts.map +1 -1
  23. package/cjs/components/use-datepicker/use-month.js +5 -5
  24. package/cjs/components/use-datepicker/use-month.type.d.ts +2 -1
  25. package/cjs/components/use-datepicker/use-month.type.d.ts.map +1 -1
  26. package/cjs/components/use-datepicker/use-quarter.d.ts.map +1 -1
  27. package/cjs/components/use-datepicker/use-quarter.js +5 -5
  28. package/cjs/components/use-datepicker/use-year.d.ts.map +1 -1
  29. package/cjs/components/use-datepicker/use-year.js +5 -5
  30. package/cjs/components/use-datepicker/use-year.type.d.ts +2 -1
  31. package/cjs/components/use-datepicker/use-year.type.d.ts.map +1 -1
  32. package/cjs/components/use-form/use-form.type.d.ts +1 -1
  33. package/cjs/components/use-form/use-form.type.d.ts.map +1 -1
  34. package/cjs/components/use-input/use-input-format.d.ts +1 -1
  35. package/cjs/components/use-input/use-input-number.d.ts +1 -1
  36. package/cjs/components/use-table/use-table-columns.d.ts +8 -1
  37. package/cjs/components/use-table/use-table-columns.d.ts.map +1 -1
  38. package/cjs/components/use-table/use-table-columns.js +90 -1
  39. package/cjs/components/use-table/use-table-filter.d.ts +2 -2
  40. package/cjs/components/use-table/use-table-filter.d.ts.map +1 -1
  41. package/cjs/components/use-table/use-table-filter.js +11 -5
  42. package/cjs/components/use-table/use-table-layout.js +1 -1
  43. package/cjs/components/use-table/use-table-virtual.d.ts +1 -0
  44. package/cjs/components/use-table/use-table-virtual.d.ts.map +1 -1
  45. package/cjs/components/use-table/use-table-virtual.js +33 -4
  46. package/cjs/index.d.ts +1 -0
  47. package/cjs/index.d.ts.map +1 -1
  48. package/cjs/index.js +12 -0
  49. package/cjs/utils/dom/element.d.ts.map +1 -1
  50. package/cjs/utils/dom/element.js +3 -0
  51. package/cjs/utils/dom/get-dataset.d.ts +4 -0
  52. package/cjs/utils/dom/get-dataset.d.ts.map +1 -0
  53. package/cjs/utils/dom/get-dataset.js +18 -0
  54. package/cjs/utils/dom/index.d.ts +1 -0
  55. package/cjs/utils/dom/index.d.ts.map +1 -1
  56. package/cjs/utils/dom/index.js +12 -0
  57. package/cjs/utils/rule/regexp.d.ts +1 -1
  58. package/cjs/utils/rule/required.d.ts.map +1 -1
  59. package/cjs/utils/rule/required.js +3 -1
  60. package/cjs/utils/validate/get-rule.js +1 -1
  61. package/esm/common/use-collapse-animation/index.d.ts +3 -0
  62. package/esm/common/use-collapse-animation/index.d.ts.map +1 -0
  63. package/esm/common/use-collapse-animation/index.js +2 -0
  64. package/esm/common/use-collapse-animation/use-collapse-animation.d.ts +35 -0
  65. package/esm/common/use-collapse-animation/use-collapse-animation.d.ts.map +1 -0
  66. package/esm/common/use-collapse-animation/use-collapse-animation.js +101 -0
  67. package/esm/common/use-filter/use-filter.type.d.ts +1 -1
  68. package/esm/common/use-filter/use-filter.type.d.ts.map +1 -1
  69. package/esm/common/use-input-able/use-Input-able.d.ts.map +1 -1
  70. package/esm/common/use-input-able/use-Input-able.js +7 -8
  71. package/esm/components/use-button/use-button.d.ts +2 -2
  72. package/esm/components/use-carousel/use-carousel.d.ts +12 -0
  73. package/esm/components/use-carousel/use-carousel.d.ts.map +1 -1
  74. package/esm/components/use-carousel/use-carousel.js +67 -17
  75. package/esm/components/use-datepicker/use-date.d.ts.map +1 -1
  76. package/esm/components/use-datepicker/use-date.js +7 -7
  77. package/esm/components/use-datepicker/use-date.type.d.ts +2 -1
  78. package/esm/components/use-datepicker/use-date.type.d.ts.map +1 -1
  79. package/esm/components/use-datepicker/use-datepicker-range.d.ts +2 -2
  80. package/esm/components/use-datepicker/use-datepicker-range.d.ts.map +1 -1
  81. package/esm/components/use-datepicker/use-datepicker-range.js +7 -16
  82. package/esm/components/use-datepicker/use-month.d.ts.map +1 -1
  83. package/esm/components/use-datepicker/use-month.js +5 -5
  84. package/esm/components/use-datepicker/use-month.type.d.ts +2 -1
  85. package/esm/components/use-datepicker/use-month.type.d.ts.map +1 -1
  86. package/esm/components/use-datepicker/use-quarter.d.ts.map +1 -1
  87. package/esm/components/use-datepicker/use-quarter.js +5 -5
  88. package/esm/components/use-datepicker/use-year.d.ts.map +1 -1
  89. package/esm/components/use-datepicker/use-year.js +5 -5
  90. package/esm/components/use-datepicker/use-year.type.d.ts +2 -1
  91. package/esm/components/use-datepicker/use-year.type.d.ts.map +1 -1
  92. package/esm/components/use-form/use-form.type.d.ts +1 -1
  93. package/esm/components/use-form/use-form.type.d.ts.map +1 -1
  94. package/esm/components/use-input/use-input-format.d.ts +1 -1
  95. package/esm/components/use-input/use-input-number.d.ts +1 -1
  96. package/esm/components/use-table/use-table-columns.d.ts +8 -1
  97. package/esm/components/use-table/use-table-columns.d.ts.map +1 -1
  98. package/esm/components/use-table/use-table-columns.js +91 -2
  99. package/esm/components/use-table/use-table-filter.d.ts +2 -2
  100. package/esm/components/use-table/use-table-filter.d.ts.map +1 -1
  101. package/esm/components/use-table/use-table-filter.js +11 -5
  102. package/esm/components/use-table/use-table-layout.js +1 -1
  103. package/esm/components/use-table/use-table-virtual.d.ts +1 -0
  104. package/esm/components/use-table/use-table-virtual.d.ts.map +1 -1
  105. package/esm/components/use-table/use-table-virtual.js +33 -4
  106. package/esm/index.d.ts +1 -0
  107. package/esm/index.d.ts.map +1 -1
  108. package/esm/index.js +1 -0
  109. package/esm/utils/dom/element.d.ts.map +1 -1
  110. package/esm/utils/dom/element.js +3 -0
  111. package/esm/utils/dom/get-dataset.d.ts +4 -0
  112. package/esm/utils/dom/get-dataset.d.ts.map +1 -0
  113. package/esm/utils/dom/get-dataset.js +12 -0
  114. package/esm/utils/dom/index.d.ts +1 -0
  115. package/esm/utils/dom/index.d.ts.map +1 -1
  116. package/esm/utils/dom/index.js +1 -0
  117. package/esm/utils/rule/regexp.d.ts +1 -1
  118. package/esm/utils/rule/required.d.ts.map +1 -1
  119. package/esm/utils/rule/required.js +3 -1
  120. package/esm/utils/validate/get-rule.js +1 -1
  121. package/package.json +2 -2
@@ -0,0 +1,3 @@
1
+ export { useCollapseAnimation } from './use-collapse-animation';
2
+ export type { UseCollapseAnimationOptions } from './use-collapse-animation';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,YAAY,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ "use client";
3
+
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ Object.defineProperty(exports, "useCollapseAnimation", {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _useCollapseAnimation.useCollapseAnimation;
11
+ }
12
+ });
13
+ var _useCollapseAnimation = require("./use-collapse-animation");
@@ -0,0 +1,35 @@
1
+ /// <reference types="react" />
2
+ export interface UseCollapseAnimationOptions {
3
+ /**
4
+ * 是否展开
5
+ */
6
+ isOpen: boolean;
7
+ /**
8
+ * 动画时长(毫秒)
9
+ * @default 240
10
+ */
11
+ duration?: number;
12
+ /**
13
+ * 是否禁用动画
14
+ * @default false
15
+ */
16
+ disabled?: boolean;
17
+ /**
18
+ * 过渡函数
19
+ * @default 'cubic-bezier(.2,0,0,1)'
20
+ */
21
+ timingFunction?: string;
22
+ }
23
+ /**
24
+ * 为元素添加折叠/展开动画的 Hook
25
+ *
26
+ * @example
27
+ * ```tsx
28
+ * const ref = useRef<HTMLDivElement>(null);
29
+ * useCollapseAnimation(ref, { isOpen: true });
30
+ *
31
+ * return <div ref={ref}>Content</div>;
32
+ * ```
33
+ */
34
+ export declare function useCollapseAnimation<T extends HTMLElement = HTMLElement>(elementRef: React.RefObject<T>, options: UseCollapseAnimationOptions): void;
35
+ //# sourceMappingURL=use-collapse-animation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-collapse-animation.d.ts","sourceRoot":"","sources":["use-collapse-animation.ts"],"names":[],"mappings":";AAEA,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EACtE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAC9B,OAAO,EAAE,2BAA2B,QAwFrC"}
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useCollapseAnimation = useCollapseAnimation;
7
+ var _react = require("react");
8
+ /**
9
+ * 为元素添加折叠/展开动画的 Hook
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * const ref = useRef<HTMLDivElement>(null);
14
+ * useCollapseAnimation(ref, { isOpen: true });
15
+ *
16
+ * return <div ref={ref}>Content</div>;
17
+ * ```
18
+ */
19
+ function useCollapseAnimation(elementRef, options) {
20
+ var isOpen = options.isOpen,
21
+ _options$duration = options.duration,
22
+ duration = _options$duration === void 0 ? 240 : _options$duration,
23
+ _options$disabled = options.disabled,
24
+ disabled = _options$disabled === void 0 ? false : _options$disabled,
25
+ _options$timingFuncti = options.timingFunction,
26
+ timingFunction = _options$timingFuncti === void 0 ? 'cubic-bezier(.2,0,0,1)' : _options$timingFuncti;
27
+ var isFirstRenderRef = (0, _react.useRef)(true);
28
+
29
+ // 当 disabled 状态变化时,重置首次渲染标记
30
+ (0, _react.useEffect)(function () {
31
+ if (disabled) {
32
+ isFirstRenderRef.current = true;
33
+ }
34
+ }, [disabled]);
35
+ (0, _react.useEffect)(function () {
36
+ if (!elementRef.current) return;
37
+ var el = elementRef.current;
38
+
39
+ // 如果禁用动画,清除所有样式并返回
40
+ if (disabled) {
41
+ el.style.height = '';
42
+ el.style.overflow = '';
43
+ el.style.transition = '';
44
+ el.style.display = '';
45
+ return;
46
+ }
47
+ var timer = null;
48
+
49
+ // 设置 display: block,让元素始终可见,由高度控制折叠
50
+ el.style.display = 'block';
51
+
52
+ // 首次渲染时,直接设置初始状态,不做动画
53
+ if (isFirstRenderRef.current) {
54
+ isFirstRenderRef.current = false;
55
+ if (!isOpen) {
56
+ el.style.height = '0px';
57
+ el.style.overflow = 'hidden';
58
+ }
59
+ return;
60
+ }
61
+ if (isOpen) {
62
+ // 展开动画
63
+ el.style.height = '0px';
64
+ el.style.overflow = 'hidden';
65
+
66
+ // 强制重绘
67
+ void el.offsetHeight;
68
+
69
+ // 获取实际高度
70
+ var scrollHeight = el.scrollHeight;
71
+
72
+ // 启动动画
73
+ requestAnimationFrame(function () {
74
+ el.style.transition = "height ".concat(duration, "ms ").concat(timingFunction);
75
+ el.style.height = "".concat(scrollHeight, "px");
76
+
77
+ // 动画结束后恢复 auto
78
+ timer = setTimeout(function () {
79
+ if (el && isOpen) {
80
+ el.style.height = '';
81
+ el.style.overflow = '';
82
+ el.style.transition = '';
83
+ }
84
+ }, duration);
85
+ });
86
+ } else {
87
+ // 收起动画
88
+ var _scrollHeight = el.scrollHeight;
89
+ el.style.height = "".concat(_scrollHeight, "px");
90
+ el.style.overflow = 'hidden';
91
+
92
+ // 强制重绘
93
+ void el.offsetHeight;
94
+ requestAnimationFrame(function () {
95
+ el.style.transition = "height ".concat(duration, "ms ").concat(timingFunction);
96
+ el.style.height = '0px';
97
+ });
98
+ }
99
+
100
+ // 清理函数:组件卸载或依赖变化时清除定时器
101
+ return function () {
102
+ if (timer) {
103
+ clearTimeout(timer);
104
+ }
105
+ };
106
+ }, [isOpen, disabled, duration, timingFunction]);
107
+ }
@@ -13,7 +13,7 @@ export interface UseFilterProps<DataItem> {
13
13
  firstMatch?: boolean;
14
14
  onFilter?: (text: string, from?: string) => void | ((data: DataItem) => boolean);
15
15
  onFilterWidthCreate?: (data: DataItem, createdData: DataItem, key: string | number) => boolean;
16
- onCreate?: ((input: string | DataItem) => DataItem | string) | boolean;
16
+ onCreate?: ((input: string) => DataItem | string) | boolean;
17
17
  filterDelay?: number;
18
18
  }
19
19
  //# sourceMappingURL=use-filter.type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-filter.type.d.ts","sourceRoot":"","sources":["use-filter.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,WAAW,cAAc,CAAC,QAAQ;IACtC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC;IACtC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;IAE1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC;IACjF,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC;IAC/F,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,KAAK,QAAQ,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
1
+ {"version":3,"file":"use-filter.type.d.ts","sourceRoot":"","sources":["use-filter.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,WAAW,cAAc,CAAC,QAAQ;IACtC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC;IACtC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;IAE1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC;IACjF,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC;IAC/F,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,QAAQ,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-Input-able.d.ts","sourceRoot":"","sources":["use-Input-able.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEnE,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;;;;EA2E3F"}
1
+ {"version":3,"file":"use-Input-able.d.ts","sourceRoot":"","sources":["use-Input-able.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEnE,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;;;;EA6E3F"}
@@ -46,19 +46,18 @@ function useInputAble(props) {
46
46
  var render = (0, _useRender.useRender)(syncValue);
47
47
  var shouldUseState = delay || !control;
48
48
  var value = shouldUseState ? stateValue : valuePo;
49
- (0, _react.useEffect)(function () {
50
- if (context.timer) {
51
- clearTimeout(context.timer);
52
- context.timer = null;
53
- }
49
+ (0, _react.useLayoutEffect)(function () {
54
50
  if (delay && control && props.value !== stateValue) {
55
51
  changeStateValue(props.value);
52
+ } else if (context.timer) {
53
+ clearTimeout(context.timer);
54
+ context.timer = null;
56
55
  }
57
56
  }, [props.value, delay, control]);
58
57
  var forceDelayChange = (0, _usePersistFn.default)(function () {
59
- if (context.timer && context.delayChange) {
58
+ if (context.delayChange) context.delayChange();
59
+ if (context.timer) {
60
60
  clearTimeout(context.timer);
61
- context.delayChange();
62
61
  context.timer = null;
63
62
  context.delayChange = null;
64
63
  }
@@ -8,7 +8,7 @@ declare const useButton: (props?: BaseButtonProps) => {
8
8
  text?: boolean | undefined;
9
9
  outline?: boolean | undefined;
10
10
  type?: import("./use-button.type").ButtonType | undefined;
11
- size?: "small" | "default" | "large" | undefined;
11
+ size?: "small" | "large" | "default" | undefined;
12
12
  space?: boolean | undefined;
13
13
  shape?: import("./use-button.type").ButtonShape | undefined;
14
14
  buttonRef?: React.Ref<HTMLButtonElement> | undefined;
@@ -22,7 +22,7 @@ declare const useButton: (props?: BaseButtonProps) => {
22
22
  text?: boolean | undefined;
23
23
  outline?: boolean | undefined;
24
24
  type?: import("./use-button.type").ButtonType | undefined;
25
- size?: "small" | "default" | "large" | undefined;
25
+ size?: "small" | "large" | "default" | undefined;
26
26
  space?: boolean | undefined;
27
27
  shape?: import("./use-button.type").ButtonShape | undefined;
28
28
  buttonRef?: React.Ref<HTMLButtonElement> | undefined;
@@ -4,6 +4,18 @@ export interface UseCarouselProps {
4
4
  * 自动播放间隔时间, 等于0 不自动播放
5
5
  */
6
6
  interval?: number;
7
+ /**
8
+ * 默认当前索引(非受控模式)
9
+ */
10
+ defaultValue?: number;
11
+ /**
12
+ * 当前索引(受控模式)
13
+ */
14
+ value?: number;
15
+ /**
16
+ * 当前索引变化回调
17
+ */
18
+ onChange?: (current: number) => void;
7
19
  onMove?: (current: number, extra: {
8
20
  prev: number;
9
21
  direction: 'forward' | 'backward';
@@ -1 +1 @@
1
- {"version":3,"file":"use-carousel.d.ts","sourceRoot":"","sources":["use-carousel.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,CACP,OAAO,EAAE,MAAM,EACf,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,SAAS,GAAG,UAAU,CAAC;QAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,KACtF,IAAI,CAAC;CACX;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AAE5D,QAAA,MAAM,WAAW,UAAW,gBAAgB;;;;;;;;;oBAcV,MAAM;;CAmEvC,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"use-carousel.d.ts","sourceRoot":"","sources":["use-carousel.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,MAAM,CAAC,EAAE,CACP,OAAO,EAAE,MAAM,EACf,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,SAAS,GAAG,UAAU,CAAC;QAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,KACtF,IAAI,CAAC;CACX;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AAE5D,QAAA,MAAM,WAAW,UAAW,gBAAgB;;;;;;;;;oBAyCV,MAAM;;CA4FvC,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -17,9 +17,21 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
17
17
  var useCarousel = function useCarousel(props) {
18
18
  var total = props.total,
19
19
  _props$interval = props.interval,
20
- interval = _props$interval === void 0 ? 0 : _props$interval;
20
+ interval = _props$interval === void 0 ? 0 : _props$interval,
21
+ _props$defaultValue = props.defaultValue,
22
+ defaultValue = _props$defaultValue === void 0 ? 0 : _props$defaultValue,
23
+ valueProp = props.value,
24
+ onChange = props.onChange;
25
+
26
+ // 规范化初始值,确保在有效范围内
27
+ var normalizeIndex = function normalizeIndex(index) {
28
+ if (index < 0) return 0;
29
+ if (index >= total) return Math.max(0, total - 1);
30
+ return index;
31
+ };
32
+ var initialValue = normalizeIndex(valueProp !== undefined ? valueProp : defaultValue);
21
33
  var _useState = (0, _react.useState)({
22
- current: 0,
34
+ current: initialValue,
23
35
  pre: -1,
24
36
  direction: 'stop'
25
37
  }),
@@ -32,14 +44,32 @@ var useCarousel = function useCarousel(props) {
32
44
  var _useRef = (0, _react.useRef)({
33
45
  timer: null,
34
46
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
35
- setNext: function setNext(next) {}
47
+ setNext: function setNext(next) {},
48
+ prevValue: initialValue // 用于追踪上一次的值
36
49
  }),
37
50
  context = _useRef.current;
51
+
52
+ // 判断是否为受控模式
53
+ var isControlled = valueProp !== undefined;
54
+ // 获取实际使用的 current 值
55
+ var actualCurrent = isControlled ? normalizeIndex(valueProp) : current;
56
+
57
+ // 在受控模式下,计算 direction 和 pre
58
+ var actualPre = pre;
59
+ var actualDirection = direction;
60
+ if (isControlled) {
61
+ if (actualCurrent !== context.prevValue) {
62
+ actualPre = context.prevValue;
63
+ actualDirection = actualCurrent > context.prevValue ? 'forward' : 'backward';
64
+ context.prevValue = actualCurrent;
65
+ }
66
+ }
38
67
  var autoPlay = interval > 0 && total > 1;
39
68
  var moveTo = (0, _usePersistFn.usePersistFn)(function (i) {
40
69
  var next = i;
41
- if (next === current) return;
42
- var dir = next > current ? 'forward' : 'backward';
70
+ var prevCurrent = actualCurrent;
71
+ if (next === prevCurrent) return;
72
+ var dir = next > prevCurrent ? 'forward' : 'backward';
43
73
  if (next >= total) {
44
74
  dir = 'forward';
45
75
  next = 0;
@@ -47,14 +77,26 @@ var useCarousel = function useCarousel(props) {
47
77
  dir = 'backward';
48
78
  next = total - 1;
49
79
  }
50
- setState({
51
- current: next,
52
- pre: current,
53
- direction: dir
54
- });
80
+
81
+ // 非受控模式下更新内部状态
82
+ if (!isControlled) {
83
+ setState({
84
+ current: next,
85
+ pre: prevCurrent,
86
+ direction: dir
87
+ });
88
+ }
89
+ // 受控模式下不更新内部状态,由外部 value 控制
90
+
91
+ // 触发 onChange 回调
92
+ if (onChange) {
93
+ onChange(next);
94
+ }
95
+
96
+ // 触发 onMove 回调(向后兼容)
55
97
  if (props.onMove) {
56
98
  props.onMove(next, {
57
- prev: current,
99
+ prev: prevCurrent,
58
100
  direction: dir,
59
101
  moveTo: moveTo
60
102
  });
@@ -76,13 +118,13 @@ var useCarousel = function useCarousel(props) {
76
118
  });
77
119
  context.setNext = setNext;
78
120
  var start = (0, _usePersistFn.usePersistFn)(function () {
79
- setNext(current + 1);
121
+ setNext(actualCurrent + 1);
80
122
  });
81
123
  var forward = (0, _usePersistFn.usePersistFn)(function () {
82
- moveTo(current + 1);
124
+ moveTo(actualCurrent + 1);
83
125
  });
84
126
  var backward = (0, _usePersistFn.usePersistFn)(function () {
85
- moveTo(current - 1);
127
+ moveTo(actualCurrent - 1);
86
128
  });
87
129
  var func = (0, _useLatestObj.default)({
88
130
  start: start,
@@ -96,10 +138,18 @@ var useCarousel = function useCarousel(props) {
96
138
  start();
97
139
  }
98
140
  }, []);
141
+
142
+ // 受控模式下,当外部 value 变化时,重置自动轮播定时器
143
+ (0, _react.useEffect)(function () {
144
+ if (isControlled && autoPlay && valueProp !== undefined) {
145
+ stop();
146
+ context.setNext(actualCurrent + 1);
147
+ }
148
+ }, [valueProp]);
99
149
  return {
100
- current: current,
101
- pre: pre,
102
- direction: direction,
150
+ current: actualCurrent,
151
+ pre: actualPre,
152
+ direction: actualDirection,
103
153
  func: func
104
154
  };
105
155
  };
@@ -1 +1 @@
1
- {"version":3,"file":"use-date.d.ts","sourceRoot":"","sources":["use-date.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAU/C,QAAA,MAAM,OAAO,UAAW,YAAY;;;;;;;;;;wBAoBX,IAAI;2BAkDD,IAAI;yBAkBN,IAAI;0BAgEH,IAAI;+BAtFC,IAAI;+BAiDJ,IAAI,YAAY,OAAO;0BAnB5B,IAAI;2BAIH,IAAI;;gCAIC,IAAI;;CA+FpC,CAAC;AAEF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"use-date.d.ts","sourceRoot":"","sources":["use-date.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAW/C,QAAA,MAAM,OAAO,UAAW,YAAY;;;;;;;;;;wBAoBX,IAAI;2BAkDD,IAAI;yBAkBN,IAAI;0BAgEH,IAAI;+BAtFC,IAAI;+BAiDJ,IAAI,YAAY,OAAO;0BAnB5B,IAAI;2BAIH,IAAI;;gCAIC,IAAI;;CA+FpC,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -29,17 +29,17 @@ var useDate = function useDate(props) {
29
29
  }),
30
30
  context = _useRef.current;
31
31
  var current = props.current === undefined || !props.current ? currentState : props.current;
32
- var setCurrent = function setCurrent(date) {
32
+ var setCurrent = function setCurrent(date, type) {
33
33
  var _props$onCurrentChang2;
34
34
  if (props.current !== undefined) {
35
35
  var _props$onCurrentChang;
36
- (_props$onCurrentChang = props.onCurrentChange) === null || _props$onCurrentChang === void 0 || _props$onCurrentChang.call(props, date);
36
+ (_props$onCurrentChang = props.onCurrentChange) === null || _props$onCurrentChang === void 0 || _props$onCurrentChang.call(props, date, type);
37
37
  } else {
38
38
  if (date) {
39
39
  setCurrentState(date);
40
40
  }
41
41
  }
42
- (_props$onCurrentChang2 = props.onCurrentChange) === null || _props$onCurrentChang2 === void 0 || _props$onCurrentChang2.call(props, date);
42
+ (_props$onCurrentChang2 = props.onCurrentChange) === null || _props$onCurrentChang2 === void 0 || _props$onCurrentChang2.call(props, date, type);
43
43
  };
44
44
  var isToday = function isToday(date) {
45
45
  var today = _util.default.newDate(undefined, options);
@@ -61,19 +61,19 @@ var useDate = function useDate(props) {
61
61
  }, [options.weekStartsOn]);
62
62
  var handleNextYear = (0, _usePersistFn.default)(function () {
63
63
  var date = _util.default.addYears(current, 1, options);
64
- setCurrent(date);
64
+ setCurrent(date, 'year');
65
65
  });
66
66
  var handlePrevYear = (0, _usePersistFn.default)(function () {
67
67
  var date = _util.default.addYears(current, -1, options);
68
- setCurrent(date);
68
+ setCurrent(date, 'year');
69
69
  });
70
70
  var handleNextMonth = (0, _usePersistFn.default)(function () {
71
71
  var date = _util.default.addMonths(current, 1, options);
72
- setCurrent(date);
72
+ setCurrent(date, 'month');
73
73
  });
74
74
  var handlePrevMonth = (0, _usePersistFn.default)(function () {
75
75
  var date = _util.default.addMonths(current, -1, options);
76
- setCurrent(date);
76
+ setCurrent(date, 'month');
77
77
  });
78
78
  var isCurrentMonth = function isCurrentMonth(date) {
79
79
  return _util.default.isSameMonth(date, current, options);
@@ -1,9 +1,10 @@
1
+ import { DatePickerAreaType } from './use-datepicker-format.type';
1
2
  export interface UseDateProps {
2
3
  current?: Date;
3
4
  range?: boolean | number;
4
5
  rangeDate?: Array<Date | undefined>;
5
6
  defaultCurrent?: Date;
6
- onCurrentChange?: (date: Date) => void;
7
+ onCurrentChange?: (date: Date, type?: DatePickerAreaType) => void;
7
8
  onClearInputArr: (index?: number | undefined) => void;
8
9
  value?: Date;
9
10
  allowSingle?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"use-date.type.d.ts","sourceRoot":"","sources":["use-date.type.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;IACpC,cAAc,CAAC,EAAE,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACvC,eAAe,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACtD,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5D,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,QAAQ,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC;IAC/C,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACrC,OAAO,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH"}
1
+ {"version":3,"file":"use-date.type.d.ts","sourceRoot":"","sources":["use-date.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;IACpC,cAAc,CAAC,EAAE,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAClE,eAAe,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACtD,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5D,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,QAAQ,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC;IAC/C,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACrC,OAAO,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH"}
@@ -12,8 +12,8 @@ declare const useRangePick: (props: useRangeProps) => {
12
12
  setModeEnd: (m: any) => void;
13
13
  setDateStart: (date: Date, noClose?: boolean) => void;
14
14
  setDateEnd: (date: Date, noClose?: boolean) => void;
15
- setCurrentStart: (date: Date, ...args: any[]) => void;
16
- setCurrentEnd: (date: Date, ...args: any[]) => void;
15
+ setCurrentStart: (date: Date, type?: string) => void;
16
+ setCurrentEnd: (date: Date, type?: string) => void;
17
17
  setTargetStart: (date?: Date) => void;
18
18
  setTargetEnd: (date?: Date) => void;
19
19
  startDisabled: (date: Date) => boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"use-datepicker-range.d.ts","sourceRoot":"","sources":["use-datepicker-range.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAK5D,QAAA,MAAM,YAAY,UAAW,aAAa;;;;;;;;;;;6BA2FC,IAAI,YAAY,OAAO;2BAKzB,IAAI,YAAY,OAAO;gCAblB,IAAI,WAAW,GAAG,EAAE;8BAItB,IAAI,WAAW,GAAG,EAAE;gCAclB,IAAI;8BA4BN,IAAI;8BAqBJ,IAAI;4BAeN,IAAI;+BA5DD,IAAI;6BAYN,IAAI;;CA2I9C,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"use-datepicker-range.d.ts","sourceRoot":"","sources":["use-datepicker-range.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAK5D,QAAA,MAAM,YAAY,UAAW,aAAa;;;;;;;;;;;6BA2FC,IAAI,YAAY,OAAO;2BAKzB,IAAI,YAAY,OAAO;gCAblB,IAAI,SAAS,MAAM;8BAIrB,IAAI,SAAS,MAAM;gCAcjB,IAAI;8BA4BN,IAAI;8BAqBJ,IAAI;4BAeN,IAAI;+BA5DD,IAAI;6BAYN,IAAI;;CA2I9C,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -58,11 +58,8 @@ var useRangePick = function useRangePick(props) {
58
58
  return newArr;
59
59
  });
60
60
  };
61
- var setCurrent = (0, _usePersistFn.usePersistFn)(function (index, date) {
62
- for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
63
- args[_key - 2] = arguments[_key];
64
- }
65
- props.setCurrentArr.apply(props, [function (arr) {
61
+ var setCurrent = (0, _usePersistFn.usePersistFn)(function (index, date, type) {
62
+ props.setCurrentArr(function (arr) {
66
63
  var newArr = _toConsumableArray(arr);
67
64
  newArr[index] = date;
68
65
  var modeCache = context.modeCache;
@@ -88,19 +85,13 @@ var useRangePick = function useRangePick(props) {
88
85
  }
89
86
  }
90
87
  return newArr;
91
- }].concat(args));
88
+ }, type, undefined);
92
89
  });
93
- var setCurrentStart = (0, _usePersistFn.usePersistFn)(function (date) {
94
- for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
95
- args[_key2 - 1] = arguments[_key2];
96
- }
97
- setCurrent.apply(void 0, [0, date].concat(args));
90
+ var setCurrentStart = (0, _usePersistFn.usePersistFn)(function (date, type) {
91
+ setCurrent(0, date, type);
98
92
  });
99
- var setCurrentEnd = (0, _usePersistFn.usePersistFn)(function (date) {
100
- for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
101
- args[_key3 - 1] = arguments[_key3];
102
- }
103
- setCurrent.apply(void 0, [1, date].concat(args));
93
+ var setCurrentEnd = (0, _usePersistFn.usePersistFn)(function (date, type) {
94
+ setCurrent(1, date, type);
104
95
  });
105
96
  var setDateStart = (0, _usePersistFn.usePersistFn)(function (date, noClose) {
106
97
  setDate(0, date, noClose);
@@ -1 +1 @@
1
- {"version":3,"file":"use-month.d.ts","sourceRoot":"","sources":["use-month.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAajD,QAAA,MAAM,QAAQ,UAAW,aAAa;;;;;;;sBAuBf,IAAI;2BAkCC,IAAI;yBAQN,IAAI;0BAgBH,IAAI;iCAPG,IAAI,YAAW,OAAO;4BAJ3B,IAAI;;CAwChC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"use-month.d.ts","sourceRoot":"","sources":["use-month.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAcjD,QAAA,MAAM,QAAQ,UAAW,aAAa;;;;;;;sBAuBf,IAAI;2BAkCC,IAAI;yBAQN,IAAI;0BAgBH,IAAI;iCAPG,IAAI,YAAW,OAAO;4BAJ3B,IAAI;;CAwChC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -30,15 +30,15 @@ var useMonth = function useMonth(props) {
30
30
  context = _useRef.current;
31
31
  var current = props.current === undefined ? currentState : props.current;
32
32
  var startYear = _util.default.getDateInfo(current, 'year', options);
33
- var setCurrent = function setCurrent(date) {
33
+ var setCurrent = function setCurrent(date, type) {
34
34
  var _props$onCurrentChang2;
35
35
  if (props.current !== undefined) {
36
36
  var _props$onCurrentChang;
37
- (_props$onCurrentChang = props.onCurrentChange) === null || _props$onCurrentChang === void 0 || _props$onCurrentChang.call(props, date);
37
+ (_props$onCurrentChang = props.onCurrentChange) === null || _props$onCurrentChang === void 0 || _props$onCurrentChang.call(props, date, type);
38
38
  } else {
39
39
  setCurrentState(date);
40
40
  }
41
- (_props$onCurrentChang2 = props.onCurrentChange) === null || _props$onCurrentChang2 === void 0 || _props$onCurrentChang2.call(props, date);
41
+ (_props$onCurrentChang2 = props.onCurrentChange) === null || _props$onCurrentChang2 === void 0 || _props$onCurrentChang2.call(props, date, type);
42
42
  };
43
43
  var isNow = function isNow(date) {
44
44
  var today = _util.default.newDate(undefined, options);
@@ -60,11 +60,11 @@ var useMonth = function useMonth(props) {
60
60
  };
61
61
  var handleNext = (0, _usePersistFn.default)(function () {
62
62
  var date = _util.default.addYears(current, 1, options);
63
- setCurrent(date);
63
+ setCurrent(date, 'year');
64
64
  });
65
65
  var handlePrev = (0, _usePersistFn.default)(function () {
66
66
  var date = _util.default.addYears(current, -1, options);
67
- setCurrent(date);
67
+ setCurrent(date, 'year');
68
68
  });
69
69
  var isDisabled = function isDisabled(date) {
70
70
  var min = props.min,
@@ -1,8 +1,9 @@
1
+ import { DatePickerAreaType } from './use-datepicker-format.type';
1
2
  export interface UseMonthProps {
2
3
  current?: Date;
3
4
  rangeDate?: Array<Date | undefined>;
4
5
  defaultCurrent?: Date;
5
- onCurrentChange?: (date: Date) => void;
6
+ onCurrentChange?: (date: Date, type?: DatePickerAreaType) => void;
6
7
  value?: Date;
7
8
  onChange?: (date: Date, onClose?: boolean) => void;
8
9
  min?: Date;
@@ -1 +1 @@
1
- {"version":3,"file":"use-month.type.d.ts","sourceRoot":"","sources":["use-month.type.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,SAAS,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;IACpC,cAAc,CAAC,EAAE,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACvC,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACnD,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC;IAC/C,OAAO,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH"}
1
+ {"version":3,"file":"use-month.type.d.ts","sourceRoot":"","sources":["use-month.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,SAAS,CAAC,EAAE,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;IACpC,cAAc,CAAC,EAAE,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAClE,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACnD,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC;IAC/C,OAAO,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-quarter.d.ts","sourceRoot":"","sources":["use-quarter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAajD,QAAA,MAAM,UAAU,UAAW,aAAa;;;;;;;sBAuBjB,IAAI;2BAiCC,IAAI;yBAQN,IAAI;0BAgBH,IAAI;mCAPK,IAAI,YAAY,OAAO;8BAJ5B,IAAI;;CAwClC,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"use-quarter.d.ts","sourceRoot":"","sources":["use-quarter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAcjD,QAAA,MAAM,UAAU,UAAW,aAAa;;;;;;;sBAuBjB,IAAI;2BAiCC,IAAI;yBAQN,IAAI;0BAgBH,IAAI;mCAPK,IAAI,YAAY,OAAO;8BAJ5B,IAAI;;CAwClC,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -30,15 +30,15 @@ var useQuarter = function useQuarter(props) {
30
30
  context = _useRef.current;
31
31
  var current = props.current === undefined ? currentState : props.current;
32
32
  var startYear = _util.default.getDateInfo(current, 'year', options);
33
- var setCurrent = function setCurrent(date) {
33
+ var setCurrent = function setCurrent(date, type) {
34
34
  var _props$onCurrentChang2;
35
35
  if (props.current !== undefined) {
36
36
  var _props$onCurrentChang;
37
- (_props$onCurrentChang = props.onCurrentChange) === null || _props$onCurrentChang === void 0 || _props$onCurrentChang.call(props, date);
37
+ (_props$onCurrentChang = props.onCurrentChange) === null || _props$onCurrentChang === void 0 || _props$onCurrentChang.call(props, date, type);
38
38
  } else {
39
39
  setCurrentState(date);
40
40
  }
41
- (_props$onCurrentChang2 = props.onCurrentChange) === null || _props$onCurrentChang2 === void 0 || _props$onCurrentChang2.call(props, date);
41
+ (_props$onCurrentChang2 = props.onCurrentChange) === null || _props$onCurrentChang2 === void 0 || _props$onCurrentChang2.call(props, date, type);
42
42
  };
43
43
  var isNow = function isNow(date) {
44
44
  var today = _util.default.newDate(undefined, options);
@@ -59,11 +59,11 @@ var useQuarter = function useQuarter(props) {
59
59
  };
60
60
  var handleNext = (0, _usePersistFn.default)(function () {
61
61
  var date = _util.default.addYears(current, 1, options);
62
- setCurrent(date);
62
+ setCurrent(date, 'year');
63
63
  });
64
64
  var handlePrev = (0, _usePersistFn.default)(function () {
65
65
  var date = _util.default.addYears(current, -1, options);
66
- setCurrent(date);
66
+ setCurrent(date, 'year');
67
67
  });
68
68
  var isDisabled = function isDisabled(date) {
69
69
  var min = props.min,
@@ -1 +1 @@
1
- {"version":3,"file":"use-year.d.ts","sourceRoot":"","sources":["use-year.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAW/C,QAAA,MAAM,OAAO,UAAW,YAAY;;;;;;;;;sBAsBb,IAAI;2BA8BC,IAAI;yBAQN,IAAI;0BAgBH,IAAI;gCAPE,IAAI,YAAY,OAAO;2BAJ5B,IAAI;;CA4C/B,CAAC;AAEF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"use-year.d.ts","sourceRoot":"","sources":["use-year.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAY/C,QAAA,MAAM,OAAO,UAAW,YAAY;;;;;;;;;sBAsBb,IAAI;2BA8BC,IAAI;yBAQN,IAAI;0BAgBH,IAAI;gCAPE,IAAI,YAAY,OAAO;2BAJ5B,IAAI;;CA4C/B,CAAC;AAEF,eAAe,OAAO,CAAC"}