@vef-framework/hooks 1.0.135 → 2.0.1

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.
Files changed (158) hide show
  1. package/README +15 -0
  2. package/dist/cjs/index.cjs +172 -0
  3. package/dist/cjs/lib.cjs +148 -0
  4. package/dist/cjs/use-authorized-items/index.cjs +20 -0
  5. package/dist/cjs/use-breakpoints/index.cjs +74 -0
  6. package/dist/cjs/use-check-permission/index.cjs +18 -0
  7. package/dist/cjs/use-data-dict-query/index.cjs +34 -0
  8. package/dist/cjs/use-data-options/index.cjs +119 -0
  9. package/dist/cjs/use-deep-callback/index.cjs +13 -0
  10. package/dist/cjs/use-deep-compare/index.cjs +36 -0
  11. package/dist/cjs/use-deep-effect/index.cjs +13 -0
  12. package/dist/cjs/use-deep-isomorphic-effect/index.cjs +14 -0
  13. package/dist/cjs/use-deep-layout-effect/index.cjs +13 -0
  14. package/dist/cjs/use-deep-memo/index.cjs +13 -0
  15. package/dist/cjs/use-document-event/index.cjs +22 -0
  16. package/dist/cjs/use-emitter-event/index.cjs +22 -0
  17. package/dist/cjs/use-has-fetching/index.cjs +17 -0
  18. package/dist/cjs/use-has-mutating/index.cjs +16 -0
  19. package/dist/cjs/use-is-authorized/index.cjs +18 -0
  20. package/dist/cjs/use-latest/index.cjs +14 -0
  21. package/dist/cjs/use-raf-state/index.cjs +23 -0
  22. package/dist/cjs/use-shallow-callback/index.cjs +13 -0
  23. package/dist/cjs/use-shallow-compare/index.cjs +36 -0
  24. package/dist/cjs/use-shallow-effect/index.cjs +13 -0
  25. package/dist/cjs/use-shallow-isomorphic-effect/index.cjs +14 -0
  26. package/dist/cjs/use-shallow-layout-effect/index.cjs +13 -0
  27. package/dist/cjs/use-shallow-memo/index.cjs +13 -0
  28. package/dist/cjs/use-singleton/index.cjs +16 -0
  29. package/dist/es/index.js +29 -0
  30. package/dist/es/lib.js +35 -0
  31. package/dist/es/use-authorized-items/index.js +16 -0
  32. package/dist/es/use-breakpoints/index.js +70 -0
  33. package/dist/es/use-check-permission/index.js +14 -0
  34. package/dist/es/use-data-dict-query/index.js +30 -0
  35. package/dist/es/use-data-options/index.js +115 -0
  36. package/dist/es/use-deep-callback/index.js +9 -0
  37. package/dist/es/use-deep-compare/index.js +32 -0
  38. package/dist/es/use-deep-effect/index.js +9 -0
  39. package/dist/es/use-deep-isomorphic-effect/index.js +10 -0
  40. package/dist/es/use-deep-layout-effect/index.js +9 -0
  41. package/dist/es/use-deep-memo/index.js +9 -0
  42. package/dist/es/use-document-event/index.js +18 -0
  43. package/dist/es/use-emitter-event/index.js +18 -0
  44. package/dist/es/use-has-fetching/index.js +13 -0
  45. package/dist/es/use-has-mutating/index.js +12 -0
  46. package/dist/es/use-is-authorized/index.js +14 -0
  47. package/dist/es/use-latest/index.js +10 -0
  48. package/dist/es/use-raf-state/index.js +19 -0
  49. package/dist/es/use-shallow-callback/index.js +9 -0
  50. package/dist/es/use-shallow-compare/index.js +32 -0
  51. package/dist/es/use-shallow-effect/index.js +9 -0
  52. package/dist/es/use-shallow-isomorphic-effect/index.js +10 -0
  53. package/dist/es/use-shallow-layout-effect/index.js +9 -0
  54. package/dist/es/use-shallow-memo/index.js +9 -0
  55. package/dist/es/use-singleton/index.js +12 -0
  56. package/dist/types/index.d.ts +26 -0
  57. package/dist/types/lib.d.ts +6 -0
  58. package/{types/use-authorized-items.d.ts → dist/types/use-authorized-items/index.d.ts} +4 -3
  59. package/dist/types/use-breakpoints/index.d.ts +47 -0
  60. package/dist/types/use-check-permission/index.d.ts +8 -0
  61. package/dist/types/use-data-dict-query/index.d.ts +15 -0
  62. package/dist/types/use-data-options/index.d.ts +80 -0
  63. package/dist/types/use-deep-callback/index.d.ts +9 -0
  64. package/dist/types/use-deep-compare/index.d.ts +8 -0
  65. package/dist/types/use-deep-effect/index.d.ts +9 -0
  66. package/dist/types/use-deep-isomorphic-effect/index.d.ts +9 -0
  67. package/dist/types/use-deep-layout-effect/index.d.ts +9 -0
  68. package/dist/types/use-deep-memo/index.d.ts +9 -0
  69. package/dist/types/use-document-event/index.d.ts +8 -0
  70. package/dist/types/use-emitter-event/index.d.ts +9 -0
  71. package/dist/types/use-has-fetching/index.d.ts +8 -0
  72. package/dist/types/use-has-mutating/index.d.ts +7 -0
  73. package/dist/types/use-is-authorized/index.d.ts +10 -0
  74. package/dist/types/use-latest/index.d.ts +8 -0
  75. package/dist/types/use-raf-state/index.d.ts +8 -0
  76. package/dist/types/use-shallow-callback/index.d.ts +9 -0
  77. package/dist/types/use-shallow-compare/index.d.ts +8 -0
  78. package/dist/types/use-shallow-effect/index.d.ts +9 -0
  79. package/dist/types/use-shallow-isomorphic-effect/index.d.ts +9 -0
  80. package/dist/types/use-shallow-layout-effect/index.d.ts +9 -0
  81. package/dist/types/use-shallow-memo/index.d.ts +9 -0
  82. package/dist/types/use-singleton/index.d.ts +11 -0
  83. package/package.json +46 -36
  84. package/README.md +0 -27
  85. package/cjs/index.cjs +0 -2
  86. package/cjs/lib.cjs +0 -2
  87. package/cjs/use-authorized-items.cjs +0 -2
  88. package/cjs/use-color-tokens.cjs +0 -2
  89. package/cjs/use-computed-action-buttons.cjs +0 -2
  90. package/cjs/use-computed-options.cjs +0 -2
  91. package/cjs/use-context-disabled.cjs +0 -2
  92. package/cjs/use-data-query.cjs +0 -2
  93. package/cjs/use-deep-callback.cjs +0 -2
  94. package/cjs/use-deep-memo.cjs +0 -2
  95. package/cjs/use-deep-selector.cjs +0 -2
  96. package/cjs/use-fallback-options.cjs +0 -2
  97. package/cjs/use-gap-size-normalizer.cjs +0 -2
  98. package/cjs/use-normalized-gap-size.cjs +0 -2
  99. package/cjs/use-normalized-menu-items.cjs +0 -2
  100. package/cjs/use-normalized-options.cjs +0 -2
  101. package/cjs/use-option-filter.cjs +0 -2
  102. package/cjs/use-remote-filter.cjs +0 -2
  103. package/cjs/use-shallow-callback.cjs +0 -2
  104. package/cjs/use-shallow-memo.cjs +0 -2
  105. package/cjs/use-shallow-selector.cjs +0 -2
  106. package/cjs/use-singleton.cjs +0 -2
  107. package/cjs/use-theme-tokens.cjs +0 -2
  108. package/cjs/use-transient-store.cjs +0 -2
  109. package/cjs/use-window-size.cjs +0 -2
  110. package/esm/index.js +0 -2
  111. package/esm/lib.js +0 -2
  112. package/esm/use-authorized-items.js +0 -2
  113. package/esm/use-color-tokens.js +0 -2
  114. package/esm/use-computed-action-buttons.js +0 -2
  115. package/esm/use-computed-options.js +0 -2
  116. package/esm/use-context-disabled.js +0 -2
  117. package/esm/use-data-query.js +0 -2
  118. package/esm/use-deep-callback.js +0 -2
  119. package/esm/use-deep-memo.js +0 -2
  120. package/esm/use-deep-selector.js +0 -2
  121. package/esm/use-fallback-options.js +0 -2
  122. package/esm/use-gap-size-normalizer.js +0 -2
  123. package/esm/use-normalized-gap-size.js +0 -2
  124. package/esm/use-normalized-menu-items.js +0 -2
  125. package/esm/use-normalized-options.js +0 -2
  126. package/esm/use-option-filter.js +0 -2
  127. package/esm/use-remote-filter.js +0 -2
  128. package/esm/use-shallow-callback.js +0 -2
  129. package/esm/use-shallow-memo.js +0 -2
  130. package/esm/use-shallow-selector.js +0 -2
  131. package/esm/use-singleton.js +0 -2
  132. package/esm/use-theme-tokens.js +0 -2
  133. package/esm/use-transient-store.js +0 -2
  134. package/esm/use-window-size.js +0 -2
  135. package/types/index.d.ts +0 -24
  136. package/types/lib.d.ts +0 -3
  137. package/types/use-color-tokens.d.ts +0 -19
  138. package/types/use-computed-action-buttons.d.ts +0 -35
  139. package/types/use-computed-options.d.ts +0 -54
  140. package/types/use-context-disabled.d.ts +0 -6
  141. package/types/use-data-query.d.ts +0 -9
  142. package/types/use-deep-callback.d.ts +0 -10
  143. package/types/use-deep-memo.d.ts +0 -10
  144. package/types/use-deep-selector.d.ts +0 -8
  145. package/types/use-fallback-options.d.ts +0 -34
  146. package/types/use-gap-size-normalizer.d.ts +0 -8
  147. package/types/use-normalized-gap-size.d.ts +0 -9
  148. package/types/use-normalized-menu-items.d.ts +0 -16
  149. package/types/use-normalized-options.d.ts +0 -33
  150. package/types/use-option-filter.d.ts +0 -8
  151. package/types/use-remote-filter.d.ts +0 -9
  152. package/types/use-shallow-callback.d.ts +0 -10
  153. package/types/use-shallow-memo.d.ts +0 -10
  154. package/types/use-shallow-selector.d.ts +0 -8
  155. package/types/use-singleton.d.ts +0 -7
  156. package/types/use-theme-tokens.d.ts +0 -6
  157. package/types/use-transient-store.d.ts +0 -34
  158. package/types/use-window-size.d.ts +0 -17
@@ -0,0 +1,9 @@
1
+ import { DependencyList } from 'react';
2
+ /**
3
+ * Use the shallow memo of the factory
4
+ *
5
+ * @param factory - The factory to memo.
6
+ * @param dependencies - The dependencies to compare.
7
+ * @returns The memoized value.
8
+ */
9
+ export declare function useShallowMemo<T>(factory: () => T, dependencies: DependencyList): T;
@@ -0,0 +1,11 @@
1
+ import { RefObject } from 'react';
2
+ export interface SingletonRefObject<T> extends RefObject<T> {
3
+ readonly current: T;
4
+ }
5
+ /**
6
+ * A hook that returns a singleton ref object.
7
+ *
8
+ * @param initializer - The initializer for the singleton.
9
+ * @returns The singleton ref object.
10
+ */
11
+ export declare function useSingleton<T>(initializer: () => T): SingletonRefObject<T>;
package/package.json CHANGED
@@ -1,55 +1,65 @@
1
1
  {
2
2
  "name": "@vef-framework/hooks",
3
3
  "type": "module",
4
- "version": "1.0.135",
4
+ "version": "2.0.1",
5
5
  "private": false,
6
- "description": "The hooks of the VEF framework",
7
- "author": "Venus",
6
+ "description": "Hooks for VEF framework",
7
+ "author": {
8
+ "name": "Venus",
9
+ "email": "iweixiaopeng@163.com",
10
+ "url": "https://github.com/ilxqx"
11
+ },
12
+ "license": "Apache-2.0",
13
+ "homepage": "https://vef.ilxqx.com",
8
14
  "keywords": [
9
15
  "vef",
10
- "vef-framework",
11
- "vef-hooks"
16
+ "framework",
17
+ "react",
18
+ "hooks"
12
19
  ],
13
20
  "sideEffects": false,
14
- "main": "cjs/index.cjs",
15
- "types": "types/index.d.ts",
16
- "files": [
17
- "*"
18
- ],
19
- "engines": {
20
- "node": ">=20"
21
- },
22
- "dependencies": {
23
- "@emotion/cache": "11.14.0",
24
- "@emotion/react": "11.14.0",
25
- "@emotion/styled": "11.14.0",
26
- "antd": "5.24.7",
27
- "use-sync-external-store": "^1.5.0",
28
- "@uidotdev/usehooks": "^2.4.1",
29
- "@vef-framework/core": "1.0.135",
30
- "@vef-framework/shared": "1.0.135",
31
- "ahooks": "3.8.4"
32
- },
33
- "publishConfig": {
34
- "access": "public"
35
- },
36
21
  "exports": {
37
22
  ".": {
23
+ "source": "./src/index.ts",
38
24
  "import": {
39
- "types": "./types/index.d.ts",
40
- "default": "./esm/index.js"
25
+ "types": "./dist/types/index.d.ts",
26
+ "default": "./dist/es/index.js"
41
27
  },
42
28
  "require": {
43
- "types": "./types/index.d.ts",
44
- "default": "./cjs/index.cjs"
29
+ "types": "./dist/types/index.d.ts",
30
+ "default": "./dist/cjs/index.cjs"
45
31
  }
46
32
  },
47
33
  "./package.json": "./package.json"
48
34
  },
49
- "module": "esm/index.js",
50
- "packageManager": "pnpm@10.8.1",
35
+ "main": "dist/cjs/index.cjs",
36
+ "module": "dist/es/index.js",
37
+ "types": "dist/types/index.d.ts",
38
+ "files": [
39
+ "dist"
40
+ ],
41
+ "engines": {
42
+ "node": ">=22.x"
43
+ },
44
+ "publishConfig": {
45
+ "access": "public"
46
+ },
51
47
  "peerDependencies": {
52
- "react": "18.3.1",
53
- "react-dom": "18.3.1"
48
+ "react": ">=19"
49
+ },
50
+ "dependencies": {
51
+ "@mantine/hooks": "^8.3.9",
52
+ "react-hotkeys-hook": "^5.2.1",
53
+ "@vef-framework/core": "2.0.1",
54
+ "@vef-framework/shared": "2.0.1"
55
+ },
56
+ "devDependencies": {
57
+ "react": "^19.2.0"
58
+ },
59
+ "scripts": {
60
+ "clean": "rimraf dist",
61
+ "typecheck": "tsc --noEmit",
62
+ "build": "vite build",
63
+ "pub": "tsx ../../scripts/publish.ts"
54
64
  }
55
- }
65
+ }
package/README.md DELETED
@@ -1,27 +0,0 @@
1
- # The Hooks of VEF Framework
2
-
3
- VEF framework made by Venus is built on top of React, and it provides a set of components that are essential for building a modern web application. These components are designed to be highly customizable and reusable, allowing developers to build complex and dynamic user interfaces with ease.
4
-
5
- ## Installation
6
-
7
- To install the VEF framework hooks, you can use pnpm or any other package manager you like:
8
-
9
- ```bash
10
- pnpm add @vef-framework/hooks
11
- ```
12
-
13
- ## Usage
14
-
15
- To use the VEF framework hooks in your project, you can import them from the package, for example:
16
-
17
- ```ts
18
- import { useXxx } from "@vef-framework/hooks";
19
-
20
- function App() {
21
- const result = useXxx();
22
- }
23
- ```
24
-
25
- ## Documentation
26
-
27
- For more details on how to use the VEF framework hooks, please refer to the [official documentation](https://vef.ilxqx.com/docs).
package/cjs/index.cjs DELETED
@@ -1,2 +0,0 @@
1
- "use strict";
2
- "use strict";require("./lib.cjs");var o=require("./use-authorized-items.cjs"),r=require("./use-color-tokens.cjs"),n=require("./use-computed-action-buttons.cjs"),a=require("./use-computed-options.cjs"),u=require("./use-context-disabled.cjs"),i=require("./use-data-query.cjs"),l=require("./use-deep-callback.cjs"),m=require("./use-deep-memo.cjs"),p=require("./use-deep-selector.cjs"),c=require("./use-fallback-options.cjs"),d=require("./use-gap-size-normalizer.cjs"),f=require("./use-normalized-gap-size.cjs"),t=require("./use-normalized-menu-items.cjs"),b=require("./use-normalized-options.cjs"),S=require("./use-option-filter.cjs"),v=require("./use-remote-filter.cjs"),z=require("./use-shallow-callback.cjs"),C=require("./use-shallow-memo.cjs"),q=require("./use-shallow-selector.cjs"),D=require("./use-singleton.cjs"),O=require("./use-theme-tokens.cjs"),k=require("./use-transient-store.cjs"),y=require("./use-window-size.cjs"),s=require("@uidotdev/usehooks"),e=require("ahooks");exports.useAuthorizedItems=o.useAuthorizedItems,exports.useColorTokens=r.useColorTokens,exports.useDefaultColorTokens=r.useDefaultColorTokens,exports.useSemanticColorTokens=r.useSemanticColorTokens,exports.useComputedActionButtons=n.useComputedActionButtons,exports.useComputedOptions=a.useComputedOptions,exports.DisabledContextProvider=u.DisabledContextProvider,exports.useContextDisabled=u.useContextDisabled,exports.useDataQuery=i.useDataQuery,exports.useDeepCallback=l.useDeepCallback,exports.useDeepMemo=m.useDeepMemo,exports.useDeepSelector=p.useDeepSelector,exports.useFallbackOptions=c.useFallbackOptions,exports.useGapSizeNormalizer=d.useGapSizeNormalizer,exports.useNormalizedGapSize=f.useNormalizedGapSize,exports.normalizeMenuItem=t.normalizeMenuItem,exports.useNormalizedMenuItems=t.useNormalizedMenuItems,exports.useNormalizedDataOptions=b.useNormalizedDataOptions,exports.useOptionFilter=S.useOptionFilter,exports.useRemoteFilter=v.useRemoteFilter,exports.useShallowCallback=z.useShallowCallback,exports.useShallowMemo=C.useShallowMemo,exports.useShallowSelector=q.useShallowSelector,exports.useSingleton=D.useSingleton,exports.useThemeTokens=O.useThemeTokens,exports.useTransientStore=k.useTransientStore,exports.useWindowSize=y.useWindowSize,Object.defineProperty(exports,"useClickAway",{enumerable:!0,get:function(){return s.useClickAway}}),Object.defineProperty(exports,"useMeasure",{enumerable:!0,get:function(){return s.useMeasure}}),Object.defineProperty(exports,"useDeepEffect",{enumerable:!0,get:function(){return e.useDeepCompareEffect}}),Object.defineProperty(exports,"useDeepLayoutEffect",{enumerable:!0,get:function(){return e.useDeepCompareLayoutEffect}}),Object.defineProperty(exports,"useElementSize",{enumerable:!0,get:function(){return e.useSize}}),Object.defineProperty(exports,"useEventListener",{enumerable:!0,get:function(){return e.useEventListener}}),Object.defineProperty(exports,"useKeyPress",{enumerable:!0,get:function(){return e.useKeyPress}}),Object.defineProperty(exports,"useMount",{enumerable:!0,get:function(){return e.useMount}}),Object.defineProperty(exports,"useUnmount",{enumerable:!0,get:function(){return e.useUnmount}}),Object.defineProperty(exports,"useUpdateEffect",{enumerable:!0,get:function(){return e.useUpdateEffect}}),Object.defineProperty(exports,"useUpdateLayoutEffect",{enumerable:!0,get:function(){return e.useUpdateLayoutEffect}}),Object.defineProperty(exports,"useUpdater",{enumerable:!0,get:function(){return e.useUpdate}});
package/cjs/lib.cjs DELETED
@@ -1,2 +0,0 @@
1
- "use strict";
2
- "use strict";var t=require("@uidotdev/usehooks"),e=require("ahooks");Object.defineProperty(exports,"useClickAway",{enumerable:!0,get:function(){return t.useClickAway}}),Object.defineProperty(exports,"useMeasure",{enumerable:!0,get:function(){return t.useMeasure}}),Object.defineProperty(exports,"useDeepEffect",{enumerable:!0,get:function(){return e.useDeepCompareEffect}}),Object.defineProperty(exports,"useDeepLayoutEffect",{enumerable:!0,get:function(){return e.useDeepCompareLayoutEffect}}),Object.defineProperty(exports,"useElementSize",{enumerable:!0,get:function(){return e.useSize}}),Object.defineProperty(exports,"useEventListener",{enumerable:!0,get:function(){return e.useEventListener}}),Object.defineProperty(exports,"useKeyPress",{enumerable:!0,get:function(){return e.useKeyPress}}),Object.defineProperty(exports,"useMount",{enumerable:!0,get:function(){return e.useMount}}),Object.defineProperty(exports,"useUnmount",{enumerable:!0,get:function(){return e.useUnmount}}),Object.defineProperty(exports,"useUpdateEffect",{enumerable:!0,get:function(){return e.useUpdateEffect}}),Object.defineProperty(exports,"useUpdateLayoutEffect",{enumerable:!0,get:function(){return e.useUpdateLayoutEffect}}),Object.defineProperty(exports,"useUpdater",{enumerable:!0,get:function(){return e.useUpdate}});
@@ -1,2 +0,0 @@
1
- "use strict";
2
- "use strict";var i=require("@vef-framework/core"),o=require("react");function c(s){const{checkPermission:e}=i.useAuthContext();return o.useMemo(()=>s?.filter(u=>{const{permissions:r}=u;return r?(u.checkMode??"any")==="any"?r.some(t=>e(t)):r.every(t=>e(t)):!0}),[s,e])}exports.useAuthorizedItems=c;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- "use strict";var r=require("@vef-framework/shared"),u=require("react"),n=require("./use-theme-tokens.cjs");function t(){const e=n.useThemeTokens();return u.useMemo(()=>r.defaultColorTypes.reduce((o,s)=>(o.set(s,e[s]),o),new Map),[e])}function a(){const e=n.useThemeTokens();return u.useMemo(()=>r.semanticColorTypes.reduce((o,s)=>(o.set(s,e[`color${r.capitalize(s)}`]),o),new Map),[e])}function c(){const e=t(),o=a();return u.useMemo(()=>new Map([...e,...o]),[e,o])}exports.useColorTokens=c,exports.useDefaultColorTokens=t,exports.useSemanticColorTokens=a;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- "use strict";var t=require("@vef-framework/shared"),f=require("react");function l(m,i){return f.useMemo(()=>m.filter(e=>{const{show:o}=e;return t.isFunction(o)?o(i):o??!0}).map(e=>{const{disabled:o,requireConfirmation:r,confirmationMode:a,confirmationTitle:u,confirmationContent:c,...s}=e,n={...s,disabled:t.isFunction(o)?o(i):o??!1,requireConfirmation:t.isFunction(r)?r(i):r??!1,confirmationMode:t.isFunction(a)?a(i):a??"simple",confirmationTitle:t.isFunction(u)?u(i):u??"提示",confirmationContent:t.isFunction(c)?c(i):c??`确定要${s.label}吗?`};return n.requireConfirmation&&!n.confirmationMode&&(n.confirmationMode="simple"),n.requireConfirmation&&!n.confirmationTitle&&(n.confirmationTitle="提示"),n.requireConfirmation&&!n.confirmationContent&&(n.confirmationContent=`确定要${n.label}吗?`),n}),[m,i])}exports.useComputedActionButtons=l;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- "use strict";var L=require("./use-data-query.cjs"),h=require("./use-fallback-options.cjs"),w=require("./use-normalized-options.cjs"),z=require("./use-remote-filter.cjs");function C({labelKey:s,valueKey:l,descriptionKey:t,childrenKey:o,disabledKey:r,defaultToFirst:n,filterable:e=!1,filterFromRemote:a=!1,keywordKey:u="keyword",valuesKey:p="ids",fallbackOptionsApi:d,fallbackOptionsApiParams:c,resolveFallbackOptions:y,isGrouped:O=!1,selectedOptionValues:b,apiParams:K,...i}){const[k,m]=z.useRemoteFilter(e&&a,K,u),{data:f,isLoading:F}=L.useDataQuery({apiParams:k,...i}),[v,g,P]=w.useNormalizedDataOptions(f??[],{labelKey:s,valueKey:l,descriptionKey:t,childrenKey:o,disabledKey:r,defaultToFirst:n},{isGrouped:O,parsePinyin:e&&!a,selectedOptionValues:b}),{data:q,isLoading:A}=h.useFallbackOptions(g,{fallbackOptionsApi:d??i.api,fallbackOptionsApiParams:c,valuesKey:p,resolveFallbackOptions:y});return{onFilterKeywordChange:m,isLoading:F,normalizedOptions:v,defaultOption:P,fallbackOptions:q,isFallbackOptionsLoading:A}}exports.useComputedOptions=C;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- "use strict";var e=require("react");const t=e.createContext(!1);function r(){return e.useContext(t)}const s=t.Provider;exports.DisabledContextProvider=s,exports.useContextDisabled=r;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- "use strict";var h=require("@vef-framework/core"),n=require("@vef-framework/shared"),m=require("ahooks"),D=require("react");function k({data:e,dataDictionaryKey:r,api:u,apiParams:a,apiEnabled:o,staleTime:i,keepPreviousData:t,placeholderData:c},l,s){return D.useMemo(()=>n.isNullish(e)?n.isNullish(r)?n.isNullish(u)?[l,[],{keepPreviousData:!0,initialData:[]}]:[u,a,{enabled:o??!0,staleTime:i,keepPreviousData:t,placeholderData:c}]:[s,{...a,key:r},{enabled:o??!0,staleTime:i,keepPreviousData:t,placeholderData:c}]:[l,e,{keepPreviousData:!0,initialData:e}],[e,r,u,l,s,a,o,i,t,c])}function y({onFetched:e,...r}){const{useApiQuery:u,stubQueryApi:a,dataDictionaryApi:o}=h.useApiContext(),[i,t,c]=k(r,a,o),l=u(i,t,c);m.useUnmount(()=>{Object.is(i,a)&&a.removeQueries(t)});const{isSuccess:s,data:p,...d}=l,v=D.useMemo(()=>s&&n.isFunction(e)?e(p):p,[s,p,e]);return{...d,isSuccess:s,data:v}}exports.useDataQuery=y;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- "use strict";var s=require("react"),a=require("./use-deep-memo.cjs");function t(r,e){const u=a.useDeepMemo(()=>e,e);return s.useCallback(r,u)}exports.useDeepCallback=t;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- "use strict";var s=require("@vef-framework/shared"),n=require("react");function c(u,e){const r=n.useRef(),t=n.useRef(0);return(r.current===void 0||!i(e,r.current))&&(t.current+=1),r.current=e,n.useMemo(u,[t.current])}function i(u,e){return u.length===e.length&&u.every((r,t)=>s.isDeepEqual(r,e[t]))}exports.useDeepMemo=c;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- "use strict";var c=require("@vef-framework/shared"),s=require("react");function n(t){const e=s.useRef();return u=>{const r=t(u);return c.isDeepEqual(e.current,r)?e.current:e.current=r}}exports.useDeepSelector=n;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- "use strict";var k=require("@vef-framework/core"),v=require("@vef-framework/shared"),b=require("ahooks"),O=require("react"),f=require("./use-shallow-memo.cjs");function A(e,{fallbackOptionsApi:s,fallbackOptionsApiParams:u,valuesKey:l,resolveFallbackOptions:i},o,a){const r=O.useId();return f.useShallowMemo(()=>{if(e.length>0){if(v.isFunction(i))return[a,{key:r,args:[e],fn:i},{keepPreviousData:!0}];if(s){const t={...u,[l??"ids"]:e};return[s,t,{keepPreviousData:!0}]}}return[o,[],{keepPreviousData:!0,initialData:[]}]},[i,s,o,r,e,a,u,l])}function m(e,{fallbackOptionsApi:s,fallbackOptionsApiParams:u,valuesKey:l,resolveFallbackOptions:i}){const{useApiQuery:o,stubQueryApi:a,asyncFnQueryApi:r}=k.useApiContext(),[t,n,c]=A(e,{fallbackOptionsApi:s,fallbackOptionsApiParams:u,valuesKey:l,resolveFallbackOptions:i},a,r),p=o(t,n,c);return b.useUnmount(()=>{Object.is(t,a)&&a.removeQueries(n),Object.is(t,r)&&r.removeQueries(n)}),p}exports.useFallbackOptions=m;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- "use strict";var u=require("react"),d=require("./use-theme-tokens.cjs");function t(){const{paddingXS:i,paddingSM:r,padding:a,paddingMD:n,paddingLG:s}=d.useThemeTokens();return u.useCallback(e=>e==="tiny"?i:e==="small"?r:e==="medium"?a:e==="large"?n:e==="huge"?s:e,[i,r,a,n,s])}exports.useGapSizeNormalizer=t;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- "use strict";var r=require("./use-gap-size-normalizer.cjs");function i(e){return r.useGapSizeNormalizer()(e)}exports.useNormalizedGapSize=i;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- "use strict";var l=require("react");function i(e){return e.type==="item"?{type:"item",key:e.key,label:e.label,disabled:e.disabled,icon:e.icon,extra:e.extra}:e.type==="submenu"?{type:"submenu",key:e.key,label:e.label,disabled:e.disabled,icon:e.icon,children:e.children.map(i)}:e.type==="group"?{type:"group",key:e.key,label:e.label,children:e.children.map(i)}:{type:"divider",key:e.key}}function t(e){return l.useMemo(()=>e.map(i),[e])}exports.normalizeMenuItem=i,exports.useNormalizedMenuItems=t;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- "use strict";var e=require("@vef-framework/shared"),E=require("react");function F(p,{labelKey:s="label",valueKey:l="value",childrenKey:f="children",descriptionKey:y="description",disabledKey:b="disabled",defaultToFirst:v=!1},{isTree:w=!1,isGrouped:g=!1,parsePinyin:S=!1,selectedOptionValues:m=[]}={}){return E.useMemo(()=>{const c=new Set(m),T=!w&&g,q=(i,a=!1)=>{const t=i[s];if(e.isNullish(t))throw s==="label"?new e.VefError(-10001,"The label value of the option is required."):new e.VefError(-10001,`The label value pointed by '${s}' of the option is required.`);const o=i[l];if(e.isNullish(o))throw l==="value"?new e.VefError(-10002,"The value of the option is required."):new e.VefError(-10002,`The value pointed by '${l}' of the option is required.`);const K=i[f],d=i[y],V=i[b]??!1,r={...i,label:t,value:o,children:K,description:d,disabled:V};if(S){const{labelText:u,descriptionText:P}=r;(e.isString(t)||e.isString(u))&&(r.labelPinyin=e.parsePinyinFirstLetter(e.isString(t)?t:u).join("")),(e.isString(d)||e.isString(P))&&(r.descriptionPinyin=e.parsePinyinFirstLetter(e.isString(d)?d:P).join(""))}return(!a||!T)&&c.has(o)&&c.delete(o),e.isArray(r.children)&&(r.children=r.children.map(u=>q(u))),r},n=p.map(i=>q(i,!0)),h=Array.from(c);if(!v)return[n,h];if(T){const i=n.find(a=>e.isArray(a.children)&&a.children.length>0);return[n,h,i?.children?.[0]]}return[n,h,n[0]]},[f,v,y,b,g,w,s,p,S,l])}exports.useNormalizedDataOptions=F;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- "use strict";var t=require("@vef-framework/shared"),l=require("react");function n(r,s){return l.useMemo(()=>{if(r)return s?!1:(e,i)=>(t.isString(i.label)&&i.label.includes(e)||t.isString(i.labelText)&&i.labelText.includes(e)||i.labelPinyin?.includes(e)||i.value.includes(e)||t.isString(i.description)&&i.description.includes(e)||t.isString(i.descriptionText)&&i.descriptionText.includes(e)||i.descriptionPinyin?.includes(e))??!1},[r,s])}exports.useOptionFilter=n;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- "use strict";var o=require("@vef-framework/shared"),u=require("react");function d(e,t,s="keyword"){const[i,c]=u.useState(),a=u.useMemo(()=>{if(!e)return t;const r={...t},n=o.trim(i);return n&&(r[s]=n),r},[e,t,i,s]),m=u.useMemo(()=>{if(e)return o.debounce({delay:500},r=>{c(r)})},[e]);return[a,m]}exports.useRemoteFilter=d;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- "use strict";var r=require("react"),u=require("./use-shallow-memo.cjs");function s(l,e){const a=u.useShallowMemo(()=>e,e);return r.useCallback(l,a)}exports.useShallowCallback=s;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- "use strict";var s=require("@vef-framework/shared"),n=require("react");function c(u,e){const r=n.useRef(),t=n.useRef(0);return(r.current===void 0||!o(e,r.current))&&(t.current+=1),r.current=e,n.useMemo(u,[t.current])}function o(u,e){return u.length===e.length&&u.every((r,t)=>s.isShallowEqual(r,e[t]))}exports.useShallowMemo=c;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- "use strict";var c=require("@vef-framework/shared"),s=require("react");function l(t){const r=s.useRef();return u=>{const e=t(u);return c.isShallowEqual(r.current,e)?r.current:r.current=e}}exports.useShallowSelector=l;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- "use strict";var t=require("@vef-framework/shared"),u=require("react");function n(r){const e=u.useRef();return t.isNullish(e.current)&&(e.current=r()),e.current}exports.useSingleton=n;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- "use strict";var n=require("antd");const{useToken:s}=n.theme;function t(){const{token:e}=s();return e}exports.useThemeTokens=t;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- "use strict";var l=require("@vef-framework/shared"),n=require("react");function f({subscribe:t,getState:a},{selector:r=e=>e,equalityFn:s=l.isShallowEqual,listener:u}={}){const e=n.useRef();return e.current||(e.current=r(a())),n.useEffect(()=>t(r,(i,c)=>{e.current=i,u?.(i,c)},{fireImmediately:!1,equalityFn:s}),[s,u,r,t]),e}exports.useTransientStore=f;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- "use strict";var i=require("ahooks");function t(){const[e,n]=i.useRafState(()=>({width:window.innerWidth,height:window.innerHeight}));return i.useEventListener("resize",()=>{n({width:window.innerWidth,height:window.innerHeight})}),e}exports.useWindowSize=t;
package/esm/index.js DELETED
@@ -1,2 +0,0 @@
1
- "use strict";
2
- import"./lib.js";import{useAuthorizedItems as t}from"./use-authorized-items.js";import{useColorTokens as u,useDefaultColorTokens as p,useSemanticColorTokens as m}from"./use-color-tokens.js";import{useComputedActionButtons as f}from"./use-computed-action-buttons.js";import{useComputedOptions as i}from"./use-computed-options.js";import{DisabledContextProvider as x,useContextDisabled as c}from"./use-context-disabled.js";import{useDataQuery as S}from"./use-data-query.js";import{useDeepCallback as D}from"./use-deep-callback.js";import{useDeepMemo as k}from"./use-deep-memo.js";import{useDeepSelector as y}from"./use-deep-selector.js";import{useFallbackOptions as T}from"./use-fallback-options.js";import{useGapSizeNormalizer as h}from"./use-gap-size-normalizer.js";import{useNormalizedGapSize as U}from"./use-normalized-gap-size.js";import{normalizeMenuItem as N,useNormalizedMenuItems as O}from"./use-normalized-menu-items.js";import{useNormalizedDataOptions as F}from"./use-normalized-options.js";import{useOptionFilter as v}from"./use-option-filter.js";import{useRemoteFilter as P}from"./use-remote-filter.js";import{useShallowCallback as B}from"./use-shallow-callback.js";import{useShallowMemo as Q}from"./use-shallow-memo.js";import{useShallowSelector as W}from"./use-shallow-selector.js";import{useSingleton as q}from"./use-singleton.js";import{useThemeTokens as J}from"./use-theme-tokens.js";import{useTransientStore as X}from"./use-transient-store.js";import{useWindowSize as Z}from"./use-window-size.js";import{useClickAway as $,useMeasure as ee}from"@uidotdev/usehooks";import{useDeepCompareEffect as re,useDeepCompareLayoutEffect as te,useSize as se,useEventListener as ue,useKeyPress as pe,useMount as me,useUnmount as ae,useUpdateEffect as fe,useUpdateLayoutEffect as le,useUpdate as ie}from"ahooks";export{x as DisabledContextProvider,N as normalizeMenuItem,t as useAuthorizedItems,$ as useClickAway,u as useColorTokens,f as useComputedActionButtons,i as useComputedOptions,c as useContextDisabled,S as useDataQuery,D as useDeepCallback,re as useDeepEffect,te as useDeepLayoutEffect,k as useDeepMemo,y as useDeepSelector,p as useDefaultColorTokens,se as useElementSize,ue as useEventListener,T as useFallbackOptions,h as useGapSizeNormalizer,pe as useKeyPress,ee as useMeasure,me as useMount,F as useNormalizedDataOptions,U as useNormalizedGapSize,O as useNormalizedMenuItems,v as useOptionFilter,P as useRemoteFilter,m as useSemanticColorTokens,B as useShallowCallback,Q as useShallowMemo,W as useShallowSelector,q as useSingleton,J as useThemeTokens,X as useTransientStore,ae as useUnmount,fe as useUpdateEffect,le as useUpdateLayoutEffect,ie as useUpdater,Z as useWindowSize};
package/esm/lib.js DELETED
@@ -1,2 +0,0 @@
1
- "use strict";
2
- import{useClickAway as u,useMeasure as t}from"@uidotdev/usehooks";import{useDeepCompareEffect as f,useDeepCompareLayoutEffect as p,useSize as o,useEventListener as r,useKeyPress as c,useMount as E,useUnmount as m,useUpdateEffect as n,useUpdateLayoutEffect as i,useUpdate as y}from"ahooks";export{u as useClickAway,f as useDeepEffect,p as useDeepLayoutEffect,o as useElementSize,r as useEventListener,c as useKeyPress,t as useMeasure,E as useMount,m as useUnmount,n as useUpdateEffect,i as useUpdateLayoutEffect,y as useUpdater};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- import{useAuthContext as i}from"@vef-framework/core";import{useMemo as n}from"react";function m(o){const{checkPermission:e}=i();return n(()=>o?.filter(s=>{const{permissions:r}=s;return r?(s.checkMode??"any")==="any"?r.some(t=>e(t)):r.every(t=>e(t)):!0}),[o,e])}export{m as useAuthorizedItems};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- import{defaultColorTypes as c,semanticColorTypes as i,capitalize as m}from"@vef-framework/shared";import{useMemo as n}from"react";import{useThemeTokens as r}from"./use-theme-tokens.js";function s(){const e=r();return n(()=>c.reduce((o,t)=>(o.set(t,e[t]),o),new Map),[e])}function u(){const e=r();return n(()=>i.reduce((o,t)=>(o.set(t,e[`color${m(t)}`]),o),new Map),[e])}function p(){const e=s(),o=u();return n(()=>new Map([...e,...o]),[e,o])}export{p as useColorTokens,s as useDefaultColorTokens,u as useSemanticColorTokens};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- import{isFunction as t}from"@vef-framework/shared";import{useMemo as l}from"react";function s(c,n){return l(()=>c.filter(r=>{const{show:i}=r;return t(i)?i(n):i??!0}).map(r=>{const{disabled:i,requireConfirmation:e,confirmationMode:m,confirmationTitle:a,confirmationContent:f,...u}=r,o={...u,disabled:t(i)?i(n):i??!1,requireConfirmation:t(e)?e(n):e??!1,confirmationMode:t(m)?m(n):m??"simple",confirmationTitle:t(a)?a(n):a??"提示",confirmationContent:t(f)?f(n):f??`确定要${u.label}吗?`};return o.requireConfirmation&&!o.confirmationMode&&(o.confirmationMode="simple"),o.requireConfirmation&&!o.confirmationTitle&&(o.confirmationTitle="提示"),o.requireConfirmation&&!o.confirmationContent&&(o.confirmationContent=`确定要${o.label}吗?`),o}),[c,n])}export{s as useComputedActionButtons};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- import{useDataQuery as h}from"./use-data-query.js";import{useFallbackOptions as w}from"./use-fallback-options.js";import{useNormalizedDataOptions as T}from"./use-normalized-options.js";import{useRemoteFilter as V}from"./use-remote-filter.js";function x({labelKey:o,valueKey:l,descriptionKey:s,childrenKey:t,disabledKey:r,defaultToFirst:p,filterable:e=!1,filterFromRemote:a=!1,keywordKey:n="keyword",valuesKey:d="ids",fallbackOptionsApi:u,fallbackOptionsApiParams:c,resolveFallbackOptions:m,isGrouped:y=!1,selectedOptionValues:f,apiParams:b,...i}){const[O,K]=V(e&&a,b,n),{data:k,isLoading:F}=h({apiParams:O,...i}),[g,v,P]=T(k??[],{labelKey:o,valueKey:l,descriptionKey:s,childrenKey:t,disabledKey:r,defaultToFirst:p},{isGrouped:y,parsePinyin:e&&!a,selectedOptionValues:f}),{data:A,isLoading:L}=w(v,{fallbackOptionsApi:u??i.api,fallbackOptionsApiParams:c,valuesKey:d,resolveFallbackOptions:m});return{onFilterKeywordChange:K,isLoading:F,normalizedOptions:g,defaultOption:P,fallbackOptions:A,isFallbackOptionsLoading:L}}export{x as useComputedOptions};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- import{createContext as e,useContext as o}from"react";const t=e(!1);function r(){return o(t)}const n=t.Provider;export{n as DisabledContextProvider,r as useContextDisabled};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- import{useApiContext as k}from"@vef-framework/core";import{isNullish as l,isFunction as v}from"@vef-framework/shared";import{useUnmount as y}from"ahooks";import{useMemo as m}from"react";function P({data:e,dataDictionaryKey:s,api:o,apiParams:a,apiEnabled:u,staleTime:t,keepPreviousData:i,placeholderData:p},n,r){return m(()=>l(e)?l(s)?l(o)?[n,[],{keepPreviousData:!0,initialData:[]}]:[o,a,{enabled:u??!0,staleTime:t,keepPreviousData:i,placeholderData:p}]:[r,{...a,key:s},{enabled:u??!0,staleTime:t,keepPreviousData:i,placeholderData:p}]:[n,e,{keepPreviousData:!0,initialData:e}],[e,s,o,n,r,a,u,t,i,p])}function b({onFetched:e,...s}){const{useApiQuery:o,stubQueryApi:a,dataDictionaryApi:u}=k(),[t,i,p]=P(s,a,u),n=o(t,i,p);y(()=>{Object.is(t,a)&&a.removeQueries(i)});const{isSuccess:r,data:c,...D}=n,d=m(()=>r&&v(e)?e(c):c,[r,c,e]);return{...D,isSuccess:r,data:d}}export{b as useDataQuery};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- import{useCallback as r}from"react";import{useDeepMemo as s}from"./use-deep-memo.js";function u(t,e){const o=s(()=>e,e);return r(t,o)}export{u as useDeepCallback};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- import{isDeepEqual as o}from"@vef-framework/shared";import{useRef as n,useMemo as c}from"react";function s(t,r){const e=n(),u=n(0);return(e.current===void 0||!i(r,e.current))&&(u.current+=1),e.current=r,c(t,[u.current])}function i(t,r){return t.length===r.length&&t.every((e,u)=>o(e,r[u]))}export{s as useDeepMemo};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- import{isDeepEqual as n}from"@vef-framework/shared";import{useRef as o}from"react";function c(t){const r=o();return u=>{const e=t(u);return n(r.current,e)?r.current:r.current=e}}export{c as useDeepSelector};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- import{useApiContext as m}from"@vef-framework/core";import{isFunction as f}from"@vef-framework/shared";import{useUnmount as b}from"ahooks";import{useId as k}from"react";import{useShallowMemo as O}from"./use-shallow-memo.js";function v(e,{fallbackOptionsApi:r,fallbackOptionsApiParams:o,valuesKey:l,resolveFallbackOptions:s},n,a){const i=k();return O(()=>{if(e.length>0){if(f(s))return[a,{key:i,args:[e],fn:s},{keepPreviousData:!0}];if(r){const t={...o,[l??"ids"]:e};return[r,t,{keepPreviousData:!0}]}}return[n,[],{keepPreviousData:!0,initialData:[]}]},[s,r,n,i,e,a,o,l])}function A(e,{fallbackOptionsApi:r,fallbackOptionsApiParams:o,valuesKey:l,resolveFallbackOptions:s}){const{useApiQuery:n,stubQueryApi:a,asyncFnQueryApi:i}=m(),[t,p,u]=v(e,{fallbackOptionsApi:r,fallbackOptionsApiParams:o,valuesKey:l,resolveFallbackOptions:s},a,i),c=n(t,p,u);return b(()=>{Object.is(t,a)&&a.removeQueries(p),Object.is(t,i)&&i.removeQueries(p)}),c}export{A as useFallbackOptions};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- import{useCallback as t}from"react";import{useThemeTokens as e}from"./use-theme-tokens.js";function m(){const{paddingXS:n,paddingSM:r,padding:a,paddingMD:d,paddingLG:o}=e();return t(i=>i==="tiny"?n:i==="small"?r:i==="medium"?a:i==="large"?d:i==="huge"?o:i,[n,r,a,d,o])}export{m as useGapSizeNormalizer};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- import{useGapSizeNormalizer as r}from"./use-gap-size-normalizer.js";function i(e){return r()(e)}export{i as useNormalizedGapSize};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- import{useMemo as l}from"react";function i(e){return e.type==="item"?{type:"item",key:e.key,label:e.label,disabled:e.disabled,icon:e.icon,extra:e.extra}:e.type==="submenu"?{type:"submenu",key:e.key,label:e.label,disabled:e.disabled,icon:e.icon,children:e.children.map(i)}:e.type==="group"?{type:"group",key:e.key,label:e.label,children:e.children.map(i)}:{type:"divider",key:e.key}}function t(e){return l(()=>e.map(i),[e])}export{i as normalizeMenuItem,t as useNormalizedMenuItems};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- import{isNullish as F,VefError as c,isString as n,parsePinyinFirstLetter as O,isArray as g}from"@vef-framework/shared";import{useMemo as V}from"react";function $(f,{labelKey:l="label",valueKey:o="value",childrenKey:y="children",descriptionKey:b="description",disabledKey:m="disabled",defaultToFirst:v=!1},{isTree:w=!1,isGrouped:T=!1,parsePinyin:K=!1,selectedOptionValues:j=[]}={}){return V(()=>{const p=new Set(j),P=!w&&T,q=(e,s=!1)=>{const t=e[l];if(F(t))throw l==="label"?new c(-10001,"The label value of the option is required."):new c(-10001,`The label value pointed by '${l}' of the option is required.`);const d=e[o];if(F(d))throw o==="value"?new c(-10002,"The value of the option is required."):new c(-10002,`The value pointed by '${o}' of the option is required.`);const A=e[y],a=e[b],S=e[m]??!1,i={...e,label:t,value:d,children:A,description:a,disabled:S};if(K){const{labelText:u,descriptionText:x}=i;(n(t)||n(u))&&(i.labelPinyin=O(n(t)?t:u).join("")),(n(a)||n(x))&&(i.descriptionPinyin=O(n(a)?a:x).join(""))}return(!s||!P)&&p.has(d)&&p.delete(d),g(i.children)&&(i.children=i.children.map(u=>q(u))),i},r=f.map(e=>q(e,!0)),h=Array.from(p);if(!v)return[r,h];if(P){const e=r.find(s=>g(s.children)&&s.children.length>0);return[r,h,e?.children?.[0]]}return[r,h,r[0]]},[y,v,b,m,T,w,l,f,K,o])}export{$ as useNormalizedDataOptions};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- import{isString as t}from"@vef-framework/shared";import{useMemo as r}from"react";function s(l,n){return r(()=>{if(l)return n?!1:(e,i)=>(t(i.label)&&i.label.includes(e)||t(i.labelText)&&i.labelText.includes(e)||i.labelPinyin?.includes(e)||i.value.includes(e)||t(i.description)&&i.description.includes(e)||t(i.descriptionText)&&i.descriptionText.includes(e)||i.descriptionPinyin?.includes(e))??!1},[l,n])}export{s as useOptionFilter};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- import{trim as f,debounce as d}from"@vef-framework/shared";import{useState as p,useMemo as i}from"react";function y(r,t,o="keyword"){const[u,m]=p(),s=i(()=>{if(!r)return t;const e={...t},n=f(u);return n&&(e[o]=n),e},[r,t,u,o]),c=i(()=>{if(r)return d({delay:500},e=>{m(e)})},[r]);return[s,c]}export{y as useRemoteFilter};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- import{useCallback as r}from"react";import{useShallowMemo as a}from"./use-shallow-memo.js";function e(t,o){const l=a(()=>o,o);return r(t,l)}export{e as useShallowCallback};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- import{isShallowEqual as o}from"@vef-framework/shared";import{useRef as n,useMemo as c}from"react";function s(e,r){const t=n(),u=n(0);return(t.current===void 0||!i(r,t.current))&&(u.current+=1),t.current=r,c(e,[u.current])}function i(e,r){return e.length===r.length&&e.every((t,u)=>o(t,r[u]))}export{s as useShallowMemo};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- import{isShallowEqual as u}from"@vef-framework/shared";import{useRef as n}from"react";function c(e){const r=n();return o=>{const t=e(o);return u(r.current,t)?r.current:r.current=t}}export{c as useShallowSelector};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- import{isNullish as e}from"@vef-framework/shared";import{useRef as n}from"react";function u(t){const r=n();return e(r.current)&&(r.current=t()),r.current}export{u as useSingleton};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- import{theme as t}from"antd";const{useToken:n}=t;function o(){const{token:e}=n();return e}export{o as useThemeTokens};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- import{isShallowEqual as o}from"@vef-framework/shared";import{useRef as l,useEffect as f}from"react";function a({subscribe:r,getState:n},{selector:t=e=>e,equalityFn:u=o,listener:i}={}){const e=l();return e.current||(e.current=t(n())),f(()=>r(t,(s,c)=>{e.current=s,i?.(s,c)},{fireImmediately:!1,equalityFn:u}),[u,i,t,r]),e}export{a as useTransientStore};
@@ -1,2 +0,0 @@
1
- "use strict";
2
- import{useRafState as n,useEventListener as t}from"ahooks";function r(){const[i,e]=n(()=>({width:window.innerWidth,height:window.innerHeight}));return t("resize",()=>{e({width:window.innerWidth,height:window.innerHeight})}),i}export{r as useWindowSize};
package/types/index.d.ts DELETED
@@ -1,24 +0,0 @@
1
- export * from "./lib";
2
- export * from "./use-authorized-items";
3
- export * from "./use-color-tokens";
4
- export * from "./use-computed-action-buttons";
5
- export * from "./use-computed-options";
6
- export * from "./use-context-disabled";
7
- export * from "./use-data-query";
8
- export * from "./use-deep-callback";
9
- export * from "./use-deep-memo";
10
- export * from "./use-deep-selector";
11
- export * from "./use-fallback-options";
12
- export * from "./use-gap-size-normalizer";
13
- export * from "./use-normalized-gap-size";
14
- export * from "./use-normalized-menu-items";
15
- export * from "./use-normalized-options";
16
- export * from "./use-option-filter";
17
- export * from "./use-remote-filter";
18
- export * from "./use-shallow-callback";
19
- export * from "./use-shallow-memo";
20
- export * from "./use-shallow-selector";
21
- export * from "./use-singleton";
22
- export * from "./use-theme-tokens";
23
- export * from "./use-transient-store";
24
- export * from "./use-window-size";
package/types/lib.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import { useClickAway, useMeasure } from "@uidotdev/usehooks";
2
- import { useDeepCompareEffect as useDeepEffect, useDeepCompareLayoutEffect as useDeepLayoutEffect, useSize as useElementSize, useEventListener, useKeyPress, useMount, useUnmount, useUpdateEffect, useUpdateLayoutEffect, useUpdate as useUpdater } from "ahooks";
3
- export { useClickAway, useDeepEffect, useDeepLayoutEffect, useElementSize, useEventListener, useKeyPress, useMeasure, useMount, useUnmount, useUpdateEffect, useUpdateLayoutEffect, useUpdater, };
@@ -1,19 +0,0 @@
1
- import type { ColorType, LiteralUnion } from "@vef-framework/shared";
2
- /**
3
- * Get default color tokens
4
- *
5
- * @returns Default color tokens
6
- */
7
- export declare function useDefaultColorTokens(): Map<LiteralUnion<"blue" | "purple" | "cyan" | "green" | "magenta" | "pink" | "red" | "orange" | "yellow" | "volcano" | "geekblue" | "gold" | "lime", string>, string>;
8
- /**
9
- * Get semantic color tokens
10
- *
11
- * @returns Semantic color tokens
12
- */
13
- export declare function useSemanticColorTokens(): Map<"primary" | "info" | "success" | "warning" | "error", string>;
14
- /**
15
- * Get color tokens
16
- *
17
- * @returns Color tokens
18
- */
19
- export declare function useColorTokens(): Map<LiteralUnion<ColorType, string>, string>;
@@ -1,35 +0,0 @@
1
- import type { ActionButton, ConfirmationMode, Except } from "@vef-framework/shared";
2
- import type { ReactNode } from "react";
3
- /**
4
- * The computed action button.
5
- */
6
- export interface ComputedActionButton<T> extends Except<ActionButton<T>, "show" | "disabled" | "requireConfirmation" | "confirmationMode" | "confirmationTitle" | "confirmationContent" | "permissions" | "checkMode"> {
7
- /**
8
- * Whether the action button is disabled.
9
- */
10
- disabled: boolean;
11
- /**
12
- * Whether the action button requires confirmation.
13
- */
14
- requireConfirmation: boolean;
15
- /**
16
- * The confirmation mode of the action button.
17
- */
18
- confirmationMode: ConfirmationMode;
19
- /**
20
- * The confirmation title of the action button.
21
- */
22
- confirmationTitle: ReactNode;
23
- /**
24
- * The confirmation content of the action button.
25
- */
26
- confirmationContent: ReactNode;
27
- }
28
- /**
29
- * The hook to compute the action buttons.
30
- *
31
- * @param buttons - The action buttons.
32
- * @param context - The context.
33
- * @returns The computed action buttons.
34
- */
35
- export declare function useComputedActionButtons<T>(buttons: Array<ActionButton<T>>, context: T): ComputedActionButton<T>[];
@@ -1,54 +0,0 @@
1
- import type { DataOption, DataOptionConfig, EmptyObject, IdValue, Mapper, MaybePromise, ObjectType, PureDataOption, QueryApi, QueryConfig, QueryParamsWithKeyword, QueryParamsWithValues, StringKey } from "@vef-framework/shared";
2
- /**
3
- * The config of the useComputedOptions hook.
4
- */
5
- export interface UseComputedOptionsConfig<T extends DataOption<T> = PureDataOption, P extends ObjectType = EmptyObject, R = T[], KK extends string = "keyword", VK extends string = "ids", FP extends ObjectType = EmptyObject> extends QueryConfig<T[], QueryParamsWithKeyword<P, KK>, R>, DataOptionConfig<StringKey<T>> {
6
- /**
7
- * Whether to allow filter.
8
- */
9
- filterable?: boolean;
10
- /**
11
- * Whether to filter from remote.
12
- */
13
- filterFromRemote?: boolean;
14
- /**
15
- * The parameter name of keyword.
16
- * Only works when `filterFromRemote` is true.
17
- */
18
- keywordKey?: KK;
19
- /**
20
- * The parameter name of values.
21
- */
22
- valuesKey?: VK;
23
- /**
24
- * The API of fallback options.
25
- */
26
- fallbackOptionsApi?: Readonly<QueryApi<QueryParamsWithValues<FP>, T[]>>;
27
- /**
28
- * The API params of fallback options.
29
- */
30
- fallbackOptionsApiParams?: FP;
31
- /**
32
- * The function to resolve fallback options.
33
- */
34
- resolveFallbackOptions?: Mapper<IdValue[], MaybePromise<T[]>>;
35
- /**
36
- * Whether the options are grouped.
37
- */
38
- isGrouped?: boolean;
39
- /**
40
- * The selected option values.
41
- */
42
- selectedOptionValues?: IdValue[];
43
- }
44
- /**
45
- * The hook to compute the options.
46
- */
47
- export declare function useComputedOptions<T extends DataOption<T> = PureDataOption, P extends ObjectType = EmptyObject, R = T[], KK extends string = "keyword", VK extends string = "ids", FP extends ObjectType = EmptyObject>({ labelKey, valueKey, descriptionKey, childrenKey, disabledKey, defaultToFirst, filterable, filterFromRemote, keywordKey, valuesKey, fallbackOptionsApi, fallbackOptionsApiParams, resolveFallbackOptions, isGrouped, selectedOptionValues, apiParams, ...queryConfig }: UseComputedOptionsConfig<T, P, R, KK, VK, FP>): {
48
- onFilterKeywordChange: import("radashi").DebounceFunction<[keyword: string]> | undefined;
49
- isLoading: boolean;
50
- normalizedOptions: import("@vef-framework/shared").NormalizedDataOption<T>[] | import("@vef-framework/shared").NormalizedDataOption<T>[];
51
- defaultOption: import("@vef-framework/shared").NormalizedDataOption<T> | undefined;
52
- fallbackOptions: T[] | undefined;
53
- isFallbackOptionsLoading: boolean;
54
- };
@@ -1,6 +0,0 @@
1
- /**
2
- * The hook to get the disabled context.
3
- */
4
- export declare function useContextDisabled(): boolean;
5
- declare const DisabledContextProvider: import("react").Provider<boolean>;
6
- export { DisabledContextProvider, };
@@ -1,9 +0,0 @@
1
- import type { AnyValue, EmptyObject, ObjectType, QueryConfig, QueryResult } from "@vef-framework/shared";
2
- /**
3
- * A hook that fetches data from the API, data dictionary or a stub created from data.
4
- *
5
- * @param config - The query config
6
- * @param config.onFetched - The callback function that is called when the data is fetched
7
- * @returns The query result
8
- */
9
- export declare function useDataQuery<D = AnyValue, P extends ObjectType = EmptyObject, R = D>({ onFetched, ...config }: QueryConfig<D, P, R>): QueryResult<D>;
@@ -1,10 +0,0 @@
1
- import type { AnyFunction } from "@vef-framework/shared";
2
- import type { DependencyList } from "react";
3
- /**
4
- * A hook that memoizes a callback based on deep comparison of its dependencies.
5
- *
6
- * @param callback The callback to be memoized.
7
- * @param dependencies The dependencies array.
8
- * @returns The memoized callback.
9
- */
10
- export declare function useDeepCallback<T extends AnyFunction>(callback: T, dependencies: DependencyList): T;
@@ -1,10 +0,0 @@
1
- import type { Provider } from "@vef-framework/shared";
2
- import type { DependencyList } from "react";
3
- /**
4
- * A hook that memoizes a value based on deep comparison of its dependencies.
5
- *
6
- * @param factory The factory function that returns the value to be memoized.
7
- * @param dependencies The dependencies array.
8
- * @returns The memoized value.
9
- */
10
- export declare function useDeepMemo<T>(factory: Provider<T>, dependencies: DependencyList): T;
@@ -1,8 +0,0 @@
1
- import type { Mapper } from "@vef-framework/shared";
2
- /**
3
- * A hook that memoizes a selector based on deep comparison of the state.
4
- *
5
- * @param selector - The selector to be memoized.
6
- * @returns The memoized selector.
7
- */
8
- export declare function useDeepSelector<S, T>(selector: Mapper<S, T>): Mapper<S, T>;