Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@asherng/hooks

Package Overview
Dependencies
Maintainers
1
Versions
27
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@asherng/hooks - npm Package Compare versions

Comparing version
0.1.10
to
1.0.6
+32
-21
package.json
{
"name": "@asherng/hooks",
"version": "0.1.10",
"version": "1.0.6",
"description": "Hooks for React components",

@@ -18,15 +18,19 @@ "bugs": {

],
"main": "lib/index",
"types": "lib/index.d.ts",
"main": "dist/index",
"types": "dist/index.d.ts",
"files": [
"/*.d.ts",
"/*.js",
"hooks"
"dist"
],
"scripts": {
"build": "tsc -p tsconfig.build.json"
"dependencies": {
"@hookform/resolvers": "3.3.4",
"lodash.once": "4.1.1",
"react-fast-compare": "3.2.2",
"react-hook-form": "7.51.1",
"zod": "3.22.4",
"@asherng/utils": "^1.0.6"
},
"devDependencies": {
"@types/lodash.once": "4.1.7",
"typescript": "5.1.6"
"@types/lodash.once": "4.1.9",
"typescript": "5.4.3",
"@asherng/common-types": "^1.0.6"
},

@@ -36,14 +40,21 @@ "publishConfig": {

},
"exports": {
"./*": {
"types": "./dist/*/index.d.ts",
"require": "./dist/*/index.js",
"import": {
"types": "./dist/*/index.d.mts",
"default": "./dist/*/index.mjs"
}
}
},
"author": "Asher Nguyen <phucnguyenhoang1985@gmail.com>",
"license": "MIT",
"dependencies": {
"@asherng/common-types": "^0.1.3",
"@asherng/utils": "^0.1.7",
"@hookform/resolvers": "3.1.1",
"lodash.once": "4.1.1",
"react-fast-compare": "^3.2.2",
"react-hook-form": "7.45.1",
"yup": "1.2.0"
},
"gitHead": "5147f95a8849f7176622f3abd2874cfaa8b19568"
}
"gitHead": "c4702ddc44863e127b8f57ceee1141daecad5d35",
"scripts": {
"build": "tsup",
"build:fast": "pnpm build --no-splitting --shims",
"dev": "pnpm clean && pnpm build:fast --watch src",
"clean": "rimraf dist"
}
}
import { UseAsyncLoading } from './types';
declare const useAsyncLoading: UseAsyncLoading;
export default useAsyncLoading;
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
const useStateIfMounted_1 = __importDefault(require("../useStateIfMounted"));
const useAsyncLoading = ({ func, onError, onSuccess }, deps) => {
const [loading, setLoading] = (0, useStateIfMounted_1.default)(false);
const [error, setError] = (0, useStateIfMounted_1.default)(undefined);
const wrappedFunc = (0, react_1.useCallback)((...args) => __awaiter(void 0, void 0, void 0, function* () {
if (!func) {
return;
}
setLoading(true);
let res;
try {
res = (yield (func === null || func === void 0 ? void 0 : func(...args)));
onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(res);
}
catch (e) {
setError(e);
onError === null || onError === void 0 ? void 0 : onError(e);
}
finally {
setLoading(false);
}
return res;
}),
// eslint-disable-next-line react-hooks/exhaustive-deps
deps !== null && deps !== void 0 ? deps : [func]);
return [wrappedFunc, loading, error];
};
exports.default = useAsyncLoading;
import { DependencyList } from 'react';
import { AsyncFunction, GeneralFunction } from '@asherng/common-types';
export interface UseAsyncLoadingParams<F extends AsyncFunction | GeneralFunction = AsyncFunction | GeneralFunction> {
func?: F;
onSuccess?: (res?: Awaited<ReturnType<F>>) => void;
onError?: (err: Error) => void;
}
export type UseAsyncLoading = <F extends AsyncFunction | GeneralFunction = AsyncFunction | GeneralFunction>(params: UseAsyncLoadingParams<F>, deps?: DependencyList) => [F, boolean, Error | undefined];
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
import { UseClickOutside } from './types';
declare const useClickOutside: UseClickOutside;
export default useClickOutside;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
const useClickOutside = callback => {
const container = (0, react_1.useRef)(null);
const [isTouchEvent, setTouchEvent] = (0, react_1.useState)(false);
const eventType = isTouchEvent ? 'touchend' : 'click';
const handleEvent = (e) => {
if (e.type === 'click' && isTouchEvent) {
return;
}
if (container.current && e.target !== null) {
if (!container.current.contains(e.target)) {
callback(e);
}
}
};
(0, react_1.useEffect)(() => {
document.addEventListener(eventType, handleEvent, true);
return () => {
document.removeEventListener(eventType, handleEvent, true);
};
});
(0, react_1.useEffect)(() => {
setTouchEvent('ontouchstart' in document.documentElement);
}, []);
return container;
};
exports.default = useClickOutside;
import { RefObject } from 'react';
export type UseClickOutside = (callback: EventListener) => RefObject<HTMLDivElement>;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
import { UseDebounce } from './types';
declare const useDebounce: UseDebounce;
export default useDebounce;
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
const useDebounceCallback_1 = __importDefault(require("../useDebounceCallback"));
const useDebounce = (value, delay, options) => {
var _a;
const compareValueDefault = (0, react_1.useCallback)((left, right) => left === right, []);
const compareValue = (_a = options === null || options === void 0 ? void 0 : options.compareValue) !== null && _a !== void 0 ? _a : compareValueDefault;
const [state, setState] = (0, react_1.useState)(value);
const [callback, cancel, callPending] = (0, useDebounceCallback_1.default)((0, react_1.useCallback)((currentValue) => setState(currentValue), []), delay, options);
const previousValue = (0, react_1.useRef)(value);
(0, react_1.useEffect)(() => {
if (!compareValue(previousValue.current, value)) {
callback(value);
previousValue.current = value;
}
}, [value, callback, compareValue]);
return [state, cancel, callPending];
};
exports.default = useDebounce;
import { GeneralFunction } from '@asherng/common-types';
import { UseDebounceBaseOptions } from '../useDebounceCallback/types';
export type CompareValue<T> = (left: T, right: T) => boolean;
export type UseDebounce = <T>(value: T, delay: number, option?: UseDebounceOptions<T>) => [T, GeneralFunction, GeneralFunction];
export interface UseDebounceOptions<T = string> extends UseDebounceBaseOptions {
compareValue?: CompareValue<T>;
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
import { UseDebouncedCallback } from './types';
declare const useDebouncedCallback: UseDebouncedCallback;
export default useDebouncedCallback;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
const useDebouncedCallback = (callback, delay, options) => {
var _a;
const maxWaitHandler = (0, react_1.useRef)(undefined);
const leading = options === null || options === void 0 ? void 0 : options.leading;
const trailing = (_a = options === null || options === void 0 ? void 0 : options.trailing) !== null && _a !== void 0 ? _a : true;
const maxWait = options === null || options === void 0 ? void 0 : options.maxWait;
const maxWaitArgs = (0, react_1.useRef)([]);
const leadingCall = (0, react_1.useRef)(false);
const functionTimeoutHandler = (0, react_1.useRef)(undefined);
const isComponentUnmounted = (0, react_1.useRef)(false);
const debouncedFunction = (0, react_1.useRef)(callback);
const cancelDebouncedCallback = (0, react_1.useCallback)(() => {
clearTimeout(functionTimeoutHandler.current);
clearTimeout(maxWaitHandler.current);
maxWaitHandler.current = undefined;
maxWaitArgs.current = [];
functionTimeoutHandler.current = undefined;
leadingCall.current = false;
}, []);
(0, react_1.useEffect)(() => () => {
isComponentUnmounted.current = true;
}, []);
const debouncedCallback = (0, react_1.useCallback)((...args) => {
maxWaitArgs.current = args;
clearTimeout(functionTimeoutHandler.current);
if (leadingCall.current) {
leadingCall.current = false;
}
if (!functionTimeoutHandler.current && leading && !leadingCall.current) {
debouncedFunction.current(...args);
leadingCall.current = true;
}
functionTimeoutHandler.current = window.setTimeout(() => {
let shouldCallFunction = true;
if (leading && leadingCall.current) {
shouldCallFunction = false;
}
cancelDebouncedCallback();
if (!isComponentUnmounted.current && trailing && shouldCallFunction) {
debouncedFunction.current(...args);
}
}, delay);
if (maxWait && !maxWaitHandler.current && trailing) {
maxWaitHandler.current = window.setTimeout(() => {
const callbackArgs = maxWaitArgs.current;
cancelDebouncedCallback();
if (!isComponentUnmounted.current) {
debouncedFunction.current.apply(null, callbackArgs);
}
}, maxWait);
}
}, [maxWait, delay, cancelDebouncedCallback, leading, trailing]);
const callPending = (0, react_1.useCallback)(() => {
if (!functionTimeoutHandler.current) {
return;
}
debouncedFunction.current.apply(null, maxWaitArgs.current);
cancelDebouncedCallback();
}, [cancelDebouncedCallback]);
return [debouncedCallback, cancelDebouncedCallback, callPending];
};
exports.default = useDebouncedCallback;
import { GeneralFunction } from '@asherng/common-types';
export type SetTimeOutType = number | undefined;
export interface UseDebounceBaseOptions {
maxWait?: number;
leading?: boolean;
trailing?: boolean;
}
export interface UseDebouncedCallbackOptions extends UseDebounceBaseOptions {
}
export type UseDebouncedCallback = <T extends GeneralFunction>(callback: T, delay: number, options?: UseDebouncedCallbackOptions) => [T, GeneralFunction, GeneralFunction];
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
import { UseEnhancedEffect } from './types';
declare const useEnhancedEffect: UseEnhancedEffect;
export default useEnhancedEffect;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
const useEnhancedEffect = typeof window === 'undefined' ? react_1.useEffect : react_1.useLayoutEffect;
exports.default = useEnhancedEffect;
import { EffectCallback, DependencyList } from 'react';
export type UseEnhancedEffect = (effect: EffectCallback, deps?: DependencyList) => void;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
import { UseEventListener } from './types';
declare const useEventListener: UseEventListener;
export default useEventListener;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
const useEventListener = (eventName, handler, element = window) => {
const savedHandler = (0, react_1.useRef)();
(0, react_1.useEffect)(() => {
savedHandler.current = handler;
}, [handler]);
(0, react_1.useEffect)(() => {
const isSupported = element && element.addEventListener;
if (!isSupported) {
return;
}
const eventListener = (event) => { var _a; return (_a = savedHandler === null || savedHandler === void 0 ? void 0 : savedHandler.current) === null || _a === void 0 ? void 0 : _a.call(savedHandler, event); };
element.addEventListener(eventName, eventListener);
return () => {
element.removeEventListener(eventName, eventListener);
};
}, [eventName, element]);
};
exports.default = useEventListener;
import { GeneralFunction } from '@asherng/common-types';
export type UseEventListener = (eventName: string, handler: GeneralFunction, element?: Element | (Window & typeof globalThis)) => void;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
import { UseForkRef } from './types';
declare const useForkRef: UseForkRef;
export default useForkRef;
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
const setRef_1 = __importDefault(require("@asherng/utils/setRef"));
const useForkRef = (refA, refB) => (0, react_1.useMemo)(() => {
if (refA == null && refB == null) {
return null;
}
return refValue => {
(0, setRef_1.default)(refA, refValue);
(0, setRef_1.default)(refB, refValue);
};
}, [refA, refB]);
exports.default = useForkRef;
import { Nullable, RefType } from '@asherng/common-types';
export type UseForkRef = <T>(refA: RefType<T>, refB: RefType<T>) => Nullable<(v: T) => void>;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
import { UseFormParams, UseFormResponse } from './types';
declare const useForm: <T extends import("react-hook-form").FieldValues = import("react-hook-form").FieldValues>(options: UseFormParams<T>) => UseFormResponse<T>;
export default useForm;
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const yup_1 = require("@hookform/resolvers/yup");
const react_hook_form_1 = require("react-hook-form");
const useForm = (options) => {
const { onSubmit, nativeSubmit, resetOnSubmit, resolver, resetValues, omitResetState, defaultValues, mode, context, criteriaMode, shouldFocusError, shouldUnregister, reValidateMode = 'onChange' } = options;
const customResolver = resolver ? (0, yup_1.yupResolver)(resolver) : undefined;
const formMethods = (0, react_hook_form_1.useForm)({
defaultValues,
mode,
context,
criteriaMode,
shouldFocusError,
shouldUnregister,
reValidateMode,
resolver: customResolver
});
const customSubmit = (data, e) => __awaiter(void 0, void 0, void 0, function* () {
e === null || e === void 0 ? void 0 : e.preventDefault();
if (resetOnSubmit && !!formMethods.formState.errors) {
formMethods.reset(resetValues, omitResetState);
}
if (onSubmit) {
yield onSubmit(data, formMethods, e);
}
else if (nativeSubmit) {
nativeSubmit(data, e);
}
});
const onSubmitHandler = formMethods.handleSubmit(customSubmit);
return Object.assign(Object.assign({}, formMethods), { onSubmit: onSubmitHandler });
};
exports.default = useForm;
import { AsyncFunction, GeneralFunction } from '@asherng/common-types';
import { BaseSyntheticEvent } from 'react';
import { DeepMap, DeepPartial, FieldError as DefaultFieldError, FieldValue as DefaultFieldValue, FieldValues as DefaultFieldValues, KeepStateOptions, Path, SubmitHandler, UseFormProps, UseFormReturn } from 'react-hook-form';
import { Asserts, ISchema, ObjectSchema } from 'yup';
export type OnSubmitData<T extends FieldValues = FieldValues> = T;
export type Resolver = ObjectSchema<any>;
export type FormData<T extends ISchema<any, any>> = Asserts<T>;
export type OnSubmitHandler<T extends FieldValues = FieldValues> = GeneralFunction<[
data: OnSubmitData<T>,
formMethods?: UseFormReturn<T>,
event?: BaseSyntheticEvent
]> | AsyncFunction<[
data: OnSubmitData<T>,
formMethods?: UseFormReturn<T>,
event?: BaseSyntheticEvent
]>;
export type OnSubmit = AsyncFunction<[e?: BaseSyntheticEvent]>;
export interface UseFormParams<T extends FieldValues = FieldValues> extends Omit<UseFormProps<T>, 'resolver'> {
nativeSubmit?: SubmitHandler<T>;
onSubmit?: OnSubmitHandler<T>;
resetOnSubmit?: boolean;
resetValues?: DeepPartial<T>;
omitResetState?: KeepStateOptions;
enableReinitialize?: boolean;
triggerValidationImmediately?: boolean;
defaultValues?: DeepPartial<T>;
resolver?: Resolver;
}
export interface UseFormResponse<T extends FieldValues = FieldValues> extends UseFormReturn<T> {
onSubmit?: OnSubmit;
}
export type FieldValues = DefaultFieldValues;
export type FieldName<T extends FieldValues = FieldValues> = Path<T>;
export type FieldValue<T extends FieldValues = FieldValues> = DefaultFieldValue<T>;
export type FieldError<T extends FieldValues = FieldValues> = NonNullable<DeepMap<T, DefaultFieldError>>[FieldName<T>] | undefined;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/// <reference types="react" />
import { UseFormResponse } from './types';
export declare const createFormContext: <T extends import("react-hook-form").FieldValues = import("react-hook-form").FieldValues>() => import("react").Context<UseFormResponse<T>>;
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createFormContext = void 0;
const react_1 = require("react");
const lodash_once_1 = __importDefault(require("lodash.once"));
exports.createFormContext = (0, lodash_once_1.default)(() => (0, react_1.createContext)({}));
import { UseFormResponse } from '../useForm/types';
declare const useFormMethods: <T extends import("react-hook-form").FieldValues = import("react-hook-form").FieldValues>() => UseFormResponse<T>;
export default useFormMethods;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
const utils_1 = require("../useForm/utils");
const useFormMethods = () => {
const FormContext = (0, utils_1.createFormContext)();
return (0, react_1.useContext)(FormContext);
};
exports.default = useFormMethods;
import { FieldValues, UseFormResponse } from '../useForm/types';
export type UseFormMethods = <T extends FieldValues = FieldValues>() => UseFormResponse<T>;
export type FormMethods<T extends FieldValues = FieldValues> = UseFormResponse<T>;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
import { UseInterval } from './types';
declare const useInterval: UseInterval;
export default useInterval;
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
const useEnhancedEffect_1 = __importDefault(require("../useEnhancedEffect"));
const useInterval = (callback, delay = 0) => {
const savedCallback = (0, react_1.useRef)(callback);
(0, useEnhancedEffect_1.default)(() => {
savedCallback.current = callback;
}, [callback]);
(0, react_1.useEffect)(() => {
if (!delay && delay !== 0) {
return;
}
const id = setInterval(() => savedCallback.current(), delay);
return () => clearInterval(id);
}, [delay]);
};
exports.default = useInterval;
import { GeneralFunction } from '@asherng/common-types';
export type UseInterval = (callback: GeneralFunction, delay?: number) => void;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
import { UseInView } from './types';
declare const useInView: UseInView;
export default useInView;
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
const useEnhancedEffect_1 = __importDefault(require("../useEnhancedEffect"));
const usePrevious_1 = __importDefault(require("../usePrevious"));
const utils_1 = require("./utils");
const useInView = ({ threshold, delay, trackVisibility, rootMargin, root, triggerOnce, skip, initialInView, fallbackInView, onChange } = {}) => {
var _a, _b;
const ref = (0, react_1.useRef)(null);
const [state, setState] = (0, react_1.useState)({
inView: !!initialInView,
entry: undefined
});
(0, useEnhancedEffect_1.default)(() => {
if (skip || !ref.current) {
return;
}
let unobserve;
unobserve = (0, utils_1.observe)(ref.current, (inView, entry) => {
setState({
inView,
entry
});
onChange === null || onChange === void 0 ? void 0 : onChange(inView, entry);
if (entry.isIntersecting && triggerOnce && unobserve) {
unobserve();
unobserve = undefined;
}
}, {
root,
rootMargin,
threshold,
trackVisibility,
delay
}, fallbackInView);
return () => {
if (unobserve) {
unobserve();
}
};
}, [
Array.isArray(threshold) ? threshold.toString() : threshold,
ref,
root,
rootMargin,
triggerOnce,
skip,
trackVisibility,
fallbackInView,
delay
]);
const entryTarget = (_a = state.entry) === null || _a === void 0 ? void 0 : _a.target;
const previousEntryTarget = (0, usePrevious_1.default)((_b = state.entry) === null || _b === void 0 ? void 0 : _b.target);
(0, react_1.useEffect)(() => {
if (!ref && entryTarget && !triggerOnce && !skip && previousEntryTarget !== entryTarget) {
setState({
inView: !!initialInView,
entry: undefined
});
}
}, [initialInView, triggerOnce, skip, entryTarget, previousEntryTarget]);
return {
ref,
inView: state.inView,
entry: state.entry
};
};
exports.default = useInView;
import { Nullable } from '@asherng/common-types';
import { RefObject } from 'react';
export interface UseInViewParams<E extends Element> extends IntersectionObserverInit {
/** The IntersectionObserver interface's read-only `root` property identifies the Element or Document whose bounds are treated as the bounding box of the viewport for the element which is the observer's target. If the `root` is null, then the bounds of the actual document viewport are used.*/
root?: Nullable<E>;
/** Margin around the root. Can have values similar to the CSS margin property, e.g. `10px 20px 30px 40px` (top, right, bottom, left). */
rootMargin?: string;
/** Number between `0` and `1` indicating the percentage that should be visible before triggering. Can also be an `array` of numbers, to create multiple trigger points. */
threshold?: number | number[];
/** Only trigger the inView callback once */
triggerOnce?: boolean;
/** Skip assigning the observer to the `ref` */
skip?: boolean;
/** Set the initial value of the `inView` boolean. This can be used if you expect the element to be in the viewport to start with, and you want to trigger something when it leaves. */
initialInView?: boolean;
/** Fallback to this inView state if the IntersectionObserver is unsupported, and a polyfill wasn't loaded */
fallbackInView?: boolean;
/** IntersectionObserver v2 - Track the actual visibility of the element */
trackVisibility?: boolean;
/** IntersectionObserver v2 - Set a minimum delay between notifications */
delay?: number;
/** Call this function whenever the in view state changes */
onChange?: (inView: boolean, entry: IntersectionObserverEntry) => void;
}
export interface UseInViewResponse<E extends Element> {
ref: RefObject<E>;
inView: boolean;
entry?: IntersectionObserverEntry;
}
export type UseInView = <E extends Element>(params?: UseInViewParams<E>) => UseInViewResponse<E>;
export interface UseInViewState {
inView: boolean;
entry?: IntersectionObserverEntry;
}
export type ObserverInstanceCallback = (inView: boolean, entry: IntersectionObserverEntry) => void;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
import { GeneralFunction } from '@asherng/common-types';
import type { ObserverInstanceCallback } from './types';
export declare const defaultFallbackInView: (inView: boolean | undefined) => void;
export declare const optionsToId: (options: IntersectionObserverInit) => string;
export declare const observe: <E extends Element>(element: E, callback: ObserverInstanceCallback, options?: IntersectionObserverInit, fallbackInView?: boolean | undefined) => GeneralFunction;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.observe = exports.optionsToId = exports.defaultFallbackInView = void 0;
const observerMap = new Map();
const RootIds = new WeakMap();
let rootId = 0;
let unsupportedValue = undefined;
const defaultFallbackInView = (inView) => {
unsupportedValue = inView;
};
exports.defaultFallbackInView = defaultFallbackInView;
const getRootId = (root) => {
if (!root) {
return '0';
}
if (RootIds.has(root)) {
return RootIds.get(root);
}
rootId += 1;
RootIds.set(root, rootId.toString());
return RootIds.get(root);
};
const optionsToId = (options) => Object.keys(options)
.sort()
.filter(key => options[key] !== undefined)
.map(key => {
return `${key}_${key === 'root' ? getRootId(options.root) : options[key]}`;
})
.toString();
exports.optionsToId = optionsToId;
const createObserver = (options) => {
const id = (0, exports.optionsToId)(options);
let instance = observerMap.get(id);
if (!instance) {
const elements = new Map();
let thresholds = [];
const observer = new IntersectionObserver(entries => {
entries.forEach(entry => {
var _a;
const inView = entry.isIntersecting &&
thresholds.some(threshold => entry.intersectionRatio >= threshold);
if (options.trackVisibility && typeof entry.isVisible === 'undefined') {
entry.isVisible = inView;
}
(_a = elements.get(entry.target)) === null || _a === void 0 ? void 0 : _a.forEach(callback => {
callback(inView, entry);
});
});
}, options);
thresholds =
observer.thresholds ||
(Array.isArray(options.threshold) ? options.threshold : [options.threshold || 0]);
instance = {
id,
observer,
elements
};
observerMap.set(id, instance);
}
return instance;
};
const observe = (element, callback, options = {}, fallbackInView = unsupportedValue) => {
if (typeof window.IntersectionObserver === 'undefined' && fallbackInView !== undefined) {
const bounds = element.getBoundingClientRect();
callback(fallbackInView, {
isIntersecting: fallbackInView,
target: element,
intersectionRatio: typeof options.threshold === 'number' ? options.threshold : 0,
time: 0,
boundingClientRect: bounds,
intersectionRect: bounds,
rootBounds: bounds
});
return () => undefined;
}
// An observer with the same options can be reused, so lets use this fact
const { id, observer, elements } = createObserver(options);
// Register the callback listener for this element
const callbacks = elements.get(element) || [];
if (!elements.has(element)) {
elements.set(element, callbacks);
}
callbacks.push(callback);
observer.observe(element);
return () => {
// Remove the callback from the callback list
callbacks.splice(callbacks.indexOf(callback), 1);
if (callbacks.length === 0) {
// No more callback exists for element, so destroy it
elements.delete(element);
observer.unobserve(element);
}
if (elements.size === 0) {
observer.disconnect();
observerMap.delete(id);
}
};
};
exports.observe = observe;
import { UseIsComponentMounted } from './types';
/**
* Check if component is mounted or not.
*
* @returns Boolean
*/
declare const useIsComponentMounted: UseIsComponentMounted;
export default useIsComponentMounted;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
/**
* Check if component is mounted or not.
*
* @returns Boolean
*/
const useIsComponentMounted = () => {
const isMounted = (0, react_1.useRef)(false);
(0, react_1.useEffect)(() => {
isMounted.current = true;
return () => {
isMounted.current = false;
};
}, []);
return isMounted;
};
exports.default = useIsComponentMounted;
import { GeneralFunction } from '@asherng/common-types';
import { MutableRefObject } from 'react';
export type UseIsComponentMounted = GeneralFunction<[], MutableRefObject<boolean>>;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
import { UseIsFirstRender } from './types';
declare const useIsFirstRender: UseIsFirstRender;
export default useIsFirstRender;
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
const useEnhancedEffect_1 = __importDefault(require("../useEnhancedEffect"));
const useIsFirstRender = () => {
const isFirstRender = (0, react_1.useRef)(true);
(0, useEnhancedEffect_1.default)(() => {
isFirstRender.current = false;
}, []);
return isFirstRender.current;
};
exports.default = useIsFirstRender;
export type UseIsFirstRender = () => boolean;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
import { UsePrevious } from './types';
declare const usePrevious: UsePrevious;
export default usePrevious;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
const usePrevious = value => {
const ref = (0, react_1.useRef)();
(0, react_1.useEffect)(() => {
ref.current = value;
}, [value]);
return ref.current;
};
exports.default = usePrevious;
export type UsePrevious = <T>(value: T) => T | undefined;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
import { BaseConfig, UseResponsiveResponse, UseResponsiveParams } from './types';
declare const useResponsive: <C extends BaseConfig, D extends keyof C | undefined>({ config, defaultBreakpoint }: UseResponsiveParams<C, D>) => UseResponsiveResponse<C, D>;
export default useResponsive;
"use strict";
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
const useEnhancedEffect_1 = __importDefault(require("../useEnhancedEffect"));
const utils_1 = require("./utils");
const useResponsive = ({ config, defaultBreakpoint }) => {
const mediaQueries = (0, react_1.useMemo)(() => (0, utils_1.createMediaQueries)(config), [config]);
const [currentBreakpoint, setCurrentBreakpoint] = (0, react_1.useState)((0, utils_1.getCurrentBreakPoint)(mediaQueries, defaultBreakpoint));
const updateBreakpoint = (0, react_1.useCallback)(({ matches }, breakpoint) => {
if (matches) {
setCurrentBreakpoint(breakpoint);
}
}, []);
(0, useEnhancedEffect_1.default)(() => {
const unsubscribers = mediaQueries.map((_a) => {
var { query } = _a, breakpoint = __rest(_a, ["query"]);
const mediaQuery = window.matchMedia(query);
updateBreakpoint(mediaQuery, breakpoint);
const handleChange = (event) => {
updateBreakpoint(event, breakpoint);
};
if (mediaQuery === null || mediaQuery === void 0 ? void 0 : mediaQuery.addEventListener) {
mediaQuery.addEventListener('change', handleChange);
}
else if (mediaQuery === null || mediaQuery === void 0 ? void 0 : mediaQuery.addListener) {
mediaQuery.addListener(handleChange);
}
return () => {
if (mediaQuery === null || mediaQuery === void 0 ? void 0 : mediaQuery.removeEventListener) {
mediaQuery.removeEventListener('change', handleChange);
}
else if (mediaQuery === null || mediaQuery === void 0 ? void 0 : mediaQuery.removeListener) {
mediaQuery.removeListener(handleChange);
}
};
});
return () => unsubscribers.forEach(unsubscriber => unsubscriber());
}, [mediaQueries, updateBreakpoint]);
return currentBreakpoint;
};
exports.default = useResponsive;
export interface BaseConfig {
[key: string]: number;
}
export interface Breakpoint<C extends BaseConfig = BaseConfig> {
breakpoint: keyof C;
maxWidth?: number | null;
minWidth: C[keyof C];
}
export interface MediaQuery<C extends BaseConfig = BaseConfig> {
breakpoint: keyof C;
maxWidth: number | null;
minWidth: C[keyof C];
query: string;
}
export type GetCurrentBreakPoint = <C extends BaseConfig, D extends keyof C | undefined>(mediaQueries: MediaQuery<C>[], defaultBreakpoint: D) => Breakpoint<C> | EmptyBreakpoint;
export type CreateMediaQueries = <C extends BaseConfig = BaseConfig>(breakpoints: C) => MediaQuery<C>[];
export interface EmptyBreakpoint {
breakpoint: undefined;
minWidth: undefined;
maxWidth: undefined;
}
export interface UseResponsiveParams<C extends BaseConfig, D extends keyof C | undefined> {
config: C;
defaultBreakpoint?: D;
}
export type UseResponsiveResponse<C extends BaseConfig, D extends keyof C | undefined> = D extends undefined ? Breakpoint<C> | EmptyBreakpoint : D extends keyof C ? Breakpoint<C> : never;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
import type { CreateMediaQueries, GetCurrentBreakPoint, EmptyBreakpoint } from './types';
export declare const EMPTY_BREAKPOINT: EmptyBreakpoint;
export declare const createMediaQueries: CreateMediaQueries;
export declare const getCurrentBreakPoint: GetCurrentBreakPoint;
"use strict";
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getCurrentBreakPoint = exports.createMediaQueries = exports.EMPTY_BREAKPOINT = void 0;
exports.EMPTY_BREAKPOINT = {
breakpoint: undefined,
minWidth: undefined,
maxWidth: undefined
};
const createMediaQueries = breakpoints => {
const sortedBreakpoints = Object.keys(breakpoints).sort((a, b) => breakpoints[b] - breakpoints[a]);
return sortedBreakpoints.map((breakpoint, index) => {
let query = '';
const minWidth = breakpoints[breakpoint];
const nextBreakpoint = sortedBreakpoints[index - 1];
const maxWidth = nextBreakpoint ? breakpoints[nextBreakpoint] : null;
if (minWidth >= 0) {
query = `(min-width: ${minWidth}px)`;
}
if (maxWidth !== null) {
if (query) {
query += ' and ';
}
query += `(max-width: ${maxWidth - 1}px)`;
}
const mediaQuery = {
breakpoint,
maxWidth: maxWidth ? maxWidth - 1 : null,
minWidth,
query
};
return mediaQuery;
});
};
exports.createMediaQueries = createMediaQueries;
const getCurrentBreakPoint = (mediaQueries, defaultBreakpoint) => {
for (let _a of mediaQueries) {
const { query } = _a, breakpoint = __rest(_a, ["query"]);
if (typeof window !== 'undefined' && !defaultBreakpoint) {
const mediaQuery = window.matchMedia(query);
if (mediaQuery.matches) {
return breakpoint;
}
}
else if (breakpoint.breakpoint === defaultBreakpoint) {
return breakpoint;
}
}
return exports.EMPTY_BREAKPOINT;
};
exports.getCurrentBreakPoint = getCurrentBreakPoint;
import { UseScript } from './types';
declare const useScript: UseScript;
export default useScript;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
const cachedScripts = [];
const useScript = src => {
const [state, setState] = (0, react_1.useState)({
loaded: false,
error: false
});
(0, react_1.useEffect)(() => {
if (cachedScripts.includes(src)) {
setState({
loaded: true,
error: false
});
return;
}
else {
cachedScripts.push(src);
const script = document.createElement('script');
script.src = src;
script.async = true;
const onScriptLoad = () => {
setState({
loaded: true,
error: false
});
};
const onScriptError = () => {
const scriptIndex = cachedScripts.indexOf(src);
if (scriptIndex !== -1) {
cachedScripts.splice(scriptIndex, 1);
}
script.remove();
setState({
loaded: false,
error: true
});
};
script.addEventListener('load', onScriptLoad);
script.addEventListener('error', onScriptError);
document.body.appendChild(script);
return () => {
script.removeEventListener('load', onScriptLoad);
script.removeEventListener('error', onScriptError);
};
}
}, [src]);
return [state.loaded, state.error];
};
exports.default = useScript;
export type UseScript = (src: string) => boolean[];
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
import { DependencyList } from 'react';
declare const useStableMemo: <T>(factory: () => T, deps?: DependencyList) => T;
export default useStableMemo;
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
const react_fast_compare_1 = __importDefault(require("react-fast-compare"));
const useStableMemo = (factory, deps) => {
let isValid = true;
const valueRef = (0, react_1.useRef)();
if (!valueRef.current) {
valueRef.current = {
deps,
result: factory()
};
}
else {
isValid = !!(deps && valueRef.current.deps && (0, react_fast_compare_1.default)(deps, valueRef.current.deps));
}
const cache = isValid ? valueRef.current : { deps, result: factory() };
valueRef.current = cache;
return cache.result;
};
exports.default = useStableMemo;
import { DependencyList } from 'react';
export interface DepsCache<T> {
deps?: DependencyList;
result: T;
}
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
import { UseStateControllerParams, UseStateControllerResponse } from './types';
declare const useStateController: <T>({ value: valueProp, defaultValue, onChange, shouldUpdate }: UseStateControllerParams<T>) => UseStateControllerResponse<T>;
export default useStateController;
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
const useStateIfMounted_1 = __importDefault(require("../useStateIfMounted"));
const useStateController = ({ value: valueProp, defaultValue, onChange, shouldUpdate = (prev, next) => prev !== next }) => {
const [valueState, setValue] = (0, useStateIfMounted_1.default)(defaultValue);
const isControlled = valueProp !== undefined;
const value = (0, react_1.useMemo)(() => (isControlled ? valueProp : valueState), [valueState, valueProp, isControlled]);
const updateValue = (0, react_1.useCallback)((next) => {
const nextValue = (typeof next === 'function' ? next(value) : next);
if (!shouldUpdate(value, nextValue)) {
return;
}
if (!isControlled) {
setValue(nextValue);
}
onChange === null || onChange === void 0 ? void 0 : onChange(nextValue);
}, [value, shouldUpdate, isControlled, onChange]);
return [value, updateValue];
};
exports.default = useStateController;
import { Dispatch, SetStateAction } from 'react';
export type StateSelfUpdater<T> = (prevState: T) => T;
export type OnStateChangeHandler<T> = (value: T, ...args: any[]) => void;
export interface UseStateControllerParams<T> {
value?: T;
defaultValue?: T;
onChange?: OnStateChangeHandler<T>;
shouldUpdate?: (prev: T, next: T) => boolean;
}
export type UseStateControllerResponse<T> = [T, Dispatch<SetStateAction<T>>];
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
import { UseStateIfMountedParamResponse, UseStateIfMountedParams } from './types';
/**
* Like React's [useState](https://reactjs.org/docs/hooks-reference.html#usestate)
* but it makes sure the component that uses this hook is mounted when updating state
*
* @param {any} initialValue
* @returns {[any, Diapatch<any>]} an array of 2 items
*
* the first is the current state, the second is a function that enables
* updating the state if the component is not mounted
*/
declare const useStateIfMounted: <S>(initialValue?: UseStateIfMountedParams<S> | undefined) => UseStateIfMountedParamResponse<S>;
export default useStateIfMounted;
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
const useIsComponentMounted_1 = __importDefault(require("../useIsComponentMounted"));
/**
* Like React's [useState](https://reactjs.org/docs/hooks-reference.html#usestate)
* but it makes sure the component that uses this hook is mounted when updating state
*
* @param {any} initialValue
* @returns {[any, Diapatch<any>]} an array of 2 items
*
* the first is the current state, the second is a function that enables
* updating the state if the component is not mounted
*/
const useStateIfMounted = (initialValue) => {
const isComponentMounted = (0, useIsComponentMounted_1.default)();
const [state, setState] = (0, react_1.useState)(initialValue);
const newSetState = value => {
if (isComponentMounted.current) {
setState(value);
}
};
return [state, newSetState];
};
exports.default = useStateIfMounted;
import { Dispatch, SetStateAction } from 'react';
export type UseStateIfMountedParams<S = undefined> = S | (() => S);
export type UseStateIfMountedParamResponse<S = undefined> = [S, Dispatch<SetStateAction<S>>];
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
import { UseUnmountEffect } from './types';
declare const useUnmountEffect: UseUnmountEffect;
export default useUnmountEffect;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
const useUnmountEffect = (callback, deps = []) => (0, react_1.useEffect)(() => () => callback(),
// eslint-disable-next-line react-hooks/exhaustive-deps
deps);
exports.default = useUnmountEffect;
import { DependencyList } from 'react';
import { GeneralFunction } from '@asherng/common-types';
export type UseUnmountEffect = (effect: GeneralFunction<[]>, deps?: DependencyList) => void;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
export { default } from './hooks/useAsyncLoading';
export type { UseAsyncLoading } from './hooks/useAsyncLoading/types';
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = void 0;
var useAsyncLoading_1 = require("./hooks/useAsyncLoading");
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(useAsyncLoading_1).default; } });
export { default } from './hooks/useClickOutside';
export { UseClickOutside } from './hooks/useClickOutside/types';
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = void 0;
var useClickOutside_1 = require("./hooks/useClickOutside");
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(useClickOutside_1).default; } });
export { default } from './hooks/useDebounce';
export { UseDebounce, UseDebounceOptions } from './hooks/useDebounce/types';
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = void 0;
var useDebounce_1 = require("./hooks/useDebounce");
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(useDebounce_1).default; } });
export { default } from './hooks/useDebounceCallback';
export { UseDebounceBaseOptions, UseDebouncedCallback, UseDebouncedCallbackOptions } from './hooks/useDebounceCallback/types';
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = void 0;
var useDebounceCallback_1 = require("./hooks/useDebounceCallback");
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(useDebounceCallback_1).default; } });
export { default } from './hooks/useEnhancedEffect';
export { UseEnhancedEffect } from './hooks/useEnhancedEffect/types';
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = void 0;
var useEnhancedEffect_1 = require("./hooks/useEnhancedEffect");
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(useEnhancedEffect_1).default; } });
export { default } from './hooks/useEventListener';
export { UseEventListener } from './hooks/useEventListener/types';
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = void 0;
var useEventListener_1 = require("./hooks/useEventListener");
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(useEventListener_1).default; } });
export { default } from './hooks/useForkRef';
export { UseForkRef } from './hooks/useForkRef/types';
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = void 0;
var useForkRef_1 = require("./hooks/useForkRef");
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(useForkRef_1).default; } });
export { default } from './hooks/useForm';
export type { UseFormResponse, UseFormParams, OnSubmitHandler, OnSubmitData, Resolver, FieldValues, FieldError, FieldName, FieldValue, FormData } from './hooks/useForm/types';
export { createFormContext } from './hooks/useForm/utils';
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createFormContext = exports.default = void 0;
var useForm_1 = require("./hooks/useForm");
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(useForm_1).default; } });
var utils_1 = require("./hooks/useForm/utils");
Object.defineProperty(exports, "createFormContext", { enumerable: true, get: function () { return utils_1.createFormContext; } });
export { default } from './hooks/useFormMethods';
export { UseFormMethods, FormMethods } from './hooks/useFormMethods/types';
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = void 0;
var useFormMethods_1 = require("./hooks/useFormMethods");
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(useFormMethods_1).default; } });
export { default } from './hooks/useInterval';
export * from './hooks/useInterval/types';
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = void 0;
var useInterval_1 = require("./hooks/useInterval");
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(useInterval_1).default; } });
__exportStar(require("./hooks/useInterval/types"), exports);
export { default } from './hooks/useInView';
export * from './hooks/useInView/utils';
export * from './hooks/useInView/types';
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = void 0;
var useInView_1 = require("./hooks/useInView");
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(useInView_1).default; } });
__exportStar(require("./hooks/useInView/utils"), exports);
__exportStar(require("./hooks/useInView/types"), exports);
export { default } from './hooks/useIsComponentMounted';
export type { UseIsComponentMounted } from './hooks/useIsComponentMounted/types';
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = void 0;
var useIsComponentMounted_1 = require("./hooks/useIsComponentMounted");
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(useIsComponentMounted_1).default; } });
export { default } from './hooks/useIsFirstRender';
export { UseIsFirstRender } from './hooks/useIsFirstRender/types';
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = void 0;
var useIsFirstRender_1 = require("./hooks/useIsFirstRender");
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(useIsFirstRender_1).default; } });
export { default } from './hooks/usePrevious';
export { UsePrevious } from './hooks/usePrevious/types';
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = void 0;
var usePrevious_1 = require("./hooks/usePrevious");
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(usePrevious_1).default; } });
export { default } from './hooks/useResponsive';
export { BaseConfig, Breakpoint, MediaQuery, EmptyBreakpoint } from './hooks/useResponsive/types';
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = void 0;
var useResponsive_1 = require("./hooks/useResponsive");
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(useResponsive_1).default; } });
export { default } from './hooks/useScript';
export { UseScript } from './hooks/useScript/types';
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = void 0;
var useScript_1 = require("./hooks/useScript");
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(useScript_1).default; } });
export { default } from './hooks/useStableMemo';
export * from './hooks/useStableMemo/types';
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = void 0;
var useStableMemo_1 = require("./hooks/useStableMemo");
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(useStableMemo_1).default; } });
__exportStar(require("./hooks/useStableMemo/types"), exports);
export { default } from './hooks/useStateController';
export type { UseStateControllerParams, UseStateControllerResponse, OnStateChangeHandler, StateSelfUpdater } from './hooks/useStateController/types';
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = void 0;
var useStateController_1 = require("./hooks/useStateController");
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(useStateController_1).default; } });
export { default } from './hooks/useUnmountEffect';
export type { UseUnmountEffect } from './hooks/useUnmountEffect/types';
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = void 0;
var useUnmountEffect_1 = require("./hooks/useUnmountEffect");
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(useUnmountEffect_1).default; } });