@aiszlab/relax 1.4.4 → 1.4.5

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.
@@ -0,0 +1,49 @@
1
+ import { type DragEvent } from "react";
2
+ export type UsingDrag = {
3
+ /** Optional callback invoked upon drag end. */
4
+ onDragEnd?: (event: DragEvent<HTMLDivElement>, state: DragState) => void;
5
+ /** Optional callback invoked upon drag movement. */
6
+ onDragMove?: (event: DragEvent<HTMLDivElement>, state: DragState) => void;
7
+ /** Optional callback invoked upon drag start. */
8
+ onDragStart?: (event: DragEvent<HTMLDivElement>, state: DragState) => void;
9
+ };
10
+ export type DragState = {
11
+ /**
12
+ * @description
13
+ * x position
14
+ */
15
+ x: number;
16
+ /**
17
+ * @description
18
+ * y position
19
+ */
20
+ y: number;
21
+ /**
22
+ * @description
23
+ * offset X
24
+ */
25
+ offsetX?: number;
26
+ /**
27
+ * @description
28
+ * offset Y
29
+ */
30
+ offsetY?: number;
31
+ /**
32
+ * @description
33
+ * Whether a drag is currently in progress.
34
+ */
35
+ isDragging: boolean;
36
+ };
37
+ export type UsedDrag = [
38
+ DragState,
39
+ {
40
+ onDragEnd: (event: DragEvent<HTMLDivElement>) => void;
41
+ onDragMove: (event: DragEvent<HTMLDivElement>) => void;
42
+ onDragStart: (event: DragEvent<HTMLDivElement>) => void;
43
+ }
44
+ ];
45
+ /**
46
+ * @description
47
+ * Hook for dragging
48
+ */
49
+ export default function useDrag({ onDragEnd: _onDragEnd, onDragMove: _onDragMove, onDragStart: _onDragStart, }?: UsingDrag | undefined): UsedDrag;
@@ -1,64 +1,68 @@
1
1
  'use strict';
2
2
 
3
- var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
4
3
  var react = require('react');
5
4
  var useEvent = require('./use-event.cjs');
6
5
  var debounce = require('../utils/debounce.cjs');
6
+ var first = require('../utils/first.cjs');
7
7
 
8
8
  /**
9
9
  * @description
10
10
  * use infinite scroll
11
11
  */
12
- var useInfiniteScroll = function useInfiniteScroll(_ref) {
13
- var _ref$hasMore = _ref.hasMore,
12
+ var useInfiniteScroll = function useInfiniteScroll() {
13
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
14
+ _ref$hasMore = _ref.hasMore,
14
15
  hasMore = _ref$hasMore === void 0 ? true : _ref$hasMore,
15
16
  _ref$distance = _ref.distance,
16
17
  distance = _ref$distance === void 0 ? 0 : _ref$distance,
17
18
  onLoadMore = _ref.onLoadMore;
18
- var loadable = react.useRef(null);
19
- var scrollable = react.useRef(null);
19
+ var sentinelRef = react.useRef(null);
20
+ var viewportRef = react.useRef(null);
21
+ // `useEvent` keep loadMore always the same
20
22
  var loadMore = useEvent.useEvent(function () {
21
23
  onLoadMore === null || onLoadMore === void 0 || onLoadMore();
22
24
  });
23
25
  react.useEffect(function () {
24
- var loader = loadable.current;
25
- var scroller = scrollable.current;
26
+ var _viewportRef$current;
27
+ var _sentinel = sentinelRef.current;
28
+ var _viewport = (_viewportRef$current = viewportRef.current) !== null && _viewportRef$current !== void 0 ? _viewportRef$current : globalThis.window.document.body;
29
+ // no more data, never listen
26
30
  if (!hasMore) return;
27
- if (!scroller) return;
28
- // use loader if loader is assigned
29
- if (!!loader) {
30
- var options = {
31
- root: scroller,
32
- rootMargin: "0px 0px ".concat(distance, "px 0px"),
33
- threshold: 0.1
34
- };
35
- var observer = new IntersectionObserver(function (entries) {
36
- var _entries = _slicedToArray(entries, 1),
37
- entry = _entries[0];
38
- if (!entry.isIntersecting) return;
39
- loadMore();
40
- }, options);
41
- observer.observe(loader);
31
+ // when _sentinel is not provided
32
+ // use `scroll` event to listen `viewport`
33
+ // it is not recommended, has performance issue!!!
34
+ if (!_sentinel) {
35
+ var _debounce = debounce.debounce(function () {
36
+ if (_viewport.scrollHeight - _viewport.scrollTop > _viewport.clientHeight + distance) {
37
+ return;
38
+ }
39
+ loadMore();
40
+ }, 200),
41
+ next = _debounce.next,
42
+ abort = _debounce.abort;
43
+ _viewport.addEventListener("scroll", next);
42
44
  return function () {
43
- observer.disconnect();
45
+ abort();
46
+ _viewport.removeEventListener("scroll", next);
44
47
  };
45
48
  }
46
- // listen scroll event, when loader is not assigned
47
- var _debounce = debounce.debounce(function () {
48
- if (scroller.scrollHeight - scroller.scrollTop > scroller.clientHeight + distance) {
49
- return;
50
- }
51
- loadMore();
52
- }, 100),
53
- next = _debounce.next,
54
- abort = _debounce.abort;
55
- scroller.addEventListener("scroll", next);
49
+ // use `IntersectionObserver` to check current node is in viewport
50
+ var _listener = new IntersectionObserver(function (entries) {
51
+ var _element = first.first(entries);
52
+ if (!_element) return;
53
+ if (!_element.isIntersecting) return;
54
+ loadMore();
55
+ }, {
56
+ root: _viewport,
57
+ rootMargin: "0px 0px ".concat(distance, "px 0px")
58
+ });
59
+ _listener.observe(_sentinel);
56
60
  return function () {
57
- scroller.removeEventListener("scroll", next);
58
- abort();
61
+ _listener.unobserve(_sentinel);
62
+ _listener.disconnect();
59
63
  };
60
64
  }, [hasMore]);
61
- return [loadable, scrollable];
65
+ return [sentinelRef, viewportRef];
62
66
  };
63
67
 
64
68
  exports.useInfiniteScroll = useInfiniteScroll;
@@ -1,5 +1,5 @@
1
1
  import { type RefObject } from "react";
2
- type UseInfiniteScrollProps = {
2
+ type UsingInfiniteScroll = {
3
3
  /**
4
4
  * @description
5
5
  * hasMore
@@ -16,10 +16,13 @@ type UseInfiniteScrollProps = {
16
16
  */
17
17
  onLoadMore?: () => void;
18
18
  };
19
- type UsedInfiniteScroll = [loadable: RefObject<HTMLElement>, scrollable: RefObject<HTMLElement>];
19
+ type UsedInfiniteScroll<S, V> = [
20
+ sentinelRef: RefObject<S | null>,
21
+ viewportRef: RefObject<V | null>
22
+ ];
20
23
  /**
21
24
  * @description
22
25
  * use infinite scroll
23
26
  */
24
- export declare const useInfiniteScroll: ({ hasMore, distance, onLoadMore, }: UseInfiniteScrollProps) => UsedInfiniteScroll;
27
+ export declare const useInfiniteScroll: <S extends HTMLElement = HTMLElement, V extends HTMLElement = HTMLElement>({ hasMore, distance, onLoadMore }?: UsingInfiniteScroll) => UsedInfiniteScroll<S, V>;
25
28
  export {};
@@ -1,62 +1,66 @@
1
- import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
1
  import { useRef, useEffect } from 'react';
3
2
  import { useEvent } from './use-event.mjs';
4
3
  import { debounce } from '../utils/debounce.mjs';
4
+ import { first } from '../utils/first.mjs';
5
5
 
6
6
  /**
7
7
  * @description
8
8
  * use infinite scroll
9
9
  */
10
- var useInfiniteScroll = function useInfiniteScroll(_ref) {
11
- var _ref$hasMore = _ref.hasMore,
10
+ var useInfiniteScroll = function useInfiniteScroll() {
11
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
12
+ _ref$hasMore = _ref.hasMore,
12
13
  hasMore = _ref$hasMore === void 0 ? true : _ref$hasMore,
13
14
  _ref$distance = _ref.distance,
14
15
  distance = _ref$distance === void 0 ? 0 : _ref$distance,
15
16
  onLoadMore = _ref.onLoadMore;
16
- var loadable = useRef(null);
17
- var scrollable = useRef(null);
17
+ var sentinelRef = useRef(null);
18
+ var viewportRef = useRef(null);
19
+ // `useEvent` keep loadMore always the same
18
20
  var loadMore = useEvent(function () {
19
21
  onLoadMore === null || onLoadMore === void 0 || onLoadMore();
20
22
  });
21
23
  useEffect(function () {
22
- var loader = loadable.current;
23
- var scroller = scrollable.current;
24
+ var _viewportRef$current;
25
+ var _sentinel = sentinelRef.current;
26
+ var _viewport = (_viewportRef$current = viewportRef.current) !== null && _viewportRef$current !== void 0 ? _viewportRef$current : globalThis.window.document.body;
27
+ // no more data, never listen
24
28
  if (!hasMore) return;
25
- if (!scroller) return;
26
- // use loader if loader is assigned
27
- if (!!loader) {
28
- var options = {
29
- root: scroller,
30
- rootMargin: "0px 0px ".concat(distance, "px 0px"),
31
- threshold: 0.1
32
- };
33
- var observer = new IntersectionObserver(function (entries) {
34
- var _entries = _slicedToArray(entries, 1),
35
- entry = _entries[0];
36
- if (!entry.isIntersecting) return;
37
- loadMore();
38
- }, options);
39
- observer.observe(loader);
29
+ // when _sentinel is not provided
30
+ // use `scroll` event to listen `viewport`
31
+ // it is not recommended, has performance issue!!!
32
+ if (!_sentinel) {
33
+ var _debounce = debounce(function () {
34
+ if (_viewport.scrollHeight - _viewport.scrollTop > _viewport.clientHeight + distance) {
35
+ return;
36
+ }
37
+ loadMore();
38
+ }, 200),
39
+ next = _debounce.next,
40
+ abort = _debounce.abort;
41
+ _viewport.addEventListener("scroll", next);
40
42
  return function () {
41
- observer.disconnect();
43
+ abort();
44
+ _viewport.removeEventListener("scroll", next);
42
45
  };
43
46
  }
44
- // listen scroll event, when loader is not assigned
45
- var _debounce = debounce(function () {
46
- if (scroller.scrollHeight - scroller.scrollTop > scroller.clientHeight + distance) {
47
- return;
48
- }
49
- loadMore();
50
- }, 100),
51
- next = _debounce.next,
52
- abort = _debounce.abort;
53
- scroller.addEventListener("scroll", next);
47
+ // use `IntersectionObserver` to check current node is in viewport
48
+ var _listener = new IntersectionObserver(function (entries) {
49
+ var _element = first(entries);
50
+ if (!_element) return;
51
+ if (!_element.isIntersecting) return;
52
+ loadMore();
53
+ }, {
54
+ root: _viewport,
55
+ rootMargin: "0px 0px ".concat(distance, "px 0px")
56
+ });
57
+ _listener.observe(_sentinel);
54
58
  return function () {
55
- scroller.removeEventListener("scroll", next);
56
- abort();
59
+ _listener.unobserve(_sentinel);
60
+ _listener.disconnect();
57
61
  };
58
62
  }, [hasMore]);
59
- return [loadable, scrollable];
63
+ return [sentinelRef, viewportRef];
60
64
  };
61
65
 
62
66
  export { useInfiniteScroll };
@@ -1,4 +1,4 @@
1
- type UseIsMountedBy = {
1
+ type UsingIsMounted = {
2
2
  /**
3
3
  * @description
4
4
  * after mount, react will rerender current component
@@ -9,5 +9,5 @@ type UseIsMountedBy = {
9
9
  * @description
10
10
  * `useIsMounted`
11
11
  */
12
- export declare const useIsMounted: ({ rerender }?: UseIsMountedBy) => () => boolean;
12
+ export declare const useIsMounted: ({ rerender }?: UsingIsMounted) => () => boolean;
13
13
  export {};
@@ -0,0 +1,12 @@
1
+ import { SetStateAction } from "react";
2
+ type Callback<S> = (state: S) => void;
3
+ type StateSetter<S> = (state: SetStateAction<S>, callback?: Callback<S>) => void;
4
+ type UsedUpdateState<S> = [S, StateSetter<S>];
5
+ /**
6
+ * @description
7
+ * in class component
8
+ * use setState second parameter callback to get the latest state
9
+ */
10
+ declare function useUpdateState<S = undefined>(): UsedUpdateState<S | undefined>;
11
+ declare function useUpdateState<S>(initialState: S): UsedUpdateState<S>;
12
+ export { useUpdateState };
@@ -6,7 +6,6 @@
6
6
  */
7
7
  var isHTMLElement = function isHTMLElement(value) {
8
8
  if (!value) return false;
9
- // @ts-ignore
10
9
  return value.nodeType === 1;
11
10
  };
12
11
 
@@ -4,7 +4,6 @@
4
4
  */
5
5
  var isHTMLElement = function isHTMLElement(value) {
6
6
  if (!value) return false;
7
- // @ts-ignore
8
7
  return value.nodeType === 1;
9
8
  };
10
9
 
@@ -8,7 +8,8 @@ var isMobile = function isMobile() {
8
8
  if (typeof navigator === "undefined" || typeof window === "undefined") {
9
9
  return false;
10
10
  }
11
- var agent = navigator.userAgent || navigator.vendor || window.opera;
11
+ var agent = navigator.userAgent || navigator.vendor;
12
+ if (!agent) return false;
12
13
  return /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(agent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(agent === null || agent === void 0 ? void 0 : agent.substring(0, 4));
13
14
  };
14
15
 
@@ -6,7 +6,8 @@ var isMobile = function isMobile() {
6
6
  if (typeof navigator === "undefined" || typeof window === "undefined") {
7
7
  return false;
8
8
  }
9
- var agent = navigator.userAgent || navigator.vendor || window.opera;
9
+ var agent = navigator.userAgent || navigator.vendor;
10
+ if (!agent) return false;
10
11
  return /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(agent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(agent === null || agent === void 0 ? void 0 : agent.substring(0, 4));
11
12
  };
12
13
 
@@ -9,7 +9,6 @@ function isOverflow() {
9
9
  if (element === document.body) {
10
10
  return document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight) && window.innerWidth > document.body.offsetWidth;
11
11
  }
12
- // not body
13
12
  return element.scrollHeight > element.clientHeight;
14
13
  }
15
14
 
@@ -7,7 +7,6 @@ function isOverflow() {
7
7
  if (element === document.body) {
8
8
  return document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight) && window.innerWidth > document.body.offsetWidth;
9
9
  }
10
- // not body
11
10
  return element.scrollHeight > element.clientHeight;
12
11
  }
13
12
 
@@ -1 +1 @@
1
- export type First<T, R = undefined> = T extends string ? string : T extends [infer D, ...Array<unknown>] ? D : R;
1
+ export type First<T, R = undefined> = T extends string ? string : T extends [infer D, ...Array<unknown>] ? D : T extends Array<infer S> ? S | undefined : R;
@@ -7,7 +7,6 @@ var toArray = require('./to-array.cjs');
7
7
  * first element of array
8
8
  */
9
9
  var first = function first(value) {
10
- // @ts-ignore
11
10
  return toArray.toArray(value, {
12
11
  separator: ""
13
12
  }).at(0);
@@ -5,7 +5,6 @@ import { toArray } from './to-array.mjs';
5
5
  * first element of array
6
6
  */
7
7
  var first = function first(value) {
8
- // @ts-ignore
9
8
  return toArray(value, {
10
9
  separator: ""
11
10
  }).at(0);
@@ -2,16 +2,10 @@
2
2
 
3
3
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
4
4
 
5
- /**
6
- * @description
7
- * max
8
- */
9
- var max = function max() {
10
- for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {
11
- args[_key2] = arguments[_key2];
5
+ function max(values, pipe) {
6
+ if (!pipe) {
7
+ return Math.max.apply(Math, _toConsumableArray(values));
12
8
  }
13
- var values = args[0],
14
- pipe = args[1];
15
9
  var _values = values.reduce(function (prev, _value) {
16
10
  var _key = pipe(_value);
17
11
  if (!prev.has(_key)) {
@@ -21,6 +15,6 @@ var max = function max() {
21
15
  }, new Map());
22
16
  var _max = Math.max.apply(Math, _toConsumableArray(_values.keys()));
23
17
  return _values.get(_max);
24
- };
18
+ }
25
19
 
26
20
  exports.max = max;
@@ -2,4 +2,6 @@
2
2
  * @description
3
3
  * max
4
4
  */
5
- export declare const max: <T>(values: T[], pipe: (value: T) => number) => T;
5
+ declare function max(values: number[]): number;
6
+ declare function max<T>(values: T[], pipe: (value: T) => number): T;
7
+ export { max };
@@ -1,15 +1,9 @@
1
1
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
2
2
 
3
- /**
4
- * @description
5
- * max
6
- */
7
- var max = function max() {
8
- for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {
9
- args[_key2] = arguments[_key2];
3
+ function max(values, pipe) {
4
+ if (!pipe) {
5
+ return Math.max.apply(Math, _toConsumableArray(values));
10
6
  }
11
- var values = args[0],
12
- pipe = args[1];
13
7
  var _values = values.reduce(function (prev, _value) {
14
8
  var _key = pipe(_value);
15
9
  if (!prev.has(_key)) {
@@ -19,6 +13,6 @@ var max = function max() {
19
13
  }, new Map());
20
14
  var _max = Math.max.apply(Math, _toConsumableArray(_values.keys()));
21
15
  return _values.get(_max);
22
- };
16
+ }
23
17
 
24
18
  export { max };
@@ -2,16 +2,10 @@
2
2
 
3
3
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
4
4
 
5
- /**
6
- * @description
7
- * min
8
- */
9
- var min = function min() {
10
- for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {
11
- args[_key2] = arguments[_key2];
5
+ function min(values, pipe) {
6
+ if (!pipe) {
7
+ return Math.min.apply(Math, _toConsumableArray(values));
12
8
  }
13
- var values = args[0],
14
- pipe = args[1];
15
9
  var _values = values.reduce(function (prev, _value) {
16
10
  var _key = pipe(_value);
17
11
  if (!prev.has(_key)) {
@@ -19,8 +13,8 @@ var min = function min() {
19
13
  }
20
14
  return prev;
21
15
  }, new Map());
22
- var _max = Math.min.apply(Math, _toConsumableArray(_values.keys()));
23
- return _values.get(_max);
24
- };
16
+ var _min = Math.min.apply(Math, _toConsumableArray(_values.keys()));
17
+ return _values.get(_min);
18
+ }
25
19
 
26
20
  exports.min = min;
@@ -2,4 +2,6 @@
2
2
  * @description
3
3
  * min
4
4
  */
5
- export declare const min: <T>(values: T[], pipe: (value: T) => number) => T;
5
+ declare function min(values: number[]): number;
6
+ declare function min<T>(values: T[], pipe: (value: T) => number): T;
7
+ export { min };
@@ -1,15 +1,9 @@
1
1
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
2
2
 
3
- /**
4
- * @description
5
- * min
6
- */
7
- var min = function min() {
8
- for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {
9
- args[_key2] = arguments[_key2];
3
+ function min(values, pipe) {
4
+ if (!pipe) {
5
+ return Math.min.apply(Math, _toConsumableArray(values));
10
6
  }
11
- var values = args[0],
12
- pipe = args[1];
13
7
  var _values = values.reduce(function (prev, _value) {
14
8
  var _key = pipe(_value);
15
9
  if (!prev.has(_key)) {
@@ -17,8 +11,8 @@ var min = function min() {
17
11
  }
18
12
  return prev;
19
13
  }, new Map());
20
- var _max = Math.min.apply(Math, _toConsumableArray(_values.keys()));
21
- return _values.get(_max);
22
- };
14
+ var _min = Math.min.apply(Math, _toConsumableArray(_values.keys()));
15
+ return _values.get(_min);
16
+ }
23
17
 
24
18
  export { min };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aiszlab/relax",
3
- "version": "1.4.4",
3
+ "version": "1.4.5",
4
4
  "description": "react utils collection",
5
5
  "exports": {
6
6
  ".": {
@@ -43,7 +43,7 @@
43
43
  "devDependencies": {
44
44
  "@babel/core": "^7.25.2",
45
45
  "@babel/plugin-transform-runtime": "^7.25.4",
46
- "@babel/preset-env": "^7.25.4",
46
+ "@babel/preset-env": "^7.25.7",
47
47
  "@babel/preset-react": "^7.24.7",
48
48
  "@babel/preset-typescript": "^7.24.7",
49
49
  "@jest/globals": "^29.7.0",
@@ -52,14 +52,14 @@
52
52
  "@rollup/plugin-typescript": "^12.1.0",
53
53
  "@testing-library/react": "^16.0.1",
54
54
  "@types/babel__core": "^7.20.5",
55
- "@types/react": "^18.3.10",
55
+ "@types/react": "^18.3.11",
56
56
  "@types/react-dom": "^18.3.0",
57
57
  "@types/react-is": "^18.3.0",
58
58
  "jest": "^29.7.0",
59
59
  "jest-environment-jsdom": "^29.7.0",
60
60
  "react": "^18.3.1",
61
61
  "react-dom": "^18.3.1",
62
- "rollup": "^4.22.5",
62
+ "rollup": "^4.24.0",
63
63
  "typescript": "5.6.2"
64
64
  },
65
65
  "peerDependencies": {