@ticatec/uniface-element 0.2.4 → 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.
Files changed (176) hide show
  1. package/dist/accordion/README.md +169 -0
  2. package/dist/accordion/README_CN.md +176 -0
  3. package/dist/action-bar/README.md +275 -0
  4. package/dist/action-bar/README_CN.md +285 -0
  5. package/dist/app-layout/README.md +374 -0
  6. package/dist/app-layout/README_CN.md +381 -0
  7. package/dist/app-top-bar/README.md +357 -0
  8. package/dist/app-top-bar/README_CN.md +365 -0
  9. package/dist/attachment-files/AttachmentFilesField.svelte +67 -1
  10. package/dist/attachment-files/AttachmentFilesField.svelte.d.ts +8 -1
  11. package/dist/base-calendar/CalendarBase.svelte +0 -3
  12. package/dist/box/README.md +385 -0
  13. package/dist/box/README_CN.md +393 -0
  14. package/dist/breadcrumbs/README.md +442 -0
  15. package/dist/breadcrumbs/README_CN.md +442 -0
  16. package/dist/button/Button.svelte +27 -7
  17. package/dist/button/Button.svelte.d.ts +3 -1
  18. package/dist/button/IconButton.svelte +26 -6
  19. package/dist/button/IconButton.svelte.d.ts +3 -1
  20. package/dist/button/IconButton_README.md +513 -0
  21. package/dist/button/IconButton_README_CN.md +513 -0
  22. package/dist/button/README.md +428 -0
  23. package/dist/button/README_CN.md +428 -0
  24. package/dist/button/TextButton.svelte +26 -6
  25. package/dist/button/TextButton.svelte.d.ts +3 -1
  26. package/dist/button/TextButton_README.md +571 -0
  27. package/dist/button/TextButton_README_CN.md +571 -0
  28. package/dist/card/README.md +666 -0
  29. package/dist/card/README_CN.md +666 -0
  30. package/dist/cascade-options-select/CascadeOptionSelect.svelte +43 -7
  31. package/dist/cascade-options-select/CascadeOptionSelect.svelte.d.ts +3 -4
  32. package/dist/cascade-options-select/README.md +663 -2
  33. package/dist/cascade-options-select/README_CN.md +664 -0
  34. package/dist/checkbox/CheckBox.svelte +20 -6
  35. package/dist/checkbox/CheckBox.svelte.d.ts +4 -2
  36. package/dist/checkbox/README.md +562 -0
  37. package/dist/checkbox/README_CN.md +727 -0
  38. package/dist/common-editor/NumberInput.svelte +39 -26
  39. package/dist/common-editor/NumberInput.svelte.d.ts +5 -1
  40. package/dist/concise-data-table/ConciseListTable.svelte +133 -36
  41. package/dist/concise-data-table/ConciseListTable.svelte.d.ts +8 -1
  42. package/dist/concise-data-table/DataCell.svelte +5 -6
  43. package/dist/concise-data-table/DataRow.svelte +22 -2
  44. package/dist/concise-data-table/DataRow.svelte.d.ts +1 -0
  45. package/dist/concise-data-table/README.md +606 -0
  46. package/dist/concise-data-table/README_CN.md +611 -0
  47. package/dist/context-menu/ContextMenu.svelte +138 -21
  48. package/dist/context-menu/ContextMenu.svelte.d.ts +5 -0
  49. package/dist/context-menu/ContextMenuItem.d.ts +20 -4
  50. package/dist/context-menu/README.md +551 -0
  51. package/dist/context-menu/README_CN.md +551 -0
  52. package/dist/criteria-field/CriteriaField.svelte +3 -5
  53. package/dist/criteria-field/README.md +532 -0
  54. package/dist/criteria-field/README_CN.md +532 -0
  55. package/dist/data-table/README.md +712 -0
  56. package/dist/data-table/README_CN.md +712 -0
  57. package/dist/date-picker/DatePicker.svelte +44 -7
  58. package/dist/date-picker/DatePicker.svelte.d.ts +3 -4
  59. package/dist/date-picker/DateTimePicker.svelte +32 -8
  60. package/dist/date-picker/DateTimePicker.svelte.d.ts +3 -4
  61. package/dist/date-picker/README.md +326 -0
  62. package/dist/date-picker/README_CN.md +316 -0
  63. package/dist/date-picker/ScrollBar.svelte +18 -8
  64. package/dist/date-picker/ScrollBar.svelte.d.ts +1 -1
  65. package/dist/date-picker/TimePanel.svelte +5 -5
  66. package/dist/date-picker/TimePanel.svelte.d.ts +1 -1
  67. package/dist/date-range/README.md +374 -0
  68. package/dist/date-range/README_CN.md +374 -0
  69. package/dist/dialog/README.md +596 -0
  70. package/dist/dialog/README_CN.md +596 -0
  71. package/dist/drawer/README.md +679 -1
  72. package/dist/drawer/README_CN.md +679 -0
  73. package/dist/group-box/group-check-box/GroupCheckBox.svelte +62 -5
  74. package/dist/group-box/group-check-box/GroupCheckBox.svelte.d.ts +7 -2
  75. package/dist/group-box/group-check-box/README.md +749 -0
  76. package/dist/group-box/group-check-box/README_CN.md +750 -0
  77. package/dist/group-box/group-radio-box/GroupRadioBox.svelte +69 -4
  78. package/dist/group-box/group-radio-box/GroupRadioBox.svelte.d.ts +8 -2
  79. package/dist/group-box/group-radio-box/README.md +920 -0
  80. package/dist/group-box/group-radio-box/README_CN.md +920 -0
  81. package/dist/image-files/README.md +1346 -0
  82. package/dist/image-files/README_CN.md +1346 -0
  83. package/dist/input-options-select/InputOptionsSelect.svelte +161 -65
  84. package/dist/input-options-select/InputOptionsSelect.svelte.d.ts +4 -1
  85. package/dist/lib/forwardAllEvents.d.ts +3 -0
  86. package/dist/lib/forwardAllEvents.js +24 -0
  87. package/dist/list-box/README.md +579 -0
  88. package/dist/list-box/README_CN.md +682 -0
  89. package/dist/lookup-editor/LookupEditor.svelte +15 -3
  90. package/dist/lookup-editor/LookupEditor.svelte.d.ts +3 -4
  91. package/dist/lookup-editor/README.md +684 -0
  92. package/dist/lookup-editor/README_CN.md +684 -0
  93. package/dist/memo-editor/MemoEditor.svelte +77 -27
  94. package/dist/memo-editor/MemoEditor.svelte.d.ts +6 -3
  95. package/dist/memo-editor/README.md +819 -0
  96. package/dist/memo-editor/README_CN.md +819 -0
  97. package/dist/message-box/README.md +398 -0
  98. package/dist/message-box/README_CN.md +398 -0
  99. package/dist/number-editor/NumberEditor.svelte +2 -2
  100. package/dist/number-editor/NumberEditor.svelte.d.ts +1 -1
  101. package/dist/number-editor/README.md +353 -22
  102. package/dist/number-editor/README_CN.md +357 -0
  103. package/dist/number-range/README.md +443 -0
  104. package/dist/number-range/README_CN.md +443 -0
  105. package/dist/options-multi-select/OptionsMultiSelect.svelte +87 -12
  106. package/dist/options-multi-select/OptionsMultiSelect.svelte.d.ts +3 -1
  107. package/dist/options-multi-select/README.md +480 -0
  108. package/dist/options-multi-select/README_CN.md +480 -0
  109. package/dist/options-select/OptionsSelect.svelte +36 -5
  110. package/dist/options-select/OptionsSelect.svelte.d.ts +3 -4
  111. package/dist/options-select/README.md +632 -0
  112. package/dist/options-select/README_CN.md +632 -0
  113. package/dist/page/README.md +605 -0
  114. package/dist/page/README_CN.md +605 -0
  115. package/dist/pagination/README.md +946 -0
  116. package/dist/pagination/README_CN.md +946 -0
  117. package/dist/pagination-panel/README.md +1075 -0
  118. package/dist/pagination-panel/README_CN.md +1075 -0
  119. package/dist/popup-hint/README.md +841 -0
  120. package/dist/popup-hint/README_CN.md +840 -0
  121. package/dist/progress-bar/README.md +242 -0
  122. package/dist/progress-bar/README_CN.md +242 -0
  123. package/dist/progress-step-bar/README.md +316 -0
  124. package/dist/progress-step-bar/README_CN.md +316 -0
  125. package/dist/prompts-text-editor/PromptsTextEditor.svelte +6 -3
  126. package/dist/prompts-text-editor/PromptsTextEditor.svelte.d.ts +3 -1
  127. package/dist/prompts-text-editor/README.md +329 -0
  128. package/dist/prompts-text-editor/README_CN.md +329 -0
  129. package/dist/property-editor/README.md +969 -0
  130. package/dist/property-editor/README_CN.md +969 -0
  131. package/dist/radio-button/README.md +372 -0
  132. package/dist/radio-button/README_CN.md +372 -0
  133. package/dist/radio-button/RadioButton.svelte +32 -3
  134. package/dist/radio-button/RadioButton.svelte.d.ts +12 -1
  135. package/dist/search-box/README.md +425 -0
  136. package/dist/search-box/README_CN.md +424 -0
  137. package/dist/search-box/SearchBox.svelte +22 -6
  138. package/dist/search-box/SearchBox.svelte.d.ts +4 -1
  139. package/dist/tabs/README.md +919 -0
  140. package/dist/tabs/README_CN.md +920 -0
  141. package/dist/tag/README.md +922 -0
  142. package/dist/tag/README_CN.md +922 -0
  143. package/dist/text-editor/PasswordEditor.svelte +17 -2
  144. package/dist/text-editor/PasswordEditor.svelte.d.ts +3 -3
  145. package/dist/text-editor/PasswordEditor_README.md +551 -0
  146. package/dist/text-editor/PasswordEditor_README_CN.md +551 -0
  147. package/dist/text-editor/README.md +466 -0
  148. package/dist/text-editor/README_CN.md +466 -0
  149. package/dist/text-editor/TextEditor.svelte +51 -19
  150. package/dist/text-editor/TextEditor.svelte.d.ts +0 -1
  151. package/dist/time-editor/README.md +498 -24
  152. package/dist/time-editor/README_CN.md +498 -0
  153. package/dist/time-editor/TimeEditor.svelte +7 -3
  154. package/dist/time-editor/TimeEditor.svelte.d.ts +3 -1
  155. package/dist/toast/README.md +667 -0
  156. package/dist/toast/README_CN.md +667 -0
  157. package/dist/transfer/README.md +795 -0
  158. package/dist/transfer/Transfer.svelte +6 -4
  159. package/dist/transfer/Transfer.svelte.d.ts +3 -1
  160. package/dist/tree-view/README.md +761 -0
  161. package/dist/tree-view/README_CN.md +761 -0
  162. package/dist/tree-view/TreeView.svelte +5 -3
  163. package/dist/tree-view/TreeView.svelte.d.ts +3 -1
  164. package/dist/unit-number-editor/README.md +546 -20
  165. package/dist/unit-number-editor/README_CN.md +525 -0
  166. package/dist/unit-number-editor/UnitNumberEditor.svelte +62 -8
  167. package/dist/unit-number-editor/UnitNumberEditor.svelte.d.ts +5 -1
  168. package/docs/form-field/cn/README_CN.md +364 -0
  169. package/docs/form-field/en/README.md +364 -0
  170. package/docs/form-panel/flex-form/cn/README_CN.md +586 -0
  171. package/docs/form-panel/flex-form/en/README.md +586 -0
  172. package/docs/form-panel/flex-row-form/cn/README_CN.md +787 -0
  173. package/docs/form-panel/flex-row-form/en/README.md +787 -0
  174. package/docs/form-panel/grid-form/en/README.md +744 -0
  175. package/package.json +1 -1
  176. package/dist/drawer/README-CN.md +0 -1
@@ -0,0 +1,357 @@
1
+ # NumberEditor 数字输入框
2
+
3
+ 一个强大的数字输入组件,提供精度控制、验证和数字数据输入格式化功能。
4
+
5
+ ## 功能特性
6
+
7
+ - **精度控制**: 配置小数位数以实现精确的数字格式化
8
+ - **范围验证**: 设置最小/最大值并自动执行边界检查
9
+ - **负数支持**: 可选的负数值支持
10
+ - **自定义格式化**: 添加前缀/后缀文本用于货币、单位等
11
+ - **输入验证**: 实时验证和适当的错误处理
12
+ - **多种变体**: 支持轮廓、填充、朴素和默认样式
13
+ - **显示模式**: 在编辑和查看模式之间切换
14
+ - **操作图标**: 内置清除功能和可自定义图标
15
+ - **焦点管理**: 通过setFocus方法进行程序化焦点控制
16
+
17
+ ## 安装
18
+
19
+ ```bash
20
+ npm install @ticatec/uniface-element
21
+ ```
22
+
23
+ ## 基本用法
24
+
25
+ ```svelte
26
+ <script>
27
+ import NumberEditor from '@ticatec/uniface-element/NumberEditor';
28
+
29
+ let price = 29.99;
30
+ </script>
31
+
32
+ <NumberEditor bind:value={price} />
33
+ ```
34
+
35
+ ## API 参考
36
+
37
+ ### 属性
38
+
39
+ | 属性 | 类型 | 默认值 | 描述 |
40
+ |------|------|---------|-------------|
41
+ | `value` | `number \| null` | `undefined` | 当前数字值 |
42
+ | `disabled` | `boolean` | `false` | 禁用输入框 |
43
+ | `readonly` | `boolean` | `false` | 设置输入框为只读 |
44
+ | `variant` | `'' \| 'plain' \| 'outlined' \| 'filled'` | `''` | 视觉样式变体 |
45
+ | `compact` | `boolean` | `false` | 启用紧凑显示模式 |
46
+ | `style` | `string` | `''` | 自定义CSS样式 |
47
+ | `placeholder` | `string` | `''` | 占位符文本 |
48
+ | `precision` | `number \| null` | `null` | 小数位数 |
49
+ | `suffix` | `string` | `''` | 在值后显示的文本 |
50
+ | `prefix` | `string` | `''` | 在值前显示的文本 |
51
+ | `allowNegative` | `boolean` | `false` | 允许负数 |
52
+ | `displayMode` | `DisplayMode` | `DisplayMode.Edit` | 编辑或查看模式 |
53
+ | `max` | `number \| null` | `null` | 允许的最大值 |
54
+ | `min` | `number \| null` | `null` | 允许的最小值 |
55
+ | `removable` | `boolean` | `true` | 当有值时显示清除按钮 |
56
+ | `onchange` | `OnChangeHandler<number \| null>` | `null` | 变更事件处理器 |
57
+ | `class` | `string` | `''` | CSS类名 |
58
+
59
+ ### 方法
60
+
61
+ | 方法 | 描述 |
62
+ |--------|-------------|
63
+ | `setFocus()` | 程序化地聚焦输入框 |
64
+
65
+ ### 插槽
66
+
67
+ | 插槽 | 描述 |
68
+ |------|-------------|
69
+ | `leading-icon` | 在输入框前显示的图标 |
70
+ | `trailing-icon` | 在输入框后显示的图标 |
71
+
72
+ ## 示例
73
+
74
+ ### 货币输入
75
+
76
+ ```svelte
77
+ <script>
78
+ import NumberEditor from '@ticatec/uniface-element/NumberEditor';
79
+ import FormField from '@ticatec/uniface-element/FormField';
80
+
81
+ let amount = 100.00;
82
+ </script>
83
+
84
+ <FormField label="金额">
85
+ <NumberEditor
86
+ bind:value={amount}
87
+ variant="outlined"
88
+ precision={2}
89
+ prefix="¥"
90
+ allowNegative={false}
91
+ min={0}
92
+ />
93
+ </FormField>
94
+ ```
95
+
96
+ ### 百分比输入
97
+
98
+ ```svelte
99
+ <script>
100
+ import NumberEditor from '@ticatec/uniface-element/NumberEditor';
101
+
102
+ let percentage = 15.5;
103
+ </script>
104
+
105
+ <NumberEditor
106
+ bind:value={percentage}
107
+ variant="filled"
108
+ precision={1}
109
+ suffix="%"
110
+ min={0}
111
+ max={100}
112
+ />
113
+ ```
114
+
115
+ ### 重量/测量输入
116
+
117
+ ```svelte
118
+ <script>
119
+ import NumberEditor from '@ticatec/uniface-element/NumberEditor';
120
+ import Icon from '@ticatec/uniface-element/Icon';
121
+
122
+ let weight = 75.2;
123
+ </script>
124
+
125
+ <NumberEditor
126
+ bind:value={weight}
127
+ variant="outlined"
128
+ precision={3}
129
+ suffix="KG"
130
+ min={1}
131
+ max={200}
132
+ >
133
+ <svelte:fragment slot="leading-icon">
134
+ <Icon name="scale" />
135
+ </svelte:fragment>
136
+ </NumberEditor>
137
+ ```
138
+
139
+ ### 整数输入
140
+
141
+ ```svelte
142
+ <script>
143
+ import NumberEditor from '@ticatec/uniface-element/NumberEditor';
144
+
145
+ let age = 25;
146
+ </script>
147
+
148
+ <NumberEditor
149
+ bind:value={age}
150
+ variant="outlined"
151
+ precision={0}
152
+ min={0}
153
+ max={120}
154
+ placeholder="输入年龄"
155
+ />
156
+ ```
157
+
158
+ ### 温度输入(支持负值)
159
+
160
+ ```svelte
161
+ <script>
162
+ import NumberEditor from '@ticatec/uniface-element/NumberEditor';
163
+
164
+ let temperature = -5.5;
165
+ </script>
166
+
167
+ <NumberEditor
168
+ bind:value={temperature}
169
+ variant="filled"
170
+ precision={1}
171
+ suffix="°C"
172
+ allowNegative={true}
173
+ min={-50}
174
+ max={50}
175
+ />
176
+ ```
177
+
178
+ ### 财务计算器
179
+
180
+ ```svelte
181
+ <script>
182
+ import NumberEditor from '@ticatec/uniface-element/NumberEditor';
183
+ import FormField from '@ticatec/uniface-element/FormField';
184
+
185
+ let principal = 10000;
186
+ let rate = 5.5;
187
+ let years = 10;
188
+
189
+ $: interest = (principal * rate * years) / 100;
190
+
191
+ function handlePrincipalChange(value) {
192
+ console.log('本金变更为:', value);
193
+ }
194
+ </script>
195
+
196
+ <div class="calculator">
197
+ <FormField label="本金金额">
198
+ <NumberEditor
199
+ bind:value={principal}
200
+ variant="outlined"
201
+ precision={2}
202
+ prefix="¥"
203
+ min={1}
204
+ onchange={handlePrincipalChange}
205
+ />
206
+ </FormField>
207
+
208
+ <FormField label="利率">
209
+ <NumberEditor
210
+ bind:value={rate}
211
+ variant="outlined"
212
+ precision={2}
213
+ suffix="%"
214
+ min={0}
215
+ max={100}
216
+ />
217
+ </FormField>
218
+
219
+ <FormField label="年数">
220
+ <NumberEditor
221
+ bind:value={years}
222
+ variant="outlined"
223
+ precision={0}
224
+ min={1}
225
+ max={50}
226
+ />
227
+ </FormField>
228
+
229
+ <FormField label="总利息">
230
+ <NumberEditor
231
+ value={interest}
232
+ readonly
233
+ variant="filled"
234
+ precision={2}
235
+ prefix="¥"
236
+ />
237
+ </FormField>
238
+ </div>
239
+ ```
240
+
241
+ ### 查看模式显示
242
+
243
+ ```svelte
244
+ <script>
245
+ import NumberEditor from '@ticatec/uniface-element/NumberEditor';
246
+ import { DisplayMode } from '@ticatec/uniface-element';
247
+
248
+ let value = 1234.56;
249
+ let isEditing = false;
250
+ </script>
251
+
252
+ <NumberEditor
253
+ bind:value
254
+ displayMode={isEditing ? DisplayMode.Edit : DisplayMode.View}
255
+ precision={2}
256
+ prefix="¥"
257
+ variant="outlined"
258
+ />
259
+
260
+ <button on:click={() => isEditing = !isEditing}>
261
+ {isEditing ? '查看' : '编辑'}
262
+ </button>
263
+ ```
264
+
265
+ ### 紧凑表单布局
266
+
267
+ ```svelte
268
+ <script>
269
+ import NumberEditor from '@ticatec/uniface-element/NumberEditor';
270
+
271
+ let dimensions = { width: 100, height: 50, depth: 25 };
272
+ </script>
273
+
274
+ <div class="dimensions-form">
275
+ <NumberEditor
276
+ bind:value={dimensions.width}
277
+ compact
278
+ variant="outlined"
279
+ precision={2}
280
+ suffix="cm"
281
+ placeholder="宽"
282
+ />
283
+ <span>×</span>
284
+ <NumberEditor
285
+ bind:value={dimensions.height}
286
+ compact
287
+ variant="outlined"
288
+ precision={2}
289
+ suffix="cm"
290
+ placeholder="高"
291
+ />
292
+ <span>×</span>
293
+ <NumberEditor
294
+ bind:value={dimensions.depth}
295
+ compact
296
+ variant="outlined"
297
+ precision={2}
298
+ suffix="cm"
299
+ placeholder="深"
300
+ />
301
+ </div>
302
+
303
+ <style>
304
+ .dimensions-form {
305
+ display: flex;
306
+ align-items: center;
307
+ gap: 8px;
308
+ }
309
+ </style>
310
+ ```
311
+
312
+ ## 验证
313
+
314
+ NumberEditor 根据配置的约束自动验证输入:
315
+
316
+ - **精度**: 将小数位数限制为指定的精度
317
+ - **范围**: 在失焦时强制执行最小/最大边界
318
+ - **负数**: 当 `allowNegative` 为 false 时阻止负数输入
319
+ - **非数字**: 阻止非数字字符和全角字符
320
+ - **实时**: 在输入过程中验证并提供即时反馈
321
+
322
+ ## 最佳实践
323
+
324
+ 1. **使用适当的精度**: 根据数据要求设置精度
325
+ 2. **设置有意义的范围**: 使用 min/max 防止无效值
326
+ 3. **提供清晰的标签**: 使用 FormField 包装 NumberEditor 并提供描述性标签
327
+ 4. **处理变更事件**: 实现 onchange 进行验证或计算
328
+ 5. **考虑用户体验**: 使用占位符文本和适当的变体样式
329
+ 6. **明智使用前缀/后缀**: 添加单位或货币符号以提高清晰度
330
+ 7. **在需要时禁用**: 对计算字段使用 readonly,对不可用输入使用 disabled
331
+
332
+ ## 样式
333
+
334
+ NumberEditor 支持用于样式的 CSS 自定义属性:
335
+
336
+ ```css
337
+ .number-editor {
338
+ --number-editor-font-size: 14px;
339
+ --number-editor-padding: 8px 12px;
340
+ --number-editor-border-color: #e0e0e0;
341
+ --number-editor-focus-color: #1976d2;
342
+ }
343
+ ```
344
+
345
+ ## 无障碍功能
346
+
347
+ - 适当的 ARIA 标签和角色
348
+ - 键盘导航支持
349
+ - 屏幕阅读器兼容性
350
+ - 焦点管理
351
+ - 高对比度模式支持
352
+
353
+ ## 相关组件
354
+
355
+ - [TextEditor](../text-editor/README.md) - 用于文本输入
356
+ - [FormField](../form-field/README.md) - 用于表单布局和标签
357
+ - [UnitNumberEditor](../unit-number-editor/README.md) - 用于带单位选择的数字