@fjyueke/arco-mcp 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +113 -1
- package/metaData/components/action-sheet/api.md +94 -0
- package/metaData/components/action-sheet/style.md +57 -0
- package/metaData/components/avatar/api.md +49 -0
- package/metaData/components/avatar/style.md +147 -0
- package/metaData/components/badge/api.md +20 -0
- package/metaData/components/badge/style.md +74 -0
- package/metaData/components/button/api.md +37 -0
- package/metaData/components/button/style.md +151 -0
- package/metaData/components/carousel/api.md +81 -0
- package/metaData/components/carousel/style.md +208 -0
- package/metaData/components/cell/api.md +60 -0
- package/metaData/components/cell/style.md +123 -0
- package/metaData/components/checkbox/api.md +83 -0
- package/metaData/components/checkbox/style.md +62 -0
- package/metaData/components/circle-progress/api.md +32 -0
- package/metaData/components/circle-progress/style.md +52 -0
- package/metaData/components/collapse/api.md +66 -0
- package/metaData/components/collapse/style.md +53 -0
- package/metaData/components/context-provider/api.md +36 -0
- package/metaData/components/context-provider/style.md +1 -0
- package/metaData/components/count-down/api.md +32 -0
- package/metaData/components/count-down/style.md +7 -0
- package/metaData/components/date-picker/api.md +94 -0
- package/metaData/components/date-picker/style.md +27 -0
- package/metaData/components/dialog/api.md +192 -0
- package/metaData/components/dialog/style.md +271 -0
- package/metaData/components/divider/api.md +17 -0
- package/metaData/components/divider/style.md +68 -0
- package/metaData/components/dropdown/api.md +72 -0
- package/metaData/components/dropdown/style.md +108 -0
- package/metaData/components/dropdown-menu/api.md +83 -0
- package/metaData/components/dropdown-menu/style.md +60 -0
- package/metaData/components/ellipsis/api.md +25 -0
- package/metaData/components/ellipsis/style.md +31 -0
- package/metaData/components/form/api.md +82 -0
- package/metaData/components/form/style.md +105 -0
- package/metaData/components/grid/api.md +31 -0
- package/metaData/components/grid/style.md +109 -0
- package/metaData/components/icon/api.md +7 -0
- package/metaData/components/image/api.md +54 -0
- package/metaData/components/image/style.md +144 -0
- package/metaData/components/image-picker/api.md +108 -0
- package/metaData/components/image-picker/style.md +116 -0
- package/metaData/components/image-preview/api.md +111 -0
- package/metaData/components/image-preview/style.md +103 -0
- package/metaData/components/index-bar/api.md +75 -0
- package/metaData/components/index-bar/style.md +122 -0
- package/metaData/components/input/api.md +52 -0
- package/metaData/components/input/style.md +108 -0
- package/metaData/components/keyboard/api.md +65 -0
- package/metaData/components/keyboard/style.md +80 -0
- package/metaData/components/load-more/api.md +40 -0
- package/metaData/components/load-more/style.md +7 -0
- package/metaData/components/loading/api.md +26 -0
- package/metaData/components/loading/style.md +102 -0
- package/metaData/components/masking/api.md +85 -0
- package/metaData/components/masking/style.md +30 -0
- package/metaData/components/nav-bar/api.md +32 -0
- package/metaData/components/nav-bar/style.md +112 -0
- package/metaData/components/notice-bar/api.md +26 -0
- package/metaData/components/notice-bar/style.md +124 -0
- package/metaData/components/notify/api.md +73 -0
- package/metaData/components/notify/style.md +40 -0
- package/metaData/components/pagination/api.md +33 -0
- package/metaData/components/pagination/style.md +105 -0
- package/metaData/components/picker/api.md +81 -0
- package/metaData/components/picker/style.md +46 -0
- package/metaData/components/picker-view/api.md +49 -0
- package/metaData/components/picker-view/style.md +75 -0
- package/metaData/components/popover/api.md +136 -0
- package/metaData/components/popover/style.md +226 -0
- package/metaData/components/popup/api.md +93 -0
- package/metaData/components/popup/style.md +115 -0
- package/metaData/components/popup-swiper/api.md +100 -0
- package/metaData/components/popup-swiper/style.md +10 -0
- package/metaData/components/portal/api.md +6 -0
- package/metaData/components/portal/style.md +1 -0
- package/metaData/components/progress/api.md +34 -0
- package/metaData/components/progress/style.md +114 -0
- package/metaData/components/pull-refresh/api.md +29 -0
- package/metaData/components/pull-refresh/style.md +86 -0
- package/metaData/components/radio/api.md +81 -0
- package/metaData/components/radio/style.md +57 -0
- package/metaData/components/rate/api.md +25 -0
- package/metaData/components/rate/style.md +63 -0
- package/metaData/components/search-bar/api.md +89 -0
- package/metaData/components/search-bar/style.md +115 -0
- package/metaData/components/show-monitor/api.md +26 -0
- package/metaData/components/show-monitor/style.md +1 -0
- package/metaData/components/skeleton/api.md +93 -0
- package/metaData/components/skeleton/style.md +147 -0
- package/metaData/components/slider/api.md +34 -0
- package/metaData/components/slider/style.md +292 -0
- package/metaData/components/stepper/api.md +38 -0
- package/metaData/components/stepper/style.md +85 -0
- package/metaData/components/steps/api.md +49 -0
- package/metaData/components/steps/style.md +304 -0
- package/metaData/components/sticky/api.md +37 -0
- package/metaData/components/sticky/style.md +5 -0
- package/metaData/components/swipe-action/api.md +36 -0
- package/metaData/components/swipe-action/style.md +89 -0
- package/metaData/components/swipe-load/api.md +35 -0
- package/metaData/components/swipe-load/style.md +29 -0
- package/metaData/components/switch/api.md +30 -0
- package/metaData/components/switch/style.md +158 -0
- package/metaData/components/tab-bar/api.md +49 -0
- package/metaData/components/tab-bar/style.md +57 -0
- package/metaData/components/tabs/api.md +179 -0
- package/metaData/components/tabs/style.md +436 -0
- package/metaData/components/tag/api.md +72 -0
- package/metaData/components/tag/style.md +133 -0
- package/metaData/components/textarea/api.md +59 -0
- package/metaData/components/textarea/style.md +37 -0
- package/metaData/components/toast/api.md +82 -0
- package/metaData/components/toast/style.md +93 -0
- package/metaData/components/transition/api.md +11 -0
- package/metaData/components/transition/style.md +28 -0
- package/metaData/components/uploader/api.md +74 -0
- package/metaData/components/uploader/style.md +86 -0
- package/metaData/tokens.json +2358 -0
- package/package.json +1 -1
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
> 属性/Props
|
|
2
|
+
|
|
3
|
+
|参数|描述|类型|默认值|
|
|
4
|
+
|----------|-------------|------|------|
|
|
5
|
+
|data|数据源,非级联时data数组的长度决定picker列数,级联时以cols决定 pick列数|PickerData\[\] \| PickerData\[\]\[\] \| ValueType\[\]\[\]|必填|
|
|
6
|
+
|cascade|是否联动|boolean|true|
|
|
7
|
+
|cols|列数(最大为5;cascade=true时才使用)|number|3|
|
|
8
|
+
|rows|行数(一列可选项的行数),必须是奇数,最小为3个|number|5|
|
|
9
|
+
|disabled|是否不可用|boolean|false|
|
|
10
|
+
|value|值, 格式是\[value1, value2, value3\], 对应数据源的相应级层value,如果不传默认选每一列的第一个值|ValueType\[\]|-|
|
|
11
|
+
|onHide|点击遮罩层或取消、确定按钮的隐藏回调|(scene?: string) =\> void|-|
|
|
12
|
+
|onChange|选中后的回调|(selectedValue: ValueType\[\]) =\> void|-|
|
|
13
|
+
|onPickerChange|每列数据选择变化后的回调函数|(value: ValueType\[\], index: number, data: PickerData\[\]) =\> void|-|
|
|
14
|
+
|itemStyle|每列样式|CSSProperties|-|
|
|
15
|
+
|visible|是否展示选择器|boolean|false|
|
|
16
|
+
|okText|弹窗确认已选值的文案|string|"确定"|
|
|
17
|
+
|dismissText|弹窗取消的文案|string|"取消"|
|
|
18
|
+
|onOk|点击选中时执行的回调|(value: ValueType\[\], data: PickerData\[\]) =\> void|-|
|
|
19
|
+
|onDismiss|点击取消时执行的回调|() =\> void|-|
|
|
20
|
+
|clickable|是否可通过点击操作选择内容|boolean|true|
|
|
21
|
+
|hideEmptyCols|是否隐藏无数据的空列,常用于级联选择|boolean|false|
|
|
22
|
+
|title|选择器标题|string|""|
|
|
23
|
+
|maskClosable|点击蒙层是否关闭菜单|boolean|false|
|
|
24
|
+
|touchToStop|是否通过长按停止滑动,传入数字 x 表示触摸超过 x 毫秒算长按,传 true 表示 x=100,长按事件与 click 事件互斥|number \| boolean|false|
|
|
25
|
+
|gestureOutOfControl|是否禁用滚动容器手势判断,禁用后交给业务方自己判断|boolean|true|
|
|
26
|
+
|renderLinkedContainer|将选择器的展现隐藏状态及选中值的展示与某个容器关联,传入后将同时渲染该容器和选择器组件,此时选择器组件的 visible 和 onHide 属性可不传,点击该容器会唤起选择器|(value: ValueType\[\], data: PickerData\[\]) =\> ReactNode|-|
|
|
27
|
+
|renderExtraHeader|自定义头部扩展区域|() =\> ReactNode|-|
|
|
28
|
+
|needBottomOffset|从底部滑出的菜单内容是否适配ipx底部|boolean|false|
|
|
29
|
+
|translateZ|\[即将废弃\] 开启translateZ强制提升|boolean|false|
|
|
30
|
+
|maskTransitionTimeout|菜单蒙层动画时长|number \| \{ appear?: number; enter?: number; exit?: number; \}|{ enter: 450, exit: 240 }|
|
|
31
|
+
|contentTransitionTimeout|菜单内容动画时长|number \| \{ appear?: number; enter?: number; exit?: number; \}|{ enter: 450, exit: 240 }|
|
|
32
|
+
|contentTransitionType|内容过渡动画类名|string|\`slide-from-${props.direction}\`|
|
|
33
|
+
|className|自定义类名|string|-|
|
|
34
|
+
|maskClass|自定义蒙层类名|string|-|
|
|
35
|
+
|maskStyle|自定义蒙层样式|CSSProperties|-|
|
|
36
|
+
|contentClass|自定义内容类名|string|-|
|
|
37
|
+
|contentStyle|自定义内容样式|CSSProperties|-|
|
|
38
|
+
|maskTransitionType|蒙层过渡动画类名|string|"fade"|
|
|
39
|
+
|contentTransitionVarType|内容过渡动画类名变量标识|string|-|
|
|
40
|
+
|animatingClosable|执行进场动画时点击蒙层是否可关闭菜单|boolean|false|
|
|
41
|
+
|mountOnEnter|是否在打开菜单时再加载内容|boolean|true|
|
|
42
|
+
|unmountOnExit|是否在退出时卸载内容|boolean|true|
|
|
43
|
+
|preventBodyScroll|弹窗打开时是否禁止body的滚动|boolean|true|
|
|
44
|
+
|initialBodyOverflow|页面初始 overflow 状态,即关闭弹窗时 overflow 应该还原的状态|string|第一个全屏组件(弹窗、toast等)打开时页面overflow值|
|
|
45
|
+
|onClose|关闭后回调(动画执行完毕)|(scene?: string) =\> void|-|
|
|
46
|
+
|onOpen|打开后回调(动画执行完毕)|() =\> void|-|
|
|
47
|
+
|onMaskClick|点击蒙层回调,maskClosable=false时也会触发|() =\> void|-|
|
|
48
|
+
|onTouchMove|弹窗的touchmove回调|(e: TouchEvent, prevented: boolean, direction: "x" \| "y") =\> void|-|
|
|
49
|
+
|onPreventTouchMove|非滚动区域或滚动到顶部及底部时的触摸事件回调|(e: TouchEvent, direction: "x" \| "y") =\> void|-|
|
|
50
|
+
|getContainer|获取挂载容器|() =\> HTMLElement|-|
|
|
51
|
+
|
|
52
|
+
> 引用/Refs
|
|
53
|
+
|
|
54
|
+
|参数|描述|类型|
|
|
55
|
+
|----------|-------------|------|
|
|
56
|
+
|dom|最外层元素 DOM|HTMLDivElement|
|
|
57
|
+
|getCellMovingStatus|每一列的滑动状态|() =\> PickerCellMovingStatus\[\]|
|
|
58
|
+
|updateLayout|手动更新元素布局|() =\> void|
|
|
59
|
+
|getAllColumnValues|获取所有列的值|() =\> ValueType\[\]|
|
|
60
|
+
|getColumnValue|获取第 n 列的值|(index: number) =\> ValueType|
|
|
61
|
+
|scrollToCurrentIndex|直接跳到当前最近一行(调用时将中断滚动)|() =\> void|
|
|
62
|
+
|
|
63
|
+
> PickerData
|
|
64
|
+
|
|
65
|
+
|参数|描述|类型|
|
|
66
|
+
|----------|-------------|------|
|
|
67
|
+
|value|每一列展示的每项文案对应的值|ValueType|
|
|
68
|
+
|label|每一列展示的文案|ReactNode|
|
|
69
|
+
|children|级联状态下,该列对应的下一列数据|PickerData\[\]|
|
|
70
|
+
|
|
71
|
+
> ValueType
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
string | number
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
> PickerCellMovingStatus
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
"normal" | "moving" | "scrolling"
|
|
81
|
+
```
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
@import "../../../style/mixin.less";
|
|
2
|
+
|
|
3
|
+
.@{prefix}-picker {
|
|
4
|
+
|
|
5
|
+
.@{prefix}-popup-content {
|
|
6
|
+
.use-var(box-shadow, picker-wrapper-shadow);
|
|
7
|
+
.use-var(border-top-left-radius, picker-wrapper-border-radius);
|
|
8
|
+
.use-var(border-top-right-radius, picker-wrapper-border-radius);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
&-header {
|
|
12
|
+
position: relative;
|
|
13
|
+
display: flex;
|
|
14
|
+
justify-content: space-between;
|
|
15
|
+
align-items: center;
|
|
16
|
+
.use-var(background-color, picker-header-background);
|
|
17
|
+
.use-var(height, picker-header-height);
|
|
18
|
+
.use-var(border-top-left-radius, picker-wrapper-border-radius);
|
|
19
|
+
.use-var(border-top-right-radius, picker-wrapper-border-radius);
|
|
20
|
+
|
|
21
|
+
&-title {
|
|
22
|
+
flex: 1;
|
|
23
|
+
text-align: center;
|
|
24
|
+
.use-var(font-size, picker-title-font-size);
|
|
25
|
+
.use-var(padding, picker-title-padding);
|
|
26
|
+
.use-var(color, font-color);
|
|
27
|
+
.text-overflow();
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
&-btn {
|
|
31
|
+
position: absolute;
|
|
32
|
+
.use-var(font-size, picker-button-font-size);
|
|
33
|
+
.use-var(padding, picker-button-padding);
|
|
34
|
+
|
|
35
|
+
&.left {
|
|
36
|
+
.set-prop-with-rtl(left, 0);
|
|
37
|
+
.use-var(color, picker-left-btn-color);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
&.right {
|
|
41
|
+
.set-prop-with-rtl(right, 0);
|
|
42
|
+
.use-var(color, picker-right-btn-color);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
> 属性/Props
|
|
2
|
+
|
|
3
|
+
|参数|描述|类型|默认值|
|
|
4
|
+
|----------|-------------|------|------|
|
|
5
|
+
|data|数据源,非级联时data数组的长度决定picker列数,级联时以cols决定 pick列数|PickerData\[\] \| PickerData\[\]\[\] \| ValueType\[\]\[\]|必填|
|
|
6
|
+
|cascade|是否联动|boolean|true|
|
|
7
|
+
|cols|列数(最大为5;cascade=true时才使用)|number|3|
|
|
8
|
+
|rows|行数(一列可选项的行数),必须是奇数,最小为3个|number|5|
|
|
9
|
+
|disabled|是否不可用|boolean|false|
|
|
10
|
+
|value|值, 格式是\[value1, value2, value3\], 对应数据源的相应级层value|ValueType\[\]|-|
|
|
11
|
+
|onPickerChange|每列数据选择变化后的回调函数|(value: ValueType\[\], index: number, data: PickerData\[\]) =\> void|-|
|
|
12
|
+
|itemStyle|每列样式|CSSProperties|-|
|
|
13
|
+
|className|自定义类名|string|-|
|
|
14
|
+
|clickable|是否可通过点击操作选择内容|boolean|true|
|
|
15
|
+
|hideEmptyCols|是否隐藏无数据的空列,常用于级联选择|boolean|false|
|
|
16
|
+
|touchToStop|是否通过长按停止滑动,传入数字 x 表示触摸超过 x 毫秒算长按,传 true 表示 x=100,长按事件与 click 事件互斥|number \| boolean|false|
|
|
17
|
+
|
|
18
|
+
> 引用/Refs
|
|
19
|
+
|
|
20
|
+
|参数|描述|类型|
|
|
21
|
+
|----------|-------------|------|
|
|
22
|
+
|dom|最外层元素 DOM|HTMLDivElement|
|
|
23
|
+
|getCellMovingStatus|每一列的滑动状态|() =\> PickerCellMovingStatus\[\]|
|
|
24
|
+
|getAllColumnValues|获取所有列的值|() =\> ValueType\[\]|
|
|
25
|
+
|getColumnValue|获取第 n 列的值|(index: number) =\> ValueType|
|
|
26
|
+
|updateLayout|手动更新元素布局|() =\> void|
|
|
27
|
+
|resetValue|重置选择器的值为传入的\`value\`值|() =\> void|
|
|
28
|
+
|scrollToCurrentIndex|直接跳到当前最近一行(调用时将中断滚动)|() =\> void|
|
|
29
|
+
|getAllColumnData|获取所有列的 data|() =\> PickerData\[\]|
|
|
30
|
+
|
|
31
|
+
> PickerData
|
|
32
|
+
|
|
33
|
+
|参数|描述|类型|
|
|
34
|
+
|----------|-------------|------|
|
|
35
|
+
|value|每一列展示的每项文案对应的值|ValueType|
|
|
36
|
+
|label|每一列展示的文案|ReactNode|
|
|
37
|
+
|children|级联状态下,该列对应的下一列数据|PickerData\[\]|
|
|
38
|
+
|
|
39
|
+
> ValueType
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
string | number
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
> PickerCellMovingStatus
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
"normal" | "moving" | "scrolling"
|
|
49
|
+
```
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
@import "../../../style/mixin.less";
|
|
2
|
+
|
|
3
|
+
.@{prefix}-picker-view {
|
|
4
|
+
.noselect();
|
|
5
|
+
.use-var(height, picker-view-wrapper-height);
|
|
6
|
+
position: relative;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.@{prefix}-picker {
|
|
10
|
+
|
|
11
|
+
&-multi {
|
|
12
|
+
.use-var(color, font-color);
|
|
13
|
+
.use-var(font-size, picker-view-font-size);
|
|
14
|
+
.use-var(line-height, picker-view-cell-height);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&-multi,
|
|
18
|
+
&-selection {
|
|
19
|
+
position: absolute;
|
|
20
|
+
left: 0;
|
|
21
|
+
top: 0;
|
|
22
|
+
width: 100%;
|
|
23
|
+
height: 100%;
|
|
24
|
+
display: flex;
|
|
25
|
+
align-items: center;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
&-column {
|
|
29
|
+
flex: 1;
|
|
30
|
+
height: 100%;
|
|
31
|
+
overflow: hidden;
|
|
32
|
+
text-align: center;
|
|
33
|
+
|
|
34
|
+
&-item-wrap {
|
|
35
|
+
box-sizing: content-box;
|
|
36
|
+
will-change: transform;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
&-item {
|
|
40
|
+
white-space: nowrap;
|
|
41
|
+
overflow-y: hidden;
|
|
42
|
+
overflow-x: auto;
|
|
43
|
+
&::-webkit-scrollbar {
|
|
44
|
+
display: none;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
&-selection {
|
|
50
|
+
will-change: transform;
|
|
51
|
+
flex-direction: column;
|
|
52
|
+
pointer-events: none;
|
|
53
|
+
|
|
54
|
+
&-mask-top {
|
|
55
|
+
width: 100%;
|
|
56
|
+
flex: 1;
|
|
57
|
+
.use-var(background, picker-view-mask-top-background);
|
|
58
|
+
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
&-mask-bottom {
|
|
62
|
+
width: 100%;
|
|
63
|
+
flex: 1;
|
|
64
|
+
.use-var(background, picker-view-mask-bottom-background);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
&-bar {
|
|
68
|
+
width: 100%;
|
|
69
|
+
.use-var(height, picker-view-cell-height);
|
|
70
|
+
flex: 0 0 auto;
|
|
71
|
+
.onepx-border-var(top, picker-view-selection-border-color);
|
|
72
|
+
.onepx-border-var(bottom, picker-view-selection-border-color);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
> 属性/Props
|
|
2
|
+
|
|
3
|
+
|参数|描述|类型|默认值|
|
|
4
|
+
|----------|-------------|------|------|
|
|
5
|
+
|children|气泡载体,组件会监听其变化以重新计算布局,建议用 useMemo 包裹|ReactNode|-|
|
|
6
|
+
|innerPopoverClassName|自定义气泡类名|string|''|
|
|
7
|
+
|visible|是否显示气泡,受控模式|boolean|-|
|
|
8
|
+
|content|气泡内容,组件会监听其变化以重新计算布局,建议用 useMemo 包裹|ReactNode|null|
|
|
9
|
+
|direction|气泡展示的位置|"topLeft" \| "topCenter" \| "topRight" \| "bottomLeft" \| "bottomCenter" \| "bottomRight"|'topRight'|
|
|
10
|
+
|duration|自动关闭场景下的停留时长,单位毫秒,为0则表示不自动关闭|number|0|
|
|
11
|
+
|transitionTimeout|动画时长,单位毫秒|number \| \{ appear?: number; enter?: number; exit?: number; \}|300|
|
|
12
|
+
|minWidth|气泡最小宽度|string|'10px'|
|
|
13
|
+
|maxWidth|气泡最大宽度|string|'90vw'|
|
|
14
|
+
|transitionName|气泡过渡动画类名,修改类名需自行实现动画|string|'fade'|
|
|
15
|
+
|verticalOffset|气泡垂直方向上相对于子元素的偏移量,单位为px|number|10|
|
|
16
|
+
|horizontalOffset|气泡水平方向上相对于子元素的偏移量,单位为px|number|8|
|
|
17
|
+
|useAutoDirection|气泡边界自适应,开启时会在气泡左右边界留出安全距离,气泡与视窗上下边界小于安全距离时改变气泡的垂直方向,使其在视窗中漏出|boolean \| \{ horizontal: boolean; vertical: boolean; \}|true|
|
|
18
|
+
|edgeOffset|气泡距离边界的安全距离,单位为px|number \| EdgeOffset|14|
|
|
19
|
+
|verticalScrollThrottle|滚动容器的滚动事件节流粒度,单位ms|number|100|
|
|
20
|
+
|arrowWidth|气泡尖角大小,单位为px|number|9|
|
|
21
|
+
|preventBodyClick|气泡出现后,是否屏蔽非内部元素的点击事件,点击非内部元素后只做隐藏气泡操作|boolean|false|
|
|
22
|
+
|clickOtherToClose|点击非子元素和气泡元素是否关闭气泡|boolean|true|
|
|
23
|
+
|clickSelfToClose|点击气泡和子元素是否关闭气泡|boolean|true|
|
|
24
|
+
|touchOtherToClose|触碰非子元素和气泡元素是否关闭气泡|boolean|false|
|
|
25
|
+
|touchSelfToClose|触碰气泡和子元素是否关闭气泡|boolean|false|
|
|
26
|
+
|touchToClose|触碰页面是否关闭气泡,是touchOtherToClose和touchSelfToClose的默认值|boolean|false|
|
|
27
|
+
|theme|气泡的主题,black主题是黑底白字,white主题是白底黑字|"black" \| "white"|'black'|
|
|
28
|
+
|needShadow|气泡内容是否需要阴影|boolean|false|
|
|
29
|
+
|bordered|气泡是否有border|boolean|白色主题默认有边框,黑色主题没有|
|
|
30
|
+
|defaultVisible|气泡是否可见的默认值,非受控模式|boolean|false|
|
|
31
|
+
|showCloseIcon|是否展示关闭按钮|boolean|false|
|
|
32
|
+
|textSuffix|文字气泡后置元素,如操作按钮等|ReactNode|null|
|
|
33
|
+
|mode|气泡挂载位置,follow模式挂载在当前子元素下,global模式挂载在body上|"follow" \| "global"|'follow'|
|
|
34
|
+
|showMask|是否展示蒙层|boolean|false|
|
|
35
|
+
|maskTransitionTimeout|蒙层动画时长|number \| \{ appear?: number; enter?: number; exit?: number; \}|{ enter: 450, exit: 240 }|
|
|
36
|
+
|renderArrow|自定义箭头渲染|(options: \{ arrowWidth?: number; arrowLeft: number; direction: Direction; \}) =\> ReactNode|-|
|
|
37
|
+
|onChange|状态发生改变的回调事件|(visible: boolean) =\> void|() => void|
|
|
38
|
+
|onClickCloseIcon|点击关闭icon的回调|() =\> void|() => void|
|
|
39
|
+
|onClickTextSuffix|点击文字气泡后置元素回调|() =\> void|() => void|
|
|
40
|
+
|onClickMask|点击蒙层回调|() =\> void|() => void|
|
|
41
|
+
|getVerticalScrollContainer|获取页面垂直方向的滚动容器|() =\> HTMLElement|() => document|
|
|
42
|
+
|className|自定义类名|string|""|
|
|
43
|
+
|style|自定义样式|CSSProperties|{}|
|
|
44
|
+
|
|
45
|
+
> 引用/Refs
|
|
46
|
+
|
|
47
|
+
|参数|描述|类型|
|
|
48
|
+
|----------|-------------|------|
|
|
49
|
+
|child|气泡包裹子元素dom|HTMLDivElement|
|
|
50
|
+
|innerPopover|气泡组件 ref|PopoverInnerRef|
|
|
51
|
+
|innerPopoverDom|气泡元素dom|HTMLDivElement|
|
|
52
|
+
|updatePosition|手动更新气泡的位置|() =\> void|
|
|
53
|
+
|dom|组件外层dom元素|HTMLDivElement|
|
|
54
|
+
|
|
55
|
+
> Popover.Menu
|
|
56
|
+
|
|
57
|
+
气泡菜单
|
|
58
|
+
|
|
59
|
+
|参数|描述|类型|默认值|
|
|
60
|
+
|----------|-------------|------|------|
|
|
61
|
+
|menu|菜单项列表|(string \| PopoverMenuItem)\[\]|必填|
|
|
62
|
+
|menuLayout|菜单排列顺序,默认为竖向菜单,支持横向菜单和竖向菜单,横向菜单一行最多可放4个菜单|"vertical" \| "horizontal"|'vertical'|
|
|
63
|
+
|useClickStatus|菜单项是否有点击态|boolean|false|
|
|
64
|
+
|clickStatusDuration|菜单项点击态持续时长,单位毫秒|number|300|
|
|
65
|
+
|onSelect|选择可用菜单项的回调|(value: string, item: string \| PopoverMenuItem) =\> void|() => {}|
|
|
66
|
+
|onClickMenuItem|点击所有菜单项回调|(value: string, item: string \| PopoverMenuItem) =\> void|必填|
|
|
67
|
+
|children|气泡载体,组件会监听其变化以重新计算布局,建议用 useMemo 包裹|ReactNode|-|
|
|
68
|
+
|innerPopoverClassName|自定义气泡类名|string|''|
|
|
69
|
+
|visible|是否显示气泡,受控模式|boolean|-|
|
|
70
|
+
|content|气泡内容,组件会监听其变化以重新计算布局,建议用 useMemo 包裹|ReactNode|null|
|
|
71
|
+
|direction|气泡展示的位置|"topLeft" \| "topCenter" \| "topRight" \| "bottomLeft" \| "bottomCenter" \| "bottomRight"|'topRight'|
|
|
72
|
+
|duration|自动关闭场景下的停留时长,单位毫秒,为0则表示不自动关闭|number|0|
|
|
73
|
+
|transitionTimeout|动画时长,单位毫秒|number \| \{ appear?: number; enter?: number; exit?: number; \}|300|
|
|
74
|
+
|minWidth|气泡最小宽度|string|'10px'|
|
|
75
|
+
|maxWidth|气泡最大宽度|string|'90vw'|
|
|
76
|
+
|transitionName|气泡过渡动画类名,修改类名需自行实现动画|string|'fade'|
|
|
77
|
+
|verticalOffset|气泡垂直方向上相对于子元素的偏移量,单位为px|number|10|
|
|
78
|
+
|horizontalOffset|气泡水平方向上相对于子元素的偏移量,单位为px|number|8|
|
|
79
|
+
|useAutoDirection|气泡边界自适应,开启时会在气泡左右边界留出安全距离,气泡与视窗上下边界小于安全距离时改变气泡的垂直方向,使其在视窗中漏出|boolean \| \{ horizontal: boolean; vertical: boolean; \}|true|
|
|
80
|
+
|edgeOffset|气泡距离边界的安全距离,单位为px|number \| EdgeOffset|14|
|
|
81
|
+
|verticalScrollThrottle|滚动容器的滚动事件节流粒度,单位ms|number|100|
|
|
82
|
+
|arrowWidth|气泡尖角大小,单位为px|number|9|
|
|
83
|
+
|preventBodyClick|气泡出现后,是否屏蔽非内部元素的点击事件,点击非内部元素后只做隐藏气泡操作|boolean|false|
|
|
84
|
+
|clickOtherToClose|点击非子元素和气泡元素是否关闭气泡|boolean|true|
|
|
85
|
+
|clickSelfToClose|点击气泡和子元素是否关闭气泡|boolean|true|
|
|
86
|
+
|touchOtherToClose|触碰非子元素和气泡元素是否关闭气泡|boolean|false|
|
|
87
|
+
|touchSelfToClose|触碰气泡和子元素是否关闭气泡|boolean|false|
|
|
88
|
+
|touchToClose|触碰页面是否关闭气泡,是touchOtherToClose和touchSelfToClose的默认值|boolean|false|
|
|
89
|
+
|theme|气泡的主题,black主题是黑底白字,white主题是白底黑字|"black" \| "white"|'black'|
|
|
90
|
+
|needShadow|气泡内容是否需要阴影|boolean|false|
|
|
91
|
+
|bordered|气泡是否有border|boolean|白色主题默认有边框,黑色主题没有|
|
|
92
|
+
|defaultVisible|气泡是否可见的默认值,非受控模式|boolean|false|
|
|
93
|
+
|showCloseIcon|是否展示关闭按钮|boolean|false|
|
|
94
|
+
|textSuffix|文字气泡后置元素,如操作按钮等|ReactNode|null|
|
|
95
|
+
|mode|气泡挂载位置,follow模式挂载在当前子元素下,global模式挂载在body上|"follow" \| "global"|'follow'|
|
|
96
|
+
|showMask|是否展示蒙层|boolean|false|
|
|
97
|
+
|maskTransitionTimeout|蒙层动画时长|number \| \{ appear?: number; enter?: number; exit?: number; \}|{ enter: 450, exit: 240 }|
|
|
98
|
+
|renderArrow|自定义箭头渲染|(options: \{ arrowWidth?: number; arrowLeft: number; direction: Direction; \}) =\> ReactNode|-|
|
|
99
|
+
|onChange|状态发生改变的回调事件|(visible: boolean) =\> void|() => void|
|
|
100
|
+
|onClickCloseIcon|点击关闭icon的回调|() =\> void|() => void|
|
|
101
|
+
|onClickTextSuffix|点击文字气泡后置元素回调|() =\> void|() => void|
|
|
102
|
+
|onClickMask|点击蒙层回调|() =\> void|() => void|
|
|
103
|
+
|getVerticalScrollContainer|获取页面垂直方向的滚动容器|() =\> HTMLElement|() => document|
|
|
104
|
+
|className|自定义类名|string|""|
|
|
105
|
+
|style|自定义样式|CSSProperties|{}|
|
|
106
|
+
|
|
107
|
+
> Direction
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
"topLeft" | "topCenter" | "topRight" | "bottomLeft" | "bottomCenter" | "bottomRight"
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
> EdgeOffset
|
|
114
|
+
|
|
115
|
+
|参数|描述|类型|
|
|
116
|
+
|----------|-------------|------|
|
|
117
|
+
|top|上|number|
|
|
118
|
+
|right|右|number|
|
|
119
|
+
|bottom|下|number|
|
|
120
|
+
|left|左|number|
|
|
121
|
+
|
|
122
|
+
> PopoverInnerRef
|
|
123
|
+
|
|
124
|
+
|参数|描述|类型|
|
|
125
|
+
|----------|-------------|------|
|
|
126
|
+
|dom|组件容器dom|HTMLDivElement|
|
|
127
|
+
|content|-|HTMLDivElement|
|
|
128
|
+
|
|
129
|
+
> PopoverMenuItem
|
|
130
|
+
|
|
131
|
+
|参数|描述|类型|默认值|
|
|
132
|
+
|----------|-------------|------|------|
|
|
133
|
+
|text|菜单项文本|ReactNode|必填|
|
|
134
|
+
|value|菜单项值|string|text|
|
|
135
|
+
|icon|菜单项的icon组件|ReactNode|null|
|
|
136
|
+
|disabled|是否禁用菜单项|boolean|false|
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
@import "../../../style/mixin.less";
|
|
2
|
+
@import "./menu.less";
|
|
3
|
+
|
|
4
|
+
.full() {
|
|
5
|
+
left: 0;
|
|
6
|
+
top: 0;
|
|
7
|
+
width: 100%;
|
|
8
|
+
height: 100%;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.@{prefix}-popover {
|
|
12
|
+
position: relative;
|
|
13
|
+
display: inline-flex;
|
|
14
|
+
|
|
15
|
+
.popover-child-inner {
|
|
16
|
+
font-size: 0;
|
|
17
|
+
line-height: 1;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.@{prefix}-popover-mask {
|
|
22
|
+
.full-screen();
|
|
23
|
+
.use-var(background, popover-mask-background);
|
|
24
|
+
z-index: @full-screen-z-index;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.@{prefix}-popover-inner {
|
|
28
|
+
box-sizing: border-box;
|
|
29
|
+
position: absolute;
|
|
30
|
+
width: max-content;
|
|
31
|
+
z-index: @full-screen-z-index + 10;
|
|
32
|
+
background-color: transparent;
|
|
33
|
+
visibility: hidden;
|
|
34
|
+
will-change: transform;
|
|
35
|
+
.use-var(transition, popover-inner-transition);
|
|
36
|
+
.use-var(color, popover-content-color);
|
|
37
|
+
|
|
38
|
+
&.with-shadow {
|
|
39
|
+
.popover-bg {
|
|
40
|
+
.use-var(box-shadow, popover-inner-background-shadow);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.popover-arrow {
|
|
44
|
+
&.topRight,
|
|
45
|
+
&.topCenter,
|
|
46
|
+
&.topLeft {
|
|
47
|
+
.use-var(box-shadow, popover-inner-top-arrow-shadow);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
&.bottomRight,
|
|
51
|
+
&.bottomCenter,
|
|
52
|
+
&.bottomLeft {
|
|
53
|
+
.use-var(box-shadow, popover-inner-bottom-arrow-shadow);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
&.show {
|
|
59
|
+
visibility: visible;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.popover-content {
|
|
63
|
+
position: relative;
|
|
64
|
+
z-index: 1;
|
|
65
|
+
.full();
|
|
66
|
+
.use-var(border-radius, popover-inner-border-radius);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.popover-bg {
|
|
70
|
+
position: absolute;
|
|
71
|
+
.full();
|
|
72
|
+
.use-var(border-radius, popover-inner-border-radius);
|
|
73
|
+
.use-var(background-color, popover-background-color);
|
|
74
|
+
.use-var(opacity, popover-inner-opacity);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.content-text {
|
|
78
|
+
white-space: normal;
|
|
79
|
+
word-break: break-all;
|
|
80
|
+
text-align: left;
|
|
81
|
+
.use-var(font-size, popover-content-font-size);
|
|
82
|
+
.use-var(line-height, popover-content-line-height);
|
|
83
|
+
.use-var(padding, popover-content-padding);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
&.with-suffix {
|
|
87
|
+
.popover-content {
|
|
88
|
+
display: flex;
|
|
89
|
+
align-items: center;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.icon-divider {
|
|
94
|
+
width: 1PX;
|
|
95
|
+
.use-var(height, popover-icon-divider-height);
|
|
96
|
+
.hairline-var(popover-icon-divider-color, left);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.text-close-icon {
|
|
100
|
+
display: inline-flex;
|
|
101
|
+
.use-var(font-size, popover-icon-size);
|
|
102
|
+
.use-var(padding, popover-icon-padding);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.text-suffix {
|
|
106
|
+
.use-var-with-rtl(padding-right, popover-text-suffix-edge);
|
|
107
|
+
flex: 0 0 auto;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.popover-arrow {
|
|
111
|
+
position: absolute;
|
|
112
|
+
transform: rotate(45deg);
|
|
113
|
+
.use-var(width, popover-arrow-size);
|
|
114
|
+
.use-var(height, popover-arrow-size);
|
|
115
|
+
.use-var(background-color, popover-background-color);
|
|
116
|
+
|
|
117
|
+
&.topRight,
|
|
118
|
+
&.topCenter,
|
|
119
|
+
&.topLeft {
|
|
120
|
+
&,
|
|
121
|
+
.popover-arrow-content {
|
|
122
|
+
.use-var(border-bottom-right-radius, popover-arrow-border-radius);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
&.bottomRight,
|
|
127
|
+
&.bottomCenter,
|
|
128
|
+
&.bottomLeft {
|
|
129
|
+
&,
|
|
130
|
+
.popover-arrow-content {
|
|
131
|
+
.use-var(border-top-left-radius, popover-arrow-border-radius);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
&.topRight,
|
|
136
|
+
&.topCenter,
|
|
137
|
+
&.topLeft {
|
|
138
|
+
transform: translateY(50%) rotate(45deg);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
&.topRight {
|
|
142
|
+
bottom: 0;
|
|
143
|
+
right: 0;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
&.topCenter,
|
|
147
|
+
&.topLeft {
|
|
148
|
+
bottom: 0;
|
|
149
|
+
left: 0;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
&.bottomRight,
|
|
153
|
+
&.bottomCenter,
|
|
154
|
+
&.bottomLeft {
|
|
155
|
+
transform: translateY(-50%) rotate(45deg);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
&.bottomRight {
|
|
159
|
+
top: 0;
|
|
160
|
+
right: 0;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
&.bottomCenter,
|
|
164
|
+
&.bottomLeft {
|
|
165
|
+
top: 0;
|
|
166
|
+
left: 0;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
// 白色主题
|
|
171
|
+
|
|
172
|
+
&.white-theme {
|
|
173
|
+
.use-var(color, popover-content-white-theme-color);
|
|
174
|
+
|
|
175
|
+
.popover-bg {
|
|
176
|
+
.use-var(background-color, popover-white-theme-background-color);
|
|
177
|
+
.use-var(opacity, popover-inner-white-theme-opacity);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
.popover-arrow {
|
|
181
|
+
.use-var(background-color, popover-white-theme-background-color);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
.popover-arrow-content {
|
|
185
|
+
position: relative;
|
|
186
|
+
width: 100%;
|
|
187
|
+
height: 100%;
|
|
188
|
+
background-color: inherit;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
// 带border的白色主题
|
|
193
|
+
|
|
194
|
+
&.white-theme.bordered {
|
|
195
|
+
.popover-bg {
|
|
196
|
+
.hairline-var(popover-content-white-theme-border-color);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.popover-arrow-content {
|
|
200
|
+
.use-var(border-color, popover-content-white-theme-border-color);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
.popover-arrow {
|
|
204
|
+
&.topRight,
|
|
205
|
+
&.topCenter,
|
|
206
|
+
&.topLeft {
|
|
207
|
+
.popover-arrow-content {
|
|
208
|
+
.hairline-bottom-right-var(popover-content-white-theme-border-color);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
&.bottomRight,
|
|
213
|
+
&.bottomCenter,
|
|
214
|
+
&.bottomLeft {
|
|
215
|
+
.popover-arrow-content {
|
|
216
|
+
.hairline-top-left-var(popover-content-white-theme-border-color);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
// 全局模式
|
|
224
|
+
.global-mode.@{prefix}-popover-inner {
|
|
225
|
+
position: fixed;
|
|
226
|
+
}
|