@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,252 @@
|
|
|
1
|
+
import React, { useRef, forwardRef, Ref, useImperativeHandle, ReactNode, useContext } from 'react';
|
|
2
|
+
import { cls } from '@arco-design/mobile-utils';
|
|
3
|
+
import { ContextLayout, GlobalContext } from '../context-provider';
|
|
4
|
+
|
|
5
|
+
export interface GridProps {
|
|
6
|
+
/**
|
|
7
|
+
* 自定义类名
|
|
8
|
+
* @en Custom classname
|
|
9
|
+
*/
|
|
10
|
+
className?: string;
|
|
11
|
+
/**
|
|
12
|
+
* 自定义样式
|
|
13
|
+
* @en Custom stylesheet
|
|
14
|
+
*/
|
|
15
|
+
style?: React.CSSProperties;
|
|
16
|
+
/**
|
|
17
|
+
* 传入的数据
|
|
18
|
+
* @en grid data
|
|
19
|
+
* */
|
|
20
|
+
data: GridData[];
|
|
21
|
+
/**
|
|
22
|
+
* 一行的列数
|
|
23
|
+
* @en number of columns
|
|
24
|
+
* @default 3
|
|
25
|
+
*/
|
|
26
|
+
columns?: number;
|
|
27
|
+
/**
|
|
28
|
+
* 是否有边框
|
|
29
|
+
* @en Whether there is a border
|
|
30
|
+
* @default false
|
|
31
|
+
*/
|
|
32
|
+
border?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* 格子间的间距
|
|
35
|
+
* @en spacing between grids
|
|
36
|
+
* @default 0
|
|
37
|
+
*/
|
|
38
|
+
gutter?: number | { x: number; y: number };
|
|
39
|
+
/**
|
|
40
|
+
* 格子的形状,可选值为 circle
|
|
41
|
+
* @en The shape of the grid, the optional value are circle and square
|
|
42
|
+
* @default "square"
|
|
43
|
+
*/
|
|
44
|
+
shape?: string;
|
|
45
|
+
/**
|
|
46
|
+
* 溢出时是否支持滑动
|
|
47
|
+
* @en Whether to support swipe when overflowing
|
|
48
|
+
* @default false
|
|
49
|
+
*/
|
|
50
|
+
isSliding?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* 格子内容排列的方向,可选值为 horizontal
|
|
53
|
+
* @en The direction in which the grid content is arranged, the optional value are horizontal and vertical
|
|
54
|
+
* @default "vertical"
|
|
55
|
+
*/
|
|
56
|
+
direction?: string;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export interface GridData {
|
|
60
|
+
/**
|
|
61
|
+
* 传入图标的资源地址
|
|
62
|
+
* @en The resource address of the input icon
|
|
63
|
+
* */
|
|
64
|
+
img: string | ReactNode;
|
|
65
|
+
/**
|
|
66
|
+
* 传入的标题文字内容
|
|
67
|
+
* @en Title text content
|
|
68
|
+
* */
|
|
69
|
+
title: ReactNode;
|
|
70
|
+
/**
|
|
71
|
+
* 传入的描述文字内容
|
|
72
|
+
* @en Description text
|
|
73
|
+
* */
|
|
74
|
+
content?: ReactNode;
|
|
75
|
+
/**
|
|
76
|
+
* 自定义样式
|
|
77
|
+
* @en Custom classname
|
|
78
|
+
* */
|
|
79
|
+
className?: string;
|
|
80
|
+
/**
|
|
81
|
+
* 点击后的回调函数
|
|
82
|
+
* @en Callback when clicking
|
|
83
|
+
* */
|
|
84
|
+
onClick?: (item: GridData) => void;
|
|
85
|
+
/**
|
|
86
|
+
* 每个格子自定义样式
|
|
87
|
+
* @en Custom style for each grid
|
|
88
|
+
* */
|
|
89
|
+
itemStyle?: React.CSSProperties;
|
|
90
|
+
/**
|
|
91
|
+
* 自定义单个 grid 的创建函数
|
|
92
|
+
* @en Customize the creation function of a single grid
|
|
93
|
+
* */
|
|
94
|
+
renderGrid?: (item: GridData, colIndex: number, rowIndex: number) => ReactNode;
|
|
95
|
+
[x: string]: any;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export interface GridRef {
|
|
99
|
+
/**
|
|
100
|
+
* 最外层元素 DOM
|
|
101
|
+
* @en The outermost element DOM
|
|
102
|
+
*/
|
|
103
|
+
dom: HTMLDivElement | null;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* 宫格可以在水平方向上把页面分隔成等宽度的区块,用于展示内容或进行页面导航。
|
|
108
|
+
* @en The grid can divide the page into equal-width blocks in the horizontal direction for displaying content or for page navigation.
|
|
109
|
+
* @type 布局
|
|
110
|
+
* @type_en Layout
|
|
111
|
+
* @name 宫格
|
|
112
|
+
* @name_en Grid
|
|
113
|
+
*/
|
|
114
|
+
const Grid = forwardRef((props: GridProps, ref: Ref<GridRef>) => {
|
|
115
|
+
const {
|
|
116
|
+
className = '',
|
|
117
|
+
style,
|
|
118
|
+
data,
|
|
119
|
+
columns = 3,
|
|
120
|
+
border = false,
|
|
121
|
+
gutter = 0,
|
|
122
|
+
shape = 'square',
|
|
123
|
+
direction = 'vertical',
|
|
124
|
+
isSliding = false,
|
|
125
|
+
} = props;
|
|
126
|
+
const { useRtl } = useContext(GlobalContext);
|
|
127
|
+
const domRef = useRef<HTMLDivElement | null>(null);
|
|
128
|
+
|
|
129
|
+
useImperativeHandle(ref, () => ({
|
|
130
|
+
dom: domRef.current,
|
|
131
|
+
}));
|
|
132
|
+
|
|
133
|
+
const getRows = (prefix: string, rowsData: GridData[], rows: number, row: number) => {
|
|
134
|
+
const placeholders = !isSliding && rowsData.length % columns;
|
|
135
|
+
let renderData = rowsData;
|
|
136
|
+
if (placeholders) {
|
|
137
|
+
const fakeGrids = (new Array(columns - placeholders) as GridData[]).fill({
|
|
138
|
+
img: null,
|
|
139
|
+
title: '',
|
|
140
|
+
});
|
|
141
|
+
renderData = rowsData.concat(fakeGrids);
|
|
142
|
+
}
|
|
143
|
+
return (
|
|
144
|
+
<div className={`${prefix}-rows`} key={row}>
|
|
145
|
+
{renderData.map((item: GridData, index: number) => {
|
|
146
|
+
const {
|
|
147
|
+
img,
|
|
148
|
+
title,
|
|
149
|
+
content,
|
|
150
|
+
className: itemClassName,
|
|
151
|
+
onClick,
|
|
152
|
+
itemStyle,
|
|
153
|
+
renderGrid,
|
|
154
|
+
} = item;
|
|
155
|
+
if (renderGrid) {
|
|
156
|
+
return renderGrid(item, index, row);
|
|
157
|
+
}
|
|
158
|
+
const marginBottom =
|
|
159
|
+
row + 1 === rows ? 0 : typeof gutter === 'number' ? gutter : gutter?.y || 0;
|
|
160
|
+
const rowLen = renderData.length;
|
|
161
|
+
const marginValue =
|
|
162
|
+
index + 1 === rowLen
|
|
163
|
+
? 0
|
|
164
|
+
: typeof gutter === 'number'
|
|
165
|
+
? gutter
|
|
166
|
+
: gutter?.x || 0;
|
|
167
|
+
const marginStyle = {
|
|
168
|
+
[useRtl ? 'marginLeft' : 'marginRight']: marginValue,
|
|
169
|
+
};
|
|
170
|
+
return (
|
|
171
|
+
<div
|
|
172
|
+
key={index}
|
|
173
|
+
style={{ marginBottom, ...marginStyle, ...itemStyle }}
|
|
174
|
+
onClick={() => {
|
|
175
|
+
onClick && onClick(item);
|
|
176
|
+
}}
|
|
177
|
+
className={cls(
|
|
178
|
+
`${prefix}-rows-item`,
|
|
179
|
+
{
|
|
180
|
+
horizontal: direction === 'horizontal',
|
|
181
|
+
border: border && gutter === 0,
|
|
182
|
+
},
|
|
183
|
+
itemClassName,
|
|
184
|
+
)}
|
|
185
|
+
>
|
|
186
|
+
{typeof img === 'string' ? (
|
|
187
|
+
<img
|
|
188
|
+
src={img}
|
|
189
|
+
className={`${prefix}-rows-item-icon ${
|
|
190
|
+
shape === 'circle' ? 'circle' : ''
|
|
191
|
+
}`}
|
|
192
|
+
/>
|
|
193
|
+
) : (
|
|
194
|
+
img
|
|
195
|
+
)}
|
|
196
|
+
{title || content ? (
|
|
197
|
+
<div className={`${prefix}-rows-item-text`}>
|
|
198
|
+
{title ? (
|
|
199
|
+
<span className={`${prefix}-rows-item-title`}>{title}</span>
|
|
200
|
+
) : null}
|
|
201
|
+
{content ? (
|
|
202
|
+
<span className={`${prefix}-rows-item-content`}>
|
|
203
|
+
{content}
|
|
204
|
+
</span>
|
|
205
|
+
) : null}
|
|
206
|
+
</div>
|
|
207
|
+
) : null}
|
|
208
|
+
{(index + 1) % columns !== 0 ? <i className="vertical-border" /> : null}
|
|
209
|
+
{(row + 1) % rows !== 0 ? <i className="horizontal-border" /> : null}
|
|
210
|
+
</div>
|
|
211
|
+
);
|
|
212
|
+
})}
|
|
213
|
+
</div>
|
|
214
|
+
);
|
|
215
|
+
};
|
|
216
|
+
|
|
217
|
+
const getGrid = (prefix: string, dataArr: Array<Array<GridData>>): React.ReactNode => {
|
|
218
|
+
const rows = dataArr.length || 1;
|
|
219
|
+
return (
|
|
220
|
+
<>
|
|
221
|
+
{dataArr.map((item: GridData[], index: number) => {
|
|
222
|
+
return getRows(prefix, item, rows, index);
|
|
223
|
+
})}
|
|
224
|
+
</>
|
|
225
|
+
);
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
const renderEl = ({ prefixCls }) => {
|
|
229
|
+
const prefix = `${prefixCls}-grid`;
|
|
230
|
+
const dataLength = data?.length || 0;
|
|
231
|
+
if (dataLength === 0) {
|
|
232
|
+
return null;
|
|
233
|
+
}
|
|
234
|
+
let index = 0;
|
|
235
|
+
const newArr: Array<Array<GridData>> = [];
|
|
236
|
+
while (index < dataLength) {
|
|
237
|
+
newArr.push(data.slice(index, isSliding ? (index += dataLength) : (index += columns)));
|
|
238
|
+
}
|
|
239
|
+
return (
|
|
240
|
+
<div
|
|
241
|
+
className={cls(prefix, className, isSliding ? 'sliding' : '')}
|
|
242
|
+
style={style}
|
|
243
|
+
ref={domRef}
|
|
244
|
+
>
|
|
245
|
+
{getGrid(prefix, newArr)}
|
|
246
|
+
</div>
|
|
247
|
+
);
|
|
248
|
+
};
|
|
249
|
+
return <ContextLayout>{renderEl}</ContextLayout>;
|
|
250
|
+
});
|
|
251
|
+
|
|
252
|
+
export default Grid;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
### 通用
|
|
2
|
+
|
|
3
|
+
# 图标 Icon
|
|
4
|
+
|
|
5
|
+
这里有 Arco Design 内置的一些图标
|
|
6
|
+
|
|
7
|
+
======
|
|
8
|
+
|
|
9
|
+
> 属性/Props
|
|
10
|
+
|
|
11
|
+
|参数|描述|类型|默认值|
|
|
12
|
+
|----------|-------------|------|------|
|
|
13
|
+
|className|节点类名|string|-|
|
|
14
|
+
|useCurrentColor|fill值是否使用color属性值,否则保留原有颜色|boolean|true|
|
|
15
|
+
|style|自定义样式|React.CSSProperties|-|
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import React, { SVGAttributes, CSSProperties } from 'react';
|
|
2
|
+
import { ContextLayout } from '../../context-provider';
|
|
3
|
+
|
|
4
|
+
export interface IconProps extends SVGAttributes<SVGElement> {
|
|
5
|
+
className?: string;
|
|
6
|
+
useCurrentColor?: boolean;
|
|
7
|
+
style?: CSSProperties;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export default function IconWarnCircleFill(props: IconProps) {
|
|
11
|
+
const { className = '', useCurrentColor = true, style, ...other } = props;
|
|
12
|
+
|
|
13
|
+
return (
|
|
14
|
+
<ContextLayout>
|
|
15
|
+
{({ prefixCls }) => (
|
|
16
|
+
<svg
|
|
17
|
+
className={`${prefixCls}-icon ${prefixCls}-icon-warn-circle-fill ${className}`}
|
|
18
|
+
width="1em"
|
|
19
|
+
height="1em"
|
|
20
|
+
style={style}
|
|
21
|
+
fill={useCurrentColor ? 'currentColor' : '#000'}
|
|
22
|
+
viewBox="0 0 1024 1024"
|
|
23
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
24
|
+
{...other}
|
|
25
|
+
>
|
|
26
|
+
<defs />
|
|
27
|
+
<path d="M0 512c0 281.6 230.4 512 512 512s512-230.4 512-512S793.6 0 512 0 0 230.4 0 512zm512 160h32c19.2 0 32 12.8 32 32v32c0 19.2-12.8 32-32 32h-32c-19.2 0-32-12.8-32-32v-32c0-19.2 12.8-32 32-32zm0-416h32c19.2 0 32 12.8 32 32v256c0 19.2-12.8 32-32 32h-32c-19.2 0-32-12.8-32-32V288c0-19.2 12.8-32 32-32z" />
|
|
28
|
+
</svg>
|
|
29
|
+
)}
|
|
30
|
+
</ContextLayout>
|
|
31
|
+
);
|
|
32
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
### 信息展示
|
|
2
|
+
|
|
3
|
+
# 图片 Image
|
|
4
|
+
|
|
5
|
+
增强版的 img 标签,提供多种图片填充模式,支持图片加载中提示、加载失败提示。
|
|
6
|
+
|
|
7
|
+
======
|
|
8
|
+
|
|
9
|
+
> 属性/Props
|
|
10
|
+
|
|
11
|
+
|参数|描述|类型|默认值|
|
|
12
|
+
|----------|-------------|------|------|
|
|
13
|
+
|style|自定义样式|CSSProperties|-|
|
|
14
|
+
|className|自定义类名|string|-|
|
|
15
|
+
|status|指定图片状态,staticLabel=false时有效|"loading" \| "loaded" \| "init" \| "error"|-|
|
|
16
|
+
|src|图片链接|string|必填|
|
|
17
|
+
|width|容器宽度,传数值,默认单位为px,传字符串则接受传入的单位|ReactText|-|
|
|
18
|
+
|height|容器高度,传数值,默认单位为px,传字符串则接受传入的单位|ReactText|-|
|
|
19
|
+
|alt|替代文本|string|""|
|
|
20
|
+
|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"|
|
|
21
|
+
|position|图片填充位置(object\-position)|ObjectPosition\<ReactText\>|"center"|
|
|
22
|
+
|radius|图片圆角|ReactText|-|
|
|
23
|
+
|bordered|是否加边框|boolean|-|
|
|
24
|
+
|loadingArea|自定义展示加载中内容|ReactNode|-|
|
|
25
|
+
|errorArea|自定义展示加载失败内容|ReactNode|-|
|
|
26
|
+
|showLoading|是否展示图片加载中提示|boolean|-|
|
|
27
|
+
|showError|是否展示图片加载失败提示|boolean|-|
|
|
28
|
+
|animateDuration|加载完时展现动画时长,staticLabel=false时有效|number|200|
|
|
29
|
+
|retryTime|失败时自动重试次数|number|0|
|
|
30
|
+
|forceHttps|是否强制使用https|boolean|-|
|
|
31
|
+
|boxWidth|预览模式下,父容器宽度|number|-|
|
|
32
|
+
|boxHeight|预览模式下,父容器高度|number|-|
|
|
33
|
+
|topOverlap|图片顶层内容|ReactNode|-|
|
|
34
|
+
|bottomOverlap|图片底层内容(placeholder),默认是灰色兜底,传null可移除|ReactNode|-|
|
|
35
|
+
|showImage|手动控制是否加载图片|boolean|-|
|
|
36
|
+
|staticLabel|是否直接渲染\<img\>标签,不走加载图片流程|boolean|-|
|
|
37
|
+
|nativeProps|img标签原生属性,优先级低于单独设置|DetailedHTMLProps\<ImgHTMLAttributes\<HTMLImageElement\>, HTMLImageElement\>|-|
|
|
38
|
+
|onChange|切换status时触发的回调|(status: string) =\> void|-|
|
|
39
|
+
|onClick|点击图片时触发的回调|(e: MouseEvent\<HTMLElement, MouseEvent\>) =\> void|-|
|
|
40
|
+
|onLoad|图片加载完毕时触发的回调|(e: Event, image: HTMLImageElement) =\> void|-|
|
|
41
|
+
|onError|图片加载失败时触发的回调,如果有自动重试则在重试最终失败后触发|(e: string \| Event) =\> void|-|
|
|
42
|
+
|onAutoRetry|图片加载失败时自动重试触发的回调|(e: string \| Event) =\> void|-|
|
|
43
|
+
|
|
44
|
+
> 引用/Refs
|
|
45
|
+
|
|
46
|
+
|参数|描述|类型|
|
|
47
|
+
|----------|-------------|------|
|
|
48
|
+
|dom|最外层元素 DOM|HTMLDivElement|
|
|
49
|
+
|image|原生图片元素 DOM|HTMLImageElement|
|
|
50
|
+
|retry|手动重试图片加载|() =\> void|
|
|
51
|
+
|
|
52
|
+
> ImageStatus
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
"loading" | "loaded" | "init" | "error"
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
> ObjectPosition
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
string | number | string & {}
|
|
62
|
+
```
|