@cloud-ru/ds-utils 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/LICENSE +201 -0
- package/README.md +222 -0
- package/dist/cjs/hooks/index.d.ts +13 -0
- package/dist/cjs/hooks/index.js +29 -0
- package/dist/cjs/hooks/useCopyToClipboard.d.ts +9 -0
- package/dist/cjs/hooks/useCopyToClipboard.js +27 -0
- package/dist/cjs/hooks/useDataPersist/index.d.ts +2 -0
- package/dist/cjs/hooks/useDataPersist/index.js +18 -0
- package/dist/cjs/hooks/useDataPersist/sources/baseSource.d.ts +11 -0
- package/dist/cjs/hooks/useDataPersist/sources/baseSource.js +35 -0
- package/dist/cjs/hooks/useDataPersist/sources/index.d.ts +3 -0
- package/dist/cjs/hooks/useDataPersist/sources/index.js +19 -0
- package/dist/cjs/hooks/useDataPersist/sources/localStorageSource.d.ts +5 -0
- package/dist/cjs/hooks/useDataPersist/sources/localStorageSource.js +19 -0
- package/dist/cjs/hooks/useDataPersist/sources/queryParamSource.d.ts +5 -0
- package/dist/cjs/hooks/useDataPersist/sources/queryParamSource.js +21 -0
- package/dist/cjs/hooks/useDataPersist/useDataPersist.d.ts +16 -0
- package/dist/cjs/hooks/useDataPersist/useDataPersist.js +26 -0
- package/dist/cjs/hooks/useDataPersist/useSource.d.ts +8 -0
- package/dist/cjs/hooks/useDataPersist/useSource.js +15 -0
- package/dist/cjs/hooks/useDebounce.d.ts +6 -0
- package/dist/cjs/hooks/useDebounce.js +25 -0
- package/dist/cjs/hooks/useDynamicList.d.ts +18 -0
- package/dist/cjs/hooks/useDynamicList.js +99 -0
- package/dist/cjs/hooks/useEventHandler.d.ts +6 -0
- package/dist/cjs/hooks/useEventHandler.js +23 -0
- package/dist/cjs/hooks/useHierarchicalSelection.d.ts +12 -0
- package/dist/cjs/hooks/useHierarchicalSelection.js +11 -0
- package/dist/cjs/hooks/useIsomorphicLayoutEffect.d.ts +7 -0
- package/dist/cjs/hooks/useIsomorphicLayoutEffect.js +12 -0
- package/dist/cjs/hooks/useLocalStorage.d.ts +1 -0
- package/dist/cjs/hooks/useLocalStorage.js +15 -0
- package/dist/cjs/hooks/useModalOpenState.d.ts +18 -0
- package/dist/cjs/hooks/useModalOpenState.js +27 -0
- package/dist/cjs/hooks/usePopstateSubscription.d.ts +1 -0
- package/dist/cjs/hooks/usePopstateSubscription.js +14 -0
- package/dist/cjs/hooks/useSwipeable.d.ts +21 -0
- package/dist/cjs/hooks/useSwipeable.js +50 -0
- package/dist/cjs/hooks/useUncontrolledProp.d.ts +21 -0
- package/dist/cjs/hooks/useUncontrolledProp.js +23 -0
- package/dist/cjs/hooks/useValueControl.d.ts +20 -0
- package/dist/cjs/hooks/useValueControl.js +20 -0
- package/dist/cjs/index.d.ts +3 -0
- package/dist/cjs/index.js +19 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/types/index.d.ts +2 -0
- package/dist/cjs/types/index.js +18 -0
- package/dist/cjs/types/polymorphic.d.ts +3 -0
- package/dist/cjs/types/polymorphic.js +2 -0
- package/dist/cjs/types/valueOf.d.ts +5 -0
- package/dist/cjs/types/valueOf.js +2 -0
- package/dist/cjs/utils/componentPropsProcessors.d.ts +19 -0
- package/dist/cjs/utils/componentPropsProcessors.js +43 -0
- package/dist/cjs/utils/copyToClipboard.d.ts +12 -0
- package/dist/cjs/utils/copyToClipboard.js +47 -0
- package/dist/cjs/utils/debounce.d.ts +11 -0
- package/dist/cjs/utils/debounce.js +24 -0
- package/dist/cjs/utils/hierarchicalSelection/applySelectionDiff.d.ts +4 -0
- package/dist/cjs/utils/hierarchicalSelection/applySelectionDiff.js +16 -0
- package/dist/cjs/utils/hierarchicalSelection/checkGroupSelection.d.ts +5 -0
- package/dist/cjs/utils/hierarchicalSelection/checkGroupSelection.js +18 -0
- package/dist/cjs/utils/hierarchicalSelection/createHierarchicalSelectionHandlers.d.ts +19 -0
- package/dist/cjs/utils/hierarchicalSelection/createHierarchicalSelectionHandlers.js +20 -0
- package/dist/cjs/utils/hierarchicalSelection/getNodeSelectionState.d.ts +8 -0
- package/dist/cjs/utils/hierarchicalSelection/getNodeSelectionState.js +22 -0
- package/dist/cjs/utils/hierarchicalSelection/index.d.ts +6 -0
- package/dist/cjs/utils/hierarchicalSelection/index.js +22 -0
- package/dist/cjs/utils/hierarchicalSelection/toggleHierarchicalSelection.d.ts +5 -0
- package/dist/cjs/utils/hierarchicalSelection/toggleHierarchicalSelection.js +69 -0
- package/dist/cjs/utils/hierarchicalSelection/types.d.ts +23 -0
- package/dist/cjs/utils/hierarchicalSelection/types.js +2 -0
- package/dist/cjs/utils/index.d.ts +10 -0
- package/dist/cjs/utils/index.js +26 -0
- package/dist/cjs/utils/innerRef.d.ts +26 -0
- package/dist/cjs/utils/innerRef.js +37 -0
- package/dist/cjs/utils/isBrowser.d.ts +6 -0
- package/dist/cjs/utils/isBrowser.js +12 -0
- package/dist/cjs/utils/keyboard.d.ts +41 -0
- package/dist/cjs/utils/keyboard.js +66 -0
- package/dist/cjs/utils/preventEvent.d.ts +4 -0
- package/dist/cjs/utils/preventEvent.js +15 -0
- package/dist/cjs/utils/stopEventPropagation.d.ts +2 -0
- package/dist/cjs/utils/stopEventPropagation.js +6 -0
- package/dist/cjs/utils/throttle.d.ts +11 -0
- package/dist/cjs/utils/throttle.js +43 -0
- package/dist/cjs/utils/typeGuards.d.ts +5 -0
- package/dist/cjs/utils/typeGuards.js +13 -0
- package/dist/esm/hooks/index.d.ts +13 -0
- package/dist/esm/hooks/index.js +13 -0
- package/dist/esm/hooks/useCopyToClipboard.d.ts +9 -0
- package/dist/esm/hooks/useCopyToClipboard.js +24 -0
- package/dist/esm/hooks/useDataPersist/index.d.ts +2 -0
- package/dist/esm/hooks/useDataPersist/index.js +2 -0
- package/dist/esm/hooks/useDataPersist/sources/baseSource.d.ts +11 -0
- package/dist/esm/hooks/useDataPersist/sources/baseSource.js +31 -0
- package/dist/esm/hooks/useDataPersist/sources/index.d.ts +3 -0
- package/dist/esm/hooks/useDataPersist/sources/index.js +3 -0
- package/dist/esm/hooks/useDataPersist/sources/localStorageSource.d.ts +5 -0
- package/dist/esm/hooks/useDataPersist/sources/localStorageSource.js +15 -0
- package/dist/esm/hooks/useDataPersist/sources/queryParamSource.d.ts +5 -0
- package/dist/esm/hooks/useDataPersist/sources/queryParamSource.js +17 -0
- package/dist/esm/hooks/useDataPersist/useDataPersist.d.ts +16 -0
- package/dist/esm/hooks/useDataPersist/useDataPersist.js +22 -0
- package/dist/esm/hooks/useDataPersist/useSource.d.ts +8 -0
- package/dist/esm/hooks/useDataPersist/useSource.js +11 -0
- package/dist/esm/hooks/useDebounce.d.ts +6 -0
- package/dist/esm/hooks/useDebounce.js +22 -0
- package/dist/esm/hooks/useDynamicList.d.ts +18 -0
- package/dist/esm/hooks/useDynamicList.js +96 -0
- package/dist/esm/hooks/useEventHandler.d.ts +6 -0
- package/dist/esm/hooks/useEventHandler.js +20 -0
- package/dist/esm/hooks/useHierarchicalSelection.d.ts +12 -0
- package/dist/esm/hooks/useHierarchicalSelection.js +8 -0
- package/dist/esm/hooks/useIsomorphicLayoutEffect.d.ts +7 -0
- package/dist/esm/hooks/useIsomorphicLayoutEffect.js +9 -0
- package/dist/esm/hooks/useLocalStorage.d.ts +1 -0
- package/dist/esm/hooks/useLocalStorage.js +12 -0
- package/dist/esm/hooks/useModalOpenState.d.ts +18 -0
- package/dist/esm/hooks/useModalOpenState.js +24 -0
- package/dist/esm/hooks/usePopstateSubscription.d.ts +1 -0
- package/dist/esm/hooks/usePopstateSubscription.js +11 -0
- package/dist/esm/hooks/useSwipeable.d.ts +21 -0
- package/dist/esm/hooks/useSwipeable.js +46 -0
- package/dist/esm/hooks/useUncontrolledProp.d.ts +21 -0
- package/dist/esm/hooks/useUncontrolledProp.js +20 -0
- package/dist/esm/hooks/useValueControl.d.ts +20 -0
- package/dist/esm/hooks/useValueControl.js +17 -0
- package/dist/esm/index.d.ts +3 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/types/index.d.ts +2 -0
- package/dist/esm/types/index.js +2 -0
- package/dist/esm/types/polymorphic.d.ts +3 -0
- package/dist/esm/types/polymorphic.js +1 -0
- package/dist/esm/types/valueOf.d.ts +5 -0
- package/dist/esm/types/valueOf.js +1 -0
- package/dist/esm/utils/componentPropsProcessors.d.ts +19 -0
- package/dist/esm/utils/componentPropsProcessors.js +38 -0
- package/dist/esm/utils/copyToClipboard.d.ts +12 -0
- package/dist/esm/utils/copyToClipboard.js +44 -0
- package/dist/esm/utils/debounce.d.ts +11 -0
- package/dist/esm/utils/debounce.js +21 -0
- package/dist/esm/utils/hierarchicalSelection/applySelectionDiff.d.ts +4 -0
- package/dist/esm/utils/hierarchicalSelection/applySelectionDiff.js +13 -0
- package/dist/esm/utils/hierarchicalSelection/checkGroupSelection.d.ts +5 -0
- package/dist/esm/utils/hierarchicalSelection/checkGroupSelection.js +15 -0
- package/dist/esm/utils/hierarchicalSelection/createHierarchicalSelectionHandlers.d.ts +19 -0
- package/dist/esm/utils/hierarchicalSelection/createHierarchicalSelectionHandlers.js +17 -0
- package/dist/esm/utils/hierarchicalSelection/getNodeSelectionState.d.ts +8 -0
- package/dist/esm/utils/hierarchicalSelection/getNodeSelectionState.js +19 -0
- package/dist/esm/utils/hierarchicalSelection/index.d.ts +6 -0
- package/dist/esm/utils/hierarchicalSelection/index.js +6 -0
- package/dist/esm/utils/hierarchicalSelection/toggleHierarchicalSelection.d.ts +5 -0
- package/dist/esm/utils/hierarchicalSelection/toggleHierarchicalSelection.js +66 -0
- package/dist/esm/utils/hierarchicalSelection/types.d.ts +23 -0
- package/dist/esm/utils/hierarchicalSelection/types.js +1 -0
- package/dist/esm/utils/index.d.ts +10 -0
- package/dist/esm/utils/index.js +10 -0
- package/dist/esm/utils/innerRef.d.ts +26 -0
- package/dist/esm/utils/innerRef.js +32 -0
- package/dist/esm/utils/isBrowser.d.ts +6 -0
- package/dist/esm/utils/isBrowser.js +9 -0
- package/dist/esm/utils/keyboard.d.ts +41 -0
- package/dist/esm/utils/keyboard.js +58 -0
- package/dist/esm/utils/preventEvent.d.ts +4 -0
- package/dist/esm/utils/preventEvent.js +10 -0
- package/dist/esm/utils/stopEventPropagation.d.ts +2 -0
- package/dist/esm/utils/stopEventPropagation.js +3 -0
- package/dist/esm/utils/throttle.d.ts +11 -0
- package/dist/esm/utils/throttle.js +40 -0
- package/dist/esm/utils/typeGuards.d.ts +5 -0
- package/dist/esm/utils/typeGuards.js +5 -0
- package/dist/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist/tsconfig.esm.tsbuildinfo +1 -0
- package/package.json +38 -0
- package/src/hooks/index.ts +13 -0
- package/src/hooks/useCopyToClipboard.ts +38 -0
- package/src/hooks/useDataPersist/index.ts +2 -0
- package/src/hooks/useDataPersist/sources/baseSource.ts +36 -0
- package/src/hooks/useDataPersist/sources/index.ts +3 -0
- package/src/hooks/useDataPersist/sources/localStorageSource.ts +17 -0
- package/src/hooks/useDataPersist/sources/queryParamSource.ts +19 -0
- package/src/hooks/useDataPersist/useDataPersist.ts +51 -0
- package/src/hooks/useDataPersist/useSource.ts +23 -0
- package/src/hooks/useDebounce.ts +25 -0
- package/src/hooks/useDynamicList.ts +137 -0
- package/src/hooks/useEventHandler.ts +26 -0
- package/src/hooks/useHierarchicalSelection.ts +13 -0
- package/src/hooks/useIsomorphicLayoutEffect.ts +11 -0
- package/src/hooks/useLocalStorage.ts +19 -0
- package/src/hooks/useModalOpenState.ts +37 -0
- package/src/hooks/usePopstateSubscription.ts +14 -0
- package/src/hooks/useSwipeable.ts +85 -0
- package/src/hooks/useUncontrolledProp.ts +65 -0
- package/src/hooks/useValueControl.ts +41 -0
- package/src/index.ts +3 -0
- package/src/types/index.ts +2 -0
- package/src/types/polymorphic.ts +4 -0
- package/src/types/valueOf.ts +5 -0
- package/src/utils/componentPropsProcessors.ts +55 -0
- package/src/utils/copyToClipboard.ts +46 -0
- package/src/utils/debounce.ts +31 -0
- package/src/utils/hierarchicalSelection/applySelectionDiff.ts +20 -0
- package/src/utils/hierarchicalSelection/checkGroupSelection.ts +22 -0
- package/src/utils/hierarchicalSelection/createHierarchicalSelectionHandlers.ts +35 -0
- package/src/utils/hierarchicalSelection/getNodeSelectionState.ts +29 -0
- package/src/utils/hierarchicalSelection/index.ts +6 -0
- package/src/utils/hierarchicalSelection/toggleHierarchicalSelection.ts +109 -0
- package/src/utils/hierarchicalSelection/types.ts +26 -0
- package/src/utils/index.ts +10 -0
- package/src/utils/innerRef.ts +37 -0
- package/src/utils/isBrowser.ts +9 -0
- package/src/utils/keyboard.ts +68 -0
- package/src/utils/stopEventPropagation.ts +5 -0
- package/src/utils/throttle.ts +55 -0
- package/src/utils/typeGuards.ts +9 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type StateProps } from './useSource';
|
|
2
|
+
export type DataPersistOptions<T> = {
|
|
3
|
+
queryKey: string;
|
|
4
|
+
localStorageKey: string;
|
|
5
|
+
validateData(value: unknown): value is T;
|
|
6
|
+
};
|
|
7
|
+
type DataPersistProps<TData> = Omit<StateProps<TData>, 'source'> & {
|
|
8
|
+
options?: DataPersistOptions<TData>;
|
|
9
|
+
parser?(jsonData: string): TData;
|
|
10
|
+
serializer?(data: TData): string;
|
|
11
|
+
};
|
|
12
|
+
export declare const useDataPersist: <TData>({ options, parser, serializer }: DataPersistProps<TData>) => {
|
|
13
|
+
getDefaultData: () => NonNullable<TData> | undefined;
|
|
14
|
+
setDataToStorages: (data: TData) => void;
|
|
15
|
+
};
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useDataPersist = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const sources_1 = require("./sources");
|
|
6
|
+
const useSource_1 = require("./useSource");
|
|
7
|
+
const useDataPersist = ({ options, parser, serializer }) => {
|
|
8
|
+
const querySource = (0, react_1.useMemo)(() => options ? new sources_1.QueryParamSource(options.queryKey, options.validateData, parser, serializer) : undefined, [options, parser, serializer]);
|
|
9
|
+
const localStorageSource = (0, react_1.useMemo)(() => (options ? new sources_1.LocalStorageSource(options.localStorageKey, options.validateData) : undefined), [options]);
|
|
10
|
+
const { getData: getLocalStorageData, setData: setLocalStorageData } = (0, useSource_1.useSource)({
|
|
11
|
+
source: localStorageSource,
|
|
12
|
+
});
|
|
13
|
+
const { getData: getQueryParamsData, setData: setQueryParamsData } = (0, useSource_1.useSource)({
|
|
14
|
+
source: querySource,
|
|
15
|
+
});
|
|
16
|
+
const setDataToStorages = (0, react_1.useCallback)((data) => {
|
|
17
|
+
setLocalStorageData(data);
|
|
18
|
+
setQueryParamsData(data);
|
|
19
|
+
}, [setLocalStorageData, setQueryParamsData]);
|
|
20
|
+
const getDefaultData = (0, react_1.useCallback)(() => {
|
|
21
|
+
const queryData = getQueryParamsData();
|
|
22
|
+
return queryData ?? getLocalStorageData();
|
|
23
|
+
}, [getLocalStorageData, getQueryParamsData]);
|
|
24
|
+
return { getDefaultData, setDataToStorages };
|
|
25
|
+
};
|
|
26
|
+
exports.useDataPersist = useDataPersist;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useSource = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const useSource = ({ source }) => {
|
|
6
|
+
const setData = (0, react_1.useCallback)((data) => {
|
|
7
|
+
if (!source) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
source.setData(data);
|
|
11
|
+
}, [source]);
|
|
12
|
+
const getData = (0, react_1.useCallback)(() => source?.getData() ?? undefined, [source]);
|
|
13
|
+
return { getData, setData };
|
|
14
|
+
};
|
|
15
|
+
exports.useSource = useSource;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useDebounce = useDebounce;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const utils_1 = require("../utils");
|
|
6
|
+
const useEventHandler_1 = require("./useEventHandler");
|
|
7
|
+
/**
|
|
8
|
+
* Хук задерживает выполнение функции или обновление значения до тех пор,
|
|
9
|
+
* пока не пройдет определенный период времени без новых вызовов.
|
|
10
|
+
* @function React hook
|
|
11
|
+
*/
|
|
12
|
+
function useDebounce(callback, timeout = 0) {
|
|
13
|
+
const timeStampRef = (0, react_1.useRef)(0);
|
|
14
|
+
const timerIdRef = (0, react_1.useRef)(null);
|
|
15
|
+
return (0, useEventHandler_1.useEventHandler)(() => {
|
|
16
|
+
(0, utils_1.isBrowser)() &&
|
|
17
|
+
requestAnimationFrame(timestamp => {
|
|
18
|
+
if (timestamp < timeStampRef.current && timerIdRef.current !== null) {
|
|
19
|
+
clearTimeout(timerIdRef.current);
|
|
20
|
+
}
|
|
21
|
+
timerIdRef.current = setTimeout(callback, timeout);
|
|
22
|
+
timeStampRef.current = timestamp + timeout;
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { RefObject } from 'react';
|
|
2
|
+
type UseDynamicListProps<T extends object> = {
|
|
3
|
+
items: T[];
|
|
4
|
+
resizingContainerRef?: RefObject<HTMLDivElement>;
|
|
5
|
+
parentContainerRef: RefObject<HTMLDivElement>;
|
|
6
|
+
maxVisibleItems?: number;
|
|
7
|
+
};
|
|
8
|
+
type UseDynamicListReturnType<T extends object> = {
|
|
9
|
+
visibleItems: T[];
|
|
10
|
+
hiddenItems: T[];
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Хук позволяет распределять элементы списка на две группы: видимые и невидимые,
|
|
14
|
+
* в зависимости от ширины контейнера
|
|
15
|
+
* @function React hook
|
|
16
|
+
*/
|
|
17
|
+
export declare function useDynamicList<T extends object>({ parentContainerRef, resizingContainerRef, items, maxVisibleItems, }: UseDynamicListProps<T>): UseDynamicListReturnType<T>;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useDynamicList = useDynamicList;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const useEventHandler_1 = require("./useEventHandler");
|
|
6
|
+
const useIsomorphicLayoutEffect_1 = require("./useIsomorphicLayoutEffect");
|
|
7
|
+
/**
|
|
8
|
+
* Хук позволяет распределять элементы списка на две группы: видимые и невидимые,
|
|
9
|
+
* в зависимости от ширины контейнера
|
|
10
|
+
* @function React hook
|
|
11
|
+
*/
|
|
12
|
+
function useDynamicList({ parentContainerRef, resizingContainerRef = parentContainerRef, items, maxVisibleItems = Infinity, }) {
|
|
13
|
+
const adjustAmount = (value) => Math.min(maxVisibleItems, value);
|
|
14
|
+
const [visibleItemsAmount, setVisibleItemsAmount] = (0, react_1.useState)(adjustAmount(items.length));
|
|
15
|
+
const [width, setWidth] = (0, react_1.useState)(Infinity);
|
|
16
|
+
const widthRef = (0, react_1.useRef)(width);
|
|
17
|
+
const handleVisibleItemsAmount = param => {
|
|
18
|
+
if (typeof param === 'number') {
|
|
19
|
+
setVisibleItemsAmount(adjustAmount(param));
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
setVisibleItemsAmount(v => param(adjustAmount(v)));
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
const tryHidingItem = (0, useEventHandler_1.useEventHandler)(() => {
|
|
26
|
+
const container = parentContainerRef.current;
|
|
27
|
+
if (container && container.scrollWidth - container.offsetWidth > 0) {
|
|
28
|
+
const itemToHide = items[visibleItemsAmount - 1];
|
|
29
|
+
if (itemToHide) {
|
|
30
|
+
handleVisibleItemsAmount(value => value - 1);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
const tryShowingItem = (0, useEventHandler_1.useEventHandler)(() => {
|
|
35
|
+
const itemToShow = items[visibleItemsAmount];
|
|
36
|
+
if (itemToShow) {
|
|
37
|
+
handleVisibleItemsAmount(value => value + 1);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
const toggleItemWidth = (0, useEventHandler_1.useEventHandler)(({ changedWidth, initialWidth }) => {
|
|
41
|
+
if (changedWidth > initialWidth) {
|
|
42
|
+
//try to add extra item
|
|
43
|
+
if (visibleItemsAmount < maxVisibleItems) {
|
|
44
|
+
tryShowingItem();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
else if (changedWidth < initialWidth) {
|
|
48
|
+
// check if item should be hidden
|
|
49
|
+
tryHidingItem();
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
(0, react_1.useEffect)(() => {
|
|
53
|
+
const listener = () => {
|
|
54
|
+
tryHidingItem();
|
|
55
|
+
if (parentContainerRef.current) {
|
|
56
|
+
setWidth(parentContainerRef.current.scrollWidth);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
document.fonts.addEventListener('loadingdone', listener);
|
|
60
|
+
return () => document.fonts.removeEventListener('loadingdone', listener);
|
|
61
|
+
}, [parentContainerRef, tryHidingItem]);
|
|
62
|
+
(0, react_1.useEffect)(() => {
|
|
63
|
+
const container = resizingContainerRef.current;
|
|
64
|
+
if (container) {
|
|
65
|
+
const observer = new ResizeObserver(entities => entities.forEach(entity => {
|
|
66
|
+
if (entity.target === container) {
|
|
67
|
+
const newWidth = entity.contentBoxSize[0]?.inlineSize;
|
|
68
|
+
if (newWidth !== undefined) {
|
|
69
|
+
setWidth(Math.floor(newWidth));
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}));
|
|
73
|
+
observer.observe(container);
|
|
74
|
+
return () => observer.disconnect();
|
|
75
|
+
}
|
|
76
|
+
}, [resizingContainerRef]);
|
|
77
|
+
(0, useIsomorphicLayoutEffect_1.useLayoutEffect)(() => {
|
|
78
|
+
if (parentContainerRef.current) {
|
|
79
|
+
toggleItemWidth({
|
|
80
|
+
initialWidth: parentContainerRef.current.scrollWidth,
|
|
81
|
+
changedWidth: widthRef.current,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}, [items, parentContainerRef, toggleItemWidth]);
|
|
85
|
+
(0, useIsomorphicLayoutEffect_1.useLayoutEffect)(() => {
|
|
86
|
+
toggleItemWidth({
|
|
87
|
+
initialWidth: widthRef.current,
|
|
88
|
+
changedWidth: width,
|
|
89
|
+
});
|
|
90
|
+
widthRef.current = width;
|
|
91
|
+
}, [width, toggleItemWidth]);
|
|
92
|
+
(0, useIsomorphicLayoutEffect_1.useLayoutEffect)(() => {
|
|
93
|
+
tryHidingItem();
|
|
94
|
+
}, [tryHidingItem, visibleItemsAmount]);
|
|
95
|
+
return {
|
|
96
|
+
visibleItems: items.slice(0, visibleItemsAmount),
|
|
97
|
+
hiddenItems: items.slice(visibleItemsAmount),
|
|
98
|
+
};
|
|
99
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useEventHandler = useEventHandler;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const useIsomorphicLayoutEffect_1 = require("./useIsomorphicLayoutEffect");
|
|
6
|
+
/**
|
|
7
|
+
* Хук для создания обработчика событий с неизменной функцией.
|
|
8
|
+
* @function React hook
|
|
9
|
+
* @param handler коллбек события, без параметров
|
|
10
|
+
*/
|
|
11
|
+
function useEventHandler(handler) {
|
|
12
|
+
const handlerRef = (0, react_1.useRef)(null);
|
|
13
|
+
(0, useIsomorphicLayoutEffect_1.useLayoutEffect)(() => {
|
|
14
|
+
handlerRef.current = handler;
|
|
15
|
+
});
|
|
16
|
+
return (0, react_1.useCallback)((...args) => {
|
|
17
|
+
const handler = handlerRef.current;
|
|
18
|
+
if (handler === null) {
|
|
19
|
+
console.warn('The event handler cannot be called during render');
|
|
20
|
+
}
|
|
21
|
+
return handler?.(...args);
|
|
22
|
+
}, []);
|
|
23
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { HierarchicalSelectionConfig } from '../utils/hierarchicalSelection/createHierarchicalSelectionHandlers';
|
|
2
|
+
/**
|
|
3
|
+
* Возвращает стабильные обработчики иерархического выбора с единым `includeParentsInValue`.
|
|
4
|
+
*/
|
|
5
|
+
export declare function useHierarchicalSelection({ includeParentsInValue }: HierarchicalSelectionConfig): {
|
|
6
|
+
getSelectionState<TId extends string | number>(params: import("../utils/hierarchicalSelection/createHierarchicalSelectionHandlers").HierarchicalSelectionNodeParams<TId>): {
|
|
7
|
+
checked: boolean;
|
|
8
|
+
indeterminate: boolean;
|
|
9
|
+
};
|
|
10
|
+
toggleSelection<TId extends string | number>(params: import("../utils/hierarchicalSelection/createHierarchicalSelectionHandlers").HierarchicalSelectionToggleParams<TId>): TId[];
|
|
11
|
+
checkGroupSelection: typeof import("..").checkGroupSelection;
|
|
12
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useHierarchicalSelection = useHierarchicalSelection;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const createHierarchicalSelectionHandlers_1 = require("../utils/hierarchicalSelection/createHierarchicalSelectionHandlers");
|
|
6
|
+
/**
|
|
7
|
+
* Возвращает стабильные обработчики иерархического выбора с единым `includeParentsInValue`.
|
|
8
|
+
*/
|
|
9
|
+
function useHierarchicalSelection({ includeParentsInValue }) {
|
|
10
|
+
return (0, react_1.useMemo)(() => (0, createHierarchicalSelectionHandlers_1.createHierarchicalSelectionHandlers)({ includeParentsInValue }), [includeParentsInValue]);
|
|
11
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { useLayoutEffect as useLayoutEffectInternal } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Хук используется вместо стандартного useLayoutEffect-а,
|
|
4
|
+
* нужен для корректной работы SSR
|
|
5
|
+
* @function React hook
|
|
6
|
+
*/
|
|
7
|
+
export declare const useLayoutEffect: typeof useLayoutEffectInternal;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useLayoutEffect = void 0;
|
|
4
|
+
// eslint-disable-next-line no-restricted-imports
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const utils_1 = require("../utils");
|
|
7
|
+
/**
|
|
8
|
+
* Хук используется вместо стандартного useLayoutEffect-а,
|
|
9
|
+
* нужен для корректной работы SSR
|
|
10
|
+
* @function React hook
|
|
11
|
+
*/
|
|
12
|
+
exports.useLayoutEffect = (0, utils_1.isBrowser)() ? react_1.useLayoutEffect : react_1.useEffect;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function useLocalStorage<T extends string = string>(key: string, defaultValue: T): [T, (newValue: T) => void];
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useLocalStorage = useLocalStorage;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const utils_1 = require("../utils");
|
|
6
|
+
function useLocalStorage(key, defaultValue) {
|
|
7
|
+
const [value, setValueState] = (0, react_1.useState)((((0, utils_1.isBrowser)() ? localStorage.getItem(key) : null) ?? defaultValue));
|
|
8
|
+
const setValue = (0, react_1.useCallback)((newValue) => {
|
|
9
|
+
if ((0, utils_1.isBrowser)()) {
|
|
10
|
+
localStorage.setItem(key, newValue);
|
|
11
|
+
}
|
|
12
|
+
setValueState(newValue);
|
|
13
|
+
}, [key]);
|
|
14
|
+
return [value, setValue];
|
|
15
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
type UseModalOpenStateOptions = {
|
|
2
|
+
/** закрывать модалку при переходе по истории браузера (по умолчанию false) */
|
|
3
|
+
closeOnPopstate?: boolean;
|
|
4
|
+
/** закрывать модалку через CloseWatcher (по умолчанию true) */
|
|
5
|
+
closeByCloseWatcher?: boolean;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Хук для управления состоянием модалки
|
|
9
|
+
* @returns [open, onClose]
|
|
10
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/CloseWatcher
|
|
11
|
+
* @function hook
|
|
12
|
+
*/
|
|
13
|
+
export declare function useModalOpenState(
|
|
14
|
+
/** состояние модалки */
|
|
15
|
+
open: boolean,
|
|
16
|
+
/** колбек закрытия */
|
|
17
|
+
onClose: () => void, { closeOnPopstate, closeByCloseWatcher }: UseModalOpenStateOptions): void;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useModalOpenState = useModalOpenState;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const useEventHandler_1 = require("./useEventHandler");
|
|
6
|
+
const usePopstateSubscription_1 = require("./usePopstateSubscription");
|
|
7
|
+
/**
|
|
8
|
+
* Хук для управления состоянием модалки
|
|
9
|
+
* @returns [open, onClose]
|
|
10
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/CloseWatcher
|
|
11
|
+
* @function hook
|
|
12
|
+
*/
|
|
13
|
+
function useModalOpenState(
|
|
14
|
+
/** состояние модалки */
|
|
15
|
+
open,
|
|
16
|
+
/** колбек закрытия */
|
|
17
|
+
onClose, { closeOnPopstate = false, closeByCloseWatcher = true }) {
|
|
18
|
+
const closeHandler = (0, useEventHandler_1.useEventHandler)(onClose);
|
|
19
|
+
(0, usePopstateSubscription_1.usePopstateSubscription)(() => open && closeHandler(), closeOnPopstate);
|
|
20
|
+
(0, react_1.useEffect)(() => {
|
|
21
|
+
if (open && 'CloseWatcher' in window && closeByCloseWatcher) {
|
|
22
|
+
const watcher = new CloseWatcher();
|
|
23
|
+
watcher.onclose = () => closeHandler();
|
|
24
|
+
return () => watcher.destroy();
|
|
25
|
+
}
|
|
26
|
+
}, [open, closeHandler, closeByCloseWatcher]);
|
|
27
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function usePopstateSubscription(callback: (e: PopStateEvent) => void, enabled?: boolean): void;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.usePopstateSubscription = usePopstateSubscription;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const useEventHandler_1 = require("./useEventHandler");
|
|
6
|
+
function usePopstateSubscription(callback, enabled = true) {
|
|
7
|
+
const handler = (0, useEventHandler_1.useEventHandler)(callback);
|
|
8
|
+
(0, react_1.useEffect)(() => {
|
|
9
|
+
if (!enabled)
|
|
10
|
+
return;
|
|
11
|
+
window.addEventListener('popstate', handler);
|
|
12
|
+
return () => window.removeEventListener('popstate', handler);
|
|
13
|
+
}, [enabled, handler]);
|
|
14
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { SwipeableHandlers, SwipeableProps, SwipeCallback, SwipeDirections, SwipeEventData } from 'react-swipeable';
|
|
2
|
+
export declare const DATA_SWIPE_DIRECTIONS_ATTRIBUTE = "data-swipe-directions";
|
|
3
|
+
export type UseSwipeProps = {
|
|
4
|
+
/**
|
|
5
|
+
* Включен ли свайп
|
|
6
|
+
*/
|
|
7
|
+
enabled?: boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Направления, в которых будет работать свайп.
|
|
10
|
+
* Укажите это свойство, чтобы предотвратить конфликты и заблокировать свайп в родительских элементах по этим направлениям.
|
|
11
|
+
*/
|
|
12
|
+
availableDirections?: SwipeDirections[];
|
|
13
|
+
} & SwipeableProps;
|
|
14
|
+
export type UseSwipeReturnType = SwipeableHandlers & {
|
|
15
|
+
[DATA_SWIPE_DIRECTIONS_ATTRIBUTE]?: string;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Хук для работы с событиями свайпа
|
|
19
|
+
*/
|
|
20
|
+
export declare function useSwipeable({ availableDirections, enabled, ...options }: UseSwipeProps): UseSwipeReturnType;
|
|
21
|
+
export type { SwipeCallback, SwipeDirections, SwipeEventData };
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DATA_SWIPE_DIRECTIONS_ATTRIBUTE = void 0;
|
|
4
|
+
exports.useSwipeable = useSwipeable;
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const react_swipeable_1 = require("react-swipeable");
|
|
7
|
+
exports.DATA_SWIPE_DIRECTIONS_ATTRIBUTE = 'data-swipe-directions';
|
|
8
|
+
/**
|
|
9
|
+
* Хук для работы с событиями свайпа
|
|
10
|
+
*/
|
|
11
|
+
function useSwipeable({ availableDirections, enabled = true, ...options }) {
|
|
12
|
+
const canSwipe = (0, react_1.useRef)(true);
|
|
13
|
+
const onSwipeStart = eventData => {
|
|
14
|
+
if (availableDirections) {
|
|
15
|
+
if (!availableDirections.includes(eventData.dir)) {
|
|
16
|
+
canSwipe.current = false;
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
if (!options.onSwipeStart) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
eventData.event.stopPropagation();
|
|
23
|
+
}
|
|
24
|
+
options.onSwipeStart?.(eventData);
|
|
25
|
+
};
|
|
26
|
+
const onSwiping = eventData => {
|
|
27
|
+
if (availableDirections) {
|
|
28
|
+
if (!canSwipe.current) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
eventData.event.stopPropagation();
|
|
32
|
+
}
|
|
33
|
+
options.onSwiping?.(eventData);
|
|
34
|
+
};
|
|
35
|
+
const onSwiped = eventData => {
|
|
36
|
+
if (availableDirections) {
|
|
37
|
+
if (!canSwipe.current) {
|
|
38
|
+
canSwipe.current = true;
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
eventData.event.stopPropagation();
|
|
42
|
+
}
|
|
43
|
+
options.onSwiped?.(eventData);
|
|
44
|
+
};
|
|
45
|
+
const handlers = (0, react_swipeable_1.useSwipeable)(enabled ? { ...options, onSwipeStart, onSwiping, onSwiped } : {});
|
|
46
|
+
return {
|
|
47
|
+
...handlers,
|
|
48
|
+
[exports.DATA_SWIPE_DIRECTIONS_ATTRIBUTE]: enabled && availableDirections ? availableDirections.join(' ') : undefined,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Сигнатура колбэка смены значения.
|
|
3
|
+
*
|
|
4
|
+
* `any` здесь — не небрежность, а воспроизведение публичного типа пакета `uncontrollable`,
|
|
5
|
+
* на месте которого стоит этот хук. Свободный тип позволяет и колбэки с дополнительными
|
|
6
|
+
* аргументами (`onSelect(key, node)`), и функциональные апдейтеры (`setValue(prev => …)`,
|
|
7
|
+
* которые дальше применяет `useState`). Сузить его нельзя, не переписав типы `ToggleGroup`,
|
|
8
|
+
* `SelectionProvider` и `TreeContext`, — это отдельная задача.
|
|
9
|
+
*/
|
|
10
|
+
export type UncontrolledHandler = (value: any, ...args: any[]) => any;
|
|
11
|
+
/**
|
|
12
|
+
* Пара «значение + сеттер» для пропа, который работает и в controlled, и в uncontrolled режиме.
|
|
13
|
+
* Пока `propValue` задан — источник истины он, а сеттер только зовёт `handler`. Как только
|
|
14
|
+
* `propValue` становится `undefined`, состояние переходит во внутренний `useState`
|
|
15
|
+
* и сбрасывается на `defaultValue`.
|
|
16
|
+
*
|
|
17
|
+
* Сеттер стабилен между рендерами, пока не меняется `handler`.
|
|
18
|
+
* @function React hook
|
|
19
|
+
*/
|
|
20
|
+
export declare function useUncontrolledProp<TValue, THandler extends UncontrolledHandler = UncontrolledHandler>(propValue: TValue | undefined, defaultValue: TValue, handler?: THandler): readonly [TValue, THandler];
|
|
21
|
+
export declare function useUncontrolledProp<TValue, THandler extends UncontrolledHandler = UncontrolledHandler>(propValue: TValue | undefined, defaultValue?: TValue, handler?: THandler): readonly [TValue | undefined, (...args: Parameters<THandler>) => ReturnType<THandler> | void];
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useUncontrolledProp = useUncontrolledProp;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
function useUncontrolledProp(propValue, defaultValue, handler) {
|
|
6
|
+
const isProp = propValue !== undefined;
|
|
7
|
+
const wasPropRef = (0, react_1.useRef)(isProp);
|
|
8
|
+
const [stateValue, setStateValue] = (0, react_1.useState)(defaultValue);
|
|
9
|
+
const wasProp = wasPropRef.current;
|
|
10
|
+
wasPropRef.current = isProp;
|
|
11
|
+
// Переход controlled -> uncontrolled: внутреннее состояние отстало от `defaultValue`,
|
|
12
|
+
// возвращаем его к дефолту, иначе компонент «залипнет» на последнем controlled-значении.
|
|
13
|
+
if (!isProp && wasProp && stateValue !== defaultValue) {
|
|
14
|
+
setStateValue(defaultValue);
|
|
15
|
+
}
|
|
16
|
+
const setValue = (0, react_1.useCallback)((...args) => {
|
|
17
|
+
const [value, ...rest] = args;
|
|
18
|
+
const returnValue = handler?.(value, ...rest);
|
|
19
|
+
setStateValue(value);
|
|
20
|
+
return returnValue;
|
|
21
|
+
}, [handler]);
|
|
22
|
+
return [isProp ? propValue : stateValue, setValue];
|
|
23
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
type UseValueControl<TValue> = {
|
|
2
|
+
/**
|
|
3
|
+
* Значение состояния
|
|
4
|
+
*/
|
|
5
|
+
value?: TValue;
|
|
6
|
+
/**
|
|
7
|
+
* Значение по умолчанию
|
|
8
|
+
*/
|
|
9
|
+
defaultValue?: TValue;
|
|
10
|
+
/**
|
|
11
|
+
* Колбек, вызываемый на смену состояния
|
|
12
|
+
*/
|
|
13
|
+
onChange?(value: TValue): void;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Хук для работы с состоянием.
|
|
17
|
+
* Нужен для поддержки controlled/uncontrolled поведения, в зависимости от того были ли переданы входные аргументы
|
|
18
|
+
*/
|
|
19
|
+
export declare function useValueControl<TValue>({ value, onChange, defaultValue }: UseValueControl<TValue>): readonly [TValue | undefined, (value: any, ...args: any[]) => any];
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useValueControl = useValueControl;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const useUncontrolledProp_1 = require("./useUncontrolledProp");
|
|
6
|
+
/**
|
|
7
|
+
* Хук для работы с состоянием.
|
|
8
|
+
* Нужен для поддержки controlled/uncontrolled поведения, в зависимости от того были ли переданы входные аргументы
|
|
9
|
+
*/
|
|
10
|
+
function useValueControl({ value, onChange, defaultValue }) {
|
|
11
|
+
// Значение читаем из ref: иначе handler пересоздавался бы на каждую смену `value`,
|
|
12
|
+
// а вместе с ним — и сеттер из `useUncontrolledProp`.
|
|
13
|
+
const valueRef = (0, react_1.useRef)(value);
|
|
14
|
+
valueRef.current = value;
|
|
15
|
+
const handleChange = (0, react_1.useCallback)((newValue) => {
|
|
16
|
+
const newState = typeof newValue === 'function' ? newValue(valueRef.current) : newValue;
|
|
17
|
+
onChange?.(newState);
|
|
18
|
+
}, [onChange]);
|
|
19
|
+
return (0, useUncontrolledProp_1.useUncontrolledProp)(value, defaultValue, handleChange);
|
|
20
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./hooks"), exports);
|
|
18
|
+
__exportStar(require("./utils"), exports);
|
|
19
|
+
__exportStar(require("./types"), exports);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./polymorphic"), exports);
|
|
18
|
+
__exportStar(require("./valueOf"), exports);
|