@ticatec/uniface-element 0.2.3 → 0.3.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/dist/accordion/README.md +169 -0
- package/dist/accordion/README_CN.md +176 -0
- package/dist/action-bar/README.md +275 -0
- package/dist/action-bar/README_CN.md +285 -0
- package/dist/app-layout/README.md +374 -0
- package/dist/app-layout/README_CN.md +381 -0
- package/dist/app-top-bar/README.md +357 -0
- package/dist/app-top-bar/README_CN.md +365 -0
- package/dist/attachment-files/AttachmentFilesField.svelte +67 -1
- package/dist/attachment-files/AttachmentFilesField.svelte.d.ts +8 -1
- package/dist/base-calendar/CalendarBase.svelte +0 -3
- package/dist/box/README.md +385 -0
- package/dist/box/README_CN.md +393 -0
- package/dist/breadcrumbs/README.md +442 -0
- package/dist/breadcrumbs/README_CN.md +442 -0
- package/dist/button/Button.svelte +27 -7
- package/dist/button/Button.svelte.d.ts +3 -1
- package/dist/button/IconButton.svelte +26 -6
- package/dist/button/IconButton.svelte.d.ts +3 -1
- package/dist/button/IconButton_README.md +513 -0
- package/dist/button/IconButton_README_CN.md +513 -0
- package/dist/button/README.md +428 -0
- package/dist/button/README_CN.md +428 -0
- package/dist/button/TextButton.svelte +26 -6
- package/dist/button/TextButton.svelte.d.ts +3 -1
- package/dist/button/TextButton_README.md +571 -0
- package/dist/button/TextButton_README_CN.md +571 -0
- package/dist/card/README.md +666 -0
- package/dist/card/README_CN.md +666 -0
- package/dist/cascade-options-select/CascadeOptionSelect.svelte +43 -7
- package/dist/cascade-options-select/CascadeOptionSelect.svelte.d.ts +3 -4
- package/dist/cascade-options-select/README.md +663 -2
- package/dist/cascade-options-select/README_CN.md +664 -0
- package/dist/checkbox/CheckBox.svelte +20 -6
- package/dist/checkbox/CheckBox.svelte.d.ts +4 -2
- package/dist/checkbox/README.md +562 -0
- package/dist/checkbox/README_CN.md +727 -0
- package/dist/common-editor/NumberInput.svelte +39 -26
- package/dist/common-editor/NumberInput.svelte.d.ts +5 -1
- package/dist/concise-data-table/ConciseListTable.svelte +133 -36
- package/dist/concise-data-table/ConciseListTable.svelte.d.ts +8 -1
- package/dist/concise-data-table/DataCell.svelte +5 -6
- package/dist/concise-data-table/DataRow.svelte +22 -2
- package/dist/concise-data-table/DataRow.svelte.d.ts +1 -0
- package/dist/concise-data-table/README.md +606 -0
- package/dist/concise-data-table/README_CN.md +611 -0
- package/dist/context-menu/ContextMenu.svelte +138 -21
- package/dist/context-menu/ContextMenu.svelte.d.ts +5 -0
- package/dist/context-menu/ContextMenuItem.d.ts +20 -4
- package/dist/context-menu/README.md +551 -0
- package/dist/context-menu/README_CN.md +551 -0
- package/dist/criteria-field/CriteriaField.svelte +3 -5
- package/dist/criteria-field/README.md +532 -0
- package/dist/criteria-field/README_CN.md +532 -0
- package/dist/data-table/README.md +712 -0
- package/dist/data-table/README_CN.md +712 -0
- package/dist/date-picker/DatePicker.svelte +44 -7
- package/dist/date-picker/DatePicker.svelte.d.ts +3 -4
- package/dist/date-picker/DateTimePicker.svelte +32 -8
- package/dist/date-picker/DateTimePicker.svelte.d.ts +3 -4
- package/dist/date-picker/README.md +326 -0
- package/dist/date-picker/README_CN.md +316 -0
- package/dist/date-picker/ScrollBar.svelte +18 -8
- package/dist/date-picker/ScrollBar.svelte.d.ts +1 -1
- package/dist/date-picker/TimePanel.svelte +5 -5
- package/dist/date-picker/TimePanel.svelte.d.ts +1 -1
- package/dist/date-range/README.md +374 -0
- package/dist/date-range/README_CN.md +374 -0
- package/dist/dialog/DialogBoard.svelte +1 -1
- package/dist/dialog/README.md +596 -0
- package/dist/dialog/README_CN.md +596 -0
- package/dist/drawer/README.md +679 -1
- package/dist/drawer/README_CN.md +679 -0
- package/dist/group-box/group-check-box/GroupCheckBox.svelte +62 -5
- package/dist/group-box/group-check-box/GroupCheckBox.svelte.d.ts +7 -2
- package/dist/group-box/group-check-box/README.md +749 -0
- package/dist/group-box/group-check-box/README_CN.md +750 -0
- package/dist/group-box/group-radio-box/GroupRadioBox.svelte +69 -4
- package/dist/group-box/group-radio-box/GroupRadioBox.svelte.d.ts +8 -2
- package/dist/group-box/group-radio-box/README.md +920 -0
- package/dist/group-box/group-radio-box/README_CN.md +920 -0
- package/dist/image-files/README.md +1346 -0
- package/dist/image-files/README_CN.md +1346 -0
- package/dist/input-options-select/InputOptionsSelect.svelte +161 -65
- package/dist/input-options-select/InputOptionsSelect.svelte.d.ts +4 -1
- package/dist/lib/forwardAllEvents.d.ts +3 -0
- package/dist/lib/forwardAllEvents.js +24 -0
- package/dist/list-box/README.md +579 -0
- package/dist/list-box/README_CN.md +682 -0
- package/dist/lookup-editor/LookupEditor.svelte +15 -3
- package/dist/lookup-editor/LookupEditor.svelte.d.ts +3 -4
- package/dist/lookup-editor/README.md +684 -0
- package/dist/lookup-editor/README_CN.md +684 -0
- package/dist/memo-editor/MemoEditor.svelte +77 -27
- package/dist/memo-editor/MemoEditor.svelte.d.ts +6 -3
- package/dist/memo-editor/README.md +819 -0
- package/dist/memo-editor/README_CN.md +819 -0
- package/dist/message-box/README.md +398 -0
- package/dist/message-box/README_CN.md +398 -0
- package/dist/number-editor/NumberEditor.svelte +2 -2
- package/dist/number-editor/NumberEditor.svelte.d.ts +1 -1
- package/dist/number-editor/README.md +353 -22
- package/dist/number-editor/README_CN.md +357 -0
- package/dist/number-range/README.md +443 -0
- package/dist/number-range/README_CN.md +443 -0
- package/dist/options-multi-select/OptionsMultiSelect.svelte +87 -12
- package/dist/options-multi-select/OptionsMultiSelect.svelte.d.ts +3 -1
- package/dist/options-multi-select/README.md +480 -0
- package/dist/options-multi-select/README_CN.md +480 -0
- package/dist/options-select/OptionsSelect.svelte +36 -5
- package/dist/options-select/OptionsSelect.svelte.d.ts +3 -4
- package/dist/options-select/README.md +632 -0
- package/dist/options-select/README_CN.md +632 -0
- package/dist/page/README.md +605 -0
- package/dist/page/README_CN.md +605 -0
- package/dist/pagination/README.md +946 -0
- package/dist/pagination/README_CN.md +946 -0
- package/dist/pagination-panel/README.md +1075 -0
- package/dist/pagination-panel/README_CN.md +1075 -0
- package/dist/popup-hint/README.md +841 -0
- package/dist/popup-hint/README_CN.md +840 -0
- package/dist/progress-bar/README.md +242 -0
- package/dist/progress-bar/README_CN.md +242 -0
- package/dist/progress-step-bar/README.md +316 -0
- package/dist/progress-step-bar/README_CN.md +316 -0
- package/dist/prompts-text-editor/PromptsTextEditor.svelte +6 -3
- package/dist/prompts-text-editor/PromptsTextEditor.svelte.d.ts +3 -1
- package/dist/prompts-text-editor/README.md +329 -0
- package/dist/prompts-text-editor/README_CN.md +329 -0
- package/dist/property-editor/README.md +969 -0
- package/dist/property-editor/README_CN.md +969 -0
- package/dist/radio-button/README.md +372 -0
- package/dist/radio-button/README_CN.md +372 -0
- package/dist/radio-button/RadioButton.svelte +32 -3
- package/dist/radio-button/RadioButton.svelte.d.ts +12 -1
- package/dist/search-box/README.md +425 -0
- package/dist/search-box/README_CN.md +424 -0
- package/dist/search-box/SearchBox.svelte +22 -6
- package/dist/search-box/SearchBox.svelte.d.ts +4 -1
- package/dist/tabs/README.md +919 -0
- package/dist/tabs/README_CN.md +920 -0
- package/dist/tag/README.md +922 -0
- package/dist/tag/README_CN.md +922 -0
- package/dist/text-editor/PasswordEditor.svelte +17 -2
- package/dist/text-editor/PasswordEditor.svelte.d.ts +3 -3
- package/dist/text-editor/PasswordEditor_README.md +551 -0
- package/dist/text-editor/PasswordEditor_README_CN.md +551 -0
- package/dist/text-editor/README.md +466 -0
- package/dist/text-editor/README_CN.md +466 -0
- package/dist/text-editor/TextEditor.svelte +51 -19
- package/dist/text-editor/TextEditor.svelte.d.ts +0 -1
- package/dist/ticatec-uniface-web.css +1 -0
- package/dist/time-editor/README.md +498 -24
- package/dist/time-editor/README_CN.md +498 -0
- package/dist/time-editor/TimeEditor.svelte +7 -3
- package/dist/time-editor/TimeEditor.svelte.d.ts +3 -1
- package/dist/toast/README.md +667 -0
- package/dist/toast/README_CN.md +667 -0
- package/dist/transfer/README.md +795 -0
- package/dist/transfer/Transfer.svelte +6 -4
- package/dist/transfer/Transfer.svelte.d.ts +3 -1
- package/dist/tree-view/README.md +761 -0
- package/dist/tree-view/README_CN.md +761 -0
- package/dist/tree-view/TreeView.svelte +5 -3
- package/dist/tree-view/TreeView.svelte.d.ts +3 -1
- package/dist/unit-number-editor/README.md +546 -20
- package/dist/unit-number-editor/README_CN.md +525 -0
- package/dist/unit-number-editor/UnitNumberEditor.svelte +62 -8
- package/dist/unit-number-editor/UnitNumberEditor.svelte.d.ts +5 -1
- package/docs/form-field/cn/README_CN.md +364 -0
- package/docs/form-field/en/README.md +364 -0
- package/docs/form-panel/flex-form/cn/README_CN.md +586 -0
- package/docs/form-panel/flex-form/en/README.md +586 -0
- package/docs/form-panel/flex-row-form/cn/README_CN.md +787 -0
- package/docs/form-panel/flex-row-form/en/README.md +787 -0
- package/docs/form-panel/grid-form/en/README.md +744 -0
- package/package.json +1 -1
- package/dist/drawer/README-CN.md +0 -1
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
# ProgressBar
|
|
2
|
+
|
|
3
|
+
A flexible progress indicator component that supports both circular and linear display modes with customizable status states and styling.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @ticatec/uniface-element
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Import
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
import ProgressBar, { ProgressStatus } from "@ticatec/uniface-element/ProgressBar";
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Basic Usage
|
|
18
|
+
|
|
19
|
+
### Circular Progress Bar
|
|
20
|
+
|
|
21
|
+
```svelte
|
|
22
|
+
<script>
|
|
23
|
+
import ProgressBar, { ProgressStatus } from "@ticatec/uniface-element/ProgressBar";
|
|
24
|
+
|
|
25
|
+
let progress = 65;
|
|
26
|
+
let status = ProgressStatus.progressing;
|
|
27
|
+
</script>
|
|
28
|
+
|
|
29
|
+
<ProgressBar {progress} {status} />
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Linear Progress Bar
|
|
33
|
+
|
|
34
|
+
```svelte
|
|
35
|
+
<script>
|
|
36
|
+
import ProgressBar, { ProgressStatus } from "@ticatec/uniface-element/ProgressBar";
|
|
37
|
+
|
|
38
|
+
let progress = 45;
|
|
39
|
+
let status = ProgressStatus.progressing;
|
|
40
|
+
</script>
|
|
41
|
+
|
|
42
|
+
<ProgressBar type="liner" {progress} {status} />
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Props
|
|
46
|
+
|
|
47
|
+
| Prop | Type | Default | Description |
|
|
48
|
+
|------|------|---------|-------------|
|
|
49
|
+
| `progress` | `number` | `0` | Progress value (0-100) |
|
|
50
|
+
| `size` | `number` | `100` | Size of the circular progress bar |
|
|
51
|
+
| `type` | `"circular" \| "liner"` | `"circular"` | Display type of the progress bar |
|
|
52
|
+
| `height` | `number` | `5` | Height/thickness of the progress bar |
|
|
53
|
+
| `showText` | `boolean` | `true` | Whether to display progress text |
|
|
54
|
+
| `status` | `ProgressStatus` | `ProgressStatus.progressing` | Current status of the progress |
|
|
55
|
+
|
|
56
|
+
## ProgressStatus Enum
|
|
57
|
+
|
|
58
|
+
```typescript
|
|
59
|
+
enum ProgressStatus {
|
|
60
|
+
progressing = 'progressing',
|
|
61
|
+
successful = 'successful',
|
|
62
|
+
failure = 'failure',
|
|
63
|
+
canceled = 'canceled'
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Status Indicators
|
|
68
|
+
|
|
69
|
+
The progress bar displays different indicators based on the status:
|
|
70
|
+
|
|
71
|
+
- **progressing**: Shows percentage (e.g., "65%")
|
|
72
|
+
- **successful**: Shows checkmark (✔)
|
|
73
|
+
- **failure**: Shows X mark (✕)
|
|
74
|
+
- **canceled**: Shows exclamation mark (!)
|
|
75
|
+
|
|
76
|
+
## Examples
|
|
77
|
+
|
|
78
|
+
### Different Status States
|
|
79
|
+
|
|
80
|
+
```svelte
|
|
81
|
+
<script>
|
|
82
|
+
import ProgressBar, { ProgressStatus } from "@ticatec/uniface-element/ProgressBar";
|
|
83
|
+
</script>
|
|
84
|
+
|
|
85
|
+
<!-- In progress -->
|
|
86
|
+
<ProgressBar progress={75} status={ProgressStatus.progressing} />
|
|
87
|
+
|
|
88
|
+
<!-- Successful completion -->
|
|
89
|
+
<ProgressBar progress={100} status={ProgressStatus.successful} />
|
|
90
|
+
|
|
91
|
+
<!-- Failed -->
|
|
92
|
+
<ProgressBar progress={45} status={ProgressStatus.failure} />
|
|
93
|
+
|
|
94
|
+
<!-- Canceled -->
|
|
95
|
+
<ProgressBar progress={30} status={ProgressStatus.canceled} />
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Custom Sizing
|
|
99
|
+
|
|
100
|
+
```svelte
|
|
101
|
+
<!-- Large circular progress -->
|
|
102
|
+
<ProgressBar size={150} height={8} progress={60} />
|
|
103
|
+
|
|
104
|
+
<!-- Thin linear progress -->
|
|
105
|
+
<ProgressBar type="liner" height={2} progress={40} />
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Without Text Display
|
|
109
|
+
|
|
110
|
+
```svelte
|
|
111
|
+
<ProgressBar progress={80} showText={false} />
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## CSS Custom Properties
|
|
115
|
+
|
|
116
|
+
The component uses CSS custom properties for theming:
|
|
117
|
+
|
|
118
|
+
```css
|
|
119
|
+
:root {
|
|
120
|
+
/* Default progress color */
|
|
121
|
+
--uniface-progress-bar-color: #22BDFF;
|
|
122
|
+
|
|
123
|
+
/* Background color */
|
|
124
|
+
--uniface-progress-bar-bg: #E2E8F0;
|
|
125
|
+
|
|
126
|
+
/* Success state color */
|
|
127
|
+
--uniface-progress-bar-success-color: #2DC071;
|
|
128
|
+
|
|
129
|
+
/* Failure state color */
|
|
130
|
+
--uniface-progress-bar-failure-color: #FF685B;
|
|
131
|
+
|
|
132
|
+
/* Canceled state color */
|
|
133
|
+
--uniface-progress-bar-canceled-color: #FFC532;
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Styling Examples
|
|
138
|
+
|
|
139
|
+
### Custom Theme
|
|
140
|
+
|
|
141
|
+
```css
|
|
142
|
+
.custom-progress {
|
|
143
|
+
--uniface-progress-bar-color: #8B5CF6;
|
|
144
|
+
--uniface-progress-bar-success-color: #10B981;
|
|
145
|
+
--uniface-progress-bar-failure-color: #EF4444;
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
```svelte
|
|
150
|
+
<div class="custom-progress">
|
|
151
|
+
<ProgressBar progress={70} />
|
|
152
|
+
</div>
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## Advanced Usage
|
|
156
|
+
|
|
157
|
+
### Animated Progress
|
|
158
|
+
|
|
159
|
+
```svelte
|
|
160
|
+
<script>
|
|
161
|
+
import { onMount } from 'svelte';
|
|
162
|
+
import ProgressBar, { ProgressStatus } from "@ticatec/uniface-element/ProgressBar";
|
|
163
|
+
|
|
164
|
+
let progress = 0;
|
|
165
|
+
let status = ProgressStatus.progressing;
|
|
166
|
+
|
|
167
|
+
onMount(() => {
|
|
168
|
+
const interval = setInterval(() => {
|
|
169
|
+
progress += 1;
|
|
170
|
+
if (progress >= 100) {
|
|
171
|
+
status = ProgressStatus.successful;
|
|
172
|
+
clearInterval(interval);
|
|
173
|
+
}
|
|
174
|
+
}, 50);
|
|
175
|
+
|
|
176
|
+
return () => clearInterval(interval);
|
|
177
|
+
});
|
|
178
|
+
</script>
|
|
179
|
+
|
|
180
|
+
<ProgressBar {progress} {status} />
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Upload Progress Example
|
|
184
|
+
|
|
185
|
+
```svelte
|
|
186
|
+
<script>
|
|
187
|
+
import ProgressBar, { ProgressStatus } from "@ticatec/uniface-element/ProgressBar";
|
|
188
|
+
|
|
189
|
+
let uploadProgress = 0;
|
|
190
|
+
let uploadStatus = ProgressStatus.progressing;
|
|
191
|
+
|
|
192
|
+
async function handleUpload() {
|
|
193
|
+
uploadProgress = 0;
|
|
194
|
+
uploadStatus = ProgressStatus.progressing;
|
|
195
|
+
|
|
196
|
+
try {
|
|
197
|
+
// Simulate upload progress
|
|
198
|
+
for (let i = 0; i <= 100; i += 10) {
|
|
199
|
+
uploadProgress = i;
|
|
200
|
+
await new Promise(resolve => setTimeout(resolve, 200));
|
|
201
|
+
}
|
|
202
|
+
uploadStatus = ProgressStatus.successful;
|
|
203
|
+
} catch (error) {
|
|
204
|
+
uploadStatus = ProgressStatus.failure;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
</script>
|
|
208
|
+
|
|
209
|
+
<ProgressBar
|
|
210
|
+
type="liner"
|
|
211
|
+
progress={uploadProgress}
|
|
212
|
+
status={uploadStatus}
|
|
213
|
+
height={6}
|
|
214
|
+
/>
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
## Accessibility
|
|
218
|
+
|
|
219
|
+
- Uses proper ARIA attributes for screen readers
|
|
220
|
+
- Text content changes based on status for better accessibility
|
|
221
|
+
- Color changes are accompanied by symbol changes for color-blind users
|
|
222
|
+
- Proper contrast ratios maintained for all status states
|
|
223
|
+
|
|
224
|
+
## Best Practices
|
|
225
|
+
|
|
226
|
+
1. **Progress Range**: Keep progress values between 0-100
|
|
227
|
+
2. **Status Management**: Update status appropriately based on operation outcome
|
|
228
|
+
3. **Visual Feedback**: Use different status states to provide clear user feedback
|
|
229
|
+
4. **Responsive Design**: Consider using percentage-based sizing for responsive layouts
|
|
230
|
+
5. **Color Accessibility**: Don't rely solely on color to convey status information
|
|
231
|
+
|
|
232
|
+
## Browser Support
|
|
233
|
+
|
|
234
|
+
- Modern browsers with SVG support (for circular type)
|
|
235
|
+
- CSS custom properties support
|
|
236
|
+
- Compatible with Svelte 5+
|
|
237
|
+
|
|
238
|
+
## Related Components
|
|
239
|
+
|
|
240
|
+
- `ProgressStepBar` - Multi-step progress indicator
|
|
241
|
+
- `Button` - For triggering operations that show progress
|
|
242
|
+
- `Dialog` - For displaying progress in modal contexts
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
# ProgressBar 进度条
|
|
2
|
+
|
|
3
|
+
一个灵活的进度指示器组件,支持圆形和线性显示模式,具有可自定义的状态和样式。
|
|
4
|
+
|
|
5
|
+
## 安装
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @ticatec/uniface-element
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 导入
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
import ProgressBar, { ProgressStatus } from "@ticatec/uniface-element/ProgressBar";
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## 基本用法
|
|
18
|
+
|
|
19
|
+
### 圆形进度条
|
|
20
|
+
|
|
21
|
+
```svelte
|
|
22
|
+
<script>
|
|
23
|
+
import ProgressBar, { ProgressStatus } from "@ticatec/uniface-element/ProgressBar";
|
|
24
|
+
|
|
25
|
+
let progress = 65;
|
|
26
|
+
let status = ProgressStatus.progressing;
|
|
27
|
+
</script>
|
|
28
|
+
|
|
29
|
+
<ProgressBar {progress} {status} />
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### 线性进度条
|
|
33
|
+
|
|
34
|
+
```svelte
|
|
35
|
+
<script>
|
|
36
|
+
import ProgressBar, { ProgressStatus } from "@ticatec/uniface-element/ProgressBar";
|
|
37
|
+
|
|
38
|
+
let progress = 45;
|
|
39
|
+
let status = ProgressStatus.progressing;
|
|
40
|
+
</script>
|
|
41
|
+
|
|
42
|
+
<ProgressBar type="liner" {progress} {status} />
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## 属性
|
|
46
|
+
|
|
47
|
+
| 属性 | 类型 | 默认值 | 描述 |
|
|
48
|
+
|------|------|--------|------|
|
|
49
|
+
| `progress` | `number` | `0` | 进度值(0-100) |
|
|
50
|
+
| `size` | `number` | `100` | 圆形进度条的大小 |
|
|
51
|
+
| `type` | `"circular" \| "liner"` | `"circular"` | 进度条的显示类型 |
|
|
52
|
+
| `height` | `number` | `5` | 进度条的高度/厚度 |
|
|
53
|
+
| `showText` | `boolean` | `true` | 是否显示进度文本 |
|
|
54
|
+
| `status` | `ProgressStatus` | `ProgressStatus.progressing` | 进度的当前状态 |
|
|
55
|
+
|
|
56
|
+
## ProgressStatus 枚举
|
|
57
|
+
|
|
58
|
+
```typescript
|
|
59
|
+
enum ProgressStatus {
|
|
60
|
+
progressing = 'progressing', // 进行中
|
|
61
|
+
successful = 'successful', // 成功
|
|
62
|
+
failure = 'failure', // 失败
|
|
63
|
+
canceled = 'canceled' // 已取消
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## 状态指示器
|
|
68
|
+
|
|
69
|
+
进度条根据状态显示不同的指示器:
|
|
70
|
+
|
|
71
|
+
- **进行中(progressing)**: 显示百分比(如 "65%")
|
|
72
|
+
- **成功(successful)**: 显示对勾标记(✔)
|
|
73
|
+
- **失败(failure)**: 显示叉号标记(✕)
|
|
74
|
+
- **已取消(canceled)**: 显示感叹号(!)
|
|
75
|
+
|
|
76
|
+
## 示例
|
|
77
|
+
|
|
78
|
+
### 不同状态
|
|
79
|
+
|
|
80
|
+
```svelte
|
|
81
|
+
<script>
|
|
82
|
+
import ProgressBar, { ProgressStatus } from "@ticatec/uniface-element/ProgressBar";
|
|
83
|
+
</script>
|
|
84
|
+
|
|
85
|
+
<!-- 进行中 -->
|
|
86
|
+
<ProgressBar progress={75} status={ProgressStatus.progressing} />
|
|
87
|
+
|
|
88
|
+
<!-- 成功完成 -->
|
|
89
|
+
<ProgressBar progress={100} status={ProgressStatus.successful} />
|
|
90
|
+
|
|
91
|
+
<!-- 失败 -->
|
|
92
|
+
<ProgressBar progress={45} status={ProgressStatus.failure} />
|
|
93
|
+
|
|
94
|
+
<!-- 已取消 -->
|
|
95
|
+
<ProgressBar progress={30} status={ProgressStatus.canceled} />
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### 自定义尺寸
|
|
99
|
+
|
|
100
|
+
```svelte
|
|
101
|
+
<!-- 大型圆形进度条 -->
|
|
102
|
+
<ProgressBar size={150} height={8} progress={60} />
|
|
103
|
+
|
|
104
|
+
<!-- 细线性进度条 -->
|
|
105
|
+
<ProgressBar type="liner" height={2} progress={40} />
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### 不显示文本
|
|
109
|
+
|
|
110
|
+
```svelte
|
|
111
|
+
<ProgressBar progress={80} showText={false} />
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## CSS 自定义属性
|
|
115
|
+
|
|
116
|
+
组件使用 CSS 自定义属性进行主题定制:
|
|
117
|
+
|
|
118
|
+
```css
|
|
119
|
+
:root {
|
|
120
|
+
/* 默认进度颜色 */
|
|
121
|
+
--uniface-progress-bar-color: #22BDFF;
|
|
122
|
+
|
|
123
|
+
/* 背景颜色 */
|
|
124
|
+
--uniface-progress-bar-bg: #E2E8F0;
|
|
125
|
+
|
|
126
|
+
/* 成功状态颜色 */
|
|
127
|
+
--uniface-progress-bar-success-color: #2DC071;
|
|
128
|
+
|
|
129
|
+
/* 失败状态颜色 */
|
|
130
|
+
--uniface-progress-bar-failure-color: #FF685B;
|
|
131
|
+
|
|
132
|
+
/* 取消状态颜色 */
|
|
133
|
+
--uniface-progress-bar-canceled-color: #FFC532;
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## 样式示例
|
|
138
|
+
|
|
139
|
+
### 自定义主题
|
|
140
|
+
|
|
141
|
+
```css
|
|
142
|
+
.custom-progress {
|
|
143
|
+
--uniface-progress-bar-color: #8B5CF6;
|
|
144
|
+
--uniface-progress-bar-success-color: #10B981;
|
|
145
|
+
--uniface-progress-bar-failure-color: #EF4444;
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
```svelte
|
|
150
|
+
<div class="custom-progress">
|
|
151
|
+
<ProgressBar progress={70} />
|
|
152
|
+
</div>
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## 高级用法
|
|
156
|
+
|
|
157
|
+
### 动画进度
|
|
158
|
+
|
|
159
|
+
```svelte
|
|
160
|
+
<script>
|
|
161
|
+
import { onMount } from 'svelte';
|
|
162
|
+
import ProgressBar, { ProgressStatus } from "@ticatec/uniface-element/ProgressBar";
|
|
163
|
+
|
|
164
|
+
let progress = 0;
|
|
165
|
+
let status = ProgressStatus.progressing;
|
|
166
|
+
|
|
167
|
+
onMount(() => {
|
|
168
|
+
const interval = setInterval(() => {
|
|
169
|
+
progress += 1;
|
|
170
|
+
if (progress >= 100) {
|
|
171
|
+
status = ProgressStatus.successful;
|
|
172
|
+
clearInterval(interval);
|
|
173
|
+
}
|
|
174
|
+
}, 50);
|
|
175
|
+
|
|
176
|
+
return () => clearInterval(interval);
|
|
177
|
+
});
|
|
178
|
+
</script>
|
|
179
|
+
|
|
180
|
+
<ProgressBar {progress} {status} />
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### 文件上传进度示例
|
|
184
|
+
|
|
185
|
+
```svelte
|
|
186
|
+
<script>
|
|
187
|
+
import ProgressBar, { ProgressStatus } from "@ticatec/uniface-element/ProgressBar";
|
|
188
|
+
|
|
189
|
+
let uploadProgress = 0;
|
|
190
|
+
let uploadStatus = ProgressStatus.progressing;
|
|
191
|
+
|
|
192
|
+
async function handleUpload() {
|
|
193
|
+
uploadProgress = 0;
|
|
194
|
+
uploadStatus = ProgressStatus.progressing;
|
|
195
|
+
|
|
196
|
+
try {
|
|
197
|
+
// 模拟上传进度
|
|
198
|
+
for (let i = 0; i <= 100; i += 10) {
|
|
199
|
+
uploadProgress = i;
|
|
200
|
+
await new Promise(resolve => setTimeout(resolve, 200));
|
|
201
|
+
}
|
|
202
|
+
uploadStatus = ProgressStatus.successful;
|
|
203
|
+
} catch (error) {
|
|
204
|
+
uploadStatus = ProgressStatus.failure;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
</script>
|
|
208
|
+
|
|
209
|
+
<ProgressBar
|
|
210
|
+
type="liner"
|
|
211
|
+
progress={uploadProgress}
|
|
212
|
+
status={uploadStatus}
|
|
213
|
+
height={6}
|
|
214
|
+
/>
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
## 无障碍访问
|
|
218
|
+
|
|
219
|
+
- 为屏幕阅读器使用适当的 ARIA 属性
|
|
220
|
+
- 文本内容根据状态变化,提供更好的无障碍访问
|
|
221
|
+
- 颜色变化伴随符号变化,适合色盲用户
|
|
222
|
+
- 所有状态都保持适当的对比度
|
|
223
|
+
|
|
224
|
+
## 最佳实践
|
|
225
|
+
|
|
226
|
+
1. **进度范围**: 保持进度值在 0-100 之间
|
|
227
|
+
2. **状态管理**: 根据操作结果适当更新状态
|
|
228
|
+
3. **视觉反馈**: 使用不同的状态提供清晰的用户反馈
|
|
229
|
+
4. **响应式设计**: 考虑使用基于百分比的尺寸实现响应式布局
|
|
230
|
+
5. **颜色无障碍**: 不要仅依赖颜色来传达状态信息
|
|
231
|
+
|
|
232
|
+
## 浏览器支持
|
|
233
|
+
|
|
234
|
+
- 支持 SVG 的现代浏览器(圆形类型)
|
|
235
|
+
- CSS 自定义属性支持
|
|
236
|
+
- 兼容 Svelte 5+
|
|
237
|
+
|
|
238
|
+
## 相关组件
|
|
239
|
+
|
|
240
|
+
- `ProgressStepBar` - 多步骤进度指示器
|
|
241
|
+
- `Button` - 用于触发显示进度的操作
|
|
242
|
+
- `Dialog` - 在模态框中显示进度
|