@luoluoyu/fluentui-plus 0.1.7 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -8
- package/dist/components/InputTag/Input.d.ts +5 -0
- package/dist/components/InputTag/Input.d.ts.map +1 -0
- package/dist/components/InputTag/InputTag.d.ts +6 -0
- package/dist/components/InputTag/InputTag.d.ts.map +1 -0
- package/dist/components/InputTag/TagList.d.ts +5 -0
- package/dist/components/InputTag/TagList.d.ts.map +1 -0
- package/dist/components/InputTag/hooks/index.d.ts +4 -0
- package/dist/components/InputTag/hooks/index.d.ts.map +1 -0
- package/dist/components/InputTag/hooks/useInputHandlers.d.ts +21 -0
- package/dist/components/InputTag/hooks/useInputHandlers.d.ts.map +1 -0
- package/dist/components/InputTag/hooks/useInputTag.d.ts +16 -0
- package/dist/components/InputTag/hooks/useInputTag.d.ts.map +1 -0
- package/dist/components/InputTag/index.d.ts +3 -0
- package/dist/components/InputTag/index.d.ts.map +1 -0
- package/dist/components/InputTag/types.d.ts +53 -0
- package/dist/components/InputTag/types.d.ts.map +1 -0
- package/dist/components/Nav/Nav.d.ts +6 -0
- package/dist/components/Nav/Nav.d.ts.map +1 -0
- package/dist/components/Nav/NavItem.d.ts +5 -0
- package/dist/components/Nav/NavItem.d.ts.map +1 -0
- package/dist/components/Nav/NavSubmenu.d.ts +9 -0
- package/dist/components/Nav/NavSubmenu.d.ts.map +1 -0
- package/dist/components/Nav/hooks/index.d.ts +3 -0
- package/dist/components/Nav/hooks/index.d.ts.map +1 -0
- package/dist/components/Nav/hooks/useNavigation.d.ts +25 -0
- package/dist/components/Nav/hooks/useNavigation.d.ts.map +1 -0
- package/dist/components/Nav/index.d.ts +3 -0
- package/dist/components/Nav/index.d.ts.map +1 -0
- package/dist/components/Nav/types.d.ts +43 -0
- package/dist/components/Nav/types.d.ts.map +1 -0
- package/dist/components/Select/Listbox.d.ts +5 -0
- package/dist/components/Select/Listbox.d.ts.map +1 -0
- package/dist/components/Select/MultipleSelector.d.ts +5 -0
- package/dist/components/Select/MultipleSelector.d.ts.map +1 -0
- package/dist/components/Select/OptionItem.d.ts +5 -0
- package/dist/components/Select/OptionItem.d.ts.map +1 -0
- package/dist/components/Select/SearchInput.d.ts +5 -0
- package/dist/components/Select/SearchInput.d.ts.map +1 -0
- package/dist/components/Select/Select.d.ts +6 -0
- package/dist/components/Select/Select.d.ts.map +1 -0
- package/dist/components/Select/Selector.d.ts +5 -0
- package/dist/components/Select/Selector.d.ts.map +1 -0
- package/dist/components/Select/TextDisplay.d.ts +5 -0
- package/dist/components/Select/TextDisplay.d.ts.map +1 -0
- package/dist/components/Select/hooks/index.d.ts +8 -0
- package/dist/components/Select/hooks/index.d.ts.map +1 -0
- package/dist/components/Select/hooks/useClickOutside.d.ts +12 -0
- package/dist/components/Select/hooks/useClickOutside.d.ts.map +1 -0
- package/dist/components/Select/hooks/useFloatingPosition.d.ts +15 -0
- package/dist/components/Select/hooks/useFloatingPosition.d.ts.map +1 -0
- package/dist/components/Select/hooks/useOptionSelection.d.ts +27 -0
- package/dist/components/Select/hooks/useOptionSelection.d.ts.map +1 -0
- package/dist/components/Select/hooks/useSelect.d.ts +47 -0
- package/dist/components/Select/hooks/useSelect.d.ts.map +1 -0
- package/dist/components/Select/hooks/useSelectSearch.d.ts +25 -0
- package/dist/components/Select/hooks/useSelectSearch.d.ts.map +1 -0
- package/dist/components/Select/hooks/useSelectState.d.ts +18 -0
- package/dist/components/Select/hooks/useSelectState.d.ts.map +1 -0
- package/dist/components/Select/index.d.ts +3 -0
- package/dist/components/Select/index.d.ts.map +1 -0
- package/dist/components/Select/types.d.ts +96 -0
- package/dist/components/Select/types.d.ts.map +1 -0
- package/dist/components/Tag/CheckableTag.d.ts +2 -5
- package/dist/components/Tag/CheckableTag.d.ts.map +1 -1
- package/dist/components/Tag/Tag.d.ts +3 -11
- package/dist/components/Tag/Tag.d.ts.map +1 -1
- package/dist/components/Tag/types.d.ts +15 -0
- package/dist/components/Tag/types.d.ts.map +1 -0
- package/dist/components/index.d.ts +6 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/hooks/index.d.ts +4 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/useInputValue.d.ts +27 -0
- package/dist/hooks/useInputValue.d.ts.map +1 -0
- package/dist/hooks/useTagManager.d.ts +27 -0
- package/dist/hooks/useTagManager.d.ts.map +1 -0
- package/dist/index.esm.js +6635 -743
- package/dist/index.esm.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +16 -3
package/README.md
CHANGED
|
@@ -31,14 +31,23 @@ yarn add @luoluoyu/fluentui-plus @fluentui/react-components
|
|
|
31
31
|
|
|
32
32
|
```jsx
|
|
33
33
|
import React from 'react';
|
|
34
|
-
import {
|
|
34
|
+
import { Tag, InputTag, Nav } from '@luoluoyu/fluentui-plus';
|
|
35
35
|
// 样式会自动导入,无需手动引入
|
|
36
36
|
|
|
37
37
|
function App() {
|
|
38
|
+
const navItems = [
|
|
39
|
+
{ key: 'home', label: '首页', icon: '🏠', title: '首页' },
|
|
40
|
+
{ key: 'components', label: '组件', icon: '📦', title: '组件' },
|
|
41
|
+
];
|
|
42
|
+
|
|
38
43
|
return (
|
|
39
44
|
<div>
|
|
40
|
-
<
|
|
41
|
-
<Tag
|
|
45
|
+
<Tag color='#1890ff'>蓝色标签</Tag>
|
|
46
|
+
<Tag.CheckableTag checked={true} onChange={checked => console.log(checked)}>
|
|
47
|
+
可选择标签
|
|
48
|
+
</Tag.CheckableTag>
|
|
49
|
+
<InputTag defaultValue={['React', 'TypeScript']} placeholder='输入标签...' maxTags={10} allowDuplicates={false} />
|
|
50
|
+
<Nav items={navItems} defaultSelectedKeys={['home']} onSelect={info => console.log('选择了:', info.key)} />
|
|
42
51
|
</div>
|
|
43
52
|
);
|
|
44
53
|
}
|
|
@@ -50,7 +59,7 @@ function App() {
|
|
|
50
59
|
|
|
51
60
|
```less
|
|
52
61
|
// your-theme.less
|
|
53
|
-
@import '
|
|
62
|
+
@import '~@luoluoyu/fluentui-plus/dist/styles/variables.less';
|
|
54
63
|
|
|
55
64
|
// 覆盖品牌色
|
|
56
65
|
@brand-primary: #your-brand-color;
|
|
@@ -62,20 +71,21 @@ function App() {
|
|
|
62
71
|
你可以直接从主包按需引入组件(推荐方式,支持 tree-shaking):
|
|
63
72
|
|
|
64
73
|
```jsx
|
|
65
|
-
import {
|
|
74
|
+
import { Tag, InputTag, Nav } from '@luoluoyu/fluentui-plus';
|
|
66
75
|
```
|
|
67
76
|
|
|
68
77
|
如果需要兼容某些工具链或自定义打包方式,也可以使用子路径导入:
|
|
69
78
|
|
|
70
79
|
```jsx
|
|
71
|
-
import
|
|
72
|
-
import
|
|
80
|
+
import Tag from '@luoluoyu/fluentui-plus/lib/Tag';
|
|
81
|
+
import InputTag from '@luoluoyu/fluentui-plus/lib/InputTag';
|
|
73
82
|
```
|
|
74
83
|
|
|
75
84
|
## 👥 开发指南
|
|
76
85
|
|
|
77
86
|
如果你是团队成员或想要为项目贡献代码,请参考以下文档:
|
|
78
87
|
|
|
88
|
+
- **[API 参考文档](./docs/API_REFERENCE.md)** - 详细的组件 API 文档和使用示例
|
|
79
89
|
- **[开发规范与工作流指南](./docs/DEVELOPMENT_GUIDE.md)** - 详细的开发规范、提交规范和工作流说明
|
|
80
90
|
- **[快速参考](./docs/QUICK_REFERENCE.md)** - 常用命令和规范的快速参考卡片
|
|
81
91
|
- **[贡献指南](./docs/CONTRIBUTING.md)** - 如何参与项目贡献
|
|
@@ -109,7 +119,7 @@ git commit -m "fix(Button): resolve click event issue"
|
|
|
109
119
|
|
|
110
120
|
- [📖 文档地址](https://your-docs-site.com)
|
|
111
121
|
- [🐛 问题反馈](https://github.com/HuiruDong/fluentui-plus/issues)
|
|
112
|
-
- [📦 NPM 包](https://www.npmjs.com/package/fluentui-plus)
|
|
122
|
+
- [📦 NPM 包](https://www.npmjs.com/package/@luoluoyu/fluentui-plus)
|
|
113
123
|
|
|
114
124
|
## 🤝 参与贡献
|
|
115
125
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../src/components/InputTag/Input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAI1C,QAAA,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CA8B/B,CAAC;AAEF,eAAe,KAAK,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputTag.d.ts","sourceRoot":"","sources":["../../../src/components/InputTag/InputTag.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAK9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,cAAc,CAAC;AAItB,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAkHrC,CAAC;AAEF,eAAe,QAAQ,CAAC;AACxB,YAAY,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TagList.d.ts","sourceRoot":"","sources":["../../../src/components/InputTag/TagList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAE3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI5C,QAAA,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAyCnC,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/InputTag/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAEL,WAAW,EAGX,gBAAgB,GACjB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export interface UseInputHandlersProps {
|
|
3
|
+
onInputChange?: (value: string) => void;
|
|
4
|
+
addTag: (tag: string) => boolean;
|
|
5
|
+
removeTag: (index: number) => boolean;
|
|
6
|
+
addMultipleTags: (tags: string[]) => number;
|
|
7
|
+
getCurrentTags: () => string[];
|
|
8
|
+
isDeleting: boolean;
|
|
9
|
+
delimiter?: string | RegExp;
|
|
10
|
+
}
|
|
11
|
+
export declare const useInputHandlers: ({ onInputChange, addTag, removeTag, addMultipleTags, getCurrentTags, isDeleting, delimiter, }: UseInputHandlersProps) => {
|
|
12
|
+
inputValue: string;
|
|
13
|
+
isFocused: boolean;
|
|
14
|
+
setIsFocused: React.Dispatch<React.SetStateAction<boolean>>;
|
|
15
|
+
handleInputChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
|
|
16
|
+
handleKeyDown: (e: React.KeyboardEvent<HTMLInputElement>) => void;
|
|
17
|
+
handlePaste: (e: React.ClipboardEvent<HTMLInputElement>) => void;
|
|
18
|
+
handleContainerBlur: (e: React.FocusEvent<HTMLDivElement>) => void;
|
|
19
|
+
handleInputBlur: (_: React.FocusEvent<HTMLInputElement>) => void;
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=useInputHandlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useInputHandlers.d.ts","sourceRoot":"","sources":["../../../../src/components/InputTag/hooks/useInputHandlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAG3C,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACjC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACtC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC;IAC5C,cAAc,EAAE,MAAM,MAAM,EAAE,CAAC;IAC/B,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,gBAAgB,GAAI,+FAQ9B,qBAAqB;;;;2BAQhB,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC;uBA+CnC,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC;qBAcrC,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC;6BA2BtC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC;yBAcE,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC;CAc3E,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface UseInputTagProps {
|
|
2
|
+
value?: string[];
|
|
3
|
+
defaultValue?: string[];
|
|
4
|
+
onChange?: (tags: string[]) => void;
|
|
5
|
+
maxTags?: number;
|
|
6
|
+
allowDuplicates?: boolean;
|
|
7
|
+
onTagRemove?: (tag: string, index: number) => void;
|
|
8
|
+
}
|
|
9
|
+
export declare const useInputTag: ({ value, defaultValue, onChange, maxTags, allowDuplicates, onTagRemove, }: UseInputTagProps) => {
|
|
10
|
+
getCurrentTags: () => string[];
|
|
11
|
+
addTag: (tag: string) => boolean;
|
|
12
|
+
removeTag: (indexToRemove: number) => boolean;
|
|
13
|
+
addMultipleTags: (tags: string[]) => number;
|
|
14
|
+
isDeleting: boolean;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=useInputTag.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useInputTag.d.ts","sourceRoot":"","sources":["../../../../src/components/InputTag/hooks/useInputTag.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD;AAED,eAAO,MAAM,WAAW,GAAI,2EAOzB,gBAAgB;;kBAmBT,MAAM;+BAQI,MAAM;4BA2Bf,MAAM,EAAE;;CAalB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/InputTag/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGjD,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
interface BaseInputTagProps {
|
|
3
|
+
/** 输入框占位符 */
|
|
4
|
+
placeholder?: string;
|
|
5
|
+
/** 是否禁用 */
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
/** 自定义样式类名 */
|
|
8
|
+
className?: string;
|
|
9
|
+
/** 自定义内联样式 */
|
|
10
|
+
style?: React.CSSProperties;
|
|
11
|
+
}
|
|
12
|
+
interface BaseTagProps {
|
|
13
|
+
/** 标签是否可关闭 */
|
|
14
|
+
tagClosable?: boolean;
|
|
15
|
+
/** 自定义标签渲染 */
|
|
16
|
+
renderTag?: (tag: string, index: number, onClose: () => void) => React.ReactNode;
|
|
17
|
+
/** 标签被移除时的回调 */
|
|
18
|
+
onTagRemove?: (tag: string, index: number) => void;
|
|
19
|
+
}
|
|
20
|
+
export interface InputProps extends BaseInputTagProps {
|
|
21
|
+
value: string;
|
|
22
|
+
inputRef: React.RefObject<HTMLInputElement>;
|
|
23
|
+
onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
|
|
24
|
+
onKeyDown: (e: React.KeyboardEvent<HTMLInputElement>) => void;
|
|
25
|
+
onFocus: () => void;
|
|
26
|
+
onBlur: (e: React.FocusEvent<HTMLInputElement>) => void;
|
|
27
|
+
onPaste: (e: React.ClipboardEvent<HTMLInputElement>) => void;
|
|
28
|
+
/** 自定义样式类名 */
|
|
29
|
+
className?: string;
|
|
30
|
+
/** 自定义内联样式 */
|
|
31
|
+
style?: React.CSSProperties;
|
|
32
|
+
}
|
|
33
|
+
export interface TagListProps extends Omit<BaseInputTagProps, 'placeholder'>, BaseTagProps {
|
|
34
|
+
tags: string[];
|
|
35
|
+
}
|
|
36
|
+
export interface InputTagProps extends BaseInputTagProps, BaseTagProps {
|
|
37
|
+
/** 受控模式的标签值 */
|
|
38
|
+
value?: string[];
|
|
39
|
+
/** 非受控模式的默认标签值 */
|
|
40
|
+
defaultValue?: string[];
|
|
41
|
+
/** 标签列表变化时的回调 */
|
|
42
|
+
onChange?: (tags: string[]) => void;
|
|
43
|
+
/** 输入内容变化时的回调 */
|
|
44
|
+
onInputChange?: (value: string) => void;
|
|
45
|
+
/** 最大标签数量 */
|
|
46
|
+
maxTags?: number;
|
|
47
|
+
/** 是否允许重复标签 */
|
|
48
|
+
allowDuplicates?: boolean;
|
|
49
|
+
/** 自定义分隔符,支持字符串或正则表达式,用于自动分割输入内容为标签 */
|
|
50
|
+
delimiter?: string | RegExp;
|
|
51
|
+
}
|
|
52
|
+
export {};
|
|
53
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/InputTag/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,iBAAiB;IACzB,aAAa;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW;IACX,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc;IACd,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAGD,UAAU,YAAY;IACpB,cAAc;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc;IACd,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK,KAAK,CAAC,SAAS,CAAC;IACjF,gBAAgB;IAChB,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD;AAGD,MAAM,WAAW,UAAW,SAAQ,iBAAiB;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC5C,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAC3D,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAC9D,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACxD,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAC7D,cAAc;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc;IACd,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAGD,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,EAAE,YAAY;IACxF,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAGD,MAAM,WAAW,aAAc,SAAQ,iBAAiB,EAAE,YAAY;IACpE,eAAe;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,kBAAkB;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB;IACjB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpC,iBAAiB;IACjB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,aAAa;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe;IACf,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Nav.d.ts","sourceRoot":"","sources":["../../../src/components/Nav/Nav.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC,OAAO,cAAc,CAAC;AAKtB,QAAA,MAAM,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,QAAQ,CAiD3B,CAAC;AAEF,eAAe,GAAG,CAAC;AACnB,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NavItem.d.ts","sourceRoot":"","sources":["../../../src/components/Nav/NavItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAGhD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAIvC,QAAA,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CA4NnC,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { NavItemType } from './types';
|
|
3
|
+
interface NavSubmenuProps {
|
|
4
|
+
items: NavItemType[];
|
|
5
|
+
onItemClick: (key: string, item: NavItemType) => void;
|
|
6
|
+
}
|
|
7
|
+
declare const NavSubmenu: React.FC<NavSubmenuProps>;
|
|
8
|
+
export default NavSubmenu;
|
|
9
|
+
//# sourceMappingURL=NavSubmenu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NavSubmenu.d.ts","sourceRoot":"","sources":["../../../src/components/Nav/NavSubmenu.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,UAAU,eAAe;IACvB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;CACvD;AAED,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAuCzC,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Nav/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAEL,aAAa,GACd,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { NavItemType } from '../types';
|
|
2
|
+
export interface UseNavigationProps {
|
|
3
|
+
items: NavItemType[];
|
|
4
|
+
defaultSelectedKeys?: string[];
|
|
5
|
+
defaultOpenKeys?: string[];
|
|
6
|
+
selectedKeys?: string[];
|
|
7
|
+
openKeys?: string[];
|
|
8
|
+
onSelect?: (info: {
|
|
9
|
+
key: string;
|
|
10
|
+
keyPath: string[];
|
|
11
|
+
selectedKeys: string[];
|
|
12
|
+
item: NavItemType;
|
|
13
|
+
}) => void;
|
|
14
|
+
onOpenChange?: (openKeys: string[]) => void;
|
|
15
|
+
}
|
|
16
|
+
export declare const useNavigation: ({ items, defaultSelectedKeys, defaultOpenKeys, selectedKeys: controlledSelectedKeys, openKeys: controlledOpenKeys, onSelect, onOpenChange, }: UseNavigationProps) => {
|
|
17
|
+
selectedKeys: string[];
|
|
18
|
+
openKeys: string[];
|
|
19
|
+
handleItemClick: (key: string, item: NavItemType) => void;
|
|
20
|
+
handleToggleExpand: (key: string) => void;
|
|
21
|
+
autoExpandParents: (selectedKey: string) => void;
|
|
22
|
+
getItemInfo: (key: string) => NavItemType | null;
|
|
23
|
+
currentSelectedItem: NavItemType | null;
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=useNavigation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useNavigation.d.ts","sourceRoot":"","sources":["../../../../src/components/Nav/hooks/useNavigation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,YAAY,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,WAAW,CAAA;KAAE,KAAK,IAAI,CAAC;IACzG,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC7C;AAED,eAAO,MAAM,aAAa,GAAI,8IAQ3B,kBAAkB;;;2BAWX,MAAM,QAAQ,WAAW;8BAsBzB,MAAM;qCAsBE,MAAM;uBAcgB,MAAM;;CAiB7C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Nav/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,OAAO,CAAC;AACvC,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export interface NavItemType {
|
|
3
|
+
key: string;
|
|
4
|
+
type?: 'item' | 'divider' | 'group';
|
|
5
|
+
label?: React.ReactNode;
|
|
6
|
+
title?: string;
|
|
7
|
+
icon?: React.ReactNode;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
children?: NavItemType[];
|
|
10
|
+
className?: string;
|
|
11
|
+
style?: React.CSSProperties;
|
|
12
|
+
}
|
|
13
|
+
export interface NavProps {
|
|
14
|
+
items: NavItemType[];
|
|
15
|
+
mode?: 'inline';
|
|
16
|
+
collapsed?: boolean;
|
|
17
|
+
selectedKeys?: string[];
|
|
18
|
+
defaultSelectedKeys?: string[];
|
|
19
|
+
openKeys?: string[];
|
|
20
|
+
defaultOpenKeys?: string[];
|
|
21
|
+
onSelect?: (info: {
|
|
22
|
+
key: string;
|
|
23
|
+
keyPath: string[];
|
|
24
|
+
selectedKeys: string[];
|
|
25
|
+
item: NavItemType;
|
|
26
|
+
}) => void;
|
|
27
|
+
onOpenChange?: (openKeys: string[]) => void;
|
|
28
|
+
expandIcon?: React.ReactNode;
|
|
29
|
+
className?: string;
|
|
30
|
+
style?: React.CSSProperties;
|
|
31
|
+
}
|
|
32
|
+
export interface NavItemProps {
|
|
33
|
+
item: NavItemType;
|
|
34
|
+
level: number;
|
|
35
|
+
collapsed?: boolean;
|
|
36
|
+
selectedKeys: string[];
|
|
37
|
+
openKeys: string[];
|
|
38
|
+
onItemClick: (key: string, item: NavItemType) => void;
|
|
39
|
+
onToggleExpand: (key: string) => void;
|
|
40
|
+
expandIcon?: React.ReactNode;
|
|
41
|
+
prefixCls: string;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Nav/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACpC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,YAAY,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,WAAW,CAAA;KAAE,KAAK,IAAI,CAAC;IACzG,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC5C,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACtD,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Listbox.d.ts","sourceRoot":"","sources":["../../../src/components/Select/Listbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI5C,QAAA,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAmEnC,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultipleSelector.d.ts","sourceRoot":"","sources":["../../../src/components/Select/MultipleSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAKvC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAErD,QAAA,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAmDrD,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OptionItem.d.ts","sourceRoot":"","sources":["../../../src/components/Select/OptionItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAI/C,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA2CzC,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchInput.d.ts","sourceRoot":"","sources":["../../../src/components/Select/SearchInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiB,MAAM,OAAO,CAAC;AAEtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAyB3C,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,OAAO,KAAK,EAAE,WAAW,EAAU,MAAM,SAAS,CAAC;AAInD,OAAO,cAAc,CAAC;AAItB,QAAA,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAyJjC,CAAC;AAEF,eAAe,MAAM,CAAC;AACtB,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Selector.d.ts","sourceRoot":"","sources":["../../../src/components/Select/Selector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,aAAa,EAAU,MAAM,SAAS,CAAC;AAMrD,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAqDrC,CAAC;AAkIF,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextDisplay.d.ts","sourceRoot":"","sources":["../../../src/components/Select/TextDisplay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAyB3C,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { useSelectState } from './useSelectState';
|
|
2
|
+
import { useOptionSelection } from './useOptionSelection';
|
|
3
|
+
import { useSelectSearch } from './useSelectSearch';
|
|
4
|
+
import { useFloatingPosition } from './useFloatingPosition';
|
|
5
|
+
import { useClickOutside } from './useClickOutside';
|
|
6
|
+
import { useSelect } from './useSelect';
|
|
7
|
+
export { useSelectState, useOptionSelection, useSelectSearch, useFloatingPosition, useClickOutside, useSelect, };
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAEL,cAAc,EACd,kBAAkB,EAClB,eAAe,EAGf,mBAAmB,EACnB,eAAe,EAGf,SAAS,GACV,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
interface UseClickOutsideProps {
|
|
3
|
+
isActive: boolean;
|
|
4
|
+
triggerRef: React.RefObject<HTMLElement>;
|
|
5
|
+
floatingRef: React.RefObject<HTMLElement>;
|
|
6
|
+
onClickOutside?: () => void;
|
|
7
|
+
}
|
|
8
|
+
export declare const useClickOutside: ({ isActive, triggerRef, floatingRef, onClickOutside }: UseClickOutsideProps) => {
|
|
9
|
+
handleClickOutside: (event: MouseEvent) => void;
|
|
10
|
+
};
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=useClickOutside.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useClickOutside.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/hooks/useClickOutside.ts"],"names":[],"mappings":"AAAA,OAAO,KAAiC,MAAM,OAAO,CAAC;AAEtD,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACzC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC1C,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,eAAO,MAAM,eAAe,GAAI,uDAAuD,oBAAoB;gCAG/F,UAAU;CA8BrB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
interface UseFloatingPositionProps {
|
|
3
|
+
isOpen: boolean;
|
|
4
|
+
triggerRef: React.RefObject<HTMLElement>;
|
|
5
|
+
onClickOutside?: () => void;
|
|
6
|
+
placement?: 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end';
|
|
7
|
+
offsetDistance?: number;
|
|
8
|
+
shiftPadding?: number;
|
|
9
|
+
}
|
|
10
|
+
export declare const useFloatingPosition: ({ isOpen, triggerRef, onClickOutside, placement, offsetDistance, shiftPadding, }: UseFloatingPositionProps) => {
|
|
11
|
+
floatingRef: React.RefObject<HTMLDivElement>;
|
|
12
|
+
updatePosition: () => void;
|
|
13
|
+
};
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=useFloatingPosition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFloatingPosition.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/hooks/useFloatingPosition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAI9D,UAAU,wBAAwB;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACzC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,cAAc,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,CAAC;IACpE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,mBAAmB,GAAI,kFAOjC,wBAAwB;;;CAwG1B,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Option } from '../types';
|
|
2
|
+
interface UseOptionSelectionProps {
|
|
3
|
+
value?: string | number | (string | number)[];
|
|
4
|
+
defaultValue?: string | number | (string | number)[];
|
|
5
|
+
multiple?: boolean;
|
|
6
|
+
options?: Option[];
|
|
7
|
+
onChange?: (value: string | number | (string | number)[], selectedOptions: Option | Option[] | null) => void;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* 选项选择管理Hook
|
|
11
|
+
* 职责:管理选中状态、处理单选/多选逻辑、触发onChange回调
|
|
12
|
+
*/
|
|
13
|
+
export declare const useOptionSelection: ({ value, defaultValue, multiple, options, onChange, }: UseOptionSelectionProps) => {
|
|
14
|
+
getCurrentValue: () => string | number | (string | number)[] | undefined;
|
|
15
|
+
getSelectedOptions: () => Option[];
|
|
16
|
+
isOptionSelected: (option: Option) => boolean;
|
|
17
|
+
handleOptionSelect: (option: Option) => void;
|
|
18
|
+
handleTagRemove: (tag: string, index: number) => void;
|
|
19
|
+
tagManager: {
|
|
20
|
+
getCurrentTags: () => string[];
|
|
21
|
+
addTag: (tag: string) => boolean;
|
|
22
|
+
removeTag: (indexToRemove: number) => boolean;
|
|
23
|
+
addMultipleTags: (tags: string[]) => number;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=useOptionSelection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOptionSelection.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/hooks/useOptionSelection.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,UAAU,uBAAuB;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC9C,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,KAAK,IAAI,CAAC;CAC9G;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,uDAMhC,uBAAuB;;;+BA8Db,MAAM;iCAcN,MAAM;2BA8BT,MAAM,SAAS,MAAM;;;;;;;CAsB9B,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Option } from '../types';
|
|
2
|
+
interface UseSelectProps {
|
|
3
|
+
value?: string | number | (string | number)[];
|
|
4
|
+
defaultValue?: string | number | (string | number)[];
|
|
5
|
+
multiple?: boolean;
|
|
6
|
+
showSearch?: boolean;
|
|
7
|
+
open?: boolean;
|
|
8
|
+
options?: Option[];
|
|
9
|
+
onChange?: (value: string | number | (string | number)[], selectedOptions: Option | Option[] | null) => void;
|
|
10
|
+
onSearch?: (value: string) => void;
|
|
11
|
+
filterOption?: (input: string, option: Option) => boolean;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Select主组合Hook
|
|
15
|
+
* 职责:组合基础Hook,提供统一的对外接口
|
|
16
|
+
*/
|
|
17
|
+
export declare const useSelect: ({ value, defaultValue, multiple, showSearch, open, options, onChange, onSearch, filterOption, }: UseSelectProps) => {
|
|
18
|
+
isOpen: boolean;
|
|
19
|
+
focusedIndex: number;
|
|
20
|
+
getCurrentValue: () => string | number | (string | number)[] | undefined;
|
|
21
|
+
getSelectedOptions: () => Option[];
|
|
22
|
+
isOptionSelected: (option: Option) => boolean;
|
|
23
|
+
inputManager: {
|
|
24
|
+
inputValue: string;
|
|
25
|
+
setInputValue: import('react').Dispatch<import('react').SetStateAction<string>>;
|
|
26
|
+
isFocused: boolean;
|
|
27
|
+
setIsFocused: import('react').Dispatch<import('react').SetStateAction<boolean>>;
|
|
28
|
+
handleInputChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
|
|
29
|
+
clearInput: () => void;
|
|
30
|
+
};
|
|
31
|
+
filteredOptions: Option[];
|
|
32
|
+
handleOptionSelect: (option: Option) => void;
|
|
33
|
+
handleTagRemove: (tag: string, index: number) => void;
|
|
34
|
+
handleBlur: () => void;
|
|
35
|
+
handleSelectorClick: () => void;
|
|
36
|
+
openDropdown: () => void;
|
|
37
|
+
closeDropdown: () => void;
|
|
38
|
+
setFocusedIndex: import('react').Dispatch<import('react').SetStateAction<number>>;
|
|
39
|
+
tagManager: {
|
|
40
|
+
getCurrentTags: () => string[];
|
|
41
|
+
addTag: (tag: string) => boolean;
|
|
42
|
+
removeTag: (indexToRemove: number) => boolean;
|
|
43
|
+
addMultipleTags: (tags: string[]) => number;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
export {};
|
|
47
|
+
//# sourceMappingURL=useSelect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSelect.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/hooks/useSelect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAKvC,UAAU,cAAc;IACtB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC9C,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7G,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;CAC3D;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,iGAUvB,cAAc;;;;;;;;;;;;;;;iCAuBJ,MAAM;2BAkBT,MAAM,SAAS,MAAM;;;;;;;;;;;;CA+C9B,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Option } from '../types';
|
|
2
|
+
interface UseSelectSearchProps {
|
|
3
|
+
showSearch?: boolean;
|
|
4
|
+
options?: Option[];
|
|
5
|
+
onSearch?: (value: string) => void;
|
|
6
|
+
filterOption?: (input: string, option: Option) => boolean;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* 搜索功能Hook
|
|
10
|
+
* 职责:管理搜索输入状态、防抖处理、选项过滤
|
|
11
|
+
*/
|
|
12
|
+
export declare const useSelectSearch: ({ showSearch, options, onSearch, filterOption }: UseSelectSearchProps) => {
|
|
13
|
+
inputManager: {
|
|
14
|
+
inputValue: string;
|
|
15
|
+
setInputValue: import('react').Dispatch<import('react').SetStateAction<string>>;
|
|
16
|
+
isFocused: boolean;
|
|
17
|
+
setIsFocused: import('react').Dispatch<import('react').SetStateAction<boolean>>;
|
|
18
|
+
handleInputChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
|
|
19
|
+
clearInput: () => void;
|
|
20
|
+
};
|
|
21
|
+
filteredOptions: Option[];
|
|
22
|
+
hasSearchValue: boolean;
|
|
23
|
+
};
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=useSelectSearch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSelectSearch.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/hooks/useSelectSearch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGvC,UAAU,oBAAoB;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;CAC3D;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,iDAA8D,oBAAoB;;;;;;;;;;;CA4BjH,CAAC"}
|