@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.
Files changed (191) hide show
  1. package/README.md +85 -0
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.js +244 -0
  4. package/metaData/components/action-sheet/doc.md +102 -0
  5. package/metaData/components/action-sheet/example/index.tsx +199 -0
  6. package/metaData/components/action-sheet/example/methods.tsx +6 -0
  7. package/metaData/components/avatar/doc.md +57 -0
  8. package/metaData/components/avatar/example/group.tsx +69 -0
  9. package/metaData/components/avatar/example/index.tsx +196 -0
  10. package/metaData/components/badge/doc.md +28 -0
  11. package/metaData/components/badge/example/index.tsx +128 -0
  12. package/metaData/components/button/doc.md +45 -0
  13. package/metaData/components/button/example/index.tsx +264 -0
  14. package/metaData/components/carousel/doc.md +89 -0
  15. package/metaData/components/carousel/example/index.tsx +1481 -0
  16. package/metaData/components/cell/doc.md +68 -0
  17. package/metaData/components/cell/example/arrow.tsx +13 -0
  18. package/metaData/components/cell/example/cell.tsx +71 -0
  19. package/metaData/components/cell/example/group.tsx +63 -0
  20. package/metaData/components/cell/example/index.tsx +19 -0
  21. package/metaData/components/checkbox/doc.md +91 -0
  22. package/metaData/components/checkbox/example/checkbox.tsx +158 -0
  23. package/metaData/components/checkbox/example/group.tsx +103 -0
  24. package/metaData/components/checkbox/example/index.tsx +25 -0
  25. package/metaData/components/circle-progress/doc.md +40 -0
  26. package/metaData/components/circle-progress/example/index.tsx +323 -0
  27. package/metaData/components/collapse/doc.md +74 -0
  28. package/metaData/components/collapse/example/collapse.tsx +183 -0
  29. package/metaData/components/collapse/example/group.tsx +136 -0
  30. package/metaData/components/collapse/example/index.tsx +16 -0
  31. package/metaData/components/collapse/example/utils.tsx +20 -0
  32. package/metaData/components/context-provider/doc.md +44 -0
  33. package/metaData/components/context-provider/example/index.tsx +208 -0
  34. package/metaData/components/count-down/doc.md +40 -0
  35. package/metaData/components/count-down/example/hooks.tsx +118 -0
  36. package/metaData/components/count-down/example/index.tsx +63 -0
  37. package/metaData/components/date-picker/doc.md +102 -0
  38. package/metaData/components/date-picker/example/index.tsx +545 -0
  39. package/metaData/components/dialog/doc.md +200 -0
  40. package/metaData/components/dialog/example/index.tsx +328 -0
  41. package/metaData/components/dialog/example/methods.tsx +56 -0
  42. package/metaData/components/divider/doc.md +25 -0
  43. package/metaData/components/divider/example/index.tsx +87 -0
  44. package/metaData/components/dropdown/doc.md +80 -0
  45. package/metaData/components/dropdown/example/dropdown.tsx +308 -0
  46. package/metaData/components/dropdown/example/index.tsx +19 -0
  47. package/metaData/components/dropdown/example/options.tsx +103 -0
  48. package/metaData/components/dropdown-menu/doc.md +91 -0
  49. package/metaData/components/dropdown-menu/example/dropdown-menu.tsx +270 -0
  50. package/metaData/components/dropdown-menu/example/index.tsx +16 -0
  51. package/metaData/components/ellipsis/doc.md +33 -0
  52. package/metaData/components/ellipsis/example/index.tsx +93 -0
  53. package/metaData/components/ellipsis/example/js-ellipsis.tsx +229 -0
  54. package/metaData/components/ellipsis/example/native-ellipsis.tsx +48 -0
  55. package/metaData/components/form/doc.md +90 -0
  56. package/metaData/components/form/example/form-item-context.tsx +8 -0
  57. package/metaData/components/form/example/form-item.tsx +378 -0
  58. package/metaData/components/form/example/index.tsx +87 -0
  59. package/metaData/components/form/example/linked-container.tsx +66 -0
  60. package/metaData/components/grid/doc.md +39 -0
  61. package/metaData/components/grid/example/index.tsx +252 -0
  62. package/metaData/components/icon/doc.md +15 -0
  63. package/metaData/components/icon/example/index.tsx +32 -0
  64. package/metaData/components/image/doc.md +62 -0
  65. package/metaData/components/image/example/index.tsx +528 -0
  66. package/metaData/components/image-picker/doc.md +116 -0
  67. package/metaData/components/image-picker/example/add-icon.tsx +14 -0
  68. package/metaData/components/image-picker/example/index.tsx +175 -0
  69. package/metaData/components/image-preview/doc.md +119 -0
  70. package/metaData/components/image-preview/example/index.tsx +1290 -0
  71. package/metaData/components/image-preview/example/methods.tsx +72 -0
  72. package/metaData/components/index-bar/doc.md +83 -0
  73. package/metaData/components/index-bar/example/group.tsx +93 -0
  74. package/metaData/components/index-bar/example/index.tsx +271 -0
  75. package/metaData/components/index-bar/example/side-bar.tsx +82 -0
  76. package/metaData/components/input/doc.md +60 -0
  77. package/metaData/components/input/example/hooks.tsx +259 -0
  78. package/metaData/components/input/example/index.tsx +134 -0
  79. package/metaData/components/input/example/props.tsx +183 -0
  80. package/metaData/components/keyboard/doc.md +73 -0
  81. package/metaData/components/keyboard/example/index.tsx +238 -0
  82. package/metaData/components/load-more/doc.md +48 -0
  83. package/metaData/components/load-more/example/index.tsx +395 -0
  84. package/metaData/components/loading/doc.md +34 -0
  85. package/metaData/components/loading/example/index.tsx +312 -0
  86. package/metaData/components/masking/doc.md +93 -0
  87. package/metaData/components/masking/example/index.tsx +410 -0
  88. package/metaData/components/masking/example/methods.tsx +88 -0
  89. package/metaData/components/nav-bar/doc.md +40 -0
  90. package/metaData/components/nav-bar/example/back-icon.tsx +28 -0
  91. package/metaData/components/nav-bar/example/index.tsx +305 -0
  92. package/metaData/components/notice-bar/doc.md +34 -0
  93. package/metaData/components/notice-bar/example/index.tsx +294 -0
  94. package/metaData/components/notify/doc.md +81 -0
  95. package/metaData/components/notify/example/index.tsx +171 -0
  96. package/metaData/components/notify/example/methods.tsx +83 -0
  97. package/metaData/components/pagination/doc.md +41 -0
  98. package/metaData/components/pagination/example/arrow.tsx +14 -0
  99. package/metaData/components/pagination/example/index.tsx +292 -0
  100. package/metaData/components/picker/doc.md +89 -0
  101. package/metaData/components/picker/example/index.tsx +217 -0
  102. package/metaData/components/picker-view/doc.md +57 -0
  103. package/metaData/components/picker-view/example/cascader.tsx +141 -0
  104. package/metaData/components/picker-view/example/index.tsx +297 -0
  105. package/metaData/components/picker-view/example/multi-picker.tsx +66 -0
  106. package/metaData/components/picker-view/example/picker-cell.tsx +416 -0
  107. package/metaData/components/popover/doc.md +144 -0
  108. package/metaData/components/popover/example/index.tsx +23 -0
  109. package/metaData/components/popover/example/menu.tsx +145 -0
  110. package/metaData/components/popover/example/popover-inner.tsx +147 -0
  111. package/metaData/components/popover/example/popover.tsx +268 -0
  112. package/metaData/components/popup/doc.md +101 -0
  113. package/metaData/components/popup/example/index.tsx +125 -0
  114. package/metaData/components/popup/example/methods.tsx +6 -0
  115. package/metaData/components/popup-swiper/doc.md +108 -0
  116. package/metaData/components/popup-swiper/example/index.tsx +332 -0
  117. package/metaData/components/popup-swiper/example/methods.tsx +6 -0
  118. package/metaData/components/portal/doc.md +14 -0
  119. package/metaData/components/portal/example/index.tsx +35 -0
  120. package/metaData/components/progress/doc.md +42 -0
  121. package/metaData/components/progress/example/index.tsx +256 -0
  122. package/metaData/components/pull-refresh/doc.md +37 -0
  123. package/metaData/components/pull-refresh/example/android-pull-refresh.tsx +260 -0
  124. package/metaData/components/pull-refresh/example/index.tsx +44 -0
  125. package/metaData/components/pull-refresh/example/ios-pull-refresh.tsx +216 -0
  126. package/metaData/components/radio/doc.md +89 -0
  127. package/metaData/components/radio/example/group.tsx +92 -0
  128. package/metaData/components/radio/example/index.tsx +25 -0
  129. package/metaData/components/radio/example/radio.tsx +22 -0
  130. package/metaData/components/rate/doc.md +33 -0
  131. package/metaData/components/rate/example/index.tsx +281 -0
  132. package/metaData/components/search-bar/doc.md +97 -0
  133. package/metaData/components/search-bar/example/association.tsx +89 -0
  134. package/metaData/components/search-bar/example/cancel-button.tsx +34 -0
  135. package/metaData/components/search-bar/example/highlight.tsx +66 -0
  136. package/metaData/components/search-bar/example/index.tsx +251 -0
  137. package/metaData/components/show-monitor/doc.md +34 -0
  138. package/metaData/components/show-monitor/example/index.tsx +646 -0
  139. package/metaData/components/skeleton/doc.md +101 -0
  140. package/metaData/components/skeleton/example/elements.tsx +290 -0
  141. package/metaData/components/skeleton/example/index.tsx +96 -0
  142. package/metaData/components/skeleton/example/skeleton-context.tsx +7 -0
  143. package/metaData/components/slider/doc.md +42 -0
  144. package/metaData/components/slider/example/index.tsx +326 -0
  145. package/metaData/components/slider/example/marks.tsx +50 -0
  146. package/metaData/components/slider/example/popover.tsx +38 -0
  147. package/metaData/components/slider/example/thumb.tsx +48 -0
  148. package/metaData/components/slider/example/useSliderIcon.tsx +38 -0
  149. package/metaData/components/slider/example/useSliderInit.tsx +170 -0
  150. package/metaData/components/stepper/doc.md +46 -0
  151. package/metaData/components/stepper/example/index.tsx +166 -0
  152. package/metaData/components/stepper/example/useButtonClick.tsx +74 -0
  153. package/metaData/components/stepper/example/useInputEvent.tsx +65 -0
  154. package/metaData/components/stepper/example/useValue.tsx +43 -0
  155. package/metaData/components/steps/doc.md +57 -0
  156. package/metaData/components/steps/example/index.tsx +123 -0
  157. package/metaData/components/steps/example/step.tsx +126 -0
  158. package/metaData/components/sticky/doc.md +45 -0
  159. package/metaData/components/sticky/example/index.tsx +430 -0
  160. package/metaData/components/swipe-action/doc.md +44 -0
  161. package/metaData/components/swipe-action/example/index.tsx +338 -0
  162. package/metaData/components/swipe-action/example/item.tsx +40 -0
  163. package/metaData/components/swipe-load/doc.md +43 -0
  164. package/metaData/components/swipe-load/example/index.tsx +339 -0
  165. package/metaData/components/swipe-load/example/type.tsx +153 -0
  166. package/metaData/components/switch/doc.md +38 -0
  167. package/metaData/components/switch/example/index.tsx +237 -0
  168. package/metaData/components/tab-bar/doc.md +57 -0
  169. package/metaData/components/tab-bar/example/index.tsx +18 -0
  170. package/metaData/components/tab-bar/example/item.tsx +74 -0
  171. package/metaData/components/tab-bar/example/tab-bar.tsx +105 -0
  172. package/metaData/components/tabs/doc.md +187 -0
  173. package/metaData/components/tabs/example/index.tsx +514 -0
  174. package/metaData/components/tabs/example/tab-cell-underline.tsx +320 -0
  175. package/metaData/components/tabs/example/tab-cell.tsx +433 -0
  176. package/metaData/components/tabs/example/tab-pane.tsx +349 -0
  177. package/metaData/components/tag/doc.md +80 -0
  178. package/metaData/components/tag/example/index.tsx +23 -0
  179. package/metaData/components/tag/example/list.tsx +97 -0
  180. package/metaData/components/tag/example/tag.tsx +85 -0
  181. package/metaData/components/textarea/doc.md +67 -0
  182. package/metaData/components/textarea/example/index.tsx +258 -0
  183. package/metaData/components/toast/doc.md +90 -0
  184. package/metaData/components/toast/example/index.tsx +335 -0
  185. package/metaData/components/toast/example/methods.tsx +87 -0
  186. package/metaData/components/transition/doc.md +19 -0
  187. package/metaData/components/transition/example/index.tsx +113 -0
  188. package/metaData/components/uploader/doc.md +82 -0
  189. package/metaData/components/uploader/example/index.tsx +208 -0
  190. package/metaData/components-index.json +242 -0
  191. 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; \}|