@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,54 @@
|
|
|
1
|
+
> 属性/Props
|
|
2
|
+
|
|
3
|
+
|参数|描述|类型|默认值|
|
|
4
|
+
|----------|-------------|------|------|
|
|
5
|
+
|style|自定义样式|CSSProperties|-|
|
|
6
|
+
|className|自定义类名|string|-|
|
|
7
|
+
|status|指定图片状态,staticLabel=false时有效|"loading" \| "loaded" \| "init" \| "error"|-|
|
|
8
|
+
|src|图片链接|string|必填|
|
|
9
|
+
|width|容器宽度,传数值,默认单位为px,传字符串则接受传入的单位|ReactText|-|
|
|
10
|
+
|height|容器高度,传数值,默认单位为px,传字符串则接受传入的单位|ReactText|-|
|
|
11
|
+
|alt|替代文本|string|""|
|
|
12
|
+
|fit|图片填充模式(object\-fit),传preview\-\*为预览模式,预览模式仅staticLabel=false时有效|"\-moz\-initial" \| "inherit" \| "initial" \| "revert" \| "revert\-layer" \| "unset" \| "contain" \| "cover" \| "fill" \| "none" \| "scale\-down" \| "preview\-y" \| "preview\-x"|"fill"|
|
|
13
|
+
|position|图片填充位置(object\-position)|ObjectPosition\<ReactText\>|"center"|
|
|
14
|
+
|radius|图片圆角|ReactText|-|
|
|
15
|
+
|bordered|是否加边框|boolean|-|
|
|
16
|
+
|loadingArea|自定义展示加载中内容|ReactNode|-|
|
|
17
|
+
|errorArea|自定义展示加载失败内容|ReactNode|-|
|
|
18
|
+
|showLoading|是否展示图片加载中提示|boolean|-|
|
|
19
|
+
|showError|是否展示图片加载失败提示|boolean|-|
|
|
20
|
+
|animateDuration|加载完时展现动画时长,staticLabel=false时有效|number|200|
|
|
21
|
+
|retryTime|失败时自动重试次数|number|0|
|
|
22
|
+
|forceHttps|是否强制使用https|boolean|-|
|
|
23
|
+
|boxWidth|预览模式下,父容器宽度|number|-|
|
|
24
|
+
|boxHeight|预览模式下,父容器高度|number|-|
|
|
25
|
+
|topOverlap|图片顶层内容|ReactNode|-|
|
|
26
|
+
|bottomOverlap|图片底层内容(placeholder),默认是灰色兜底,传null可移除|ReactNode|-|
|
|
27
|
+
|showImage|手动控制是否加载图片|boolean|-|
|
|
28
|
+
|staticLabel|是否直接渲染\<img\>标签,不走加载图片流程|boolean|-|
|
|
29
|
+
|nativeProps|img标签原生属性,优先级低于单独设置|DetailedHTMLProps\<ImgHTMLAttributes\<HTMLImageElement\>, HTMLImageElement\>|-|
|
|
30
|
+
|onChange|切换status时触发的回调|(status: string) =\> void|-|
|
|
31
|
+
|onClick|点击图片时触发的回调|(e: MouseEvent\<HTMLElement, MouseEvent\>) =\> void|-|
|
|
32
|
+
|onLoad|图片加载完毕时触发的回调|(e: Event, image: HTMLImageElement) =\> void|-|
|
|
33
|
+
|onError|图片加载失败时触发的回调,如果有自动重试则在重试最终失败后触发|(e: string \| Event) =\> void|-|
|
|
34
|
+
|onAutoRetry|图片加载失败时自动重试触发的回调|(e: string \| Event) =\> void|-|
|
|
35
|
+
|
|
36
|
+
> 引用/Refs
|
|
37
|
+
|
|
38
|
+
|参数|描述|类型|
|
|
39
|
+
|----------|-------------|------|
|
|
40
|
+
|dom|最外层元素 DOM|HTMLDivElement|
|
|
41
|
+
|image|原生图片元素 DOM|HTMLImageElement|
|
|
42
|
+
|retry|手动重试图片加载|() =\> void|
|
|
43
|
+
|
|
44
|
+
> ImageStatus
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
"loading" | "loaded" | "init" | "error"
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
> ObjectPosition
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
string | number | string & {}
|
|
54
|
+
```
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
@import '../../../style/mixin.less';
|
|
2
|
+
|
|
3
|
+
.@{prefix}-image {
|
|
4
|
+
display: inline-block;
|
|
5
|
+
position: relative;
|
|
6
|
+
|
|
7
|
+
&.preview {
|
|
8
|
+
transition: all 0.3s ease-in-out;
|
|
9
|
+
|
|
10
|
+
.image-container,
|
|
11
|
+
.image-loading-container .image-loading,
|
|
12
|
+
.image-error-container .image-retry-load {
|
|
13
|
+
background-color: transparent;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.image-container::after {
|
|
17
|
+
border-color: transparent;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.image-bottom-overlap,
|
|
22
|
+
.image-top-overlap {
|
|
23
|
+
position: absolute;
|
|
24
|
+
width: 100%;
|
|
25
|
+
height: 100%;
|
|
26
|
+
top: 0;
|
|
27
|
+
left: 0;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.image-bottom-overlap {
|
|
31
|
+
z-index: 0;
|
|
32
|
+
overflow: hidden;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.image-placeholder {
|
|
36
|
+
.use-var(background-color, image-placeholder-background);
|
|
37
|
+
width: 100%;
|
|
38
|
+
height: 100%;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.image-top-overlap {
|
|
42
|
+
z-index: 10;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.image-loading-container,
|
|
46
|
+
.image-error-container {
|
|
47
|
+
overflow: hidden;
|
|
48
|
+
position: absolute;
|
|
49
|
+
top: 0;
|
|
50
|
+
left: 0;
|
|
51
|
+
width: 100%;
|
|
52
|
+
height: 100%;
|
|
53
|
+
display: flex;
|
|
54
|
+
flex-direction: column;
|
|
55
|
+
align-items: center;
|
|
56
|
+
justify-content: center;
|
|
57
|
+
z-index: 2;
|
|
58
|
+
.use-var(font-size, image-inner-font-size);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.image-container {
|
|
62
|
+
position: relative;
|
|
63
|
+
font-size: 0;
|
|
64
|
+
opacity: 0;
|
|
65
|
+
z-index: 1;
|
|
66
|
+
overflow: hidden;
|
|
67
|
+
|
|
68
|
+
&.static-label,
|
|
69
|
+
&.loaded,
|
|
70
|
+
&.error,
|
|
71
|
+
&.has-loaded {
|
|
72
|
+
opacity: 1;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
&.animate {
|
|
76
|
+
transition-property: opacity;
|
|
77
|
+
.use-var(transition-timing-function, image-transition-function);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.bordered {
|
|
81
|
+
.hairline-var(line-color);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
&,
|
|
85
|
+
& img {
|
|
86
|
+
width: inherit;
|
|
87
|
+
height: inherit;
|
|
88
|
+
min-width: inherit;
|
|
89
|
+
min-height: inherit;
|
|
90
|
+
max-width: inherit;
|
|
91
|
+
max-height: inherit;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.preview-fit-contain-y {
|
|
95
|
+
width: 100%;
|
|
96
|
+
height: auto;
|
|
97
|
+
position: absolute;
|
|
98
|
+
top: 50%;
|
|
99
|
+
transform: translateY(-50%);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.preview-fit-contain-x {
|
|
103
|
+
height: 100%;
|
|
104
|
+
width: auto;
|
|
105
|
+
position: absolute;
|
|
106
|
+
left: 50%;
|
|
107
|
+
transform: translateX(-50%);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.image-error-container {
|
|
112
|
+
.image-retry-load {
|
|
113
|
+
position: absolute;
|
|
114
|
+
top: 0;
|
|
115
|
+
left: 0;
|
|
116
|
+
width: 100%;
|
|
117
|
+
height: 100%;
|
|
118
|
+
display: flex;
|
|
119
|
+
flex-direction: column;
|
|
120
|
+
justify-content: center;
|
|
121
|
+
align-items: center;
|
|
122
|
+
.use-var(background-color, image-mask-background);
|
|
123
|
+
.use-var(font-size, image-retry-font-size);
|
|
124
|
+
.use-var(color, image-retry-icon-color);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.image-loading-container {
|
|
129
|
+
.image-loading {
|
|
130
|
+
position: absolute;
|
|
131
|
+
top: 0;
|
|
132
|
+
left: 0;
|
|
133
|
+
width: 100%;
|
|
134
|
+
height: 100%;
|
|
135
|
+
display: flex;
|
|
136
|
+
flex-direction: column;
|
|
137
|
+
justify-content: center;
|
|
138
|
+
align-items: center;
|
|
139
|
+
.use-var(color, image-loading-icon-color);
|
|
140
|
+
.use-var(background-color, image-mask-background);
|
|
141
|
+
.set-loading-color-var(image-loading-icon-color);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
> 属性/Props
|
|
2
|
+
|
|
3
|
+
|参数|描述|类型|默认值|
|
|
4
|
+
|----------|-------------|------|------|
|
|
5
|
+
|className|自定义类名|string|-|
|
|
6
|
+
|style|自定义样式|CSSProperties|-|
|
|
7
|
+
|images|已选择图片列表|ImagePickItem\[\]|必填|
|
|
8
|
+
|accept|可以选择的文件类型|string|'image/*'|
|
|
9
|
+
|multiple|是否支持多选|boolean|-|
|
|
10
|
+
|capture|图片选取模式 Image selection mode \[capture MDN\](https://developer\.mozilla\.org/en\-US/docs/Web/HTML/Attributes/capture)|string \| boolean|-|
|
|
11
|
+
|columns|一行展示图片张数|number|3|
|
|
12
|
+
|gutter|格子间的间距|number|8|
|
|
13
|
+
|hideDelete|是否隐藏删除Icon|boolean|false|
|
|
14
|
+
|hideSelect|是否隐藏选择Icon|boolean|false|
|
|
15
|
+
|alwaysShowSelect|是否总是展示选择Icon,默认情况下当图片数量超出limit值时会自动隐藏选择Icon|boolean|false|
|
|
16
|
+
|disabled|禁用选择和删除图片|boolean|-|
|
|
17
|
+
|deleteIcon|自定义删除图标|ReactNode|-|
|
|
18
|
+
|selectIcon|自定义选择图标|ReactNode|-|
|
|
19
|
+
|imageProps|透传给图片的属性|Partial\<ImageProps\>|-|
|
|
20
|
+
|renderError|自定义上传失败展示|(index?: number) =\> ReactNode|-|
|
|
21
|
+
|renderLoading|自定义上传中展示|(index?: number) =\> ReactNode|-|
|
|
22
|
+
|onSelectClick|选图点击事件(同onUploadClick)|() =\> void|-|
|
|
23
|
+
|onUploadClick|选图点击事件|() =\> void|-|
|
|
24
|
+
|upload|上传方法|(file: ImagePickItem) =\> Promise\<ImagePickItem\>|-|
|
|
25
|
+
|onChange|已选文件列表发生变化|(fileList: ImagePickItem\[\]) =\> void|-|
|
|
26
|
+
|maxSize|文件大小限制,单位为K|number|-|
|
|
27
|
+
|onMaxSizeExceed|文件超过限制大小|(file: File) =\> void|-|
|
|
28
|
+
|limit|最多选择文件数,超出数量自动隐藏上传按钮,0表示不做限制|number|0|
|
|
29
|
+
|onLimitExceed|选择文件数超过限制|(files: File\[\]) =\> void|-|
|
|
30
|
+
|onDeleteClick|删除点击事件|(index: number) =\> void|-|
|
|
31
|
+
|selectAdapter|文件选择适配器|() =\> Promise\<SelectCallback\>|-|
|
|
32
|
+
|onClick|文件点击|(e: MouseEvent\<HTMLElement, MouseEvent\>, file: ImagePickItem, index: number) =\> void|-|
|
|
33
|
+
|onLongPress|文件长按事件|(e: TouchEvent\<HTMLElement\>, file: ImagePickItem, index: number) =\> void|-|
|
|
34
|
+
|
|
35
|
+
> 引用/Refs
|
|
36
|
+
|
|
37
|
+
|参数|描述|类型|
|
|
38
|
+
|----------|-------------|------|
|
|
39
|
+
|dom|最外层 DOM 元素|HTMLDivElement|
|
|
40
|
+
|
|
41
|
+
> ImagePickItem
|
|
42
|
+
|
|
43
|
+
|参数|描述|类型|默认值|
|
|
44
|
+
|----------|-------------|------|------|
|
|
45
|
+
|url|图片地址|string|必填|
|
|
46
|
+
|file|文件|File|-|
|
|
47
|
+
|status|文件状态|"loaded" \| "loading" \| "error"|以文件自身加载状态而定|
|
|
48
|
+
|
|
49
|
+
> ImageProps
|
|
50
|
+
|
|
51
|
+
|参数|描述|类型|默认值|
|
|
52
|
+
|----------|-------------|------|------|
|
|
53
|
+
|style|自定义样式|CSSProperties|-|
|
|
54
|
+
|className|自定义类名|string|-|
|
|
55
|
+
|status|指定图片状态,staticLabel=false时有效|"loaded" \| "loading" \| "error" \| "init"|-|
|
|
56
|
+
|src|图片链接|string|必填|
|
|
57
|
+
|width|容器宽度,传数值,默认单位为px,传字符串则接受传入的单位|ReactText|-|
|
|
58
|
+
|height|容器高度,传数值,默认单位为px,传字符串则接受传入的单位|ReactText|-|
|
|
59
|
+
|alt|替代文本|string|""|
|
|
60
|
+
|fit|图片填充模式(object\-fit),传preview\-\*为预览模式,预览模式仅staticLabel=false时有效|"\-moz\-initial" \| "inherit" \| "initial" \| "revert" \| "revert\-layer" \| "unset" \| "contain" \| "cover" \| "fill" \| "none" \| "scale\-down" \| "preview\-y" \| "preview\-x"|"fill"|
|
|
61
|
+
|position|图片填充位置(object\-position)|ObjectPosition\<ReactText\>|"center"|
|
|
62
|
+
|radius|图片圆角|ReactText|-|
|
|
63
|
+
|bordered|是否加边框|boolean|-|
|
|
64
|
+
|loadingArea|自定义展示加载中内容|ReactNode|-|
|
|
65
|
+
|errorArea|自定义展示加载失败内容|ReactNode|-|
|
|
66
|
+
|showLoading|是否展示图片加载中提示|boolean|-|
|
|
67
|
+
|showError|是否展示图片加载失败提示|boolean|-|
|
|
68
|
+
|animateDuration|加载完时展现动画时长,staticLabel=false时有效|number|200|
|
|
69
|
+
|retryTime|失败时自动重试次数|number|0|
|
|
70
|
+
|forceHttps|是否强制使用https|boolean|-|
|
|
71
|
+
|boxWidth|预览模式下,父容器宽度|number|-|
|
|
72
|
+
|boxHeight|预览模式下,父容器高度|number|-|
|
|
73
|
+
|topOverlap|图片顶层内容|ReactNode|-|
|
|
74
|
+
|bottomOverlap|图片底层内容(placeholder),默认是灰色兜底,传null可移除|ReactNode|-|
|
|
75
|
+
|showImage|手动控制是否加载图片|boolean|-|
|
|
76
|
+
|staticLabel|是否直接渲染\<img\>标签,不走加载图片流程|boolean|-|
|
|
77
|
+
|nativeProps|img标签原生属性,优先级低于单独设置|DetailedHTMLProps\<ImgHTMLAttributes\<HTMLImageElement\>, HTMLImageElement\>|-|
|
|
78
|
+
|onChange|切换status时触发的回调|(status: string) =\> void|-|
|
|
79
|
+
|onClick|点击图片时触发的回调|(e: MouseEvent\<HTMLElement, MouseEvent\>) =\> void|-|
|
|
80
|
+
|onLoad|图片加载完毕时触发的回调|(e: Event, image: HTMLImageElement) =\> void|-|
|
|
81
|
+
|onError|图片加载失败时触发的回调,如果有自动重试则在重试最终失败后触发|(e: string \| Event) =\> void|-|
|
|
82
|
+
|onAutoRetry|图片加载失败时自动重试触发的回调|(e: string \| Event) =\> void|-|
|
|
83
|
+
|
|
84
|
+
> ImageStatus
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
"loaded" | "loading" | "error" | "init"
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
> ObjectPosition
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
string | number | string & {}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
> SelectCallback
|
|
97
|
+
|
|
98
|
+
|参数|描述|类型|
|
|
99
|
+
|----------|-------------|------|
|
|
100
|
+
|files|文件列表|AdapterFile\[\]|
|
|
101
|
+
|
|
102
|
+
> AdapterFile
|
|
103
|
+
|
|
104
|
+
|参数|描述|类型|
|
|
105
|
+
|----------|-------------|------|
|
|
106
|
+
|url|文件 url|string|
|
|
107
|
+
|size|文件大小|number|
|
|
108
|
+
|name|文件名|string|
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
@import '../../../style/mixin.less';
|
|
2
|
+
|
|
3
|
+
.@{prefix}-image-picker {
|
|
4
|
+
.use-var(font-size, image-picker-font-size);
|
|
5
|
+
&-container {
|
|
6
|
+
display: flex;
|
|
7
|
+
flex-wrap: wrap;
|
|
8
|
+
}
|
|
9
|
+
.container() {
|
|
10
|
+
position: absolute;
|
|
11
|
+
top: 0;
|
|
12
|
+
width: 100%;
|
|
13
|
+
height: 100%;
|
|
14
|
+
left: 0;
|
|
15
|
+
}
|
|
16
|
+
&-image {
|
|
17
|
+
position: relative;
|
|
18
|
+
width: 100%;
|
|
19
|
+
display: flex;
|
|
20
|
+
align-items: center;
|
|
21
|
+
justify-content: center;
|
|
22
|
+
padding-top: 100%;
|
|
23
|
+
.use-var(border-radius, image-picker-border-radius);
|
|
24
|
+
overflow: hidden;
|
|
25
|
+
&-container {
|
|
26
|
+
.container()
|
|
27
|
+
}
|
|
28
|
+
.@{prefix}-image {
|
|
29
|
+
height: 100%;
|
|
30
|
+
width: 100%;
|
|
31
|
+
}
|
|
32
|
+
&-mask {
|
|
33
|
+
position: absolute;
|
|
34
|
+
left: 0;
|
|
35
|
+
top: 0;
|
|
36
|
+
width: 100%;
|
|
37
|
+
height: 100%;
|
|
38
|
+
z-index: 2;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
&-add {
|
|
42
|
+
.use-var(background-color, image-picker-add-background);
|
|
43
|
+
.use-var(border-radius, image-picker-border-radius);
|
|
44
|
+
position: relative;
|
|
45
|
+
width: 100%;
|
|
46
|
+
height: 100%;
|
|
47
|
+
padding-top: 100%;
|
|
48
|
+
&-container {
|
|
49
|
+
.container();
|
|
50
|
+
display: flex;
|
|
51
|
+
flex-direction: column;
|
|
52
|
+
justify-content: center;
|
|
53
|
+
align-items: center;
|
|
54
|
+
text-align: center;
|
|
55
|
+
.use-var(font-size, image-picker-add-text-font-size);
|
|
56
|
+
.use-var(color, image-picker-add-text-color);
|
|
57
|
+
}
|
|
58
|
+
&-icon {
|
|
59
|
+
.use-var(font-size, image-picker-add-icon-font-size);
|
|
60
|
+
.use-var(color, image-picker-add-icon-color);
|
|
61
|
+
svg {
|
|
62
|
+
display: block;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
&-disabled {
|
|
66
|
+
pointer-events: none;
|
|
67
|
+
}
|
|
68
|
+
&-disabled &-icon {
|
|
69
|
+
.use-var(opacity, image-picker-disabled-opacity);
|
|
70
|
+
}
|
|
71
|
+
input {
|
|
72
|
+
position: absolute;
|
|
73
|
+
opacity: 0;
|
|
74
|
+
left: 0;
|
|
75
|
+
top: 0;
|
|
76
|
+
width: 100%;
|
|
77
|
+
height: 100%;
|
|
78
|
+
display: none;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
&-close {
|
|
82
|
+
position: absolute;
|
|
83
|
+
top: 0;
|
|
84
|
+
right: 0;
|
|
85
|
+
z-index: 2;
|
|
86
|
+
&-icon {
|
|
87
|
+
display: flex;
|
|
88
|
+
align-items: center;
|
|
89
|
+
justify-content: center;
|
|
90
|
+
.use-var(font-size, image-picker-close-font-size);
|
|
91
|
+
.use-var(width, image-picker-close-width);
|
|
92
|
+
.use-var(height, image-picker-close-height);
|
|
93
|
+
.use-var(color, image-picker-close-color);
|
|
94
|
+
.use-var(background, image-picker-close-background);
|
|
95
|
+
.use-var(border-radius, image-picker-close-border-radius);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
&-error {
|
|
99
|
+
position: absolute;
|
|
100
|
+
top: 0;
|
|
101
|
+
left: 0;
|
|
102
|
+
width: 100%;
|
|
103
|
+
height: 100%;
|
|
104
|
+
display: flex;
|
|
105
|
+
flex-direction: column;
|
|
106
|
+
justify-content: center;
|
|
107
|
+
align-items: center;
|
|
108
|
+
.use-var(background, image-picker-error-background);
|
|
109
|
+
.use-var(color, image-picker-error-color);
|
|
110
|
+
.use-var(font-size, image-picker-font-size);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.@{prefix}-image-picker-disabled {
|
|
115
|
+
pointer-events: none;
|
|
116
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
> 属性/Props
|
|
2
|
+
|
|
3
|
+
|参数|描述|类型|默认值|
|
|
4
|
+
|----------|-------------|------|------|
|
|
5
|
+
|style|自定义样式|CSSProperties|-|
|
|
6
|
+
|className|自定义类名|string|-|
|
|
7
|
+
|images|图片信息数组|PreviewImageProps\[\]|必填|
|
|
8
|
+
|openIndex|打开时展示的index,在images范围内会展示弹窗,否则隐藏弹窗|number|必填|
|
|
9
|
+
|loop|是否可循环滑动|boolean|false|
|
|
10
|
+
|fit|图片布局方式,preview\-y为宽度撑满高度溢出滚动,preview\-x为高度撑满宽度溢出滚动|"preview\-y" \| "preview\-x"|"preview-y"|
|
|
11
|
+
|displayDuration|打开和关闭时的过渡动画|number|300|
|
|
12
|
+
|replaceFallbackWhenLoaded|是否在原图加载完成后将过渡图动画替换为原图动画|boolean|-|
|
|
13
|
+
|noselect|图片不可选中,屏蔽系统默认事件|boolean|true|
|
|
14
|
+
|spaceBetween|图片横向间距|number|-|
|
|
15
|
+
|loadingArea|自定义展示加载中内容|ReactNode|-|
|
|
16
|
+
|errorArea|自定义展示加载失败内容|ReactNode|-|
|
|
17
|
+
|showLoading|是否展示图片加载中提示|boolean|true|
|
|
18
|
+
|showError|是否展示图片加载失败提示|boolean|true|
|
|
19
|
+
|retryTime|失败时自动重试次数|number|-|
|
|
20
|
+
|staticLabel|是否直接渲染\<img\>标签,不走加载图片流程|boolean|-|
|
|
21
|
+
|scrollBezier|长图滚动变化曲线|\[number, number, number, number\]|-|
|
|
22
|
+
|lazyloadCount|只加载当前页相邻的n个内容,为0时会销毁所有相邻内容|number|1|
|
|
23
|
+
|swipeToClose|当图片滚动到边缘时,继续滑动是否关闭预览|boolean|true|
|
|
24
|
+
|indicatorPos|轮播索引位置|"start" \| "center" \| "end"|"start"|
|
|
25
|
+
|extra|渲染自定义元素,如自定义关闭按钮|ReactNode|-|
|
|
26
|
+
|getMinScale|图片捏合时最小缩放倍数,松手后仍会恢复到1的状态,默认为0\.7|(image: HTMLImageElement, imageIndex: number) =\> number|-|
|
|
27
|
+
|getMaxScale|图片最大缩放倍数,默认根据图片尺寸调节|(image: HTMLImageElement, imageIndex: number) =\> number|-|
|
|
28
|
+
|getDoubleClickScale|当双击图片时,图片应缩放的倍数|(currentScale: number, maxScale: number, image: HTMLImageElement, imageIndex: number) =\> number|-|
|
|
29
|
+
|getContainer|获取挂载容器|() =\> HTMLElement|-|
|
|
30
|
+
|renderIndicator|自定义索引内容|(currentIndex: number, total: number, lastIndex: number) =\> ReactNode|-|
|
|
31
|
+
|getThumbBounds|获取缩略图定位|(index: number) =\> ClientRect|-|
|
|
32
|
+
|onChange|索引发生改变时回调|(index: number) =\> void|-|
|
|
33
|
+
|onAfterChange|索引切换,动画完成后触发|(index: number) =\> void|-|
|
|
34
|
+
|close|关闭弹窗|(e: MouseEvent\<HTMLDivElement, MouseEvent\> \| TouchEvent) =\> void|必填|
|
|
35
|
+
|onClose|关闭弹窗回调(动画执行完成后)|() =\> void|-|
|
|
36
|
+
|onImageClick|点击图片回调,如果返回true则阻止关闭弹窗|(index: number, e: MouseEvent\<HTMLDivElement, MouseEvent\>) =\> boolean \| void|-|
|
|
37
|
+
|onImageDoubleClick|双击图片回调|(index: number, e: MouseEvent\<HTMLDivElement, MouseEvent\>) =\> void|-|
|
|
38
|
+
|onImageLongTap|长按图片回调|(index: number, image: HTMLImageElement, e: TouchEvent) =\> void|-|
|
|
39
|
+
|onTouchStart|弹窗内容touchstart事件|(e: TouchEvent, index: number) =\> boolean \| void|-|
|
|
40
|
+
|onTouchMove|弹窗内容touchmove事件|(e: TouchEvent, index: number) =\> boolean \| void|-|
|
|
41
|
+
|onTouchEnd|弹窗内容touchend / touchcancel事件|(e: TouchEvent, index: number) =\> boolean \| void|-|
|
|
42
|
+
|animateDurationSlide|手动切换轮播滑块时,当手指释放后,动画的执行时间(ms)|number|300|
|
|
43
|
+
|showIndicator|是否展示轮播索引|boolean|true|
|
|
44
|
+
|hideSingleIndicator|children 只有一个时隐藏轮播索引|boolean|true|
|
|
45
|
+
|percentToChange|滑动切换距离阈值(宽度比例),范围为\[0, 1\],如果该属性和\`distanceToChange\`属性均设置,则实际计算结果更大的生效|number|0.3|
|
|
46
|
+
|distanceToChange|滑动切换距离阈值(固定px宽度),如果该属性和\`percentToChange\`属性均设置,则实际计算结果更大的生效|number|10|
|
|
47
|
+
|speedToChange|滑动切换速度阈值(手指从按下到抬起之间的滑动速度,单位为px/s),与滑动切换距离阈值同时设置时,满足其中一个即生效|number|200|
|
|
48
|
+
|swipeable|是否响应手势滑动|boolean|true|
|
|
49
|
+
|offsetBetween|前后两端露出距离,设置值时不能循环轮播|number \| \{ left?: number; right?: number; \}|0|
|
|
50
|
+
|renderExtra|在轮播图内部渲染额外元素,该元素不随轮播滑动,但处于手指可交互热区|(currentIndex: number) =\> ReactNode|-|
|
|
51
|
+
|
|
52
|
+
> 引用/Refs
|
|
53
|
+
|
|
54
|
+
|参数|描述|类型|
|
|
55
|
+
|----------|-------------|------|
|
|
56
|
+
|dom|最外层元素 DOM|HTMLDivElement|
|
|
57
|
+
|imageDoms|原生图片 DOM 列表|HTMLImageElement\[\]|
|
|
58
|
+
|
|
59
|
+
> 方法/Methods
|
|
60
|
+
|
|
61
|
+
|方法名|描述|类型|
|
|
62
|
+
|----------|-------------|------|
|
|
63
|
+
|open|打开图片预览|(config: ImagePreviewProps) =\> \{ close: () =\> void; update: (newConfig: ImagePreviewProps) =\> void; \}|
|
|
64
|
+
|
|
65
|
+
> PreviewImageProps
|
|
66
|
+
|
|
67
|
+
|参数|描述|类型|默认值|
|
|
68
|
+
|----------|-------------|------|------|
|
|
69
|
+
|src|图片地址|string|必填|
|
|
70
|
+
|fit|图片布局方式,preview\-y为宽度撑满高度溢出滚动,preview\-x为高度撑满宽度溢出滚动|"preview\-y" \| "preview\-x"|-|
|
|
71
|
+
|fallbackSrc|过渡图url|string|-|
|
|
72
|
+
|transitionEndDelay|过渡图到原图放大动效完成后,移除过渡图的延迟时间(ms),一般当原图过大时有调整需求|number|30|
|
|
73
|
+
|thumbPosition|缩略图填充方式(backgroundPosition),默认top center|string|-|
|
|
74
|
+
|extraNode|自定义DOM|ReactNode|-|
|
|
75
|
+
|
|
76
|
+
> GlobalContextParams
|
|
77
|
+
|
|
78
|
+
|参数|描述|类型|默认值|
|
|
79
|
+
|----------|-------------|------|------|
|
|
80
|
+
|prefixCls|组件类名前缀|string|"arco"|
|
|
81
|
+
|system|手动控制当前所在系统,传入后将直接使用传入的值,ssr场景需指定系统初始值时适用|"" \| "pc" \| "android" \| "ios"|""|
|
|
82
|
+
|useDarkMode|是否监听系统原生的暗黑模式变化(prefers\-color\-scheme: dark)以判断是否切为暗黑模式|boolean|false|
|
|
83
|
+
|isDarkMode|是否处于暗黑模式,指定后以指定的值为准|boolean|false|
|
|
84
|
+
|darkModeSelector|当处于暗黑模式时,body上挂载的类名,为空值时不挂载类名|string|"arco-theme-dark"|
|
|
85
|
+
|theme|主题变量,传入后将在线替换css变量,需设置less变量 @use\-css\-vars: 1|Record\<string, string\>|-|
|
|
86
|
+
|locale|国际化语言包配置|ILocale|-|
|
|
87
|
+
|useRtl|是否使用Rtl模式|boolean|false|
|
|
88
|
+
|onDarkModeChange|当系统原生暗黑模式发生变化时触发,useDarkMode=true 时有效|(isDark: boolean) =\> void|-|
|
|
89
|
+
|createRoot|React19 修改了 createRoot 的引入路径,导致组件内部无法直接引入(低react版本会找不到模块)。因此使用 react 19 的用户需从外部传入 createRoot 方法|CreateRootFnType|-|
|
|
90
|
+
|
|
91
|
+
> ILocale
|
|
92
|
+
|
|
93
|
+
|参数|描述|类型|
|
|
94
|
+
|----------|-------------|------|
|
|
95
|
+
|locale|语言类型|string|
|
|
96
|
+
|LoadMore|-|\{ loadMoreText: string; loadingText: string; noDataText: string; failLoadText: string; prepareScrollText: string; prepareClickText: string; \}|
|
|
97
|
+
|Picker|-|\{ okText: string; cancelText: string; \}|
|
|
98
|
+
|Tag|-|\{ addTag: string; \}|
|
|
99
|
+
|Dialog|-|\{ okText: string; cancelText: string; \}|
|
|
100
|
+
|SwipeLoad|-|\{ normalText: string; activeText: string; \}|
|
|
101
|
+
|PullRefresh|-|\{ loadingText: string; pullingText: string; finishText: string; loosingText: string; \}|
|
|
102
|
+
|DropdownMenu|-|\{ select: string; \}|
|
|
103
|
+
|Pagination|-|\{ previousPage: string; nextPage: string; \}|
|
|
104
|
+
|Image|-|\{ loadError: string; \}|
|
|
105
|
+
|ImagePicker|-|\{ loadError: string; \}|
|
|
106
|
+
|SearchBar|-|\{ placeholder: string; cancelBtn: string; \}|
|
|
107
|
+
|Stepper|-|\{ minusButtonName: string; addButtonName: string; \}|
|
|
108
|
+
|Keyboard|-|\{ confirm: string; \}|
|
|
109
|
+
|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; \}|
|
|
110
|
+
|NavBar|-|\{ backBtnAriaLabel: string; \}|
|
|
111
|
+
|Uploader|-|\{ uploadBtn: string; retryUpload: string; \}|
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
@import "../../../style/mixin.less";
|
|
2
|
+
|
|
3
|
+
.@{prefix}-image-preview,
|
|
4
|
+
.image-preview-lock-modal {
|
|
5
|
+
.full-screen();
|
|
6
|
+
z-index: @full-screen-z-index;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.image-preview-lock-modal {
|
|
10
|
+
transform: translateZ(2PX);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.@{prefix}-image-preview {
|
|
14
|
+
.use-var(background, image-preview-mask-background);
|
|
15
|
+
|
|
16
|
+
&.noselect {
|
|
17
|
+
-webkit-touch-callout: none;
|
|
18
|
+
.noselect();
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.preview-image-wrap-container, .preview-image-wrap {
|
|
22
|
+
width: 100%;
|
|
23
|
+
height: 100%;
|
|
24
|
+
}
|
|
25
|
+
.@{prefix}-carousel-wrap,
|
|
26
|
+
.@{prefix}-carousel,
|
|
27
|
+
.@{prefix}-carousel-inner {
|
|
28
|
+
height: 100%;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.carousel-item {
|
|
32
|
+
overflow: hidden;
|
|
33
|
+
|
|
34
|
+
&::-webkit-scrollbar {
|
|
35
|
+
display: none;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.preview-image {
|
|
40
|
+
width: 100%;
|
|
41
|
+
height: 100%;
|
|
42
|
+
will-change: transform;
|
|
43
|
+
|
|
44
|
+
.image-container {
|
|
45
|
+
overflow: visible;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
&.preview-hidden {
|
|
49
|
+
pointer-events: none;
|
|
50
|
+
|
|
51
|
+
.image-container {
|
|
52
|
+
visibility: hidden;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.image-bottom-overlap {
|
|
57
|
+
overflow: visible;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.image-preview-indicator {
|
|
63
|
+
width: 100%;
|
|
64
|
+
left: 0;
|
|
65
|
+
bottom: 0;
|
|
66
|
+
z-index: @full-screen-z-index + 3;
|
|
67
|
+
position: fixed;
|
|
68
|
+
box-sizing: border-box;
|
|
69
|
+
.use-var(font-size, image-preview-indicator-font-size);
|
|
70
|
+
.use-var(color, mask-content-color);
|
|
71
|
+
.use-var(padding, image-preview-indicator-padding);
|
|
72
|
+
.use-var(background, image-preview-indicator-background);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.image-preview-fake-rect {
|
|
76
|
+
.full-screen();
|
|
77
|
+
opacity: 0;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.@{prefix}-image-preview .image-container img.closing-animation,
|
|
81
|
+
.image-preview-fake-trans-image {
|
|
82
|
+
position: fixed;
|
|
83
|
+
left: 0;
|
|
84
|
+
top: 0;
|
|
85
|
+
object-fit: cover;
|
|
86
|
+
.use-var(transition, image-preview-thumb-transition);
|
|
87
|
+
will-change: transform;
|
|
88
|
+
pointer-events: none;
|
|
89
|
+
height: auto !important;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.image-preview-loading-area {
|
|
93
|
+
.full-screen();
|
|
94
|
+
z-index: @full-screen-z-index + 10;
|
|
95
|
+
display: flex;
|
|
96
|
+
align-items: center;
|
|
97
|
+
justify-content: center;
|
|
98
|
+
pointer-events: none;
|
|
99
|
+
|
|
100
|
+
.loading-icon {
|
|
101
|
+
.set-loading-color-var(mask-content-color);
|
|
102
|
+
}
|
|
103
|
+
}
|