@ticatec/uniface-element 5.0.1 → 5.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.
Files changed (255) hide show
  1. package/README.md +29 -54
  2. package/README_CN.md +37 -57
  3. package/dist/base-calendar/CalendarBase.svelte +29 -6
  4. package/dist/base-calendar/CalendarBase.svelte.d.ts +4 -0
  5. package/dist/base-calendar/MonthPickupPanel.svelte +19 -6
  6. package/dist/base-calendar/MonthPickupPanel.svelte.d.ts +1 -1
  7. package/dist/base-calendar/MonthlyCalendar.svelte +18 -2
  8. package/dist/base-calendar/YearPickupPanel.svelte +24 -6
  9. package/dist/base-calendar/YearPickupPanel.svelte.d.ts +1 -1
  10. package/dist/composite/pagination_panel/PaginationPanel.svelte +2 -0
  11. package/dist/data_display/card/CommonCardActionBar.svelte +34 -14
  12. package/dist/data_display/concise_data_table/Column.d.ts +6 -0
  13. package/dist/data_display/concise_data_table/ConciseListTable.svelte +4 -3
  14. package/dist/data_display/concise_data_table/DataCell.svelte +3 -3
  15. package/dist/data_display/list_box/ListBox.svelte +90 -15
  16. package/dist/data_display/list_box/ListBox.svelte.d.ts +4 -0
  17. package/dist/data_display/tree_view/TreeNodeView.svelte +25 -4
  18. package/dist/data_table/DataTable.svelte +5 -5
  19. package/dist/data_table/DataTable.svelte.d.ts +36 -16
  20. package/dist/data_table/lib/ActionsColumn.d.ts +2 -2
  21. package/dist/data_table/lib/DataColumn.d.ts +7 -1
  22. package/dist/data_table/lib/RowAction.d.ts +5 -5
  23. package/dist/data_table/parts/FixedHeaderPanel.svelte +18 -3
  24. package/dist/data_table/parts/FixedRow.svelte +10 -1
  25. package/dist/data_table/parts/HrefCell.svelte +1 -1
  26. package/dist/data_table/parts/TableHeaderPanel.svelte +18 -2
  27. package/dist/data_table/parts/TextCell.svelte +2 -2
  28. package/dist/form/attachment_files/AttachmentEditor.svelte +9 -9
  29. package/dist/form/attachment_files/FileRender.svelte +1 -1
  30. package/dist/form/attachment_files/FileUploadPanel.svelte +5 -1
  31. package/dist/form/cascade_options_select/CascadeOptionSelect.svelte +10 -2
  32. package/dist/form/cascade_options_select/OptionsBox.svelte +48 -2
  33. package/dist/form/color_picker/ColorPickerPanel.svelte +23 -20
  34. package/dist/form/color_picker/ColorPickerPanel.svelte.d.ts +5 -18
  35. package/dist/form/common_editor/CommonEditor.svelte +18 -4
  36. package/dist/form/common_editor/CommonPicker.svelte +11 -4
  37. package/dist/form/common_editor/CommonPopupEditor.svelte +8 -1
  38. package/dist/form/common_range_editor/CommonRangeEditor.svelte +11 -2
  39. package/dist/form/date_picker/DatePicker.svelte +1 -1
  40. package/dist/form/date_picker/DateTimePicker.svelte +1 -1
  41. package/dist/form/date_picker/ScrollBar.svelte +20 -12
  42. package/dist/form/date_picker/ScrollBar.svelte.d.ts +4 -18
  43. package/dist/form/date_range/DateRangeEditor.svelte +11 -3
  44. package/dist/form/group_box/group-check-box/GroupCheckBox.svelte +6 -1
  45. package/dist/form/group_box/group-radio-box/GroupRadioBox.svelte +6 -1
  46. package/dist/form/image-files/ImageFilesField.svelte +51 -7
  47. package/dist/form/image-files/ImagePreview.svelte +8 -2
  48. package/dist/form/image-files/ImageRender.svelte +69 -11
  49. package/dist/form/input_options_select/InputOptionsSelect.svelte +10 -2
  50. package/dist/form/lookup_editor/LookupEditor.svelte +9 -2
  51. package/dist/form/options_multi_select/OptionsMultiSelect.svelte +19 -3
  52. package/dist/form/options_select/OptionsSelect.svelte +15 -6
  53. package/dist/form/options_select/OptionsSelect.svelte.d.ts +39 -17
  54. package/dist/form/prompts_text_editor/PromptsTextEditor.svelte +10 -2
  55. package/dist/form/switch/Switch.svelte +4 -4
  56. package/dist/form/unit-number-editor/UnitNumberEditor.svelte +10 -2
  57. package/dist/general/button/Button.svelte +3 -0
  58. package/dist/general/button/Button.svelte.d.ts +1 -0
  59. package/dist/general/button/IconButton.svelte +3 -1
  60. package/dist/general/button/IconButton.svelte.d.ts +1 -0
  61. package/dist/general/button/TextButton.svelte +3 -0
  62. package/dist/general/button/TextButton.svelte.d.ts +1 -0
  63. package/dist/general/icon/Icon.svelte +18 -1
  64. package/dist/general/tag/Tag.svelte +9 -1
  65. package/dist/navigation/nav_menu/NavigatorMenu.svelte +2 -2
  66. package/dist/navigation/nav_menu/NavigatorMenuItem.svelte +10 -1
  67. package/dist/navigation/navigator/Navigator.svelte +17 -17
  68. package/dist/navigation/page-stack/PageStack.svelte +160 -0
  69. package/dist/navigation/page-stack/PageStack.svelte.d.ts +24 -0
  70. package/dist/navigation/page-stack/PageStackContext.d.ts +25 -0
  71. package/dist/navigation/page-stack/PageStackContext.js +12 -0
  72. package/dist/navigation/page-stack/PageStackFrame.svelte +24 -0
  73. package/dist/navigation/page-stack/PageStackFrame.svelte.d.ts +11 -0
  74. package/dist/navigation/page-stack/README.md +154 -0
  75. package/dist/navigation/page-stack/README_CN.md +154 -0
  76. package/dist/navigation/page-stack/index.d.ts +6 -0
  77. package/dist/navigation/page-stack/index.js +4 -0
  78. package/dist/navigation/pagination/Pagination.svelte +114 -14
  79. package/dist/navigation/tabs/Tabs.svelte +42 -10
  80. package/dist/navigation/tabs/Tabs.svelte.d.ts +2 -2
  81. package/dist/overlay/common/FloatingPanel.svelte +3 -11
  82. package/dist/overlay/common/FullscreenOverlay.svelte +27 -3
  83. package/dist/overlay/common/FullscreenOverlay.svelte.d.ts +6 -27
  84. package/dist/overlay/common/ModalPopover.svelte +18 -2
  85. package/dist/overlay/common/Popover.svelte +56 -57
  86. package/dist/overlay/common/Popover.svelte.d.ts +1 -5
  87. package/dist/overlay/common/escapeClose.d.ts +28 -0
  88. package/dist/overlay/common/escapeClose.js +47 -0
  89. package/dist/overlay/common/focusTrap.d.ts +8 -0
  90. package/dist/overlay/common/focusTrap.js +83 -0
  91. package/dist/overlay/common/mountSingleton.d.ts +27 -0
  92. package/dist/overlay/common/mountSingleton.js +45 -0
  93. package/dist/overlay/common/outsideClick.d.ts +28 -0
  94. package/dist/overlay/common/outsideClick.js +20 -0
  95. package/dist/overlay/common/scrollLock.d.ts +8 -0
  96. package/dist/overlay/common/scrollLock.js +49 -0
  97. package/dist/overlay/context-menu/ContextMenu.svelte.js +2 -15
  98. package/dist/overlay/context-menu/ContextMenuPanel.svelte +13 -1
  99. package/dist/overlay/dialog/Dialog.svelte +46 -29
  100. package/dist/overlay/dialog/DialogManager.svelte.js +7 -9
  101. package/dist/overlay/drawer/Drawer.svelte +30 -3
  102. package/dist/overlay/indicator/Indicator.svelte.js +2 -15
  103. package/dist/overlay/indicator/IndicatorPanel.svelte +4 -1
  104. package/dist/overlay/message-box/MessageBox.svelte.js +2 -15
  105. package/dist/overlay/message-box/MessageBoxPanel.svelte +19 -3
  106. package/dist/overlay/toast/Toast.svelte.js +2 -15
  107. package/dist/overlay/toast/ToastPanel.svelte +1 -1
  108. package/dist/overlay/tooltip/Tooltip.svelte +1 -1
  109. package/dist/ticatec-uniface-web.css +102 -7
  110. package/dist/types.d.ts +4 -3
  111. package/docs/components/README.md +133 -0
  112. package/docs/components/accordion/README.md +60 -0
  113. package/docs/components/accordion/example.svelte +7 -0
  114. package/docs/components/action-bar/README.md +114 -0
  115. package/docs/components/action-bar/example.svelte +7 -0
  116. package/docs/components/app-top-bar/README.md +60 -0
  117. package/docs/components/app-top-bar/example.svelte +9 -0
  118. package/docs/components/attachment-files/README.md +332 -0
  119. package/docs/components/attachment-files/example.svelte +16 -0
  120. package/docs/components/box/README.md +63 -0
  121. package/docs/components/box/example.svelte +10 -0
  122. package/docs/components/breadcrumbs/README.md +86 -0
  123. package/docs/components/breadcrumbs/example.svelte +11 -0
  124. package/docs/components/button/README.md +103 -0
  125. package/docs/components/button/example.svelte +10 -0
  126. package/docs/components/card/README.md +113 -0
  127. package/docs/components/card/example.svelte +10 -0
  128. package/docs/components/cascade-options-select/README.md +162 -0
  129. package/docs/components/cascade-options-select/example.svelte +18 -0
  130. package/docs/components/checkbox/README.md +103 -0
  131. package/docs/components/checkbox/example.svelte +15 -0
  132. package/docs/components/classic-layout/README.md +76 -0
  133. package/docs/components/classic-layout/example.svelte +16 -0
  134. package/docs/components/color-picker/README.md +132 -0
  135. package/docs/components/color-picker/example.svelte +16 -0
  136. package/docs/components/columns-layout/README.md +70 -0
  137. package/docs/components/columns-layout/example.svelte +12 -0
  138. package/docs/components/common-dialog/README.md +109 -0
  139. package/docs/components/common-dialog/example.svelte +12 -0
  140. package/docs/components/concise-data-table/README.md +307 -0
  141. package/docs/components/concise-data-table/example.svelte +16 -0
  142. package/docs/components/context-menu/README.md +99 -0
  143. package/docs/components/context-menu/example.svelte +10 -0
  144. package/docs/components/criteria-field/README.md +69 -0
  145. package/docs/components/criteria-field/example.svelte +9 -0
  146. package/docs/components/data-table/README.md +365 -0
  147. package/docs/components/data-table/example.svelte +23 -0
  148. package/docs/components/date-picker/README.md +136 -0
  149. package/docs/components/date-picker/example.svelte +16 -0
  150. package/docs/components/date-range/README.md +122 -0
  151. package/docs/components/date-range/example.svelte +15 -0
  152. package/docs/components/date-time-picker/README.md +142 -0
  153. package/docs/components/date-time-picker/example.svelte +16 -0
  154. package/docs/components/dialog/README.md +174 -0
  155. package/docs/components/dialog/example.svelte +13 -0
  156. package/docs/components/dialog-board/README.md +41 -0
  157. package/docs/components/dialog-board/example.svelte +5 -0
  158. package/docs/components/drawer/README.md +70 -0
  159. package/docs/components/drawer/example.svelte +12 -0
  160. package/docs/components/flex-form/README.md +55 -0
  161. package/docs/components/flex-form/example.svelte +7 -0
  162. package/docs/components/flex-row-form/README.md +56 -0
  163. package/docs/components/flex-row-form/example.svelte +7 -0
  164. package/docs/components/form-field/README.md +84 -0
  165. package/docs/components/form-field/example.svelte +10 -0
  166. package/docs/components/full-screen-overlay/README.md +66 -0
  167. package/docs/components/full-screen-overlay/example.svelte +11 -0
  168. package/docs/components/grid-form/README.md +75 -0
  169. package/docs/components/grid-form/example.svelte +9 -0
  170. package/docs/components/group-check-box/README.md +147 -0
  171. package/docs/components/group-check-box/example.svelte +21 -0
  172. package/docs/components/group-radio-box/README.md +144 -0
  173. package/docs/components/group-radio-box/example.svelte +21 -0
  174. package/docs/components/header-layout/README.md +65 -0
  175. package/docs/components/header-layout/example.svelte +12 -0
  176. package/docs/components/icon/README.md +87 -0
  177. package/docs/components/icon/example.svelte +9 -0
  178. package/docs/components/icon-button/README.md +91 -0
  179. package/docs/components/icon-button/example.svelte +10 -0
  180. package/docs/components/image-files/README.md +174 -0
  181. package/docs/components/image-files/example.svelte +19 -0
  182. package/docs/components/indicator/README.md +53 -0
  183. package/docs/components/indicator/example.svelte +14 -0
  184. package/docs/components/input-options-select/README.md +163 -0
  185. package/docs/components/input-options-select/example.svelte +16 -0
  186. package/docs/components/list-box/ListItem.svelte +14 -0
  187. package/docs/components/list-box/README.md +221 -0
  188. package/docs/components/list-box/example.svelte +61 -0
  189. package/docs/components/lookup-editor/README.md +137 -0
  190. package/docs/components/lookup-editor/example.svelte +16 -0
  191. package/docs/components/memo-editor/README.md +143 -0
  192. package/docs/components/memo-editor/example.svelte +16 -0
  193. package/docs/components/message-box/README.md +68 -0
  194. package/docs/components/message-box/example.svelte +10 -0
  195. package/docs/components/navigator/README.md +75 -0
  196. package/docs/components/navigator/example.svelte +13 -0
  197. package/docs/components/navigator-menu/README.md +113 -0
  198. package/docs/components/navigator-menu/example.svelte +10 -0
  199. package/docs/components/number-editor/README.md +144 -0
  200. package/docs/components/number-editor/example.svelte +16 -0
  201. package/docs/components/number-range/README.md +116 -0
  202. package/docs/components/number-range/example.svelte +15 -0
  203. package/docs/components/options-multi-select/README.md +161 -0
  204. package/docs/components/options-multi-select/example.svelte +20 -0
  205. package/docs/components/options-select/README.md +160 -0
  206. package/docs/components/options-select/example.svelte +21 -0
  207. package/docs/components/page/README.md +77 -0
  208. package/docs/components/page/example.svelte +10 -0
  209. package/docs/components/pagination/README.md +88 -0
  210. package/docs/components/pagination/example.svelte +10 -0
  211. package/docs/components/pagination-panel/README.md +120 -0
  212. package/docs/components/pagination-panel/example.svelte +16 -0
  213. package/docs/components/popup-hint/README.md +44 -0
  214. package/docs/components/popup-hint/example.svelte +5 -0
  215. package/docs/components/progress-bar/README.md +64 -0
  216. package/docs/components/progress-bar/example.svelte +8 -0
  217. package/docs/components/progress-step-bar/README.md +93 -0
  218. package/docs/components/progress-step-bar/example.svelte +7 -0
  219. package/docs/components/prompts-text-editor/README.md +146 -0
  220. package/docs/components/prompts-text-editor/example.svelte +17 -0
  221. package/docs/components/radio-button/README.md +121 -0
  222. package/docs/components/radio-button/example.svelte +18 -0
  223. package/docs/components/rows-layout/README.md +70 -0
  224. package/docs/components/rows-layout/example.svelte +12 -0
  225. package/docs/components/search-box/README.md +136 -0
  226. package/docs/components/search-box/example.svelte +16 -0
  227. package/docs/components/separator/README.md +44 -0
  228. package/docs/components/separator/example.svelte +7 -0
  229. package/docs/components/sidebar-layout/README.md +65 -0
  230. package/docs/components/sidebar-layout/example.svelte +12 -0
  231. package/docs/components/split/README.md +48 -0
  232. package/docs/components/split/example.svelte +8 -0
  233. package/docs/components/switch/README.md +77 -0
  234. package/docs/components/switch/example.svelte +11 -0
  235. package/docs/components/tabs/README.md +127 -0
  236. package/docs/components/tabs/example.svelte +22 -0
  237. package/docs/components/tag/README.md +63 -0
  238. package/docs/components/tag/example.svelte +8 -0
  239. package/docs/components/text-button/README.md +90 -0
  240. package/docs/components/text-button/example.svelte +9 -0
  241. package/docs/components/text-editor/README.md +147 -0
  242. package/docs/components/text-editor/example.svelte +16 -0
  243. package/docs/components/time-editor/README.md +130 -0
  244. package/docs/components/time-editor/example.svelte +16 -0
  245. package/docs/components/toast/README.md +52 -0
  246. package/docs/components/toast/example.svelte +9 -0
  247. package/docs/components/tooltip/README.md +44 -0
  248. package/docs/components/tooltip/example.svelte +5 -0
  249. package/docs/components/transfer/README.md +109 -0
  250. package/docs/components/transfer/example.svelte +13 -0
  251. package/docs/components/tree-view/README.md +163 -0
  252. package/docs/components/tree-view/example.svelte +26 -0
  253. package/docs/components/unit-number-editor/README.md +192 -0
  254. package/docs/components/unit-number-editor/example.svelte +18 -0
  255. package/package.json +15 -7
@@ -0,0 +1,332 @@
1
+ # AttachmentFiles
2
+
3
+ 表单组件。本文档由源码自动生成,类型以当前版本为准。
4
+
5
+ ## 简介
6
+
7
+ 管理普通附件选择、上传、展示与删除的文件字段。
8
+
9
+ ## 适用场景
10
+
11
+ - 合同、工单和审批附件
12
+ - 需要限制文件数量、大小或类型的上传
13
+
14
+ ## 导入
15
+
16
+ ```ts
17
+ import AttachmentFiles from '@ticatec/uniface-element/AttachmentFiles';
18
+ ```
19
+
20
+ ## 属性
21
+
22
+ | 属性 | 重要 | 类型 | 必填 | 默认值 | 可绑定/响应式 | 说明 |
23
+ | --- | --- | --- | --- | --- | --- | --- |
24
+ | `theme` | 否 | `string` | 否 | `undefined` | 否 | 主题样式名称,用于切换组件外观主题 |
25
+ | `tooltip` | 否 | `string` | 否 | `undefined` | 否 | 悬停提示信息,鼠标悬浮在字段上时显示 |
26
+ | `error` | 否 | `string` | 否 | `undefined` | 否 | 错误信息,用于在字段下方展示校验错误提示 |
27
+ | `disabled` | 是 | `boolean` | 否 | `false` | 否 | 是否禁用该字段,禁用后字段不可编辑且不响应交互 |
28
+ | `readonly` | 是 | `boolean` | 否 | `false` | 否 | 是否只读,只读状态下字段不可编辑但可聚焦和复制 |
29
+ | `compact` | 否 | `boolean` | 否 | `false` | 否 | 是否启用紧凑模式,紧凑模式下字段内部间距更小 |
30
+ | `variant` | 是 | `EditorVariant` | 否 | `undefined` | 否 | 编辑器外观样式变体 |
31
+ | `placeholder` | 是 | `string` | 否 | `undefined` | 否 | 占位提示文本,字段值为空时在输入区域内展示 |
32
+ | `style` | 否 | `string` | 否 | `''` | 否 | 自定义内联样式,会应用到字段根容器上 |
33
+ | `onfocus` | 否 | `(event: FocusEvent) => void` | 否 | `undefined` | 否 | 字段获得焦点时触发的回调 |
34
+ | `onblur` | 否 | `(event: FocusEvent) => void` | 否 | `undefined` | 否 | 字段失去焦点时触发的回调 |
35
+ | `onchange` | 是 | `(value?: any) => void` | 否 | `undefined` | 否 | 字段值发生变化时触发的回调 |
36
+ | `files` | 是 | `AttachmentFile[]` | 否 | `$bindable<AttachmentFile[]>([])` | 是 | 当前文件列表;增删文件后会更新绑定值。 |
37
+ | `uploadFile` | 否 | `FileUpload` | 否 | `undefined` | 否 | 实际执行上传的函数;接收文件、进度回调与完成回调,需返回 `{cancel}` 以支持取消上传。 |
38
+ | `onUpload` | 否 | `() => void` | 否 | `undefined` | 否 | 事件或行为回调;参数与返回值以类型签名为准。 |
39
+ | `onFileUploaded` | 否 | `(file: UploadFile) => void` | 否 | `undefined` | 否 | 事件或行为回调;参数与返回值以类型签名为准。 |
40
+ | `accept` | 否 | `string` | 否 | `"*/*"` | 否 | 可选配置,具体取值范围和数据结构见类型列。 |
41
+ | `maxSize` | 否 | `number` | 否 | `1024 * 1024 * 10` | 否 | 可选配置,具体取值范围和数据结构见类型列。 |
42
+ | `maxFiles` | 否 | `number` | 否 | `10` | 否 | 可选配置,具体取值范围和数据结构见类型列。 |
43
+ | `removeFileConfirm` | 否 | `(file: AttachmentFile) => Promise<boolean>` | 否 | `undefined` | 否 | 可选配置,具体取值范围和数据结构见类型列。 |
44
+
45
+ > 组件的“可绑定”表示源码使用了 Svelte 5 的 `$bindable`;服务的“响应式”表示成员使用了 `$state`。复杂类型请同时参考 TypeScript 自动补全。
46
+
47
+ ## 重要属性说明
48
+
49
+ ### `disabled`
50
+
51
+ 是否禁用该字段,禁用后字段不可编辑且不响应交互
52
+
53
+ - 类型:`boolean`
54
+ - 默认值:`false`
55
+ - 示例写法:`disabled={false}`
56
+
57
+ ### `readonly`
58
+
59
+ 是否只读,只读状态下字段不可编辑但可聚焦和复制
60
+
61
+ - 类型:`boolean`
62
+ - 默认值:`false`
63
+ - 示例写法:`readonly={false}`
64
+
65
+ ### `variant`
66
+
67
+ 编辑器外观样式变体
68
+
69
+ - 类型:`EditorVariant`
70
+ - 默认值:`undefined`
71
+ - 示例写法:`variant="plain"`
72
+
73
+ ### `placeholder`
74
+
75
+ 占位提示文本,字段值为空时在输入区域内展示
76
+
77
+ - 类型:`string`
78
+ - 默认值:`undefined`
79
+ - 示例写法:`placeholder="请输入或选择"`
80
+
81
+ ### `onchange`
82
+
83
+ 字段值发生变化时触发的回调
84
+
85
+ - 类型:`(value?: any) => void`
86
+ - 默认值:`undefined`
87
+ - 示例写法:`onchange={async (...args: any[]) => { console.log('onchange', ...args); return true; }}`
88
+
89
+ ### `files`
90
+
91
+ 当前文件列表;增删文件后会更新绑定值。
92
+
93
+ - 类型:`AttachmentFile[]`
94
+ - 默认值:`$bindable<AttachmentFile[]>([])`
95
+ - 推荐写法:`bind:files`
96
+
97
+ ## 组件实例方法
98
+
99
+ 通过 `bind:this` 获取组件实例后调用。
100
+
101
+ | 方法 | 类型 | 说明 |
102
+ | --- | --- | --- |
103
+ | `focus()` | `() => void` | 组件实例方法。 |
104
+
105
+ ## 相关类型定义
106
+
107
+ 以下定义帮助理解复杂属性的数据结构;其中部分辅助类型属于内部实现,不一定是独立导出入口。
108
+
109
+ ### `EditorVariant`
110
+
111
+ ```ts
112
+ export type EditorVariant = '' | 'plain' | 'outlined' | 'filled';
113
+ ```
114
+
115
+ ### `AttachmentFile`
116
+
117
+ ```ts
118
+ export default interface AttachmentFile {
119
+
120
+ /**
121
+ * 附件名
122
+ */
123
+ name: string;
124
+
125
+ /**
126
+ * 文件类型
127
+ */
128
+ type: FileType;
129
+
130
+ /**
131
+ * oss保存的文件路径
132
+ */
133
+ uri: string;
134
+ }
135
+ ```
136
+
137
+ ### `FileUpload`
138
+
139
+ ```ts
140
+ export type FileUpload = (file: File, progressUpdate: ProgressUpdate, onUploaded: OnUploaded, errorHandler: ErrorHandler) => UploadProgress;
141
+ ```
142
+
143
+ ### `UploadFile`
144
+
145
+ ```ts
146
+ export default class UploadFile {
147
+
148
+ /**
149
+ * 待上传的文件
150
+ */
151
+ readonly file: File;
152
+
153
+ /**
154
+ * 上传后的文件地址
155
+ */
156
+ private _url: string | null = null;
157
+
158
+ /**
159
+ * 上传的缩率图
160
+ * @private
161
+ */
162
+ private _thumbnail: string | null | undefined = null;
163
+ /**
164
+ * 状态
165
+ */
166
+ private _status: ProgressStatus = ProgressStatus.progressing;
167
+ /**
168
+ * 已经上传的字节数
169
+ */
170
+ private _uploadedBytes: number = 0;
171
+ /**
172
+ * 上传的实例
173
+ */
174
+ private loader?: UploadProgress;
175
+
176
+ private readonly onCompleted: OnCompleted;
177
+
178
+ private readonly uploadFile: FileUpload;
179
+
180
+ private updateStatus: UpdateStatus = null as unknown as UpdateStatus;
181
+
182
+ constructor(file: File, uploadFile: FileUpload, onCompleted: OnCompleted) {
183
+ this.file = file;
184
+ this.uploadFile = uploadFile;
185
+ this.onCompleted = onCompleted;
186
+ this.loader = this.startUploading();
187
+ }
188
+
189
+ private startUploading() {
190
+ return this.uploadFile(this.file, (bytes: number) => {
191
+ this._uploadedBytes = bytes;
192
+ this.updateStatus?.();
193
+ }, (url: string, thumbnail?: string) => {
194
+ this._url = url;
195
+ this._thumbnail = thumbnail;
196
+ this._status = ProgressStatus.successful;
197
+ this.onCompleted(this.file, url);
198
+ this.updateStatus?.();
199
+ }, (e: Error) => {
200
+ this._status = ProgressStatus.failure;
201
+ this.updateStatus?.();
202
+ });
203
+ }
204
+
205
+ restart() {
206
+ this._status = ProgressStatus.progressing;
207
+ this.loader = this.startUploading();
208
+ this.updateStatus?.();
209
+ }
210
+
211
+ get url(): string | null {
212
+ return this._url;
213
+ }
214
+
215
+ get thumbnail() : string | undefined | null {
216
+ return this._thumbnail;
217
+ }
218
+
219
+ get status(): ProgressStatus {
220
+ return this._status;
221
+ }
222
+
223
+ get progress(): number {
224
+ return Math.round(this._uploadedBytes * 100 / this.file.size);
225
+ }
226
+
227
+ async cancel(): Promise<boolean> {
228
+ let result = this.loader != null ? await this.loader.cancel() : true;
229
+ if (result) {
230
+ this._status = ProgressStatus.canceled;
231
+ this.updateStatus?.();
232
+ }
233
+ return result;
234
+ }
235
+
236
+ setUpdateStatus(value: UpdateStatus) {
237
+ this.updateStatus = value;
238
+ }
239
+ }
240
+ ```
241
+
242
+ ### `FileType`
243
+
244
+ ```ts
245
+ export enum FileType {
246
+ IMAGE = 'img',
247
+ PDF = 'pdf',
248
+ DOC = 'doc',
249
+ XLS = 'xml',
250
+ PPT = 'ppt',
251
+ AUDIO = 'wav',
252
+ VIDEO = 'mov',
253
+ OTHER = 'dat'
254
+ }
255
+ ```
256
+
257
+ ### `ProgressUpdate`
258
+
259
+ ```ts
260
+ export type ProgressUpdate = (uploadBytes: number) => void;
261
+ ```
262
+
263
+ ### `OnUploaded`
264
+
265
+ ```ts
266
+ export type OnUploaded = (url: string, thumbnail?: string) => void;
267
+ ```
268
+
269
+ ### `ErrorHandler`
270
+
271
+ ```ts
272
+ export type ErrorHandler = (e: Error) => void;
273
+ ```
274
+
275
+ ### `UploadProgress`
276
+
277
+ ```ts
278
+ export interface UploadProgress {
279
+
280
+ cancel:()=>Promise<boolean>;
281
+
282
+ }
283
+ ```
284
+
285
+ ### `ProgressStatus`
286
+
287
+ ```ts
288
+ export enum ProgressStatus {
289
+ progressing='progressing',
290
+ successful='successful',
291
+ failure='failure',
292
+ canceled='canceled'
293
+ }
294
+ ```
295
+
296
+ ### `OnCompleted`
297
+
298
+ ```ts
299
+ export type OnCompleted = (file: File, url: string, thumbnail?: string) => void;
300
+ ```
301
+
302
+ ### `UpdateStatus`
303
+
304
+ ```ts
305
+ export type UpdateStatus = () => void;
306
+ ```
307
+
308
+ ## 示例
309
+
310
+ 完整示例见 [example.svelte](./example.svelte)。
311
+ ```svelte
312
+ <script lang="ts">
313
+ import AttachmentFiles from '@ticatec/uniface-element/AttachmentFiles';
314
+ let files = $state<any>([]);
315
+ </script>
316
+
317
+ <AttachmentFiles
318
+ bind:files
319
+ onchange={async (...args: any[]) => { console.log('onchange', ...args); return true; }}
320
+ onfocus={async (...args: any[]) => { console.log('onfocus', ...args); return true; }}
321
+ variant="plain"
322
+ placeholder="请输入或选择"
323
+ disabled={false}
324
+ readonly={false}
325
+ compact={true}
326
+ />
327
+ <p>当前状态:{JSON.stringify({files})}</p>
328
+ ```
329
+
330
+ ## 源码
331
+
332
+ - `src/lib/form/attachment_files/AttachmentEditor.svelte`
@@ -0,0 +1,16 @@
1
+ <script lang="ts">
2
+ import AttachmentFiles from '@ticatec/uniface-element/AttachmentFiles';
3
+ let files = $state<any>([]);
4
+ </script>
5
+
6
+ <AttachmentFiles
7
+ bind:files
8
+ onchange={async (...args: any[]) => { console.log('onchange', ...args); return true; }}
9
+ onfocus={async (...args: any[]) => { console.log('onfocus', ...args); return true; }}
10
+ variant="plain"
11
+ placeholder="请输入或选择"
12
+ disabled={false}
13
+ readonly={false}
14
+ compact={true}
15
+ />
16
+ <p>当前状态:{JSON.stringify({files})}</p>
@@ -0,0 +1,63 @@
1
+ # Box
2
+
3
+ 布局组件。本文档由源码自动生成,类型以当前版本为准。
4
+
5
+ ## 简介
6
+
7
+ 提供边框、标题和内容区的通用容器。
8
+
9
+ ## 适用场景
10
+
11
+ - 仪表盘模块和详情卡片区域
12
+ - 需要统一间距与视觉分组的内容
13
+
14
+ ## 导入
15
+
16
+ ```ts
17
+ import Box from '@ticatec/uniface-element/Box';
18
+ ```
19
+
20
+ ## 属性
21
+
22
+ | 属性 | 重要 | 类型 | 必填 | 默认值 | 可绑定/响应式 | 说明 |
23
+ | --- | --- | --- | --- | --- | --- | --- |
24
+ | `title` | 否 | `string` | 否 | `''` | 否 | 可选配置,具体取值范围和数据结构见类型列。 |
25
+ | `round` | 否 | `boolean` | 否 | `false` | 否 | 可选配置,具体取值范围和数据结构见类型列。 |
26
+ | `style` | 否 | `string` | 否 | `''` | 否 | 附加到组件根元素的内联样式。 |
27
+ | `contentStyle` | 否 | `string` | 否 | `''` | 否 | 可选配置,具体取值范围和数据结构见类型列。 |
28
+ | `theme` | 否 | `string` | 否 | `undefined` | 否 | 组件主题标识,通常通过 `data-theme` 选择对应 CSS 变量。 |
29
+ | `children` | 是 | `Snippet` | 否 | `undefined` | 否 | Svelte Snippet 子内容,用于自定义组件主体。 |
30
+ | `header` | 否 | `Snippet` | 否 | `undefined` | 否 | Svelte Snippet 渲染入口,用于替换或补充默认内容。 |
31
+ | `footer` | 否 | `Snippet` | 否 | `undefined` | 否 | Svelte Snippet 渲染入口,用于替换或补充默认内容。 |
32
+
33
+ > 组件的“可绑定”表示源码使用了 Svelte 5 的 `$bindable`;服务的“响应式”表示成员使用了 `$state`。复杂类型请同时参考 TypeScript 自动补全。
34
+
35
+ ## 重要属性说明
36
+
37
+ ### `children`
38
+
39
+ Svelte Snippet 子内容,用于自定义组件主体。
40
+
41
+ - 类型:`Snippet`
42
+ - 默认值:`undefined`
43
+ - 示例写法:`children={children}`
44
+
45
+ ## 示例
46
+
47
+ 完整示例见 [example.svelte](./example.svelte)。
48
+ ```svelte
49
+ <script lang="ts">
50
+ import Box from '@ticatec/uniface-element/Box';
51
+ </script>
52
+
53
+ <Box
54
+ title="示例标题"
55
+ round={true}
56
+ >
57
+ <div>在这里放置子内容</div>
58
+ </Box>
59
+ ```
60
+
61
+ ## 源码
62
+
63
+ - `src/lib/layouts/box/Box.svelte`
@@ -0,0 +1,10 @@
1
+ <script lang="ts">
2
+ import Box from '@ticatec/uniface-element/Box';
3
+ </script>
4
+
5
+ <Box
6
+ title="示例标题"
7
+ round={true}
8
+ >
9
+ <div>在这里放置子内容</div>
10
+ </Box>
@@ -0,0 +1,86 @@
1
+ # Breadcrumbs
2
+
3
+ 导航组件。本文档由源码自动生成,类型以当前版本为准。
4
+
5
+ ## 简介
6
+
7
+ 展示当前位置层级并支持返回上级的面包屑导航。
8
+
9
+ ## 适用场景
10
+
11
+ - 多层后台菜单和详情页路径
12
+ - 文件目录、分类目录与层级页面导航
13
+
14
+ ## 导入
15
+
16
+ ```ts
17
+ import Breadcrumbs from '@ticatec/uniface-element/Breadcrumbs';
18
+ ```
19
+
20
+ ## 属性
21
+
22
+ | 属性 | 重要 | 类型 | 必填 | 默认值 | 可绑定/响应式 | 说明 |
23
+ | --- | --- | --- | --- | --- | --- | --- |
24
+ | `items` | 是 | `Array<Breadcrumb>` | 否 | `[]` | 否 | 组件的数据项集合。 |
25
+ | `separator` | 否 | `string` | 否 | `"/"` | 否 | 可选配置,具体取值范围和数据结构见类型列。 |
26
+ | `theme` | 否 | `string` | 否 | `undefined` | 否 | 组件主题标识,通常通过 `data-theme` 选择对应 CSS 变量。 |
27
+ | `onclick` | 是 | `(event: MouseEvent, item: any) => void` | 否 | `undefined` | 否 | 用户点击组件时调用,参数通常为 MouseEvent。 |
28
+ | `style` | 否 | `string` | 否 | `""` | 否 | 附加到组件根元素的内联样式。 |
29
+ | `leadingSeparator` | 否 | `boolean` | 否 | `false` | 否 | 可选配置,具体取值范围和数据结构见类型列。 |
30
+
31
+ > 组件的“可绑定”表示源码使用了 Svelte 5 的 `$bindable`;服务的“响应式”表示成员使用了 `$state`。复杂类型请同时参考 TypeScript 自动补全。
32
+
33
+ ## 重要属性说明
34
+
35
+ ### `items`
36
+
37
+ 组件的数据项集合。
38
+
39
+ - 类型:`Array<Breadcrumb>`
40
+ - 默认值:`[]`
41
+ - 示例写法:`items={[
42
+ {label: '首页', data: {path: '/'}},
43
+ {label: '用户管理', data: {path: '/users'}}
44
+ ]}`
45
+
46
+ ### `onclick`
47
+
48
+ 用户点击组件时调用,参数通常为 MouseEvent。
49
+
50
+ - 类型:`(event: MouseEvent, item: any) => void`
51
+ - 默认值:`undefined`
52
+ - 示例写法:`onclick={async (...args: any[]) => { console.log('onclick', ...args); return true; }}`
53
+
54
+ ## 相关类型定义
55
+
56
+ 以下定义帮助理解复杂属性的数据结构;其中部分辅助类型属于内部实现,不一定是独立导出入口。
57
+
58
+ ### `Breadcrumb`
59
+
60
+ ```ts
61
+ export default interface Breadcrumb {
62
+ label: string;
63
+ data: any;
64
+ }
65
+ ```
66
+
67
+ ## 示例
68
+
69
+ 完整示例见 [example.svelte](./example.svelte)。
70
+ ```svelte
71
+ <script lang="ts">
72
+ import Breadcrumbs from '@ticatec/uniface-element/Breadcrumbs';
73
+ </script>
74
+
75
+ <Breadcrumbs
76
+ onclick={async (...args: any[]) => { console.log('onclick', ...args); return true; }}
77
+ items={[
78
+ {label: '首页', data: {path: '/'}},
79
+ {label: '用户管理', data: {path: '/users'}}
80
+ ]}
81
+ />
82
+ ```
83
+
84
+ ## 源码
85
+
86
+ - `src/lib/navigation/breadcrumbs/Breadcrumbs.svelte`
@@ -0,0 +1,11 @@
1
+ <script lang="ts">
2
+ import Breadcrumbs from '@ticatec/uniface-element/Breadcrumbs';
3
+ </script>
4
+
5
+ <Breadcrumbs
6
+ onclick={async (...args: any[]) => { console.log('onclick', ...args); return true; }}
7
+ items={[
8
+ {label: '首页', data: {path: '/'}},
9
+ {label: '用户管理', data: {path: '/users'}}
10
+ ]}
11
+ />
@@ -0,0 +1,103 @@
1
+ # Button
2
+
3
+ 通用组件。本文档由源码自动生成,类型以当前版本为准。
4
+
5
+ ## 简介
6
+
7
+ 标准操作按钮,支持视觉变体、图标和原生提交类型。
8
+
9
+ ## 适用场景
10
+
11
+ - 保存、确认、创建等主要操作
12
+ - 表单提交或普通页面命令
13
+
14
+ ## 导入
15
+
16
+ ```ts
17
+ import Button from '@ticatec/uniface-element/Button';
18
+ ```
19
+
20
+ ## 属性
21
+
22
+ | 属性 | 重要 | 类型 | 必填 | 默认值 | 可绑定/响应式 | 说明 |
23
+ | --- | --- | --- | --- | --- | --- | --- |
24
+ | `type` | 否 | `ButtonType` | 否 | `'default'` | 否 | 可选配置,具体取值范围和数据结构见类型列。 |
25
+ | `htmlType` | 否 | `'button' \| 'submit' \| 'reset'` | 否 | `'button'` | 否 | 可选配置,具体取值范围和数据结构见类型列。 |
26
+ | `label` | 否 | `string` | 否 | `''` | 否 | 可选配置,具体取值范围和数据结构见类型列。 |
27
+ | `variant` | 是 | `'plain' \| 'round' \| ''` | 否 | `''` | 否 | 视觉样式变体,可选值:`plain`、`round`、`""`(默认);具体含义见组件说明。 |
28
+ | `disabled` | 是 | `boolean` | 否 | `false` | 否 | 禁用交互。禁用后通常不可聚焦、不可修改,也不会触发变更操作。 |
29
+ | `style` | 否 | `string` | 否 | `''` | 否 | 附加到组件根元素的内联样式。 |
30
+ | `size` | 否 | `'big' \| 'medium' \| 'small'` | 否 | `'medium'` | 否 | 可选配置,具体取值范围和数据结构见类型列。 |
31
+ | `onclick` | 是 | `(event: MouseEvent) => void` | 否 | `undefined` | 否 | 用户点击组件时调用,参数通常为 MouseEvent。 |
32
+ | `autofocus` | 否 | `boolean` | 否 | `false` | 否 | 可选配置,具体取值范围和数据结构见类型列。 |
33
+ | `icon` | 否 | `string \| null` | 否 | `null` | 否 | 可选配置,具体取值范围和数据结构见类型列。 |
34
+ | `theme` | 否 | `string` | 否 | `undefined` | 否 | 组件主题标识,通常通过 `data-theme` 选择对应 CSS 变量。 |
35
+ | `tooltip` | 否 | `string` | 否 | `undefined` | 否 | 可选配置,具体取值范围和数据结构见类型列。 |
36
+ | `children` | 是 | `Snippet` | 否 | `undefined` | 否 | Svelte Snippet 子内容,用于自定义组件主体。 |
37
+ | `data-*` | 否 | `any` | 否 | `透传` | 否 | 匹配此前缀的属性会透传给内部元素。 |
38
+
39
+ > 组件的“可绑定”表示源码使用了 Svelte 5 的 `$bindable`;服务的“响应式”表示成员使用了 `$state`。复杂类型请同时参考 TypeScript 自动补全。
40
+
41
+ ## 重要属性说明
42
+
43
+ ### `variant`
44
+
45
+ 视觉样式变体,可选值:`plain`、`round`、`""`(默认);具体含义见组件说明。
46
+
47
+ - 类型:`'plain' | 'round' | ''`
48
+ - 默认值:`''`
49
+ - 示例写法:`variant="plain"`
50
+
51
+ ### `disabled`
52
+
53
+ 禁用交互。禁用后通常不可聚焦、不可修改,也不会触发变更操作。
54
+
55
+ - 类型:`boolean`
56
+ - 默认值:`false`
57
+ - 示例写法:`disabled={false}`
58
+
59
+ ### `onclick`
60
+
61
+ 用户点击组件时调用,参数通常为 MouseEvent。
62
+
63
+ - 类型:`(event: MouseEvent) => void`
64
+ - 默认值:`undefined`
65
+ - 示例写法:`onclick={async (...args: any[]) => { console.log('onclick', ...args); return true; }}`
66
+
67
+ ### `children`
68
+
69
+ Svelte Snippet 子内容,用于自定义组件主体。
70
+
71
+ - 类型:`Snippet`
72
+ - 默认值:`undefined`
73
+ - 示例写法:`children={children}`
74
+
75
+ ## 相关类型定义
76
+
77
+ 以下定义帮助理解复杂属性的数据结构;其中部分辅助类型属于内部实现,不一定是独立导出入口。
78
+
79
+ ### `ButtonType`
80
+
81
+ ```ts
82
+ export type ButtonType = 'default' | 'primary' | 'secondary' | 'third' | 'forth';
83
+ ```
84
+
85
+ ## 示例
86
+
87
+ 完整示例见 [example.svelte](./example.svelte)。
88
+ ```svelte
89
+ <script lang="ts">
90
+ import Button from '@ticatec/uniface-element/Button';
91
+ </script>
92
+
93
+ <Button
94
+ onclick={async (...args: any[]) => { console.log('onclick', ...args); return true; }}
95
+ label="示例标签"
96
+ variant="plain"
97
+ disabled={false}
98
+ />
99
+ ```
100
+
101
+ ## 源码
102
+
103
+ - `src/lib/general/button/Button.svelte`
@@ -0,0 +1,10 @@
1
+ <script lang="ts">
2
+ import Button from '@ticatec/uniface-element/Button';
3
+ </script>
4
+
5
+ <Button
6
+ onclick={async (...args: any[]) => { console.log('onclick', ...args); return true; }}
7
+ label="示例标签"
8
+ variant="plain"
9
+ disabled={false}
10
+ />