@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.
Files changed (178) 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/DialogBoard.svelte +1 -1
  70. package/dist/dialog/README.md +596 -0
  71. package/dist/dialog/README_CN.md +596 -0
  72. package/dist/drawer/README.md +679 -1
  73. package/dist/drawer/README_CN.md +679 -0
  74. package/dist/group-box/group-check-box/GroupCheckBox.svelte +62 -5
  75. package/dist/group-box/group-check-box/GroupCheckBox.svelte.d.ts +7 -2
  76. package/dist/group-box/group-check-box/README.md +749 -0
  77. package/dist/group-box/group-check-box/README_CN.md +750 -0
  78. package/dist/group-box/group-radio-box/GroupRadioBox.svelte +69 -4
  79. package/dist/group-box/group-radio-box/GroupRadioBox.svelte.d.ts +8 -2
  80. package/dist/group-box/group-radio-box/README.md +920 -0
  81. package/dist/group-box/group-radio-box/README_CN.md +920 -0
  82. package/dist/image-files/README.md +1346 -0
  83. package/dist/image-files/README_CN.md +1346 -0
  84. package/dist/input-options-select/InputOptionsSelect.svelte +161 -65
  85. package/dist/input-options-select/InputOptionsSelect.svelte.d.ts +4 -1
  86. package/dist/lib/forwardAllEvents.d.ts +3 -0
  87. package/dist/lib/forwardAllEvents.js +24 -0
  88. package/dist/list-box/README.md +579 -0
  89. package/dist/list-box/README_CN.md +682 -0
  90. package/dist/lookup-editor/LookupEditor.svelte +15 -3
  91. package/dist/lookup-editor/LookupEditor.svelte.d.ts +3 -4
  92. package/dist/lookup-editor/README.md +684 -0
  93. package/dist/lookup-editor/README_CN.md +684 -0
  94. package/dist/memo-editor/MemoEditor.svelte +77 -27
  95. package/dist/memo-editor/MemoEditor.svelte.d.ts +6 -3
  96. package/dist/memo-editor/README.md +819 -0
  97. package/dist/memo-editor/README_CN.md +819 -0
  98. package/dist/message-box/README.md +398 -0
  99. package/dist/message-box/README_CN.md +398 -0
  100. package/dist/number-editor/NumberEditor.svelte +2 -2
  101. package/dist/number-editor/NumberEditor.svelte.d.ts +1 -1
  102. package/dist/number-editor/README.md +353 -22
  103. package/dist/number-editor/README_CN.md +357 -0
  104. package/dist/number-range/README.md +443 -0
  105. package/dist/number-range/README_CN.md +443 -0
  106. package/dist/options-multi-select/OptionsMultiSelect.svelte +87 -12
  107. package/dist/options-multi-select/OptionsMultiSelect.svelte.d.ts +3 -1
  108. package/dist/options-multi-select/README.md +480 -0
  109. package/dist/options-multi-select/README_CN.md +480 -0
  110. package/dist/options-select/OptionsSelect.svelte +36 -5
  111. package/dist/options-select/OptionsSelect.svelte.d.ts +3 -4
  112. package/dist/options-select/README.md +632 -0
  113. package/dist/options-select/README_CN.md +632 -0
  114. package/dist/page/README.md +605 -0
  115. package/dist/page/README_CN.md +605 -0
  116. package/dist/pagination/README.md +946 -0
  117. package/dist/pagination/README_CN.md +946 -0
  118. package/dist/pagination-panel/README.md +1075 -0
  119. package/dist/pagination-panel/README_CN.md +1075 -0
  120. package/dist/popup-hint/README.md +841 -0
  121. package/dist/popup-hint/README_CN.md +840 -0
  122. package/dist/progress-bar/README.md +242 -0
  123. package/dist/progress-bar/README_CN.md +242 -0
  124. package/dist/progress-step-bar/README.md +316 -0
  125. package/dist/progress-step-bar/README_CN.md +316 -0
  126. package/dist/prompts-text-editor/PromptsTextEditor.svelte +6 -3
  127. package/dist/prompts-text-editor/PromptsTextEditor.svelte.d.ts +3 -1
  128. package/dist/prompts-text-editor/README.md +329 -0
  129. package/dist/prompts-text-editor/README_CN.md +329 -0
  130. package/dist/property-editor/README.md +969 -0
  131. package/dist/property-editor/README_CN.md +969 -0
  132. package/dist/radio-button/README.md +372 -0
  133. package/dist/radio-button/README_CN.md +372 -0
  134. package/dist/radio-button/RadioButton.svelte +32 -3
  135. package/dist/radio-button/RadioButton.svelte.d.ts +12 -1
  136. package/dist/search-box/README.md +425 -0
  137. package/dist/search-box/README_CN.md +424 -0
  138. package/dist/search-box/SearchBox.svelte +22 -6
  139. package/dist/search-box/SearchBox.svelte.d.ts +4 -1
  140. package/dist/tabs/README.md +919 -0
  141. package/dist/tabs/README_CN.md +920 -0
  142. package/dist/tag/README.md +922 -0
  143. package/dist/tag/README_CN.md +922 -0
  144. package/dist/text-editor/PasswordEditor.svelte +17 -2
  145. package/dist/text-editor/PasswordEditor.svelte.d.ts +3 -3
  146. package/dist/text-editor/PasswordEditor_README.md +551 -0
  147. package/dist/text-editor/PasswordEditor_README_CN.md +551 -0
  148. package/dist/text-editor/README.md +466 -0
  149. package/dist/text-editor/README_CN.md +466 -0
  150. package/dist/text-editor/TextEditor.svelte +51 -19
  151. package/dist/text-editor/TextEditor.svelte.d.ts +0 -1
  152. package/dist/ticatec-uniface-web.css +1 -0
  153. package/dist/time-editor/README.md +498 -24
  154. package/dist/time-editor/README_CN.md +498 -0
  155. package/dist/time-editor/TimeEditor.svelte +7 -3
  156. package/dist/time-editor/TimeEditor.svelte.d.ts +3 -1
  157. package/dist/toast/README.md +667 -0
  158. package/dist/toast/README_CN.md +667 -0
  159. package/dist/transfer/README.md +795 -0
  160. package/dist/transfer/Transfer.svelte +6 -4
  161. package/dist/transfer/Transfer.svelte.d.ts +3 -1
  162. package/dist/tree-view/README.md +761 -0
  163. package/dist/tree-view/README_CN.md +761 -0
  164. package/dist/tree-view/TreeView.svelte +5 -3
  165. package/dist/tree-view/TreeView.svelte.d.ts +3 -1
  166. package/dist/unit-number-editor/README.md +546 -20
  167. package/dist/unit-number-editor/README_CN.md +525 -0
  168. package/dist/unit-number-editor/UnitNumberEditor.svelte +62 -8
  169. package/dist/unit-number-editor/UnitNumberEditor.svelte.d.ts +5 -1
  170. package/docs/form-field/cn/README_CN.md +364 -0
  171. package/docs/form-field/en/README.md +364 -0
  172. package/docs/form-panel/flex-form/cn/README_CN.md +586 -0
  173. package/docs/form-panel/flex-form/en/README.md +586 -0
  174. package/docs/form-panel/flex-row-form/cn/README_CN.md +787 -0
  175. package/docs/form-panel/flex-row-form/en/README.md +787 -0
  176. package/docs/form-panel/grid-form/en/README.md +744 -0
  177. package/package.json +1 -1
  178. package/dist/drawer/README-CN.md +0 -1
@@ -1,26 +1,357 @@
1
1
  # NumberEditor
2
2
 
3
- ## 使用方法
4
-
5
- ```sveltehtml
6
- <NumberEditor filled max={500} suffix="KG" compact/>
7
- ```
8
-
9
- ## 属性
10
- | 属性 | 描述 | 类型 |
11
- |---|------------------|-----------------|
12
- | disabled | 当前的数字输入框是否可用 | true / false |
13
- | readonly | 当前的数字输入框为只读或者可编辑 | true / false |
14
- | outlined | 当前的是否带边框 | true / false |
15
- | filled | 当前输入框是否填充 | true / false |
16
- | compact | 按照紧凑格式显示 | true / false |
17
- | style | 自定义style | 字符串 |
18
- | value | 值 | true / false |
19
- | precision | 精度 | 整数 |
20
- | suffix | 后缀 | 字符 |
21
- | prefix | 前缀 | 字符 |
22
- | allowNegative | 是否可以是负数 | true / false |
23
- | displayMode | 最小值 | 0(格式显示) / 1(正常) |
24
- | max | 最大值 | 数字 |
3
+ A robust number input component that provides precision control, validation, and formatting for numeric data entry.
25
4
 
5
+ ## Features
26
6
 
7
+ - **Precision Control**: Configure decimal places for accurate number formatting
8
+ - **Range Validation**: Set min/max values with automatic boundary enforcement
9
+ - **Negative Numbers**: Optional support for negative values
10
+ - **Custom Formatting**: Add prefix/suffix text for currency, units, etc.
11
+ - **Input Validation**: Real-time validation with proper error handling
12
+ - **Multiple Variants**: Support for outlined, filled, plain, and default styles
13
+ - **Display Mode**: Switch between edit and view modes
14
+ - **Action Icons**: Built-in clear functionality with customizable icons
15
+ - **Focus Management**: Programmatic focus control with setFocus method
16
+
17
+ ## Installation
18
+
19
+ ```bash
20
+ npm install @ticatec/uniface-element
21
+ ```
22
+
23
+ ## Basic Usage
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 Reference
36
+
37
+ ### Props
38
+
39
+ | Prop | Type | Default | Description |
40
+ |------|------|---------|-------------|
41
+ | `value` | `number \| null` | `undefined` | The current numeric value |
42
+ | `disabled` | `boolean` | `false` | Disables the input |
43
+ | `readonly` | `boolean` | `false` | Makes the input read-only |
44
+ | `variant` | `'' \| 'plain' \| 'outlined' \| 'filled'` | `''` | Visual style variant |
45
+ | `compact` | `boolean` | `false` | Enables compact display mode |
46
+ | `style` | `string` | `''` | Custom CSS styles |
47
+ | `placeholder` | `string` | `''` | Placeholder text |
48
+ | `precision` | `number \| null` | `null` | Number of decimal places |
49
+ | `suffix` | `string` | `''` | Text to display after the value |
50
+ | `prefix` | `string` | `''` | Text to display before the value |
51
+ | `allowNegative` | `boolean` | `false` | Allow negative numbers |
52
+ | `displayMode` | `DisplayMode` | `DisplayMode.Edit` | Edit or view mode |
53
+ | `max` | `number \| null` | `null` | Maximum allowed value |
54
+ | `min` | `number \| null` | `null` | Minimum allowed value |
55
+ | `removable` | `boolean` | `true` | Show clear button when value exists |
56
+ | `onchange` | `OnChangeHandler<number \| null>` | `null` | Change event handler |
57
+ | `class` | `string` | `''` | CSS class name |
58
+
59
+ ### Methods
60
+
61
+ | Method | Description |
62
+ |--------|-------------|
63
+ | `setFocus()` | Programmatically focus the input field |
64
+
65
+ ### Slots
66
+
67
+ | Slot | Description |
68
+ |------|-------------|
69
+ | `leading-icon` | Icon to display before the input |
70
+ | `trailing-icon` | Icon to display after the input |
71
+
72
+ ## Examples
73
+
74
+ ### Currency Input
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="Amount">
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
+ ### Percentage Input
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
+ ### Weight/Measurement Input
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
+ ### Integer Only Input
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="Enter age"
155
+ />
156
+ ```
157
+
158
+ ### Temperature Input (with negative values)
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
+ ### Financial Calculator
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('Principal changed to:', value);
193
+ }
194
+ </script>
195
+
196
+ <div class="calculator">
197
+ <FormField label="Principal Amount">
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="Interest Rate">
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="Years">
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="Total Interest">
230
+ <NumberEditor
231
+ value={interest}
232
+ readonly
233
+ variant="filled"
234
+ precision={2}
235
+ prefix="$"
236
+ />
237
+ </FormField>
238
+ </div>
239
+ ```
240
+
241
+ ### View Mode Display
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 ? 'View' : 'Edit'}
262
+ </button>
263
+ ```
264
+
265
+ ### Compact Form Layout
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="W"
282
+ />
283
+ <span>�</span>
284
+ <NumberEditor
285
+ bind:value={dimensions.height}
286
+ compact
287
+ variant="outlined"
288
+ precision={2}
289
+ suffix="cm"
290
+ placeholder="H"
291
+ />
292
+ <span>�</span>
293
+ <NumberEditor
294
+ bind:value={dimensions.depth}
295
+ compact
296
+ variant="outlined"
297
+ precision={2}
298
+ suffix="cm"
299
+ placeholder="D"
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
+ ## Validation
313
+
314
+ The NumberEditor automatically validates input based on the configured constraints:
315
+
316
+ - **Precision**: Limits decimal places to the specified precision
317
+ - **Range**: Enforces min/max boundaries on blur
318
+ - **Negative**: Prevents negative input when `allowNegative` is false
319
+ - **Non-numeric**: Blocks non-numeric characters and full-width characters
320
+ - **Real-time**: Validates during typing and provides immediate feedback
321
+
322
+ ## Best Practices
323
+
324
+ 1. **Use appropriate precision**: Set precision based on your data requirements
325
+ 2. **Set meaningful ranges**: Use min/max to prevent invalid values
326
+ 3. **Provide clear labels**: Use FormField to wrap NumberEditor with descriptive labels
327
+ 4. **Handle change events**: Implement onchange for validation or calculations
328
+ 5. **Consider user experience**: Use placeholder text and proper variant styling
329
+ 6. **Use prefix/suffix wisely**: Add units or currency symbols for clarity
330
+ 7. **Disable when needed**: Use readonly for calculated fields or disabled for unavailable inputs
331
+
332
+ ## Styling
333
+
334
+ The NumberEditor supports CSS custom properties for styling:
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
+ ## Accessibility
346
+
347
+ - Proper ARIA labels and roles
348
+ - Keyboard navigation support
349
+ - Screen reader compatibility
350
+ - Focus management
351
+ - High contrast mode support
352
+
353
+ ## Related Components
354
+
355
+ - [TextEditor](../text-editor/README.md) - For text input
356
+ - [FormField](../form-field/README.md) - For form layout and labels
357
+ - [UnitNumberEditor](../unit-number-editor/README.md) - For numbers with unit selection