@zuzjs/ui 0.7.6 → 0.7.8
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/dist/cjs/comps/Accordion/index.js +2 -1
- package/dist/cjs/comps/Actionbar/index.d.ts +1 -1
- package/dist/cjs/comps/Actionbar/index.js +3 -2
- package/dist/cjs/comps/Alert/index.d.ts +1 -1
- package/dist/cjs/comps/Alert/index.js +1 -0
- package/dist/cjs/comps/AutoComplete/index.js +4 -3
- package/dist/cjs/comps/Avatar/index.js +3 -2
- package/dist/cjs/comps/Box/index.js +1 -1
- package/dist/cjs/comps/Button/index.d.ts +1 -1
- package/dist/cjs/comps/Button/index.js +4 -3
- package/dist/cjs/comps/CheckBox/index.d.ts +2 -2
- package/dist/cjs/comps/CheckBox/index.js +2 -1
- package/dist/cjs/comps/ColorScheme/index.d.ts +1 -1
- package/dist/cjs/comps/ColorScheme/index.js +7 -2
- package/dist/cjs/comps/ContextMenu/index.js +3 -2
- package/dist/cjs/comps/CookiesConsent/index.js +3 -2
- package/dist/cjs/comps/Cover/index.d.ts +1 -1
- package/dist/cjs/comps/Cover/index.js +3 -2
- package/dist/cjs/comps/Drawer/index.d.ts +2 -1
- package/dist/cjs/comps/Drawer/index.js +13 -5
- package/dist/cjs/comps/Drawer/types.d.ts +1 -0
- package/dist/cjs/comps/Editor/Timeline/index.js +4 -3
- package/dist/cjs/comps/Editor/index.js +2 -1
- package/dist/cjs/comps/Fab/index.d.ts +1 -2
- package/dist/cjs/comps/Fab/index.js +2 -1
- package/dist/cjs/comps/Filters/index.d.ts +4 -1
- package/dist/cjs/comps/Filters/index.js +2 -0
- package/dist/cjs/comps/Form/index.d.ts +2 -2
- package/dist/cjs/comps/Form/index.js +5 -7
- package/dist/cjs/comps/Icon/index.d.ts +1 -1
- package/dist/cjs/comps/Icon/index.js +2 -1
- package/dist/cjs/comps/Image/index.js +1 -0
- package/dist/cjs/comps/Input/index.js +1 -0
- package/dist/cjs/comps/Label/index.js +1 -0
- package/dist/cjs/comps/List/index.d.ts +1 -1
- package/dist/cjs/comps/List/index.js +1 -0
- package/dist/cjs/comps/List/item.d.ts +6 -3
- package/dist/cjs/comps/List/item.js +1 -0
- package/dist/cjs/comps/Network/index.js +4 -3
- package/dist/cjs/comps/Overlay/index.js +2 -1
- package/dist/cjs/comps/Pagination/index.d.ts +5 -2
- package/dist/cjs/comps/Pagination/index.js +24 -13
- package/dist/cjs/comps/Pagination/types.d.ts +5 -2
- package/dist/cjs/comps/Password/index.js +2 -1
- package/dist/cjs/comps/PinInput/index.js +2 -1
- package/dist/cjs/comps/ProgressBar/index.d.ts +1 -1
- package/dist/cjs/comps/ProgressBar/index.js +3 -1
- package/dist/cjs/comps/Radio/index.d.ts +2 -2
- package/dist/cjs/comps/Radio/index.js +8 -5
- package/dist/cjs/comps/Radio/types.d.ts +1 -1
- package/dist/cjs/comps/Search/index.d.ts +1 -1
- package/dist/cjs/comps/Search/index.js +3 -2
- package/dist/cjs/comps/Segmented/index.d.ts +2 -2
- package/dist/cjs/comps/Segmented/index.js +4 -4
- package/dist/cjs/comps/Segmented/item.d.ts +4 -1
- package/dist/cjs/comps/Segmented/item.js +8 -15
- package/dist/cjs/comps/Select/index.d.ts +2 -4
- package/dist/cjs/comps/Select/index.js +4 -3
- package/dist/cjs/comps/Select/optionItem.d.ts +4 -1
- package/dist/cjs/comps/Select/optionItem.js +1 -0
- package/dist/cjs/comps/Sheet/index.d.ts +1 -1
- package/dist/cjs/comps/Sheet/index.js +4 -3
- package/dist/cjs/comps/Sidebar/index.js +1 -0
- package/dist/cjs/comps/Slider/index.d.ts +1 -1
- package/dist/cjs/comps/Slider/index.js +3 -2
- package/dist/cjs/comps/Span/index.js +1 -0
- package/dist/cjs/comps/Spinner/index.d.ts +1 -1
- package/dist/cjs/comps/Spinner/index.js +4 -6
- package/dist/cjs/comps/Switch/index.d.ts +1 -1
- package/dist/cjs/comps/Switch/index.js +2 -1
- package/dist/cjs/comps/TabView/body.js +1 -0
- package/dist/cjs/comps/TabView/index.d.ts +1 -2
- package/dist/cjs/comps/TabView/index.js +3 -1
- package/dist/cjs/comps/TabView/tab.d.ts +4 -1
- package/dist/cjs/comps/TabView/tab.js +1 -0
- package/dist/cjs/comps/Table/col.d.ts +10 -6
- package/dist/cjs/comps/Table/col.js +17 -4
- package/dist/cjs/comps/Table/index.js +13 -6
- package/dist/cjs/comps/Table/row.d.ts +4 -1
- package/dist/cjs/comps/Table/row.js +8 -7
- package/dist/cjs/comps/Table/types.d.ts +11 -4
- package/dist/cjs/comps/Text/index.js +1 -1
- package/dist/cjs/comps/TextArea/index.js +1 -0
- package/dist/cjs/comps/TextWheel/index.js +6 -5
- package/dist/cjs/comps/Tooltip/index.d.ts +1 -2
- package/dist/cjs/comps/Tooltip/index.js +2 -1
- package/dist/cjs/comps/Treeview/index.d.ts +1 -2
- package/dist/cjs/comps/Treeview/index.js +2 -1
- package/dist/cjs/comps/Treeview/item.d.ts +3 -2
- package/dist/cjs/comps/Treeview/item.js +11 -7
- package/dist/cjs/comps/Treeview/types.d.ts +6 -2
- package/dist/cjs/funs/index.d.ts +9 -7
- package/dist/cjs/funs/index.js +40 -12
- package/dist/cjs/hooks/index.d.ts +4 -5
- package/dist/cjs/hooks/index.js +2 -2
- package/dist/cjs/hooks/useDelayed.d.ts +17 -0
- package/dist/cjs/hooks/useDelayed.js +25 -0
- package/dist/cjs/index.js +1 -0
- package/dist/css/styles.css +1 -1
- package/dist/esm/comps/Accordion/index.js +2 -1
- package/dist/esm/comps/Actionbar/index.d.ts +1 -1
- package/dist/esm/comps/Actionbar/index.js +3 -2
- package/dist/esm/comps/Alert/index.d.ts +1 -1
- package/dist/esm/comps/Alert/index.js +1 -0
- package/dist/esm/comps/AutoComplete/index.js +4 -3
- package/dist/esm/comps/Avatar/index.js +3 -2
- package/dist/esm/comps/Box/index.js +1 -1
- package/dist/esm/comps/Button/index.d.ts +1 -1
- package/dist/esm/comps/Button/index.js +4 -3
- package/dist/esm/comps/CheckBox/index.d.ts +2 -2
- package/dist/esm/comps/CheckBox/index.js +2 -1
- package/dist/esm/comps/ColorScheme/index.d.ts +1 -1
- package/dist/esm/comps/ColorScheme/index.js +7 -2
- package/dist/esm/comps/ContextMenu/index.js +3 -2
- package/dist/esm/comps/CookiesConsent/index.js +3 -2
- package/dist/esm/comps/Cover/index.d.ts +1 -1
- package/dist/esm/comps/Cover/index.js +3 -2
- package/dist/esm/comps/Drawer/index.d.ts +2 -1
- package/dist/esm/comps/Drawer/index.js +13 -5
- package/dist/esm/comps/Drawer/types.d.ts +1 -0
- package/dist/esm/comps/Editor/Timeline/index.js +4 -3
- package/dist/esm/comps/Editor/index.js +2 -1
- package/dist/esm/comps/Fab/index.d.ts +1 -2
- package/dist/esm/comps/Fab/index.js +2 -1
- package/dist/esm/comps/Filters/index.d.ts +4 -1
- package/dist/esm/comps/Filters/index.js +2 -0
- package/dist/esm/comps/Form/index.d.ts +2 -2
- package/dist/esm/comps/Form/index.js +5 -7
- package/dist/esm/comps/Icon/index.d.ts +1 -1
- package/dist/esm/comps/Icon/index.js +2 -1
- package/dist/esm/comps/Image/index.js +1 -0
- package/dist/esm/comps/Input/index.js +1 -0
- package/dist/esm/comps/Label/index.js +1 -0
- package/dist/esm/comps/List/index.d.ts +1 -1
- package/dist/esm/comps/List/index.js +1 -0
- package/dist/esm/comps/List/item.d.ts +6 -3
- package/dist/esm/comps/List/item.js +1 -0
- package/dist/esm/comps/Network/index.js +4 -3
- package/dist/esm/comps/Overlay/index.js +2 -1
- package/dist/esm/comps/Pagination/index.d.ts +5 -2
- package/dist/esm/comps/Pagination/index.js +24 -13
- package/dist/esm/comps/Pagination/types.d.ts +5 -2
- package/dist/esm/comps/Password/index.js +2 -1
- package/dist/esm/comps/PinInput/index.js +2 -1
- package/dist/esm/comps/ProgressBar/index.d.ts +1 -1
- package/dist/esm/comps/ProgressBar/index.js +3 -1
- package/dist/esm/comps/Radio/index.d.ts +2 -2
- package/dist/esm/comps/Radio/index.js +8 -5
- package/dist/esm/comps/Radio/types.d.ts +1 -1
- package/dist/esm/comps/Search/index.d.ts +1 -1
- package/dist/esm/comps/Search/index.js +3 -2
- package/dist/esm/comps/Segmented/index.d.ts +2 -2
- package/dist/esm/comps/Segmented/index.js +4 -4
- package/dist/esm/comps/Segmented/item.d.ts +4 -1
- package/dist/esm/comps/Segmented/item.js +8 -15
- package/dist/esm/comps/Select/index.d.ts +2 -4
- package/dist/esm/comps/Select/index.js +4 -3
- package/dist/esm/comps/Select/optionItem.d.ts +4 -1
- package/dist/esm/comps/Select/optionItem.js +1 -0
- package/dist/esm/comps/Sheet/index.d.ts +1 -1
- package/dist/esm/comps/Sheet/index.js +4 -3
- package/dist/esm/comps/Sidebar/index.js +1 -0
- package/dist/esm/comps/Slider/index.d.ts +1 -1
- package/dist/esm/comps/Slider/index.js +3 -2
- package/dist/esm/comps/Span/index.js +1 -0
- package/dist/esm/comps/Spinner/index.d.ts +1 -1
- package/dist/esm/comps/Spinner/index.js +4 -6
- package/dist/esm/comps/Switch/index.d.ts +1 -1
- package/dist/esm/comps/Switch/index.js +2 -1
- package/dist/esm/comps/TabView/body.js +1 -0
- package/dist/esm/comps/TabView/index.d.ts +1 -2
- package/dist/esm/comps/TabView/index.js +3 -1
- package/dist/esm/comps/TabView/tab.d.ts +4 -1
- package/dist/esm/comps/TabView/tab.js +1 -0
- package/dist/esm/comps/Table/col.d.ts +10 -6
- package/dist/esm/comps/Table/col.js +17 -4
- package/dist/esm/comps/Table/index.js +13 -6
- package/dist/esm/comps/Table/row.d.ts +4 -1
- package/dist/esm/comps/Table/row.js +8 -7
- package/dist/esm/comps/Table/types.d.ts +11 -4
- package/dist/esm/comps/Text/index.js +1 -1
- package/dist/esm/comps/TextArea/index.js +1 -0
- package/dist/esm/comps/TextWheel/index.js +6 -5
- package/dist/esm/comps/Tooltip/index.d.ts +1 -2
- package/dist/esm/comps/Tooltip/index.js +2 -1
- package/dist/esm/comps/Treeview/index.d.ts +1 -2
- package/dist/esm/comps/Treeview/index.js +2 -1
- package/dist/esm/comps/Treeview/item.d.ts +3 -2
- package/dist/esm/comps/Treeview/item.js +11 -7
- package/dist/esm/comps/Treeview/types.d.ts +6 -2
- package/dist/esm/funs/index.d.ts +9 -7
- package/dist/esm/funs/index.js +40 -12
- package/dist/esm/hooks/index.d.ts +4 -5
- package/dist/esm/hooks/index.js +2 -2
- package/dist/esm/hooks/useDelayed.d.ts +17 -0
- package/dist/esm/hooks/useDelayed.js +25 -0
- package/dist/esm/index.js +1 -0
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -1,28 +1,32 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { forwardRef, useEffect, useState } from "react";
|
|
2
|
+
import { forwardRef, useEffect, useMemo, useState } from "react";
|
|
3
3
|
import Box from "../Box";
|
|
4
4
|
import Button from "../Button";
|
|
5
5
|
import Icon from "../Icon";
|
|
6
6
|
import Text from "../Text";
|
|
7
7
|
import SVGIcons from "../svgicons";
|
|
8
8
|
const TreeItem = forwardRef((props, ref) => {
|
|
9
|
-
const { as, meta, nodes, icons, onSelect, treeTag, selected, ...rest } = props;
|
|
9
|
+
const { as, meta, nodes, icons, onSelect, treeTag, selected, isRoot, expanded, ...rest } = props;
|
|
10
10
|
const { tag, label, icon, under, isHead } = meta;
|
|
11
|
-
const [isOpen, setIsOpen] = useState(
|
|
11
|
+
const [isOpen, setIsOpen] = useState(expanded);
|
|
12
12
|
const toggle = () => {
|
|
13
13
|
localStorage.setItem(`--tn${treeTag}-${tag}`, isOpen ? `0` : `1`);
|
|
14
14
|
setIsOpen(!isOpen);
|
|
15
15
|
};
|
|
16
16
|
useEffect(() => {
|
|
17
|
-
if (
|
|
17
|
+
if (expanded || (isRoot && !localStorage.getItem(`--tn${treeTag}-${tag}`))) {
|
|
18
18
|
localStorage.setItem(`--tn${treeTag}-${tag}`, `1`);
|
|
19
19
|
setIsOpen(true);
|
|
20
20
|
}
|
|
21
21
|
else
|
|
22
22
|
setIsOpen(localStorage.getItem(`--tn${treeTag}-${tag}`) == `1`);
|
|
23
23
|
}, []);
|
|
24
|
-
const _nodes = nodes.filter(x => x.under == tag);
|
|
25
|
-
return _jsxs(Box, { className: `--treenode --treenode-${tag} flex cols`, children: [_jsxs(Box, { className: `--node --node-${tag} flex aic${selected == tag ? ` --selected` : ``}`, children: [_jsx(Button, { skeleton: rest.skeleton, onClick: toggle, className: `--node-aro-btn`, disabled: _nodes.length == 0, children: icons ? _jsx(Icon, { skeleton: rest.skeleton, className: `--node-aro-icon`, name: _nodes.length == 0 ? icons?.arrowDisabled || icons?.arrowClose : isOpen ? icons?.arrowOpen : icons?.arrowClose })
|
|
26
|
-
: _nodes.length == 0 ? SVGIcons.chevronBottom : isOpen ? SVGIcons.chevronBottom : SVGIcons.chevronRight }), _jsxs(Button, { className: `--node-meta flex aic`, onClick: (e) => onSelect(tag), children: [icons?.nodeOpen && icons?.nodeClose
|
|
24
|
+
const _nodes = useMemo(() => nodes.filter(x => x.under == tag), [nodes, tag]);
|
|
25
|
+
return _jsxs(Box, { className: `--treenode --treenode-${tag} flex cols`, children: [_jsxs(Box, { className: `--node --node-${tag} flex aic ${isRoot ? `--node-root` : ``} ${selected == tag ? ` --selected` : ``}`, children: [_jsx(Button, { skeleton: rest.skeleton, onClick: toggle, className: `--node-aro-btn`, disabled: _nodes.length == 0, children: icons?.arrowClose && icons?.arrowOpen ? _jsx(Icon, { skeleton: rest.skeleton, className: `--node-aro-icon`, name: _nodes.length == 0 ? icons?.arrowDisabled || icons?.arrowClose : isOpen ? icons?.arrowOpen : icons?.arrowClose })
|
|
26
|
+
: _nodes.length == 0 ? SVGIcons.chevronBottom : isOpen ? SVGIcons.chevronBottom : SVGIcons.chevronRight }), _jsxs(Button, { className: `--node-meta flex aic`, onClick: (e) => onSelect(tag), children: [((icons?.nodeOpen && icons?.nodeClose) || (isRoot && icons?.rootOpen && icons?.rootClose)) &&
|
|
27
|
+
_jsx(Icon, { skeleton: rest.skeleton, className: `--node-icon`, name: icon || (isOpen ?
|
|
28
|
+
isRoot ? icons?.rootOpen || icons.nodeOpen : icons.nodeOpen
|
|
29
|
+
: isRoot ? icons?.rootClose || icons?.nodeClose : icons?.nodeClose) }), _jsx(Text, { ...{ className: `--node-label` }, skeleton: rest.skeleton, children: label })] })] }), isOpen && _nodes.length > 0 && _jsx(Box, { className: `--sub-node tree-sub-node-${tag} flex cols`, children: _nodes.map(node => _jsx(TreeItem, { treeTag: treeTag, selected: selected, onSelect: onSelect, icons: icons, isRoot: false, expanded: node.expanded || false, meta: node, nodes: nodes }, `--node-${node.tag}`)) })] });
|
|
27
30
|
});
|
|
31
|
+
TreeItem.displayName = `TreeItem`;
|
|
28
32
|
export default TreeItem;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { ReactNode } from "react";
|
|
2
2
|
import { BoxProps } from "../Box";
|
|
3
3
|
export interface TreeNodeIcons {
|
|
4
|
+
rootOpen?: ReactNode;
|
|
5
|
+
rootClose?: ReactNode;
|
|
4
6
|
nodeOpen?: ReactNode;
|
|
5
7
|
nodeClose?: ReactNode;
|
|
6
|
-
arrowOpen
|
|
7
|
-
arrowClose
|
|
8
|
+
arrowOpen?: ReactNode;
|
|
9
|
+
arrowClose?: ReactNode;
|
|
8
10
|
arrowDisabled?: ReactNode;
|
|
9
11
|
}
|
|
10
12
|
export type TreeViewProps = Omit<BoxProps, `tag`> & {
|
|
@@ -31,6 +33,8 @@ export type TreeItemProps = BoxProps & {
|
|
|
31
33
|
treeTag: string;
|
|
32
34
|
meta: TreeNode;
|
|
33
35
|
nodes: TreeNode[];
|
|
36
|
+
isRoot: boolean;
|
|
37
|
+
expanded: boolean;
|
|
34
38
|
onSelect: (tag: string) => void;
|
|
35
39
|
selected?: String;
|
|
36
40
|
icons?: TreeNodeIcons;
|
package/dist/esm/funs/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import CSS from "./css.js";
|
|
2
|
-
import { dynamicObject, FormatNumberParams, sortOptions } from "../types/index.js";
|
|
3
1
|
import { AxiosProgressEvent } from "axios";
|
|
4
|
-
import { KeyCode } from "../types/enums.js";
|
|
5
2
|
import { ReactElement, ReactNode, Ref } from "react";
|
|
3
|
+
import { KeyCode } from "../types/enums.js";
|
|
4
|
+
import { dynamicObject, FormatNumberParams, sortOptions } from "../types/index.js";
|
|
5
|
+
import CSS from "./css.js";
|
|
6
6
|
export declare const __SALT: string;
|
|
7
7
|
export declare const FIELNAME_KEY = "__FILENAME__";
|
|
8
8
|
export declare const LINE_KEY = "__LINE__";
|
|
@@ -29,8 +29,8 @@ export declare const isEmail: (e: string) => boolean;
|
|
|
29
29
|
export declare const isUrl: (o: string) => boolean;
|
|
30
30
|
export declare const toLowerCase: (o: string) => string;
|
|
31
31
|
export declare const ucfirst: (o: any) => string;
|
|
32
|
-
export declare const toHash: (n: number, len?: number) => string;
|
|
33
|
-
export declare const fromHash: (n: string) => number;
|
|
32
|
+
export declare const toHash: (n: number, len?: number, SALT?: string | null) => string;
|
|
33
|
+
export declare const fromHash: (n: string, SALT?: string | null) => number;
|
|
34
34
|
export declare const css: () => CSS;
|
|
35
35
|
export declare const withCSS: (cx: string | string[]) => string;
|
|
36
36
|
export declare const uuid: (len?: number) => string;
|
|
@@ -49,7 +49,8 @@ export declare const cleanProps: <T extends dynamicObject>(props: T, withProps?:
|
|
|
49
49
|
export declare const withZuz: (cx: string | string[]) => string;
|
|
50
50
|
export declare const setDeep: (object: dynamicObject, path: string, value: any, seperator?: string) => dynamicObject;
|
|
51
51
|
export declare const removeDuplicatesFromArray: <T>(array: T[]) => T[];
|
|
52
|
-
export declare const withPost: (uri: string, data: dynamicObject | FormData, timeout?: number, onProgress?: (ev: AxiosProgressEvent) => void) => Promise<
|
|
52
|
+
export declare const withPost: <T>(uri: string, data: dynamicObject | FormData, timeout?: number, onProgress?: (ev: AxiosProgressEvent) => void) => Promise<T>;
|
|
53
|
+
export declare const withGet: <T>(uri: string, timeout?: number) => Promise<T>;
|
|
53
54
|
export declare const withTime: (fun: (...args: any[]) => any) => {
|
|
54
55
|
result: any;
|
|
55
56
|
executionTime: number;
|
|
@@ -62,7 +63,8 @@ export declare const formatSize: (bytes: number | string) => string;
|
|
|
62
63
|
export declare const copyToClipboard: (text: string) => Promise<unknown>;
|
|
63
64
|
export declare const natsort: (options?: sortOptions) => (a: string | number, b: string | number) => number;
|
|
64
65
|
export declare const bindKey: (key: KeyCode, fun: () => void, element?: HTMLElement) => void;
|
|
65
|
-
export declare const camelCase: (str: string) => string;
|
|
66
|
+
export declare const camelCase: (str: string, ucf?: boolean) => string;
|
|
67
|
+
export declare const camelCaseToDash: (str: string) => string;
|
|
66
68
|
export declare const pluralize: (word: string, count: number) => string;
|
|
67
69
|
export declare const addPropsToChildren: (children: ReactNode, conditions: (child: ReactElement<any>) => boolean, newProps: object) => ReactNode;
|
|
68
70
|
export declare const getPositionAroundElement: (x: number, y: number, distance: number, childCount: number) => {
|
package/dist/esm/funs/index.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import Hashids from "hashids";
|
|
2
|
-
import CSS from "./css.js";
|
|
3
|
-
import { nanoid } from "nanoid";
|
|
4
|
-
import md5 from "md5";
|
|
5
|
-
import { colorNames } from "./colors.js";
|
|
6
|
-
import { cssProps } from "./stylesheet.js";
|
|
7
1
|
import axios from "axios";
|
|
2
|
+
import Hashids from "hashids";
|
|
8
3
|
import Cookies from "js-cookie";
|
|
4
|
+
import md5 from "md5";
|
|
9
5
|
import moment from "moment";
|
|
10
|
-
import {
|
|
6
|
+
import { nanoid } from "nanoid";
|
|
11
7
|
import { Children, cloneElement, isValidElement } from "react";
|
|
8
|
+
import { SORT } from "../types/enums.js";
|
|
9
|
+
import { colorNames } from "./colors.js";
|
|
10
|
+
import CSS from "./css.js";
|
|
11
|
+
import { cssProps } from "./stylesheet.js";
|
|
12
12
|
let __css;
|
|
13
13
|
export const __SALT = `zuzjs-ui`;
|
|
14
14
|
export const FIELNAME_KEY = `__FILENAME__`;
|
|
@@ -129,8 +129,8 @@ export const isEmail = (e) => /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.te
|
|
|
129
129
|
export const isUrl = (o) => /^(https?:\/\/)?(www\.)?([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}(\/[^\s]*)?$/.test(o);
|
|
130
130
|
export const toLowerCase = (o) => (String.prototype.toLocaleLowerCase || String.prototype.toLowerCase)(o);
|
|
131
131
|
export const ucfirst = (o) => `${o.charAt(0).toUpperCase()}${o.substring(1, o.length)}`;
|
|
132
|
-
export const toHash = (n, len = 6) => new Hashids(__SALT, len).encode(n);
|
|
133
|
-
export const fromHash = (n) => Number(new Hashids(__SALT).decode(n));
|
|
132
|
+
export const toHash = (n, len = 6, SALT = null) => new Hashids(SALT || __SALT, len).encode(n);
|
|
133
|
+
export const fromHash = (n, SALT = null) => Number(new Hashids(SALT || __SALT).decode(n));
|
|
134
134
|
export const css = () => __css ? __css : __css = new CSS();
|
|
135
135
|
export const withCSS = (cx) => css().Build([[`string` == typeof cx ? cx : cx.join(` `)]]).cx.join(` `);
|
|
136
136
|
export const uuid = (len) => nanoid(len);
|
|
@@ -260,6 +260,33 @@ export const withPost = async (uri, data, timeout = 60, onProgress) => {
|
|
|
260
260
|
});
|
|
261
261
|
});
|
|
262
262
|
};
|
|
263
|
+
export const withGet = async (uri, timeout = 60) => {
|
|
264
|
+
return new Promise((resolve, reject) => {
|
|
265
|
+
axios
|
|
266
|
+
.get(uri, { timeout: timeout * 1000 })
|
|
267
|
+
.then((resp) => {
|
|
268
|
+
if (resp.data && "kind" in resp.data) {
|
|
269
|
+
resolve(resp.data);
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
reject(resp.data);
|
|
273
|
+
}
|
|
274
|
+
})
|
|
275
|
+
.catch((err) => {
|
|
276
|
+
if (err?.response?.data)
|
|
277
|
+
reject(err.response.data);
|
|
278
|
+
else
|
|
279
|
+
reject(err.code === `ERR_NETWORK`
|
|
280
|
+
? {
|
|
281
|
+
error: err.code,
|
|
282
|
+
message: navigator.onLine
|
|
283
|
+
? `Unable to connect to the server. It may be temporarily down.`
|
|
284
|
+
: `Network error: Unable to connect. Please check your internet connection and try again.`,
|
|
285
|
+
}
|
|
286
|
+
: err);
|
|
287
|
+
});
|
|
288
|
+
});
|
|
289
|
+
};
|
|
263
290
|
export const withTime = (fun) => {
|
|
264
291
|
const start = new Date().getTime();
|
|
265
292
|
const result = fun();
|
|
@@ -441,15 +468,16 @@ export const bindKey = (key, fun, element) => {
|
|
|
441
468
|
};
|
|
442
469
|
(element || document.documentElement).addEventListener('keydown', handleKeydown);
|
|
443
470
|
};
|
|
444
|
-
export const camelCase = (str) => {
|
|
471
|
+
export const camelCase = (str, ucf = false) => {
|
|
445
472
|
return str
|
|
446
473
|
.toLowerCase()
|
|
447
474
|
.split(/[^a-zA-Z0-9]+/) // Split by any non-alphanumeric character
|
|
448
475
|
.map((word, index) => index === 0
|
|
449
|
-
? word
|
|
450
|
-
:
|
|
476
|
+
? ucf ? ucfirst(word) : word
|
|
477
|
+
: ucfirst(word))
|
|
451
478
|
.join('');
|
|
452
479
|
};
|
|
480
|
+
export const camelCaseToDash = (str) => str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
|
|
453
481
|
export const pluralize = (word, count) => `${word}${count !== 1 ? 's' : ''}`;
|
|
454
482
|
export const addPropsToChildren = (children, conditions, newProps) => {
|
|
455
483
|
return Children.map(children, (child) => {
|
|
@@ -3,19 +3,18 @@ export { default as useBase } from './useBase';
|
|
|
3
3
|
export { default as useCalendar } from './useCalendar';
|
|
4
4
|
export { useColorScheme } from './useColorScheme';
|
|
5
5
|
export { default as useContextMenu } from './useContextMenu';
|
|
6
|
-
export { type IDBOptions, type IDBSchema
|
|
6
|
+
export { default as useDB, type IDBOptions, type IDBSchema } from './useDB';
|
|
7
7
|
export { default as useDebounce } from './useDebounce';
|
|
8
8
|
export { default as useDevice } from './useDevice';
|
|
9
9
|
export { default as useDimensions } from './useDimensions';
|
|
10
|
-
export { default as useDrag } from './useDrag';
|
|
11
|
-
export { type DragOptions } from './useDrag';
|
|
10
|
+
export { default as useDrag, type DragOptions } from './useDrag';
|
|
12
11
|
export { default as useImage } from './useImage';
|
|
13
12
|
export { default as useIntersectionObserver } from './useIntersectionObserver';
|
|
14
13
|
export { default as useKeyBind } from './useKeyBind';
|
|
15
14
|
/**
|
|
16
15
|
* @deprecated use useDelayed hook instead
|
|
17
16
|
*/
|
|
18
|
-
export { default as useMounted } from './
|
|
19
|
-
export { default as useDelayed } from './
|
|
17
|
+
export { default as useMounted } from './useDelayed';
|
|
18
|
+
export { default as useDelayed } from './useDelayed';
|
|
20
19
|
export { default as useNetworkStatus } from './useNetworkStatus';
|
|
21
20
|
export { default as useResizeObserver } from './useResizeObserver';
|
package/dist/esm/hooks/index.js
CHANGED
|
@@ -14,8 +14,8 @@ export { default as useKeyBind } from './useKeyBind';
|
|
|
14
14
|
/**
|
|
15
15
|
* @deprecated use useDelayed hook instead
|
|
16
16
|
*/
|
|
17
|
-
export { default as useMounted } from './
|
|
18
|
-
export { default as useDelayed } from './
|
|
17
|
+
export { default as useMounted } from './useDelayed';
|
|
18
|
+
export { default as useDelayed } from './useDelayed';
|
|
19
19
|
export { default as useNetworkStatus } from './useNetworkStatus';
|
|
20
20
|
export { default as useResizeObserver } from './useResizeObserver';
|
|
21
21
|
// export { default as useDomSelector } from './useDomSelector';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom hook that sets a mounted state to true after a specified delay.
|
|
3
|
+
*
|
|
4
|
+
* @param {number} [delay=100] - The delay in milliseconds before setting the mounted state to true.
|
|
5
|
+
* @returns {boolean} - The mounted state.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* const isMounted = useMounted(200);
|
|
9
|
+
*
|
|
10
|
+
* useEffect(() => {
|
|
11
|
+
* if (isMounted) {
|
|
12
|
+
* // Component is mounted after 200ms
|
|
13
|
+
* }
|
|
14
|
+
* }, [isMounted]);
|
|
15
|
+
*/
|
|
16
|
+
declare const useMounted: (delay?: number) => boolean;
|
|
17
|
+
export default useMounted;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { useState, useEffect } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Custom hook that sets a mounted state to true after a specified delay.
|
|
4
|
+
*
|
|
5
|
+
* @param {number} [delay=100] - The delay in milliseconds before setting the mounted state to true.
|
|
6
|
+
* @returns {boolean} - The mounted state.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* const isMounted = useMounted(200);
|
|
10
|
+
*
|
|
11
|
+
* useEffect(() => {
|
|
12
|
+
* if (isMounted) {
|
|
13
|
+
* // Component is mounted after 200ms
|
|
14
|
+
* }
|
|
15
|
+
* }, [isMounted]);
|
|
16
|
+
*/
|
|
17
|
+
const useMounted = (delay = 100) => {
|
|
18
|
+
const [mounted, setMounted] = useState(false);
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
const timer = setTimeout(() => setMounted(true), delay);
|
|
21
|
+
return () => clearTimeout(timer); // Cleanup the timer on unmount
|
|
22
|
+
}, [delay]);
|
|
23
|
+
return mounted;
|
|
24
|
+
};
|
|
25
|
+
export default useMounted;
|
package/dist/esm/index.js
CHANGED