@fjyueke/arco-mcp 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 +85 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +244 -0
- package/metaData/components/action-sheet/doc.md +102 -0
- package/metaData/components/action-sheet/example/index.tsx +199 -0
- package/metaData/components/action-sheet/example/methods.tsx +6 -0
- package/metaData/components/avatar/doc.md +57 -0
- package/metaData/components/avatar/example/group.tsx +69 -0
- package/metaData/components/avatar/example/index.tsx +196 -0
- package/metaData/components/badge/doc.md +28 -0
- package/metaData/components/badge/example/index.tsx +128 -0
- package/metaData/components/button/doc.md +45 -0
- package/metaData/components/button/example/index.tsx +264 -0
- package/metaData/components/carousel/doc.md +89 -0
- package/metaData/components/carousel/example/index.tsx +1481 -0
- package/metaData/components/cell/doc.md +68 -0
- package/metaData/components/cell/example/arrow.tsx +13 -0
- package/metaData/components/cell/example/cell.tsx +71 -0
- package/metaData/components/cell/example/group.tsx +63 -0
- package/metaData/components/cell/example/index.tsx +19 -0
- package/metaData/components/checkbox/doc.md +91 -0
- package/metaData/components/checkbox/example/checkbox.tsx +158 -0
- package/metaData/components/checkbox/example/group.tsx +103 -0
- package/metaData/components/checkbox/example/index.tsx +25 -0
- package/metaData/components/circle-progress/doc.md +40 -0
- package/metaData/components/circle-progress/example/index.tsx +323 -0
- package/metaData/components/collapse/doc.md +74 -0
- package/metaData/components/collapse/example/collapse.tsx +183 -0
- package/metaData/components/collapse/example/group.tsx +136 -0
- package/metaData/components/collapse/example/index.tsx +16 -0
- package/metaData/components/collapse/example/utils.tsx +20 -0
- package/metaData/components/context-provider/doc.md +44 -0
- package/metaData/components/context-provider/example/index.tsx +208 -0
- package/metaData/components/count-down/doc.md +40 -0
- package/metaData/components/count-down/example/hooks.tsx +118 -0
- package/metaData/components/count-down/example/index.tsx +63 -0
- package/metaData/components/date-picker/doc.md +102 -0
- package/metaData/components/date-picker/example/index.tsx +545 -0
- package/metaData/components/dialog/doc.md +200 -0
- package/metaData/components/dialog/example/index.tsx +328 -0
- package/metaData/components/dialog/example/methods.tsx +56 -0
- package/metaData/components/divider/doc.md +25 -0
- package/metaData/components/divider/example/index.tsx +87 -0
- package/metaData/components/dropdown/doc.md +80 -0
- package/metaData/components/dropdown/example/dropdown.tsx +308 -0
- package/metaData/components/dropdown/example/index.tsx +19 -0
- package/metaData/components/dropdown/example/options.tsx +103 -0
- package/metaData/components/dropdown-menu/doc.md +91 -0
- package/metaData/components/dropdown-menu/example/dropdown-menu.tsx +270 -0
- package/metaData/components/dropdown-menu/example/index.tsx +16 -0
- package/metaData/components/ellipsis/doc.md +33 -0
- package/metaData/components/ellipsis/example/index.tsx +93 -0
- package/metaData/components/ellipsis/example/js-ellipsis.tsx +229 -0
- package/metaData/components/ellipsis/example/native-ellipsis.tsx +48 -0
- package/metaData/components/form/doc.md +90 -0
- package/metaData/components/form/example/form-item-context.tsx +8 -0
- package/metaData/components/form/example/form-item.tsx +378 -0
- package/metaData/components/form/example/index.tsx +87 -0
- package/metaData/components/form/example/linked-container.tsx +66 -0
- package/metaData/components/grid/doc.md +39 -0
- package/metaData/components/grid/example/index.tsx +252 -0
- package/metaData/components/icon/doc.md +15 -0
- package/metaData/components/icon/example/index.tsx +32 -0
- package/metaData/components/image/doc.md +62 -0
- package/metaData/components/image/example/index.tsx +528 -0
- package/metaData/components/image-picker/doc.md +116 -0
- package/metaData/components/image-picker/example/add-icon.tsx +14 -0
- package/metaData/components/image-picker/example/index.tsx +175 -0
- package/metaData/components/image-preview/doc.md +119 -0
- package/metaData/components/image-preview/example/index.tsx +1290 -0
- package/metaData/components/image-preview/example/methods.tsx +72 -0
- package/metaData/components/index-bar/doc.md +83 -0
- package/metaData/components/index-bar/example/group.tsx +93 -0
- package/metaData/components/index-bar/example/index.tsx +271 -0
- package/metaData/components/index-bar/example/side-bar.tsx +82 -0
- package/metaData/components/input/doc.md +60 -0
- package/metaData/components/input/example/hooks.tsx +259 -0
- package/metaData/components/input/example/index.tsx +134 -0
- package/metaData/components/input/example/props.tsx +183 -0
- package/metaData/components/keyboard/doc.md +73 -0
- package/metaData/components/keyboard/example/index.tsx +238 -0
- package/metaData/components/load-more/doc.md +48 -0
- package/metaData/components/load-more/example/index.tsx +395 -0
- package/metaData/components/loading/doc.md +34 -0
- package/metaData/components/loading/example/index.tsx +312 -0
- package/metaData/components/masking/doc.md +93 -0
- package/metaData/components/masking/example/index.tsx +410 -0
- package/metaData/components/masking/example/methods.tsx +88 -0
- package/metaData/components/nav-bar/doc.md +40 -0
- package/metaData/components/nav-bar/example/back-icon.tsx +28 -0
- package/metaData/components/nav-bar/example/index.tsx +305 -0
- package/metaData/components/notice-bar/doc.md +34 -0
- package/metaData/components/notice-bar/example/index.tsx +294 -0
- package/metaData/components/notify/doc.md +81 -0
- package/metaData/components/notify/example/index.tsx +171 -0
- package/metaData/components/notify/example/methods.tsx +83 -0
- package/metaData/components/pagination/doc.md +41 -0
- package/metaData/components/pagination/example/arrow.tsx +14 -0
- package/metaData/components/pagination/example/index.tsx +292 -0
- package/metaData/components/picker/doc.md +89 -0
- package/metaData/components/picker/example/index.tsx +217 -0
- package/metaData/components/picker-view/doc.md +57 -0
- package/metaData/components/picker-view/example/cascader.tsx +141 -0
- package/metaData/components/picker-view/example/index.tsx +297 -0
- package/metaData/components/picker-view/example/multi-picker.tsx +66 -0
- package/metaData/components/picker-view/example/picker-cell.tsx +416 -0
- package/metaData/components/popover/doc.md +144 -0
- package/metaData/components/popover/example/index.tsx +23 -0
- package/metaData/components/popover/example/menu.tsx +145 -0
- package/metaData/components/popover/example/popover-inner.tsx +147 -0
- package/metaData/components/popover/example/popover.tsx +268 -0
- package/metaData/components/popup/doc.md +101 -0
- package/metaData/components/popup/example/index.tsx +125 -0
- package/metaData/components/popup/example/methods.tsx +6 -0
- package/metaData/components/popup-swiper/doc.md +108 -0
- package/metaData/components/popup-swiper/example/index.tsx +332 -0
- package/metaData/components/popup-swiper/example/methods.tsx +6 -0
- package/metaData/components/portal/doc.md +14 -0
- package/metaData/components/portal/example/index.tsx +35 -0
- package/metaData/components/progress/doc.md +42 -0
- package/metaData/components/progress/example/index.tsx +256 -0
- package/metaData/components/pull-refresh/doc.md +37 -0
- package/metaData/components/pull-refresh/example/android-pull-refresh.tsx +260 -0
- package/metaData/components/pull-refresh/example/index.tsx +44 -0
- package/metaData/components/pull-refresh/example/ios-pull-refresh.tsx +216 -0
- package/metaData/components/radio/doc.md +89 -0
- package/metaData/components/radio/example/group.tsx +92 -0
- package/metaData/components/radio/example/index.tsx +25 -0
- package/metaData/components/radio/example/radio.tsx +22 -0
- package/metaData/components/rate/doc.md +33 -0
- package/metaData/components/rate/example/index.tsx +281 -0
- package/metaData/components/search-bar/doc.md +97 -0
- package/metaData/components/search-bar/example/association.tsx +89 -0
- package/metaData/components/search-bar/example/cancel-button.tsx +34 -0
- package/metaData/components/search-bar/example/highlight.tsx +66 -0
- package/metaData/components/search-bar/example/index.tsx +251 -0
- package/metaData/components/show-monitor/doc.md +34 -0
- package/metaData/components/show-monitor/example/index.tsx +646 -0
- package/metaData/components/skeleton/doc.md +101 -0
- package/metaData/components/skeleton/example/elements.tsx +290 -0
- package/metaData/components/skeleton/example/index.tsx +96 -0
- package/metaData/components/skeleton/example/skeleton-context.tsx +7 -0
- package/metaData/components/slider/doc.md +42 -0
- package/metaData/components/slider/example/index.tsx +326 -0
- package/metaData/components/slider/example/marks.tsx +50 -0
- package/metaData/components/slider/example/popover.tsx +38 -0
- package/metaData/components/slider/example/thumb.tsx +48 -0
- package/metaData/components/slider/example/useSliderIcon.tsx +38 -0
- package/metaData/components/slider/example/useSliderInit.tsx +170 -0
- package/metaData/components/stepper/doc.md +46 -0
- package/metaData/components/stepper/example/index.tsx +166 -0
- package/metaData/components/stepper/example/useButtonClick.tsx +74 -0
- package/metaData/components/stepper/example/useInputEvent.tsx +65 -0
- package/metaData/components/stepper/example/useValue.tsx +43 -0
- package/metaData/components/steps/doc.md +57 -0
- package/metaData/components/steps/example/index.tsx +123 -0
- package/metaData/components/steps/example/step.tsx +126 -0
- package/metaData/components/sticky/doc.md +45 -0
- package/metaData/components/sticky/example/index.tsx +430 -0
- package/metaData/components/swipe-action/doc.md +44 -0
- package/metaData/components/swipe-action/example/index.tsx +338 -0
- package/metaData/components/swipe-action/example/item.tsx +40 -0
- package/metaData/components/swipe-load/doc.md +43 -0
- package/metaData/components/swipe-load/example/index.tsx +339 -0
- package/metaData/components/swipe-load/example/type.tsx +153 -0
- package/metaData/components/switch/doc.md +38 -0
- package/metaData/components/switch/example/index.tsx +237 -0
- package/metaData/components/tab-bar/doc.md +57 -0
- package/metaData/components/tab-bar/example/index.tsx +18 -0
- package/metaData/components/tab-bar/example/item.tsx +74 -0
- package/metaData/components/tab-bar/example/tab-bar.tsx +105 -0
- package/metaData/components/tabs/doc.md +187 -0
- package/metaData/components/tabs/example/index.tsx +514 -0
- package/metaData/components/tabs/example/tab-cell-underline.tsx +320 -0
- package/metaData/components/tabs/example/tab-cell.tsx +433 -0
- package/metaData/components/tabs/example/tab-pane.tsx +349 -0
- package/metaData/components/tag/doc.md +80 -0
- package/metaData/components/tag/example/index.tsx +23 -0
- package/metaData/components/tag/example/list.tsx +97 -0
- package/metaData/components/tag/example/tag.tsx +85 -0
- package/metaData/components/textarea/doc.md +67 -0
- package/metaData/components/textarea/example/index.tsx +258 -0
- package/metaData/components/toast/doc.md +90 -0
- package/metaData/components/toast/example/index.tsx +335 -0
- package/metaData/components/toast/example/methods.tsx +87 -0
- package/metaData/components/transition/doc.md +19 -0
- package/metaData/components/transition/example/index.tsx +113 -0
- package/metaData/components/uploader/doc.md +82 -0
- package/metaData/components/uploader/example/index.tsx +208 -0
- package/metaData/components-index.json +242 -0
- package/package.json +56 -0
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import React, { useRef, forwardRef, useImperativeHandle } from 'react';
|
|
2
|
+
import type { Ref } from 'react';
|
|
3
|
+
import { cls, defaultLocale, componentWrapper } from '@arco-design/mobile-utils';
|
|
4
|
+
import { ContextLayout } from '../context-provider';
|
|
5
|
+
import { IconClose } from '../icon';
|
|
6
|
+
import Image from '../image';
|
|
7
|
+
import Grid from '../grid';
|
|
8
|
+
import AddIcon from './add-icon';
|
|
9
|
+
import type { ImagePickerProps, ImagePickerRef, ImagePickItem } from './type';
|
|
10
|
+
import { useLatestRef } from '../_helpers';
|
|
11
|
+
import { Upload } from '../uploader/upload';
|
|
12
|
+
|
|
13
|
+
export * from './type';
|
|
14
|
+
|
|
15
|
+
const ImagePicker = forwardRef((props: ImagePickerProps, ref: Ref<ImagePickerRef>) => {
|
|
16
|
+
const {
|
|
17
|
+
className = '',
|
|
18
|
+
style,
|
|
19
|
+
accept = 'image/*',
|
|
20
|
+
multiple = false,
|
|
21
|
+
capture,
|
|
22
|
+
columns = 3,
|
|
23
|
+
gutter = 8,
|
|
24
|
+
limit = 0,
|
|
25
|
+
images = [],
|
|
26
|
+
disabled,
|
|
27
|
+
deleteIcon,
|
|
28
|
+
selectIcon,
|
|
29
|
+
hideDelete = false,
|
|
30
|
+
hideSelect = false,
|
|
31
|
+
alwaysShowSelect = false,
|
|
32
|
+
imageProps,
|
|
33
|
+
renderLoading,
|
|
34
|
+
renderError,
|
|
35
|
+
selectAdapter,
|
|
36
|
+
} = props;
|
|
37
|
+
const domRef = useRef<HTMLDivElement | null>(null);
|
|
38
|
+
const fileRef = useRef<HTMLInputElement | null>(null);
|
|
39
|
+
const cacheRef = useLatestRef<ImagePickItem[]>(images);
|
|
40
|
+
|
|
41
|
+
useImperativeHandle(ref, () => ({
|
|
42
|
+
dom: domRef.current,
|
|
43
|
+
}));
|
|
44
|
+
|
|
45
|
+
const uploadFunc = new Upload(
|
|
46
|
+
{ ...props, onUploadClick: props.onUploadClick || props.onSelectClick, files: images },
|
|
47
|
+
fileRef,
|
|
48
|
+
cacheRef,
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
const getGridData = (prefixCls, locale) => {
|
|
52
|
+
const errorNode = (index: number) => {
|
|
53
|
+
if (renderError) {
|
|
54
|
+
return typeof renderError === 'function' ? renderError(index) : renderError;
|
|
55
|
+
}
|
|
56
|
+
return (
|
|
57
|
+
<div className={`${prefixCls}-image-picker-error`}>
|
|
58
|
+
<p>{locale.ImagePicker.loadError}</p>
|
|
59
|
+
</div>
|
|
60
|
+
);
|
|
61
|
+
};
|
|
62
|
+
const loadingNode = (index: number) => {
|
|
63
|
+
if (renderLoading) {
|
|
64
|
+
return typeof renderLoading === 'function' ? renderLoading(index) : renderLoading;
|
|
65
|
+
}
|
|
66
|
+
return null;
|
|
67
|
+
};
|
|
68
|
+
const data = (limit && limit < images.length ? images.slice(0, limit) : images).map(
|
|
69
|
+
(image, index) => {
|
|
70
|
+
const { url, status } = image;
|
|
71
|
+
return {
|
|
72
|
+
img: (
|
|
73
|
+
<div key={`${index}-${url}`} className={`${prefixCls}-image-picker-image`}>
|
|
74
|
+
<div
|
|
75
|
+
onTouchStart={e => uploadFunc.handleTouchStart(e, image, index)}
|
|
76
|
+
onClick={e => uploadFunc.handleClick(e, image, index)}
|
|
77
|
+
className={`${prefixCls}-image-picker-image-container`}
|
|
78
|
+
>
|
|
79
|
+
<Image
|
|
80
|
+
showLoading
|
|
81
|
+
showError
|
|
82
|
+
{...(imageProps || {})}
|
|
83
|
+
src={url}
|
|
84
|
+
errorArea={errorNode(index)}
|
|
85
|
+
loadingArea={loadingNode(index)}
|
|
86
|
+
status={status || imageProps?.status}
|
|
87
|
+
/>
|
|
88
|
+
<div className={`${prefixCls}-image-picker-image-mask`} />
|
|
89
|
+
</div>
|
|
90
|
+
{!hideDelete && (
|
|
91
|
+
<div
|
|
92
|
+
className={`${prefixCls}-image-picker-close`}
|
|
93
|
+
onClick={() => uploadFunc.deleteFile(index)}
|
|
94
|
+
>
|
|
95
|
+
{deleteIcon || (
|
|
96
|
+
<div className={`${prefixCls}-image-picker-close-icon`}>
|
|
97
|
+
<IconClose />
|
|
98
|
+
</div>
|
|
99
|
+
)}
|
|
100
|
+
</div>
|
|
101
|
+
)}
|
|
102
|
+
</div>
|
|
103
|
+
),
|
|
104
|
+
title: '',
|
|
105
|
+
};
|
|
106
|
+
},
|
|
107
|
+
);
|
|
108
|
+
const showSelect = !hideSelect && images.length < (limit || Infinity);
|
|
109
|
+
const disableSelect = disabled || (alwaysShowSelect && !showSelect);
|
|
110
|
+
if (showSelect || alwaysShowSelect) {
|
|
111
|
+
data.push({
|
|
112
|
+
img: (
|
|
113
|
+
<div
|
|
114
|
+
className={cls(`${prefixCls}-image-picker-add`, {
|
|
115
|
+
[`${prefixCls}-image-picker-add-disabled`]: disableSelect,
|
|
116
|
+
})}
|
|
117
|
+
onClick={uploadFunc.handleSelect}
|
|
118
|
+
>
|
|
119
|
+
<div className={`${prefixCls}-image-picker-add-container`}>
|
|
120
|
+
{selectIcon || (
|
|
121
|
+
<div className={`${prefixCls}-image-picker-add-icon`}>
|
|
122
|
+
<AddIcon />
|
|
123
|
+
</div>
|
|
124
|
+
)}
|
|
125
|
+
{!selectAdapter ? (
|
|
126
|
+
<input
|
|
127
|
+
capture={capture}
|
|
128
|
+
accept={accept}
|
|
129
|
+
multiple={multiple}
|
|
130
|
+
type="file"
|
|
131
|
+
onChange={e => uploadFunc.handleChange(e)}
|
|
132
|
+
ref={fileRef}
|
|
133
|
+
/>
|
|
134
|
+
) : null}
|
|
135
|
+
</div>
|
|
136
|
+
</div>
|
|
137
|
+
),
|
|
138
|
+
title: '',
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
return data;
|
|
142
|
+
};
|
|
143
|
+
return (
|
|
144
|
+
<ContextLayout>
|
|
145
|
+
{({ prefixCls, locale = defaultLocale }) => (
|
|
146
|
+
<div
|
|
147
|
+
className={cls(`${prefixCls}-image-picker`, className, {
|
|
148
|
+
[`${prefixCls}-image-picker-disabled`]: disabled,
|
|
149
|
+
})}
|
|
150
|
+
style={style}
|
|
151
|
+
ref={domRef}
|
|
152
|
+
>
|
|
153
|
+
<div className={`${prefixCls}-image-picker-container`}>
|
|
154
|
+
<Grid
|
|
155
|
+
data={getGridData(prefixCls, locale)}
|
|
156
|
+
gutter={gutter}
|
|
157
|
+
columns={columns}
|
|
158
|
+
/>
|
|
159
|
+
</div>
|
|
160
|
+
</div>
|
|
161
|
+
)}
|
|
162
|
+
</ContextLayout>
|
|
163
|
+
);
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* 图片选择器组件
|
|
168
|
+
* @en ImagePicker Component
|
|
169
|
+
* @type 数据录入
|
|
170
|
+
* @type_en Data Entry
|
|
171
|
+
* @name 图片选择器
|
|
172
|
+
* @name_en ImagePicker
|
|
173
|
+
* @displayName ImagePicker
|
|
174
|
+
*/
|
|
175
|
+
export default componentWrapper(ImagePicker, 'ImagePicker');
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
### 信息展示
|
|
2
|
+
|
|
3
|
+
# 图片预览 ImagePreview
|
|
4
|
+
|
|
5
|
+
图片预览组件,支持循环轮播、双指/双击缩放、缩略图放大效果。
|
|
6
|
+
|
|
7
|
+
======
|
|
8
|
+
|
|
9
|
+
> 属性/Props
|
|
10
|
+
|
|
11
|
+
|参数|描述|类型|默认值|
|
|
12
|
+
|----------|-------------|------|------|
|
|
13
|
+
|style|自定义样式|CSSProperties|-|
|
|
14
|
+
|className|自定义类名|string|-|
|
|
15
|
+
|images|图片信息数组|PreviewImageProps\[\]|必填|
|
|
16
|
+
|openIndex|打开时展示的index,在images范围内会展示弹窗,否则隐藏弹窗|number|必填|
|
|
17
|
+
|loop|是否可循环滑动|boolean|false|
|
|
18
|
+
|fit|图片布局方式,preview\-y为宽度撑满高度溢出滚动,preview\-x为高度撑满宽度溢出滚动|"preview\-y" \| "preview\-x"|"preview-y"|
|
|
19
|
+
|displayDuration|打开和关闭时的过渡动画|number|300|
|
|
20
|
+
|replaceFallbackWhenLoaded|是否在原图加载完成后将过渡图动画替换为原图动画|boolean|-|
|
|
21
|
+
|noselect|图片不可选中,屏蔽系统默认事件|boolean|true|
|
|
22
|
+
|spaceBetween|图片横向间距|number|-|
|
|
23
|
+
|loadingArea|自定义展示加载中内容|ReactNode|-|
|
|
24
|
+
|errorArea|自定义展示加载失败内容|ReactNode|-|
|
|
25
|
+
|showLoading|是否展示图片加载中提示|boolean|true|
|
|
26
|
+
|showError|是否展示图片加载失败提示|boolean|true|
|
|
27
|
+
|retryTime|失败时自动重试次数|number|-|
|
|
28
|
+
|staticLabel|是否直接渲染\<img\>标签,不走加载图片流程|boolean|-|
|
|
29
|
+
|scrollBezier|长图滚动变化曲线|\[number, number, number, number\]|-|
|
|
30
|
+
|lazyloadCount|只加载当前页相邻的n个内容,为0时会销毁所有相邻内容|number|1|
|
|
31
|
+
|swipeToClose|当图片滚动到边缘时,继续滑动是否关闭预览|boolean|true|
|
|
32
|
+
|indicatorPos|轮播索引位置|"start" \| "center" \| "end"|"start"|
|
|
33
|
+
|extra|渲染自定义元素,如自定义关闭按钮|ReactNode|-|
|
|
34
|
+
|getMinScale|图片捏合时最小缩放倍数,松手后仍会恢复到1的状态,默认为0\.7|(image: HTMLImageElement, imageIndex: number) =\> number|-|
|
|
35
|
+
|getMaxScale|图片最大缩放倍数,默认根据图片尺寸调节|(image: HTMLImageElement, imageIndex: number) =\> number|-|
|
|
36
|
+
|getDoubleClickScale|当双击图片时,图片应缩放的倍数|(currentScale: number, maxScale: number, image: HTMLImageElement, imageIndex: number) =\> number|-|
|
|
37
|
+
|getContainer|获取挂载容器|() =\> HTMLElement|-|
|
|
38
|
+
|renderIndicator|自定义索引内容|(currentIndex: number, total: number, lastIndex: number) =\> ReactNode|-|
|
|
39
|
+
|getThumbBounds|获取缩略图定位|(index: number) =\> ClientRect|-|
|
|
40
|
+
|onChange|索引发生改变时回调|(index: number) =\> void|-|
|
|
41
|
+
|onAfterChange|索引切换,动画完成后触发|(index: number) =\> void|-|
|
|
42
|
+
|close|关闭弹窗|(e: MouseEvent\<HTMLDivElement, MouseEvent\> \| TouchEvent) =\> void|必填|
|
|
43
|
+
|onClose|关闭弹窗回调(动画执行完成后)|() =\> void|-|
|
|
44
|
+
|onImageClick|点击图片回调,如果返回true则阻止关闭弹窗|(index: number, e: MouseEvent\<HTMLDivElement, MouseEvent\>) =\> boolean \| void|-|
|
|
45
|
+
|onImageDoubleClick|双击图片回调|(index: number, e: MouseEvent\<HTMLDivElement, MouseEvent\>) =\> void|-|
|
|
46
|
+
|onImageLongTap|长按图片回调|(index: number, image: HTMLImageElement, e: TouchEvent) =\> void|-|
|
|
47
|
+
|onTouchStart|弹窗内容touchstart事件|(e: TouchEvent, index: number) =\> boolean \| void|-|
|
|
48
|
+
|onTouchMove|弹窗内容touchmove事件|(e: TouchEvent, index: number) =\> boolean \| void|-|
|
|
49
|
+
|onTouchEnd|弹窗内容touchend / touchcancel事件|(e: TouchEvent, index: number) =\> boolean \| void|-|
|
|
50
|
+
|animateDurationSlide|手动切换轮播滑块时,当手指释放后,动画的执行时间(ms)|number|300|
|
|
51
|
+
|showIndicator|是否展示轮播索引|boolean|true|
|
|
52
|
+
|hideSingleIndicator|children 只有一个时隐藏轮播索引|boolean|true|
|
|
53
|
+
|percentToChange|滑动切换距离阈值(宽度比例),范围为\[0, 1\],如果该属性和\`distanceToChange\`属性均设置,则实际计算结果更大的生效|number|0.3|
|
|
54
|
+
|distanceToChange|滑动切换距离阈值(固定px宽度),如果该属性和\`percentToChange\`属性均设置,则实际计算结果更大的生效|number|10|
|
|
55
|
+
|speedToChange|滑动切换速度阈值(手指从按下到抬起之间的滑动速度,单位为px/s),与滑动切换距离阈值同时设置时,满足其中一个即生效|number|200|
|
|
56
|
+
|swipeable|是否响应手势滑动|boolean|true|
|
|
57
|
+
|offsetBetween|前后两端露出距离,设置值时不能循环轮播|number \| \{ left?: number; right?: number; \}|0|
|
|
58
|
+
|renderExtra|在轮播图内部渲染额外元素,该元素不随轮播滑动,但处于手指可交互热区|(currentIndex: number) =\> ReactNode|-|
|
|
59
|
+
|
|
60
|
+
> 引用/Refs
|
|
61
|
+
|
|
62
|
+
|参数|描述|类型|
|
|
63
|
+
|----------|-------------|------|
|
|
64
|
+
|dom|最外层元素 DOM|HTMLDivElement|
|
|
65
|
+
|imageDoms|原生图片 DOM 列表|HTMLImageElement\[\]|
|
|
66
|
+
|
|
67
|
+
> 方法/Methods
|
|
68
|
+
|
|
69
|
+
|方法名|描述|类型|
|
|
70
|
+
|----------|-------------|------|
|
|
71
|
+
|open|打开图片预览|(config: ImagePreviewProps) =\> \{ close: () =\> void; update: (newConfig: ImagePreviewProps) =\> void; \}|
|
|
72
|
+
|
|
73
|
+
> PreviewImageProps
|
|
74
|
+
|
|
75
|
+
|参数|描述|类型|默认值|
|
|
76
|
+
|----------|-------------|------|------|
|
|
77
|
+
|src|图片地址|string|必填|
|
|
78
|
+
|fit|图片布局方式,preview\-y为宽度撑满高度溢出滚动,preview\-x为高度撑满宽度溢出滚动|"preview\-y" \| "preview\-x"|-|
|
|
79
|
+
|fallbackSrc|过渡图url|string|-|
|
|
80
|
+
|transitionEndDelay|过渡图到原图放大动效完成后,移除过渡图的延迟时间(ms),一般当原图过大时有调整需求|number|30|
|
|
81
|
+
|thumbPosition|缩略图填充方式(backgroundPosition),默认top center|string|-|
|
|
82
|
+
|extraNode|自定义DOM|ReactNode|-|
|
|
83
|
+
|
|
84
|
+
> GlobalContextParams
|
|
85
|
+
|
|
86
|
+
|参数|描述|类型|默认值|
|
|
87
|
+
|----------|-------------|------|------|
|
|
88
|
+
|prefixCls|组件类名前缀|string|"arco"|
|
|
89
|
+
|system|手动控制当前所在系统,传入后将直接使用传入的值,ssr场景需指定系统初始值时适用|"" \| "pc" \| "android" \| "ios"|""|
|
|
90
|
+
|useDarkMode|是否监听系统原生的暗黑模式变化(prefers\-color\-scheme: dark)以判断是否切为暗黑模式|boolean|false|
|
|
91
|
+
|isDarkMode|是否处于暗黑模式,指定后以指定的值为准|boolean|false|
|
|
92
|
+
|darkModeSelector|当处于暗黑模式时,body上挂载的类名,为空值时不挂载类名|string|"arco-theme-dark"|
|
|
93
|
+
|theme|主题变量,传入后将在线替换css变量,需设置less变量 @use\-css\-vars: 1|Record\<string, string\>|-|
|
|
94
|
+
|locale|国际化语言包配置|ILocale|-|
|
|
95
|
+
|useRtl|是否使用Rtl模式|boolean|false|
|
|
96
|
+
|onDarkModeChange|当系统原生暗黑模式发生变化时触发,useDarkMode=true 时有效|(isDark: boolean) =\> void|-|
|
|
97
|
+
|createRoot|React19 修改了 createRoot 的引入路径,导致组件内部无法直接引入(低react版本会找不到模块)。因此使用 react 19 的用户需从外部传入 createRoot 方法|CreateRootFnType|-|
|
|
98
|
+
|
|
99
|
+
> ILocale
|
|
100
|
+
|
|
101
|
+
|参数|描述|类型|
|
|
102
|
+
|----------|-------------|------|
|
|
103
|
+
|locale|语言类型|string|
|
|
104
|
+
|LoadMore|-|\{ loadMoreText: string; loadingText: string; noDataText: string; failLoadText: string; prepareScrollText: string; prepareClickText: string; \}|
|
|
105
|
+
|Picker|-|\{ okText: string; cancelText: string; \}|
|
|
106
|
+
|Tag|-|\{ addTag: string; \}|
|
|
107
|
+
|Dialog|-|\{ okText: string; cancelText: string; \}|
|
|
108
|
+
|SwipeLoad|-|\{ normalText: string; activeText: string; \}|
|
|
109
|
+
|PullRefresh|-|\{ loadingText: string; pullingText: string; finishText: string; loosingText: string; \}|
|
|
110
|
+
|DropdownMenu|-|\{ select: string; \}|
|
|
111
|
+
|Pagination|-|\{ previousPage: string; nextPage: string; \}|
|
|
112
|
+
|Image|-|\{ loadError: string; \}|
|
|
113
|
+
|ImagePicker|-|\{ loadError: string; \}|
|
|
114
|
+
|SearchBar|-|\{ placeholder: string; cancelBtn: string; \}|
|
|
115
|
+
|Stepper|-|\{ minusButtonName: string; addButtonName: string; \}|
|
|
116
|
+
|Keyboard|-|\{ confirm: string; \}|
|
|
117
|
+
|Form|-|\{ required: string; type: \{ email: string; url: string; string: string; number: string; array: string; object: string; boolean: string; \}; number: \{ min: string; max: string; equal: string; range: string; positive: string; negative: string; \}; \.\.\. 4 more \.\.\.; pickerDefaultHint: string; \}|
|
|
118
|
+
|NavBar|-|\{ backBtnAriaLabel: string; \}|
|
|
119
|
+
|Uploader|-|\{ uploadBtn: string; retryUpload: string; \}|
|