@vef-framework/hooks 1.0.99 → 1.0.100
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/es/index.js +2 -27
- package/es/lib.js +2 -3
- package/es/use-authorized-items.js +2 -23
- package/es/use-color-tokens.js +2 -29
- package/es/use-computed-action-buttons.js +2 -42
- package/es/use-computed-options.js +2 -66
- package/es/use-context-disabled.js +2 -10
- package/es/use-data-query.js +2 -107
- package/es/use-deep-callback.js +2 -10
- package/es/use-deep-memo.js +2 -18
- package/es/use-deep-selector.js +2 -13
- package/es/use-fallback-options.js +2 -102
- package/es/use-gap-size-normalizer.js +2 -35
- package/es/use-normalized-gap-size.js +2 -9
- package/es/use-normalized-menu-items.js +2 -44
- package/es/use-normalized-options.js +2 -101
- package/es/use-option-filter.js +2 -17
- package/es/use-remote-filter.js +2 -36
- package/es/use-shallow-callback.js +2 -10
- package/es/use-shallow-memo.js +2 -18
- package/es/use-shallow-selector.js +2 -13
- package/es/use-singleton.js +2 -13
- package/es/use-theme-tokens.js +2 -10
- package/es/use-transient-store.js +2 -31
- package/es/use-window-size.js +2 -18
- package/lib/index.cjs +2 -109
- package/lib/lib.cjs +2 -58
- package/lib/use-authorized-items.cjs +2 -27
- package/lib/use-color-tokens.cjs +2 -35
- package/lib/use-computed-action-buttons.cjs +2 -46
- package/lib/use-computed-options.cjs +2 -70
- package/lib/use-context-disabled.cjs +2 -15
- package/lib/use-data-query.cjs +2 -111
- package/lib/use-deep-callback.cjs +2 -14
- package/lib/use-deep-memo.cjs +2 -22
- package/lib/use-deep-selector.cjs +2 -17
- package/lib/use-fallback-options.cjs +2 -106
- package/lib/use-gap-size-normalizer.cjs +2 -39
- package/lib/use-normalized-gap-size.cjs +2 -13
- package/lib/use-normalized-menu-items.cjs +2 -49
- package/lib/use-normalized-options.cjs +2 -105
- package/lib/use-option-filter.cjs +2 -21
- package/lib/use-remote-filter.cjs +2 -40
- package/lib/use-shallow-callback.cjs +2 -14
- package/lib/use-shallow-memo.cjs +2 -22
- package/lib/use-shallow-selector.cjs +2 -17
- package/lib/use-singleton.cjs +2 -17
- package/lib/use-theme-tokens.cjs +2 -14
- package/lib/use-transient-store.cjs +2 -35
- package/lib/use-window-size.cjs +2 -22
- package/package.json +3 -3
|
@@ -1,102 +1,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
import
|
|
3
|
-
import { useMemo } from 'react';
|
|
4
|
-
|
|
5
|
-
function useNormalizedDataOptions(options, {
|
|
6
|
-
labelKey = "label",
|
|
7
|
-
valueKey = "value",
|
|
8
|
-
childrenKey = "children",
|
|
9
|
-
descriptionKey = "description",
|
|
10
|
-
disabledKey = "disabled",
|
|
11
|
-
defaultToFirst = false
|
|
12
|
-
}, {
|
|
13
|
-
isTree = false,
|
|
14
|
-
isGrouped = false,
|
|
15
|
-
parsePinyin = false,
|
|
16
|
-
selectedOptionValues = []
|
|
17
|
-
} = {}) {
|
|
18
|
-
return useMemo(() => {
|
|
19
|
-
const selectedOptionValuesSet = new Set(selectedOptionValues);
|
|
20
|
-
const isGroupedOptions = !isTree && isGrouped;
|
|
21
|
-
const normalizeOption = (option, isTopLevel = false) => {
|
|
22
|
-
const label = option[labelKey];
|
|
23
|
-
if (isNullish(label)) {
|
|
24
|
-
if (labelKey === "label") {
|
|
25
|
-
throw new VefError(-10001, `The label value of the option is required.`);
|
|
26
|
-
}
|
|
27
|
-
throw new VefError(-10001, `The label value pointed by '${labelKey}' of the option is required.`);
|
|
28
|
-
}
|
|
29
|
-
const value = option[valueKey];
|
|
30
|
-
if (isNullish(value)) {
|
|
31
|
-
if (valueKey === "value") {
|
|
32
|
-
throw new VefError(-10002, `The value of the option is required.`);
|
|
33
|
-
}
|
|
34
|
-
throw new VefError(-10002, `The value pointed by '${valueKey}' of the option is required.`);
|
|
35
|
-
}
|
|
36
|
-
const children = option[childrenKey];
|
|
37
|
-
const description = option[descriptionKey];
|
|
38
|
-
const disabled = option[disabledKey] ?? false;
|
|
39
|
-
const normalizedOption = {
|
|
40
|
-
...option,
|
|
41
|
-
label,
|
|
42
|
-
value,
|
|
43
|
-
children,
|
|
44
|
-
description,
|
|
45
|
-
disabled
|
|
46
|
-
};
|
|
47
|
-
if (parsePinyin) {
|
|
48
|
-
const { labelText, descriptionText } = normalizedOption;
|
|
49
|
-
if (isString(label) || isString(labelText)) {
|
|
50
|
-
normalizedOption.labelPinyin = parsePinyinFirstLetter(
|
|
51
|
-
isString(label) ? label : labelText
|
|
52
|
-
).join("");
|
|
53
|
-
}
|
|
54
|
-
if (isString(description) || isString(descriptionText)) {
|
|
55
|
-
normalizedOption.descriptionPinyin = parsePinyinFirstLetter(
|
|
56
|
-
isString(description) ? description : descriptionText
|
|
57
|
-
).join("");
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
if ((!isTopLevel || !isGroupedOptions) && selectedOptionValuesSet.has(value)) {
|
|
61
|
-
selectedOptionValuesSet.delete(value);
|
|
62
|
-
}
|
|
63
|
-
if (isArray(normalizedOption.children)) {
|
|
64
|
-
normalizedOption.children = normalizedOption.children.map((option2) => normalizeOption(option2));
|
|
65
|
-
}
|
|
66
|
-
return normalizedOption;
|
|
67
|
-
};
|
|
68
|
-
const normalizedOptions = options.map((option) => normalizeOption(option, true));
|
|
69
|
-
const missingOptionValues = Array.from(selectedOptionValuesSet);
|
|
70
|
-
if (!defaultToFirst) {
|
|
71
|
-
return [normalizedOptions, missingOptionValues];
|
|
72
|
-
}
|
|
73
|
-
if (isGroupedOptions) {
|
|
74
|
-
const firstNonEmptyGroupOption = normalizedOptions.find((item) => isArray(item.children) && item.children.length > 0);
|
|
75
|
-
return [
|
|
76
|
-
normalizedOptions,
|
|
77
|
-
missingOptionValues,
|
|
78
|
-
firstNonEmptyGroupOption?.children?.[0]
|
|
79
|
-
];
|
|
80
|
-
}
|
|
81
|
-
return [
|
|
82
|
-
normalizedOptions,
|
|
83
|
-
missingOptionValues,
|
|
84
|
-
normalizedOptions[0]
|
|
85
|
-
];
|
|
86
|
-
}, [
|
|
87
|
-
childrenKey,
|
|
88
|
-
defaultToFirst,
|
|
89
|
-
descriptionKey,
|
|
90
|
-
disabledKey,
|
|
91
|
-
isGrouped,
|
|
92
|
-
isTree,
|
|
93
|
-
labelKey,
|
|
94
|
-
options,
|
|
95
|
-
parsePinyin,
|
|
96
|
-
// selectedOptionValues,
|
|
97
|
-
valueKey
|
|
98
|
-
]);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
export { useNormalizedDataOptions };
|
|
1
|
+
/*! VefFramework version: 1.0.100, build time: 2025-03-07T13:52:51.849Z, made by Venus. */
|
|
2
|
+
import{isNullish as e,VefError as i,isString as r,parsePinyinFirstLetter as n,isArray as t}from"@vef-framework/shared";import{useMemo as o}from"react";function useNormalizedDataOptions(l,{labelKey:a="label",valueKey:d="value",childrenKey:s="children",descriptionKey:h="description",disabledKey:c="disabled",defaultToFirst:u=!1},{isTree:p=!1,isGrouped:f=!1,parsePinyin:b=!1,selectedOptionValues:y=[]}={}){return o((()=>{const o=new Set(y),m=!p&&f,normalizeOption=(l,u=!1)=>{const p=l[a];if(e(p)){if("label"===a)throw new i(-10001,"The label value of the option is required.");throw new i(-10001,`The label value pointed by '${a}' of the option is required.`)}const f=l[d];if(e(f)){if("value"===d)throw new i(-10002,"The value of the option is required.");throw new i(-10002,`The value pointed by '${d}' of the option is required.`)}const y=l[s],w=l[h],v=l[c]??!1,T={...l,label:p,value:f,children:y,description:w,disabled:v};if(b){const{labelText:e,descriptionText:i}=T;(r(p)||r(e))&&(T.labelPinyin=n(r(p)?p:e).join("")),(r(w)||r(i))&&(T.descriptionPinyin=n(r(w)?w:i).join(""))}return u&&m||!o.has(f)||o.delete(f),t(T.children)&&(T.children=T.children.map((e=>normalizeOption(e)))),T},w=l.map((e=>normalizeOption(e,!0))),v=Array.from(o);if(!u)return[w,v];if(m){const e=w.find((e=>t(e.children)&&e.children.length>0));return[w,v,e?.children?.[0]]}return[w,v,w[0]]}),[s,u,h,c,f,p,a,l,b,d])}export{useNormalizedDataOptions};
|
|
102
3
|
/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
package/es/use-option-filter.js
CHANGED
|
@@ -1,18 +1,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
import
|
|
3
|
-
import { useMemo } from 'react';
|
|
4
|
-
|
|
5
|
-
function useOptionFilter(filterable, filterFromRemote) {
|
|
6
|
-
return useMemo(() => {
|
|
7
|
-
if (!filterable) {
|
|
8
|
-
return;
|
|
9
|
-
}
|
|
10
|
-
if (filterFromRemote) {
|
|
11
|
-
return false;
|
|
12
|
-
}
|
|
13
|
-
return (filterValue, option) => (isString(option.label) && option.label.includes(filterValue) || isString(option.labelText) && option.labelText.includes(filterValue) || option.labelPinyin?.includes(filterValue) || option.value.includes(filterValue) || isString(option.description) && option.description.includes(filterValue) || isString(option.descriptionText) && option.descriptionText.includes(filterValue) || option.descriptionPinyin?.includes(filterValue)) ?? false;
|
|
14
|
-
}, [filterable, filterFromRemote]);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export { useOptionFilter };
|
|
1
|
+
/*! VefFramework version: 1.0.100, build time: 2025-03-07T13:52:51.849Z, made by Venus. */
|
|
2
|
+
import{isString as e}from"@vef-framework/shared";import{useMemo as i}from"react";function useOptionFilter(n,l){return i((()=>{if(n)return!l&&((i,n)=>(e(n.label)&&n.label.includes(i)||e(n.labelText)&&n.labelText.includes(i)||n.labelPinyin?.includes(i)||n.value.includes(i)||e(n.description)&&n.description.includes(i)||e(n.descriptionText)&&n.descriptionText.includes(i)||n.descriptionPinyin?.includes(i))??!1)}),[n,l])}export{useOptionFilter};
|
|
18
3
|
/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
package/es/use-remote-filter.js
CHANGED
|
@@ -1,37 +1,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
import
|
|
3
|
-
import { useState, useMemo } from 'react';
|
|
4
|
-
|
|
5
|
-
function useRemoteFilter(enabled, apiParams, keywordKey = "keyword") {
|
|
6
|
-
const [filterKeyword, setFilterKeyword] = useState();
|
|
7
|
-
const mergedApiParams = useMemo(() => {
|
|
8
|
-
if (!enabled) {
|
|
9
|
-
return apiParams;
|
|
10
|
-
}
|
|
11
|
-
const params = {
|
|
12
|
-
...apiParams
|
|
13
|
-
};
|
|
14
|
-
const keywordToUse = trim(filterKeyword);
|
|
15
|
-
if (keywordToUse) {
|
|
16
|
-
params[keywordKey] = keywordToUse;
|
|
17
|
-
}
|
|
18
|
-
return params;
|
|
19
|
-
}, [
|
|
20
|
-
enabled,
|
|
21
|
-
apiParams,
|
|
22
|
-
filterKeyword,
|
|
23
|
-
keywordKey
|
|
24
|
-
]);
|
|
25
|
-
const handleInputKeyword = useMemo(() => {
|
|
26
|
-
if (!enabled) {
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
return debounce({ delay: 500 }, (keyword) => {
|
|
30
|
-
setFilterKeyword(keyword);
|
|
31
|
-
});
|
|
32
|
-
}, [enabled]);
|
|
33
|
-
return [mergedApiParams, handleInputKeyword];
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export { useRemoteFilter };
|
|
1
|
+
/*! VefFramework version: 1.0.100, build time: 2025-03-07T13:52:51.849Z, made by Venus. */
|
|
2
|
+
import{trim as r,debounce as e}from"@vef-framework/shared";import{useState as t,useMemo as o}from"react";function useRemoteFilter(n,f,i="keyword"){const[m,u]=t();return[o((()=>{if(!n)return f;const e={...f},t=r(m);return t&&(e[i]=t),e}),[n,f,m,i]),o((()=>{if(n)return e({delay:500},(r=>{u(r)}))}),[n])]}export{useRemoteFilter};
|
|
37
3
|
/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
import {
|
|
3
|
-
import { useShallowMemo } from './use-shallow-memo.js';
|
|
4
|
-
|
|
5
|
-
function useShallowCallback(callback, dependencies) {
|
|
6
|
-
const memoizedDependencies = useShallowMemo(() => dependencies, dependencies);
|
|
7
|
-
return useCallback(callback, memoizedDependencies);
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export { useShallowCallback };
|
|
1
|
+
/*! VefFramework version: 1.0.100, build time: 2025-03-07T13:52:51.849Z, made by Venus. */
|
|
2
|
+
import{useCallback as o}from"react";import{useShallowMemo as l}from"./use-shallow-memo.js";function useShallowCallback(a,r){const e=l((()=>r),r);return o(a,e)}export{useShallowCallback};
|
|
11
3
|
/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
package/es/use-shallow-memo.js
CHANGED
|
@@ -1,19 +1,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
import
|
|
3
|
-
import { useRef, useMemo } from 'react';
|
|
4
|
-
|
|
5
|
-
function useShallowMemo(factory, dependencies) {
|
|
6
|
-
const lastDependencies = useRef();
|
|
7
|
-
const signal = useRef(0);
|
|
8
|
-
if (lastDependencies.current === void 0 || !isEqual(dependencies, lastDependencies.current)) {
|
|
9
|
-
signal.current += 1;
|
|
10
|
-
}
|
|
11
|
-
lastDependencies.current = dependencies;
|
|
12
|
-
return useMemo(factory, [signal.current]);
|
|
13
|
-
}
|
|
14
|
-
function isEqual(one, another) {
|
|
15
|
-
return one.length === another.length && one.every((value, index) => isShallowEqual(value, another[index]));
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export { useShallowMemo };
|
|
1
|
+
/*! VefFramework version: 1.0.100, build time: 2025-03-07T13:52:51.849Z, made by Venus. */
|
|
2
|
+
import{isShallowEqual as r}from"@vef-framework/shared";import{useRef as e,useMemo as t}from"react";function useShallowMemo(n,o){const u=e(),c=e(0);return void 0!==u.current&&function isEqual(e,t){return e.length===t.length&&e.every(((e,n)=>r(e,t[n])))}(o,u.current)||(c.current+=1),u.current=o,t(n,[c.current])}export{useShallowMemo};
|
|
19
3
|
/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
|
@@ -1,14 +1,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
import
|
|
3
|
-
import { useRef } from 'react';
|
|
4
|
-
|
|
5
|
-
function useShallowSelector(selector) {
|
|
6
|
-
const prevSelectedState = useRef();
|
|
7
|
-
return (state) => {
|
|
8
|
-
const nextSelectedState = selector(state);
|
|
9
|
-
return isShallowEqual(prevSelectedState.current, nextSelectedState) ? prevSelectedState.current : prevSelectedState.current = nextSelectedState;
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export { useShallowSelector };
|
|
1
|
+
/*! VefFramework version: 1.0.100, build time: 2025-03-07T13:52:51.849Z, made by Venus. */
|
|
2
|
+
import{isShallowEqual as r}from"@vef-framework/shared";import{useRef as e}from"react";function useShallowSelector(t){const o=e();return e=>{const c=t(e);return r(o.current,c)?o.current:o.current=c}}export{useShallowSelector};
|
|
14
3
|
/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
package/es/use-singleton.js
CHANGED
|
@@ -1,14 +1,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
import
|
|
3
|
-
import { useRef } from 'react';
|
|
4
|
-
|
|
5
|
-
function useSingleton(factory) {
|
|
6
|
-
const singleton = useRef();
|
|
7
|
-
if (isNullish(singleton.current)) {
|
|
8
|
-
singleton.current = factory();
|
|
9
|
-
}
|
|
10
|
-
return singleton.current;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export { useSingleton };
|
|
1
|
+
/*! VefFramework version: 1.0.100, build time: 2025-03-07T13:52:51.849Z, made by Venus. */
|
|
2
|
+
import{isNullish as r}from"@vef-framework/shared";import{useRef as e}from"react";function useSingleton(t){const n=e();return r(n.current)&&(n.current=t()),n.current}export{useSingleton};
|
|
14
3
|
/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
package/es/use-theme-tokens.js
CHANGED
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
const { useToken } = theme;
|
|
5
|
-
function useThemeTokens() {
|
|
6
|
-
const { token } = useToken();
|
|
7
|
-
return token;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export { useThemeTokens };
|
|
1
|
+
/*! VefFramework version: 1.0.100, build time: 2025-03-07T13:52:51.849Z, made by Venus. */
|
|
2
|
+
import{theme as e}from"antd";const{useToken:n}=e;function useThemeTokens(){const{token:e}=n();return e}export{useThemeTokens};
|
|
11
3
|
/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
|
@@ -1,32 +1,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
import
|
|
3
|
-
import { useRef, useEffect } from 'react';
|
|
4
|
-
|
|
5
|
-
function useTransientStore({ subscribe, getState }, {
|
|
6
|
-
selector = (state) => state,
|
|
7
|
-
equalityFn = isShallowEqual,
|
|
8
|
-
listener
|
|
9
|
-
} = {}) {
|
|
10
|
-
const stateRef = useRef();
|
|
11
|
-
if (!stateRef.current) {
|
|
12
|
-
stateRef.current = selector(getState());
|
|
13
|
-
}
|
|
14
|
-
useEffect(
|
|
15
|
-
() => subscribe(
|
|
16
|
-
selector,
|
|
17
|
-
(state, prevState) => {
|
|
18
|
-
stateRef.current = state;
|
|
19
|
-
listener?.(state, prevState);
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
fireImmediately: false,
|
|
23
|
-
equalityFn
|
|
24
|
-
}
|
|
25
|
-
),
|
|
26
|
-
[equalityFn, listener, selector, subscribe]
|
|
27
|
-
);
|
|
28
|
-
return stateRef;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export { useTransientStore };
|
|
1
|
+
/*! VefFramework version: 1.0.100, build time: 2025-03-07T13:52:51.849Z, made by Venus. */
|
|
2
|
+
import{isShallowEqual as e}from"@vef-framework/shared";import{useRef as r,useEffect as t}from"react";function useTransientStore({subscribe:n,getState:i},{selector:o=e=>e,equalityFn:s=e,listener:u}={}){const a=r();return a.current||(a.current=o(i())),t((()=>n(o,((e,r)=>{a.current=e,u?.(e,r)}),{fireImmediately:!1,equalityFn:s})),[s,u,o,n]),a}export{useTransientStore};
|
|
32
3
|
/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
package/es/use-window-size.js
CHANGED
|
@@ -1,19 +1,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
function useWindowSize() {
|
|
5
|
-
const [size, setSize] = useRafState(() => ({
|
|
6
|
-
width: window.innerWidth,
|
|
7
|
-
height: window.innerHeight
|
|
8
|
-
}));
|
|
9
|
-
useEventListener("resize", () => {
|
|
10
|
-
setSize({
|
|
11
|
-
width: window.innerWidth,
|
|
12
|
-
height: window.innerHeight
|
|
13
|
-
});
|
|
14
|
-
});
|
|
15
|
-
return size;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export { useWindowSize };
|
|
1
|
+
/*! VefFramework version: 1.0.100, build time: 2025-03-07T13:52:51.849Z, made by Venus. */
|
|
2
|
+
import{useRafState as i,useEventListener as n}from"ahooks";function useWindowSize(){const[e,o]=i((()=>({width:window.innerWidth,height:window.innerHeight})));return n("resize",(()=>{o({width:window.innerWidth,height:window.innerHeight})})),e}export{useWindowSize};
|
|
19
3
|
/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
package/lib/index.cjs
CHANGED
|
@@ -1,110 +1,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
5
|
-
|
|
6
|
-
require('./lib.cjs');
|
|
7
|
-
const useAuthorizedItems = require('./use-authorized-items.cjs');
|
|
8
|
-
const useColorTokens = require('./use-color-tokens.cjs');
|
|
9
|
-
const useComputedActionButtons = require('./use-computed-action-buttons.cjs');
|
|
10
|
-
const useComputedOptions = require('./use-computed-options.cjs');
|
|
11
|
-
const useContextDisabled = require('./use-context-disabled.cjs');
|
|
12
|
-
const useDataQuery = require('./use-data-query.cjs');
|
|
13
|
-
const useDeepCallback = require('./use-deep-callback.cjs');
|
|
14
|
-
const useDeepMemo = require('./use-deep-memo.cjs');
|
|
15
|
-
const useDeepSelector = require('./use-deep-selector.cjs');
|
|
16
|
-
const useFallbackOptions = require('./use-fallback-options.cjs');
|
|
17
|
-
const useGapSizeNormalizer = require('./use-gap-size-normalizer.cjs');
|
|
18
|
-
const useNormalizedGapSize = require('./use-normalized-gap-size.cjs');
|
|
19
|
-
const useNormalizedMenuItems = require('./use-normalized-menu-items.cjs');
|
|
20
|
-
const useNormalizedOptions = require('./use-normalized-options.cjs');
|
|
21
|
-
const useOptionFilter = require('./use-option-filter.cjs');
|
|
22
|
-
const useRemoteFilter = require('./use-remote-filter.cjs');
|
|
23
|
-
const useShallowCallback = require('./use-shallow-callback.cjs');
|
|
24
|
-
const useShallowMemo = require('./use-shallow-memo.cjs');
|
|
25
|
-
const useShallowSelector = require('./use-shallow-selector.cjs');
|
|
26
|
-
const useSingleton = require('./use-singleton.cjs');
|
|
27
|
-
const useThemeTokens = require('./use-theme-tokens.cjs');
|
|
28
|
-
const useTransientStore = require('./use-transient-store.cjs');
|
|
29
|
-
const useWindowSize = require('./use-window-size.cjs');
|
|
30
|
-
const usehooks = require('@uidotdev/usehooks');
|
|
31
|
-
const ahooks = require('ahooks');
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
exports.useAuthorizedItems = useAuthorizedItems.useAuthorizedItems;
|
|
36
|
-
exports.useColorTokens = useColorTokens.useColorTokens;
|
|
37
|
-
exports.useDefaultColorTokens = useColorTokens.useDefaultColorTokens;
|
|
38
|
-
exports.useSemanticColorTokens = useColorTokens.useSemanticColorTokens;
|
|
39
|
-
exports.useComputedActionButtons = useComputedActionButtons.useComputedActionButtons;
|
|
40
|
-
exports.useComputedOptions = useComputedOptions.useComputedOptions;
|
|
41
|
-
exports.DisabledContextProvider = useContextDisabled.DisabledContextProvider;
|
|
42
|
-
exports.useContextDisabled = useContextDisabled.useContextDisabled;
|
|
43
|
-
exports.useDataQuery = useDataQuery.useDataQuery;
|
|
44
|
-
exports.useDeepCallback = useDeepCallback.useDeepCallback;
|
|
45
|
-
exports.useDeepMemo = useDeepMemo.useDeepMemo;
|
|
46
|
-
exports.useDeepSelector = useDeepSelector.useDeepSelector;
|
|
47
|
-
exports.useFallbackOptions = useFallbackOptions.useFallbackOptions;
|
|
48
|
-
exports.useGapSizeNormalizer = useGapSizeNormalizer.useGapSizeNormalizer;
|
|
49
|
-
exports.useNormalizedGapSize = useNormalizedGapSize.useNormalizedGapSize;
|
|
50
|
-
exports.normalizeMenuItem = useNormalizedMenuItems.normalizeMenuItem;
|
|
51
|
-
exports.useNormalizedMenuItems = useNormalizedMenuItems.useNormalizedMenuItems;
|
|
52
|
-
exports.useNormalizedDataOptions = useNormalizedOptions.useNormalizedDataOptions;
|
|
53
|
-
exports.useOptionFilter = useOptionFilter.useOptionFilter;
|
|
54
|
-
exports.useRemoteFilter = useRemoteFilter.useRemoteFilter;
|
|
55
|
-
exports.useShallowCallback = useShallowCallback.useShallowCallback;
|
|
56
|
-
exports.useShallowMemo = useShallowMemo.useShallowMemo;
|
|
57
|
-
exports.useShallowSelector = useShallowSelector.useShallowSelector;
|
|
58
|
-
exports.useSingleton = useSingleton.useSingleton;
|
|
59
|
-
exports.useThemeTokens = useThemeTokens.useThemeTokens;
|
|
60
|
-
exports.useTransientStore = useTransientStore.useTransientStore;
|
|
61
|
-
exports.useWindowSize = useWindowSize.useWindowSize;
|
|
62
|
-
Object.defineProperty(exports, "useClickAway", {
|
|
63
|
-
enumerable: true,
|
|
64
|
-
get: () => usehooks.useClickAway
|
|
65
|
-
});
|
|
66
|
-
Object.defineProperty(exports, "useMeasure", {
|
|
67
|
-
enumerable: true,
|
|
68
|
-
get: () => usehooks.useMeasure
|
|
69
|
-
});
|
|
70
|
-
Object.defineProperty(exports, "useDeepEffect", {
|
|
71
|
-
enumerable: true,
|
|
72
|
-
get: () => ahooks.useDeepCompareEffect
|
|
73
|
-
});
|
|
74
|
-
Object.defineProperty(exports, "useDeepLayoutEffect", {
|
|
75
|
-
enumerable: true,
|
|
76
|
-
get: () => ahooks.useDeepCompareLayoutEffect
|
|
77
|
-
});
|
|
78
|
-
Object.defineProperty(exports, "useElementSize", {
|
|
79
|
-
enumerable: true,
|
|
80
|
-
get: () => ahooks.useSize
|
|
81
|
-
});
|
|
82
|
-
Object.defineProperty(exports, "useEventListener", {
|
|
83
|
-
enumerable: true,
|
|
84
|
-
get: () => ahooks.useEventListener
|
|
85
|
-
});
|
|
86
|
-
Object.defineProperty(exports, "useKeyPress", {
|
|
87
|
-
enumerable: true,
|
|
88
|
-
get: () => ahooks.useKeyPress
|
|
89
|
-
});
|
|
90
|
-
Object.defineProperty(exports, "useMount", {
|
|
91
|
-
enumerable: true,
|
|
92
|
-
get: () => ahooks.useMount
|
|
93
|
-
});
|
|
94
|
-
Object.defineProperty(exports, "useUnmount", {
|
|
95
|
-
enumerable: true,
|
|
96
|
-
get: () => ahooks.useUnmount
|
|
97
|
-
});
|
|
98
|
-
Object.defineProperty(exports, "useUpdateEffect", {
|
|
99
|
-
enumerable: true,
|
|
100
|
-
get: () => ahooks.useUpdateEffect
|
|
101
|
-
});
|
|
102
|
-
Object.defineProperty(exports, "useUpdateLayoutEffect", {
|
|
103
|
-
enumerable: true,
|
|
104
|
-
get: () => ahooks.useUpdateLayoutEffect
|
|
105
|
-
});
|
|
106
|
-
Object.defineProperty(exports, "useUpdater", {
|
|
107
|
-
enumerable: true,
|
|
108
|
-
get: () => ahooks.useUpdate
|
|
109
|
-
});
|
|
1
|
+
/*! VefFramework version: 1.0.100, build time: 2025-03-07T13:52:51.849Z, made by Venus. */
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),require("./lib.cjs");const e=require("./use-authorized-items.cjs"),s=require("./use-color-tokens.cjs"),t=require("./use-computed-action-buttons.cjs"),r=require("./use-computed-options.cjs"),o=require("./use-context-disabled.cjs"),u=require("./use-data-query.cjs"),i=require("./use-deep-callback.cjs"),a=require("./use-deep-memo.cjs"),n=require("./use-deep-selector.cjs"),l=require("./use-fallback-options.cjs"),p=require("./use-gap-size-normalizer.cjs"),c=require("./use-normalized-gap-size.cjs"),m=require("./use-normalized-menu-items.cjs"),d=require("./use-normalized-options.cjs"),x=require("./use-option-filter.cjs"),b=require("./use-remote-filter.cjs"),j=require("./use-shallow-callback.cjs"),f=require("./use-shallow-memo.cjs"),z=require("./use-shallow-selector.cjs"),q=require("./use-singleton.cjs"),S=require("./use-theme-tokens.cjs"),y=require("./use-transient-store.cjs"),k=require("./use-window-size.cjs"),C=require("@uidotdev/usehooks"),O=require("ahooks");exports.useAuthorizedItems=e.useAuthorizedItems,exports.useColorTokens=s.useColorTokens,exports.useDefaultColorTokens=s.useDefaultColorTokens,exports.useSemanticColorTokens=s.useSemanticColorTokens,exports.useComputedActionButtons=t.useComputedActionButtons,exports.useComputedOptions=r.useComputedOptions,exports.DisabledContextProvider=o.DisabledContextProvider,exports.useContextDisabled=o.useContextDisabled,exports.useDataQuery=u.useDataQuery,exports.useDeepCallback=i.useDeepCallback,exports.useDeepMemo=a.useDeepMemo,exports.useDeepSelector=n.useDeepSelector,exports.useFallbackOptions=l.useFallbackOptions,exports.useGapSizeNormalizer=p.useGapSizeNormalizer,exports.useNormalizedGapSize=c.useNormalizedGapSize,exports.normalizeMenuItem=m.normalizeMenuItem,exports.useNormalizedMenuItems=m.useNormalizedMenuItems,exports.useNormalizedDataOptions=d.useNormalizedDataOptions,exports.useOptionFilter=x.useOptionFilter,exports.useRemoteFilter=b.useRemoteFilter,exports.useShallowCallback=j.useShallowCallback,exports.useShallowMemo=f.useShallowMemo,exports.useShallowSelector=z.useShallowSelector,exports.useSingleton=q.useSingleton,exports.useThemeTokens=S.useThemeTokens,exports.useTransientStore=y.useTransientStore,exports.useWindowSize=k.useWindowSize,Object.defineProperty(exports,"useClickAway",{enumerable:!0,get:()=>C.useClickAway}),Object.defineProperty(exports,"useMeasure",{enumerable:!0,get:()=>C.useMeasure}),Object.defineProperty(exports,"useDeepEffect",{enumerable:!0,get:()=>O.useDeepCompareEffect}),Object.defineProperty(exports,"useDeepLayoutEffect",{enumerable:!0,get:()=>O.useDeepCompareLayoutEffect}),Object.defineProperty(exports,"useElementSize",{enumerable:!0,get:()=>O.useSize}),Object.defineProperty(exports,"useEventListener",{enumerable:!0,get:()=>O.useEventListener}),Object.defineProperty(exports,"useKeyPress",{enumerable:!0,get:()=>O.useKeyPress}),Object.defineProperty(exports,"useMount",{enumerable:!0,get:()=>O.useMount}),Object.defineProperty(exports,"useUnmount",{enumerable:!0,get:()=>O.useUnmount}),Object.defineProperty(exports,"useUpdateEffect",{enumerable:!0,get:()=>O.useUpdateEffect}),Object.defineProperty(exports,"useUpdateLayoutEffect",{enumerable:!0,get:()=>O.useUpdateLayoutEffect}),Object.defineProperty(exports,"useUpdater",{enumerable:!0,get:()=>O.useUpdate});
|
|
110
3
|
/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
package/lib/lib.cjs
CHANGED
|
@@ -1,59 +1,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
5
|
-
|
|
6
|
-
const usehooks = require('@uidotdev/usehooks');
|
|
7
|
-
const ahooks = require('ahooks');
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
Object.defineProperty(exports, "useClickAway", {
|
|
12
|
-
enumerable: true,
|
|
13
|
-
get: () => usehooks.useClickAway
|
|
14
|
-
});
|
|
15
|
-
Object.defineProperty(exports, "useMeasure", {
|
|
16
|
-
enumerable: true,
|
|
17
|
-
get: () => usehooks.useMeasure
|
|
18
|
-
});
|
|
19
|
-
Object.defineProperty(exports, "useDeepEffect", {
|
|
20
|
-
enumerable: true,
|
|
21
|
-
get: () => ahooks.useDeepCompareEffect
|
|
22
|
-
});
|
|
23
|
-
Object.defineProperty(exports, "useDeepLayoutEffect", {
|
|
24
|
-
enumerable: true,
|
|
25
|
-
get: () => ahooks.useDeepCompareLayoutEffect
|
|
26
|
-
});
|
|
27
|
-
Object.defineProperty(exports, "useElementSize", {
|
|
28
|
-
enumerable: true,
|
|
29
|
-
get: () => ahooks.useSize
|
|
30
|
-
});
|
|
31
|
-
Object.defineProperty(exports, "useEventListener", {
|
|
32
|
-
enumerable: true,
|
|
33
|
-
get: () => ahooks.useEventListener
|
|
34
|
-
});
|
|
35
|
-
Object.defineProperty(exports, "useKeyPress", {
|
|
36
|
-
enumerable: true,
|
|
37
|
-
get: () => ahooks.useKeyPress
|
|
38
|
-
});
|
|
39
|
-
Object.defineProperty(exports, "useMount", {
|
|
40
|
-
enumerable: true,
|
|
41
|
-
get: () => ahooks.useMount
|
|
42
|
-
});
|
|
43
|
-
Object.defineProperty(exports, "useUnmount", {
|
|
44
|
-
enumerable: true,
|
|
45
|
-
get: () => ahooks.useUnmount
|
|
46
|
-
});
|
|
47
|
-
Object.defineProperty(exports, "useUpdateEffect", {
|
|
48
|
-
enumerable: true,
|
|
49
|
-
get: () => ahooks.useUpdateEffect
|
|
50
|
-
});
|
|
51
|
-
Object.defineProperty(exports, "useUpdateLayoutEffect", {
|
|
52
|
-
enumerable: true,
|
|
53
|
-
get: () => ahooks.useUpdateLayoutEffect
|
|
54
|
-
});
|
|
55
|
-
Object.defineProperty(exports, "useUpdater", {
|
|
56
|
-
enumerable: true,
|
|
57
|
-
get: () => ahooks.useUpdate
|
|
58
|
-
});
|
|
1
|
+
/*! VefFramework version: 1.0.100, build time: 2025-03-07T13:52:51.849Z, made by Venus. */
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@uidotdev/usehooks"),t=require("ahooks");Object.defineProperty(exports,"useClickAway",{enumerable:!0,get:()=>e.useClickAway}),Object.defineProperty(exports,"useMeasure",{enumerable:!0,get:()=>e.useMeasure}),Object.defineProperty(exports,"useDeepEffect",{enumerable:!0,get:()=>t.useDeepCompareEffect}),Object.defineProperty(exports,"useDeepLayoutEffect",{enumerable:!0,get:()=>t.useDeepCompareLayoutEffect}),Object.defineProperty(exports,"useElementSize",{enumerable:!0,get:()=>t.useSize}),Object.defineProperty(exports,"useEventListener",{enumerable:!0,get:()=>t.useEventListener}),Object.defineProperty(exports,"useKeyPress",{enumerable:!0,get:()=>t.useKeyPress}),Object.defineProperty(exports,"useMount",{enumerable:!0,get:()=>t.useMount}),Object.defineProperty(exports,"useUnmount",{enumerable:!0,get:()=>t.useUnmount}),Object.defineProperty(exports,"useUpdateEffect",{enumerable:!0,get:()=>t.useUpdateEffect}),Object.defineProperty(exports,"useUpdateLayoutEffect",{enumerable:!0,get:()=>t.useUpdateLayoutEffect}),Object.defineProperty(exports,"useUpdater",{enumerable:!0,get:()=>t.useUpdate});
|
|
59
3
|
/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
|
@@ -1,28 +1,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
5
|
-
|
|
6
|
-
const core = require('@vef-framework/core');
|
|
7
|
-
const react = require('react');
|
|
8
|
-
|
|
9
|
-
function useAuthorizedItems(items) {
|
|
10
|
-
const { checkPermission } = core.useAuthContext();
|
|
11
|
-
return react.useMemo(
|
|
12
|
-
() => items?.filter((item) => {
|
|
13
|
-
const { permissions } = item;
|
|
14
|
-
if (!permissions) {
|
|
15
|
-
return true;
|
|
16
|
-
}
|
|
17
|
-
const checkMode = item.checkMode ?? "any";
|
|
18
|
-
if (checkMode === "any") {
|
|
19
|
-
return permissions.some((permission) => checkPermission(permission));
|
|
20
|
-
}
|
|
21
|
-
return permissions.every((permission) => checkPermission(permission));
|
|
22
|
-
}),
|
|
23
|
-
[items, checkPermission]
|
|
24
|
-
);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
exports.useAuthorizedItems = useAuthorizedItems;
|
|
1
|
+
/*! VefFramework version: 1.0.100, build time: 2025-03-07T13:52:51.849Z, made by Venus. */
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@vef-framework/core"),r=require("react");exports.useAuthorizedItems=function useAuthorizedItems(t){const{checkPermission:o}=e.useAuthContext();return r.useMemo((()=>t?.filter((e=>{const{permissions:r}=e;if(!r)return!0;return"any"===(e.checkMode??"any")?r.some((e=>o(e))):r.every((e=>o(e)))}))),[t,o])};
|
|
28
3
|
/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
package/lib/use-color-tokens.cjs
CHANGED
|
@@ -1,36 +1,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
5
|
-
|
|
6
|
-
const shared = require('@vef-framework/shared');
|
|
7
|
-
const react = require('react');
|
|
8
|
-
const useThemeTokens = require('./use-theme-tokens.cjs');
|
|
9
|
-
|
|
10
|
-
function useDefaultColorTokens() {
|
|
11
|
-
const tokens = useThemeTokens.useThemeTokens();
|
|
12
|
-
return react.useMemo(() => shared.defaultColorTypes.reduce(
|
|
13
|
-
(map, color) => {
|
|
14
|
-
map.set(color, tokens[color]);
|
|
15
|
-
return map;
|
|
16
|
-
},
|
|
17
|
-
/* @__PURE__ */ new Map()
|
|
18
|
-
), [tokens]);
|
|
19
|
-
}
|
|
20
|
-
function useSemanticColorTokens() {
|
|
21
|
-
const tokens = useThemeTokens.useThemeTokens();
|
|
22
|
-
return react.useMemo(() => shared.semanticColorTypes.reduce((map, color) => {
|
|
23
|
-
map.set(color, tokens[`color${shared.capitalize(color)}`]);
|
|
24
|
-
return map;
|
|
25
|
-
}, /* @__PURE__ */ new Map()), [tokens]);
|
|
26
|
-
}
|
|
27
|
-
function useColorTokens() {
|
|
28
|
-
const defaultColorTokens = useDefaultColorTokens();
|
|
29
|
-
const semanticColorTokens = useSemanticColorTokens();
|
|
30
|
-
return react.useMemo(() => new Map([...defaultColorTokens, ...semanticColorTokens]), [defaultColorTokens, semanticColorTokens]);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
exports.useColorTokens = useColorTokens;
|
|
34
|
-
exports.useDefaultColorTokens = useDefaultColorTokens;
|
|
35
|
-
exports.useSemanticColorTokens = useSemanticColorTokens;
|
|
1
|
+
/*! VefFramework version: 1.0.100, build time: 2025-03-07T13:52:51.849Z, made by Venus. */
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@vef-framework/shared"),o=require("react"),s=require("./use-theme-tokens.cjs");function useDefaultColorTokens(){const r=s.useThemeTokens();return o.useMemo((()=>e.defaultColorTypes.reduce(((e,o)=>(e.set(o,r[o]),e)),new Map)),[r])}function useSemanticColorTokens(){const r=s.useThemeTokens();return o.useMemo((()=>e.semanticColorTypes.reduce(((o,s)=>(o.set(s,r[`color${e.capitalize(s)}`]),o)),new Map)),[r])}exports.useColorTokens=function useColorTokens(){const e=useDefaultColorTokens(),s=useSemanticColorTokens();return o.useMemo((()=>new Map([...e,...s])),[e,s])},exports.useDefaultColorTokens=useDefaultColorTokens,exports.useSemanticColorTokens=useSemanticColorTokens;
|
|
36
3
|
/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|
|
@@ -1,47 +1,3 @@
|
|
|
1
|
-
/*! VefFramework version: 1.0.
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
5
|
-
|
|
6
|
-
const shared = require('@vef-framework/shared');
|
|
7
|
-
const react = require('react');
|
|
8
|
-
|
|
9
|
-
function useComputedActionButtons(buttons, context) {
|
|
10
|
-
return react.useMemo(() => buttons.filter((button) => {
|
|
11
|
-
const { show } = button;
|
|
12
|
-
if (shared.isFunction(show)) {
|
|
13
|
-
return show(context);
|
|
14
|
-
}
|
|
15
|
-
return show ?? true;
|
|
16
|
-
}).map((button) => {
|
|
17
|
-
const {
|
|
18
|
-
disabled,
|
|
19
|
-
requireConfirmation,
|
|
20
|
-
confirmationMode,
|
|
21
|
-
confirmationTitle,
|
|
22
|
-
confirmationContent,
|
|
23
|
-
...rest
|
|
24
|
-
} = button;
|
|
25
|
-
const computedButton = {
|
|
26
|
-
...rest,
|
|
27
|
-
disabled: shared.isFunction(disabled) ? disabled(context) : disabled ?? false,
|
|
28
|
-
requireConfirmation: shared.isFunction(requireConfirmation) ? requireConfirmation(context) : requireConfirmation ?? false,
|
|
29
|
-
confirmationMode: shared.isFunction(confirmationMode) ? confirmationMode(context) : confirmationMode ?? "simple",
|
|
30
|
-
confirmationTitle: shared.isFunction(confirmationTitle) ? confirmationTitle(context) : confirmationTitle ?? shared.defaultMessageTitle,
|
|
31
|
-
confirmationContent: shared.isFunction(confirmationContent) ? confirmationContent(context) : confirmationContent ?? `\u786E\u5B9A\u8981${rest.label}\u5417\uFF1F`
|
|
32
|
-
};
|
|
33
|
-
if (computedButton.requireConfirmation && !computedButton.confirmationMode) {
|
|
34
|
-
computedButton.confirmationMode = "simple";
|
|
35
|
-
}
|
|
36
|
-
if (computedButton.requireConfirmation && !computedButton.confirmationTitle) {
|
|
37
|
-
computedButton.confirmationTitle = shared.defaultMessageTitle;
|
|
38
|
-
}
|
|
39
|
-
if (computedButton.requireConfirmation && !computedButton.confirmationContent) {
|
|
40
|
-
computedButton.confirmationContent = `\u786E\u5B9A\u8981${computedButton.label}\u5417\uFF1F`;
|
|
41
|
-
}
|
|
42
|
-
return computedButton;
|
|
43
|
-
}), [buttons, context]);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
exports.useComputedActionButtons = useComputedActionButtons;
|
|
1
|
+
/*! VefFramework version: 1.0.100, build time: 2025-03-07T13:52:51.849Z, made by Venus. */
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("@vef-framework/shared"),n=require("react");exports.useComputedActionButtons=function useComputedActionButtons(o,t){return n.useMemo((()=>o.filter((n=>{const{show:o}=n;return i.isFunction(o)?o(t):o??!0})).map((n=>{const{disabled:o,requireConfirmation:e,confirmationMode:r,confirmationTitle:a,confirmationContent:u,...s}=n,c={...s,disabled:i.isFunction(o)?o(t):o??!1,requireConfirmation:i.isFunction(e)?e(t):e??!1,confirmationMode:i.isFunction(r)?r(t):r??"simple",confirmationTitle:i.isFunction(a)?a(t):a??i.defaultMessageTitle,confirmationContent:i.isFunction(u)?u(t):u??`确定要${s.label}吗?`};return c.requireConfirmation&&!c.confirmationMode&&(c.confirmationMode="simple"),c.requireConfirmation&&!c.confirmationTitle&&(c.confirmationTitle=i.defaultMessageTitle),c.requireConfirmation&&!c.confirmationContent&&(c.confirmationContent=`确定要${c.label}吗?`),c}))),[o,t])};
|
|
47
3
|
/*! VefFramework is a blazingly high-level, modern, flexible, easy-to-use UI framework made by Venus. Follow me on Github: https://github.com/ilxqx! @ilxqx */
|