@ticatec/uniface-element 5.0.4 → 5.1.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 (411) hide show
  1. package/README.md +14 -13
  2. package/README_CN.md +17 -15
  3. package/dist/app_layout/ColumnsLayout.svelte +14 -10
  4. package/dist/app_layout/ColumnsLayout.svelte.d.ts +8 -4
  5. package/dist/app_layout/README.md +14 -12
  6. package/dist/app_layout/README_CN.md +14 -12
  7. package/dist/app_layout/RowsLayout.svelte +14 -10
  8. package/dist/app_layout/RowsLayout.svelte.d.ts +8 -4
  9. package/dist/base-calendar/CalendarBase.svelte +4 -10
  10. package/dist/base-calendar/CalendarBase.svelte.d.ts +0 -4
  11. package/dist/base-calendar/DateContext.d.ts +1 -0
  12. package/dist/base-calendar/DateContext.js +5 -8
  13. package/dist/base-calendar/MonthlyCalendar.svelte +11 -3
  14. package/dist/base-calendar/MonthlyCalendar.svelte.d.ts +1 -2
  15. package/dist/base-calendar/YearPickupPanel.svelte +5 -5
  16. package/dist/base-calendar/YearPickupPanel.svelte.d.ts +2 -2
  17. package/dist/base-calendar/dateUtils.js +9 -5
  18. package/dist/composite/pagination_panel/PaginationPanel.svelte +19 -13
  19. package/dist/composite/pagination_panel/PaginationPanel.svelte.d.ts +8 -5
  20. package/dist/composite/pagination_panel/README.md +3 -1
  21. package/dist/composite/pagination_panel/README_CN.md +3 -1
  22. package/dist/composite/transfer/Transfer.svelte +30 -16
  23. package/dist/composite/transfer/Transfer.svelte.d.ts +11 -4
  24. package/dist/composite/transfer/index.d.ts +2 -2
  25. package/dist/data_display/accordion/Accordion.svelte +10 -9
  26. package/dist/data_display/accordion/Accordion.svelte.d.ts +2 -1
  27. package/dist/data_display/accordion/AccordionItemView.svelte +6 -6
  28. package/dist/data_display/accordion/AccordionItemView.svelte.d.ts +1 -1
  29. package/dist/data_display/accordion/README.md +6 -4
  30. package/dist/data_display/accordion/README_CN.md +6 -4
  31. package/dist/data_display/card/Card.svelte +13 -11
  32. package/dist/data_display/card/Card.svelte.d.ts +5 -3
  33. package/dist/data_display/card/CardAction.d.ts +7 -2
  34. package/dist/data_display/card/CommonCardActionBar.svelte +2 -2
  35. package/dist/data_display/card/README.md +11 -9
  36. package/dist/data_display/card/README_CN.md +11 -9
  37. package/dist/data_display/card/index.d.ts +2 -1
  38. package/dist/data_display/concise_data_table/Column.d.ts +0 -6
  39. package/dist/data_display/concise_data_table/ConciseListTable.svelte +6 -5
  40. package/dist/data_display/concise_data_table/ConciseListTable.svelte.d.ts +4 -3
  41. package/dist/data_display/concise_data_table/DataCell.svelte +1 -1
  42. package/dist/data_display/concise_data_table/README.md +7 -5
  43. package/dist/data_display/concise_data_table/README_CN.md +7 -5
  44. package/dist/data_display/concise_data_table/TableOptions.d.ts +1 -1
  45. package/dist/data_display/list_box/ListBox.svelte +11 -15
  46. package/dist/data_display/list_box/ListBox.svelte.d.ts +6 -9
  47. package/dist/data_display/list_box/README.md +10 -8
  48. package/dist/data_display/list_box/README_CN.md +10 -8
  49. package/dist/data_display/list_box/index.d.ts +2 -3
  50. package/dist/data_display/tree_view/README.md +4 -2
  51. package/dist/data_display/tree_view/README_CN.md +4 -2
  52. package/dist/data_display/tree_view/TreeNodeView.svelte +15 -16
  53. package/dist/data_display/tree_view/TreeNodeView.svelte.d.ts +4 -5
  54. package/dist/data_display/tree_view/TreeView.svelte +27 -19
  55. package/dist/data_display/tree_view/TreeView.svelte.d.ts +12 -4
  56. package/dist/data_display/tree_view/index.d.ts +2 -3
  57. package/dist/data_table/DataTable.svelte +46 -15
  58. package/dist/data_table/DataTable.svelte.d.ts +9 -1
  59. package/dist/data_table/README.md +10 -8
  60. package/dist/data_table/README_CN.md +10 -8
  61. package/dist/data_table/UniDataTable.d.ts +4 -4
  62. package/dist/data_table/UniDataTable.js +2 -2
  63. package/dist/data_table/index.d.ts +5 -5
  64. package/dist/data_table/lib/CellAction.d.ts +9 -0
  65. package/dist/data_table/lib/CommonHeaderCell.d.ts +2 -2
  66. package/dist/data_table/lib/CompareFn.d.ts +3 -0
  67. package/dist/data_table/lib/DataColumn.d.ts +7 -12
  68. package/dist/data_table/lib/FormatCellFn.d.ts +2 -0
  69. package/dist/data_table/lib/HrefLink.d.ts +3 -3
  70. package/dist/data_table/lib/IndicatorColumn.d.ts +2 -1
  71. package/dist/data_table/lib/RowAction.d.ts +14 -20
  72. package/dist/data_table/lib/virtualWindow.d.ts +37 -0
  73. package/dist/data_table/lib/virtualWindow.js +41 -0
  74. package/dist/data_table/parts/ActionCell.svelte +3 -3
  75. package/dist/data_table/parts/ActionCell.svelte.d.ts +1 -1
  76. package/dist/data_table/parts/ActionsPanel.svelte +17 -2
  77. package/dist/data_table/parts/ActionsPanel.svelte.d.ts +3 -0
  78. package/dist/data_table/parts/ActionsRow.svelte +7 -5
  79. package/dist/data_table/parts/ContentPanel.svelte +40 -15
  80. package/dist/data_table/parts/ContentPanel.svelte.d.ts +11 -6
  81. package/dist/data_table/parts/FixedColumnsPanel.svelte +32 -16
  82. package/dist/data_table/parts/FixedColumnsPanel.svelte.d.ts +8 -5
  83. package/dist/data_table/parts/FixedHeaderPanel.svelte +14 -15
  84. package/dist/data_table/parts/FixedHeaderPanel.svelte.d.ts +4 -4
  85. package/dist/data_table/parts/FixedRow.svelte +9 -9
  86. package/dist/data_table/parts/FixedRow.svelte.d.ts +3 -3
  87. package/dist/data_table/parts/HrefCell.svelte +1 -1
  88. package/dist/data_table/parts/PopupMenu.svelte +3 -3
  89. package/dist/data_table/parts/PopupMenu.svelte.d.ts +1 -1
  90. package/dist/data_table/parts/TableHeaderPanel.svelte +14 -14
  91. package/dist/data_table/parts/TableHeaderPanel.svelte.d.ts +4 -4
  92. package/dist/data_table/parts/TextCell.svelte +1 -1
  93. package/dist/feedback/progress-bar/ProgressBar.svelte +13 -10
  94. package/dist/feedback/progress-bar/ProgressBar.svelte.d.ts +6 -3
  95. package/dist/form/FormEditor.svelte +2 -2
  96. package/dist/form/FormEditor.svelte.d.ts +1 -1
  97. package/dist/form/attachment_files/AttachmentEditor.svelte +407 -92
  98. package/dist/form/attachment_files/AttachmentEditor.svelte.d.ts +71 -15
  99. package/dist/form/attachment_files/AttachmentFile.d.ts +35 -8
  100. package/dist/form/attachment_files/AttachmentFile.js +54 -29
  101. package/dist/form/attachment_files/AttachmentListItem.svelte +208 -0
  102. package/dist/form/attachment_files/AttachmentListItem.svelte.d.ts +25 -0
  103. package/dist/form/attachment_files/AttachmentTile.svelte +296 -0
  104. package/dist/form/attachment_files/AttachmentTile.svelte.d.ts +25 -0
  105. package/dist/form/attachment_files/FileUpload.d.ts +2 -2
  106. package/dist/form/attachment_files/README.md +71 -452
  107. package/dist/form/attachment_files/README_CN.md +68 -449
  108. package/dist/form/attachment_files/UploadTask.d.ts +27 -0
  109. package/dist/form/attachment_files/index.d.ts +8 -5
  110. package/dist/form/attachment_files/index.js +4 -2
  111. package/dist/form/cascade_options_select/CascadeOptionSelect.svelte +16 -15
  112. package/dist/form/cascade_options_select/CascadeOptionSelect.svelte.d.ts +6 -5
  113. package/dist/form/cascade_options_select/IsLeaf.d.ts +4 -0
  114. package/dist/form/cascade_options_select/IsLeaf.js +1 -0
  115. package/dist/form/cascade_options_select/OptionsBox.svelte +4 -4
  116. package/dist/form/cascade_options_select/OptionsBox.svelte.d.ts +2 -2
  117. package/dist/form/color_picker/ColorPicker.svelte +3 -3
  118. package/dist/form/color_picker/ColorPickerPanel.svelte +1 -1
  119. package/dist/form/common_editor/BasePicker.svelte +7 -7
  120. package/dist/form/common_editor/BasePicker.svelte.d.ts +3 -3
  121. package/dist/form/common_editor/CommonEditor.svelte +8 -8
  122. package/dist/form/common_editor/CommonEditor.svelte.d.ts +2 -2
  123. package/dist/form/common_editor/CommonPicker.svelte +43 -31
  124. package/dist/form/common_editor/CommonPicker.svelte.d.ts +6 -6
  125. package/dist/form/common_editor/CommonPickerProps.d.ts +2 -2
  126. package/dist/form/common_editor/CommonPopupEditor.svelte +13 -13
  127. package/dist/form/common_editor/CommonPopupEditor.svelte.d.ts +3 -4
  128. package/dist/form/common_editor/NumberInput.svelte +10 -2
  129. package/dist/form/common_editor/NumberInput.svelte.d.ts +1 -1
  130. package/dist/form/common_range_editor/CommonRangeEditor.svelte +17 -17
  131. package/dist/form/common_range_editor/CommonRangeEditor.svelte.d.ts +5 -5
  132. package/dist/form/date_picker/DatePicker.svelte +5 -5
  133. package/dist/form/date_picker/DatePicker.svelte.d.ts +1 -1
  134. package/dist/form/date_picker/DateTimePicker.svelte +16 -6
  135. package/dist/form/date_picker/README.md +7 -5
  136. package/dist/form/date_picker/README_CN.md +7 -5
  137. package/dist/form/date_picker/ScrollBar.svelte +21 -20
  138. package/dist/form/date_picker/ScrollBar.svelte.d.ts +3 -3
  139. package/dist/form/date_range/DateRangeEditor.svelte +6 -6
  140. package/dist/form/events.d.ts +70 -0
  141. package/dist/form/events.js +6 -0
  142. package/dist/form/group_box/group-check-box/GroupCheckBox.svelte +9 -7
  143. package/dist/form/group_box/group-check-box/GroupCheckBox.svelte.d.ts +4 -3
  144. package/dist/form/group_box/group-check-box/README.md +5 -3
  145. package/dist/form/group_box/group-check-box/README_CN.md +5 -3
  146. package/dist/form/group_box/group-radio-box/GroupRadioBox.svelte +9 -7
  147. package/dist/form/group_box/group-radio-box/GroupRadioBox.svelte.d.ts +4 -3
  148. package/dist/form/group_box/group-radio-box/README.md +3 -1
  149. package/dist/form/group_box/group-radio-box/README_CN.md +3 -1
  150. package/dist/form/image_editor/ImageEditor.svelte +118 -0
  151. package/dist/form/image_editor/ImageEditor.svelte.d.ts +52 -0
  152. package/dist/form/image_editor/ImageFile.d.ts +11 -0
  153. package/dist/form/image_editor/ImageFile.js +1 -0
  154. package/dist/form/{image-files → image_editor}/ImagePreview.svelte +10 -2
  155. package/dist/form/image_editor/README.md +89 -0
  156. package/dist/form/image_editor/README_CN.md +89 -0
  157. package/dist/form/image_editor/index.d.ts +11 -0
  158. package/dist/form/image_editor/index.js +4 -0
  159. package/dist/form/input_options_select/InputOptionsSelect.svelte +11 -8
  160. package/dist/form/input_options_select/InputOptionsSelect.svelte.d.ts +2 -1
  161. package/dist/form/input_options_select/README.md +44 -218
  162. package/dist/form/input_options_select/README_CN.md +38 -211
  163. package/dist/form/lookup_editor/LookupEditor.svelte +7 -10
  164. package/dist/form/lookup_editor/LookupEditor.svelte.d.ts +2 -1
  165. package/dist/form/memo_editor/MemoEditor.svelte +2 -2
  166. package/dist/form/memo_editor/MemoEditor.svelte.d.ts +1 -1
  167. package/dist/form/number_editor/NumberEditor.svelte +13 -1
  168. package/dist/form/number_editor/NumberEditor.svelte.d.ts +1 -1
  169. package/dist/form/number_range/NumberRange.svelte +5 -5
  170. package/dist/form/options_multi_select/OptionsMultiSelect.svelte +13 -13
  171. package/dist/form/options_multi_select/OptionsMultiSelect.svelte.d.ts +3 -2
  172. package/dist/form/options_multi_select/README.md +5 -3
  173. package/dist/form/options_multi_select/README_CN.md +5 -3
  174. package/dist/form/options_select/OptionsSelect.svelte +19 -15
  175. package/dist/form/options_select/OptionsSelect.svelte.d.ts +2 -1
  176. package/dist/form/options_select/README.md +9 -7
  177. package/dist/form/options_select/README_CN.md +8 -6
  178. package/dist/form/prompts_text_editor/PromptsTextEditor.svelte +6 -5
  179. package/dist/form/prompts_text_editor/PromptsTextEditor.svelte.d.ts +2 -1
  180. package/dist/form/prompts_text_editor/README.md +16 -14
  181. package/dist/form/prompts_text_editor/README_CN.md +16 -14
  182. package/dist/form/search_box/SearchBox.svelte +3 -2
  183. package/dist/form/search_box/SearchBox.svelte.d.ts +1 -1
  184. package/dist/form/switch/README.md +7 -5
  185. package/dist/form/switch/README_CN.md +7 -5
  186. package/dist/form/switch/Switch.svelte +7 -5
  187. package/dist/form/switch/Switch.svelte.d.ts +4 -2
  188. package/dist/form/text_editor/PasswordEditor.svelte +2 -2
  189. package/dist/form/text_editor/PasswordEditor.svelte.d.ts +1 -1
  190. package/dist/form/text_editor/TextEditor.svelte +6 -4
  191. package/dist/form/text_editor/TextEditor.svelte.d.ts +1 -1
  192. package/dist/form/time_editor/README.md +4 -2
  193. package/dist/form/time_editor/README_CN.md +4 -2
  194. package/dist/form/time_editor/TimeEditor.svelte +10 -7
  195. package/dist/form/time_editor/TimeEditor.svelte.d.ts +2 -1
  196. package/dist/form/types.d.ts +5 -42
  197. package/dist/form/unit-number-editor/README.md +21 -19
  198. package/dist/form/unit-number-editor/README_CN.md +21 -19
  199. package/dist/form/unit-number-editor/UnitNumberEditor.svelte +12 -11
  200. package/dist/form/unit-number-editor/UnitNumberEditor.svelte.d.ts +4 -3
  201. package/dist/general/button/Button.svelte +4 -1
  202. package/dist/general/button/Button.svelte.d.ts +3 -1
  203. package/dist/general/button/IconButton.svelte +11 -5
  204. package/dist/general/button/IconButton.svelte.d.ts +5 -2
  205. package/dist/general/button/IconButton_README.md +9 -6
  206. package/dist/general/button/IconButton_README_CN.md +9 -6
  207. package/dist/general/button/TextButton.svelte +15 -5
  208. package/dist/general/button/TextButton.svelte.d.ts +6 -2
  209. package/dist/general/button/TextButton_README.md +10 -6
  210. package/dist/general/button/TextButton_README_CN.md +10 -6
  211. package/dist/general/icon/Icon.svelte +6 -4
  212. package/dist/general/icon/Icon.svelte.d.ts +3 -2
  213. package/dist/general/tag/Tag.svelte +8 -4
  214. package/dist/general/tag/Tag.svelte.d.ts +3 -1
  215. package/dist/i18nRes/i18nRes.d.ts +45 -2
  216. package/dist/i18nRes/i18nRes.js +7 -2
  217. package/dist/layouts/action_bar/ActionBar.svelte +5 -4
  218. package/dist/layouts/action_bar/ActionBar.svelte.d.ts +2 -1
  219. package/dist/layouts/action_bar/ButtonAction.d.ts +1 -23
  220. package/dist/layouts/action_bar/README.md +20 -18
  221. package/dist/layouts/action_bar/README_CN.md +19 -17
  222. package/dist/layouts/box/Box.svelte +4 -3
  223. package/dist/layouts/box/Box.svelte.d.ts +2 -1
  224. package/dist/layouts/box/README.md +13 -11
  225. package/dist/layouts/box/README_CN.md +13 -11
  226. package/dist/layouts/form_field/FormField.svelte +5 -4
  227. package/dist/layouts/form_field/FormField.svelte.d.ts +3 -2
  228. package/dist/layouts/form_field/README.md +11 -9
  229. package/dist/layouts/form_field/README_CN.md +9 -7
  230. package/dist/layouts/form_panel/flex_row_form/Cell.svelte +3 -1
  231. package/dist/layouts/form_panel/flex_row_form/Cell.svelte.d.ts +3 -1
  232. package/dist/layouts/form_panel/flex_row_form/Row.svelte +3 -1
  233. package/dist/layouts/form_panel/flex_row_form/Row.svelte.d.ts +3 -1
  234. package/dist/layouts/form_panel/grid_form/GridField.svelte +8 -4
  235. package/dist/layouts/form_panel/grid_form/GridField.svelte.d.ts +6 -2
  236. package/dist/layouts/form_panel/grid_form/GridForm.svelte +3 -1
  237. package/dist/layouts/form_panel/grid_form/GridForm.svelte.d.ts +3 -1
  238. package/dist/layouts/form_panel/grid_form/README.md +6 -4
  239. package/dist/layouts/form_panel/grid_form/README_CN.md +6 -4
  240. package/dist/layouts/page/Page.svelte +7 -7
  241. package/dist/layouts/page/Page.svelte.d.ts +2 -2
  242. package/dist/layouts/page/PageHeader.svelte +4 -4
  243. package/dist/layouts/page/PageHeader.svelte.d.ts +1 -1
  244. package/dist/layouts/page/README.md +18 -18
  245. package/dist/layouts/page/README_CN.md +18 -18
  246. package/dist/navigation/nav_menu/MenuItem.d.ts +1 -1
  247. package/dist/navigation/nav_menu/NavigatorMenu.svelte +16 -14
  248. package/dist/navigation/nav_menu/NavigatorMenu.svelte.d.ts +7 -5
  249. package/dist/navigation/nav_menu/NavigatorMenuItem.svelte +2 -2
  250. package/dist/navigation/nav_menu/NavigatorMenuItem.svelte.d.ts +2 -2
  251. package/dist/navigation/nav_menu/README.md +8 -6
  252. package/dist/navigation/nav_menu/README_CN.md +8 -6
  253. package/dist/navigation/nav_menu/index.d.ts +2 -2
  254. package/dist/navigation/navigator/Navigator.svelte +5 -4
  255. package/dist/navigation/navigator/Navigator.svelte.d.ts +3 -2
  256. package/dist/navigation/navigator/README.md +12 -10
  257. package/dist/navigation/navigator/README_CN.md +12 -10
  258. package/dist/navigation/pagination/Pagination.svelte +23 -15
  259. package/dist/navigation/pagination/Pagination.svelte.d.ts +6 -4
  260. package/dist/navigation/progress_step_bar/ProgressStep.d.ts +2 -1
  261. package/dist/navigation/progress_step_bar/ProgressStepBar.svelte +5 -4
  262. package/dist/navigation/progress_step_bar/ProgressStepBar.svelte.d.ts +2 -1
  263. package/dist/navigation/progress_step_bar/ProgressStepBlock.svelte +3 -3
  264. package/dist/navigation/progress_step_bar/ProgressStepBlock.svelte.d.ts +1 -1
  265. package/dist/navigation/progress_step_bar/README.md +37 -35
  266. package/dist/navigation/progress_step_bar/README_CN.md +36 -34
  267. package/dist/navigation/tabs/Tabs.svelte +14 -5
  268. package/dist/navigation/tabs/Tabs.svelte.d.ts +11 -4
  269. package/dist/navigation/tabs/index.d.ts +2 -2
  270. package/dist/overlay/common/ModalPopover.svelte +5 -4
  271. package/dist/overlay/common/ModalPopover.svelte.d.ts +2 -1
  272. package/dist/overlay/common/Popover.svelte +4 -3
  273. package/dist/overlay/common/Popover.svelte.d.ts +2 -1
  274. package/dist/overlay/context-menu/ContextMenuItem.d.ts +3 -3
  275. package/dist/overlay/context-menu/ContextMenuPanel.svelte +4 -4
  276. package/dist/overlay/context-menu/index.d.ts +2 -2
  277. package/dist/overlay/dialog/CommonDialog.svelte +17 -13
  278. package/dist/overlay/dialog/CommonDialog.svelte.d.ts +9 -5
  279. package/dist/overlay/dialog/Dialog.svelte +25 -19
  280. package/dist/overlay/dialog/Dialog.svelte.d.ts +11 -5
  281. package/dist/overlay/dialog/DialogActions.d.ts +1 -1
  282. package/dist/overlay/dialog/DialogCloseConfirm.d.ts +4 -1
  283. package/dist/overlay/dialog/DialogCloseConfirm.js +1 -1
  284. package/dist/overlay/dialog/DialogManager.svelte.js +2 -1
  285. package/dist/overlay/dialog/README.md +19 -17
  286. package/dist/overlay/dialog/README_CN.md +19 -17
  287. package/dist/overlay/dialog/index.d.ts +2 -2
  288. package/dist/overlay/message-box/IMessageBox.d.ts +4 -4
  289. package/dist/overlay/message-box/MessageBox.svelte.js +3 -3
  290. package/dist/ticatec-uniface-web.css +38 -12
  291. package/dist/types.d.ts +38 -46
  292. package/dist/unifaceContext.d.ts +2 -2
  293. package/dist/utils/prefixFilter.js +0 -1
  294. package/docs/NAMING.md +362 -0
  295. package/docs/NAMING_CN.md +362 -0
  296. package/docs/components/README.md +16 -14
  297. package/docs/components/accordion/README.md +13 -2
  298. package/docs/components/accordion/example.svelte +1 -0
  299. package/docs/components/action-bar/README.md +4 -4
  300. package/docs/components/attachment-editor/README.md +224 -0
  301. package/docs/components/attachment-editor/example.svelte +22 -0
  302. package/docs/components/box/README.md +1 -1
  303. package/docs/components/button/README.md +8 -1
  304. package/docs/components/button/example.svelte +1 -0
  305. package/docs/components/card/README.md +19 -5
  306. package/docs/components/cascade-options-select/README.md +11 -5
  307. package/docs/components/columns-layout/README.md +8 -4
  308. package/docs/components/columns-layout/example.svelte +4 -0
  309. package/docs/components/common-dialog/README.md +19 -10
  310. package/docs/components/common-dialog/example.svelte +2 -1
  311. package/docs/components/concise-data-table/README.md +18 -29
  312. package/docs/components/concise-data-table/example.svelte +1 -1
  313. package/docs/components/context-menu/README.md +5 -5
  314. package/docs/components/context-menu/example.svelte +1 -1
  315. package/docs/components/criteria-field/README.md +1 -0
  316. package/docs/components/criteria-field/example.svelte +1 -0
  317. package/docs/components/data-table/README.md +63 -40
  318. package/docs/components/data-table/example.svelte +2 -2
  319. package/docs/components/date-picker/README.md +1 -1
  320. package/docs/components/date-time-picker/README.md +1 -1
  321. package/docs/components/dialog/README.md +21 -14
  322. package/docs/components/dialog/example.svelte +1 -1
  323. package/docs/components/form-field/README.md +3 -3
  324. package/docs/components/grid-form/README.md +15 -5
  325. package/docs/components/grid-form/example.svelte +1 -1
  326. package/docs/components/group-check-box/README.md +3 -3
  327. package/docs/components/group-radio-box/README.md +3 -3
  328. package/docs/components/icon/README.md +6 -5
  329. package/docs/components/icon-button/README.md +10 -1
  330. package/docs/components/icon-button/example.svelte +1 -0
  331. package/docs/components/image-editor/README.md +262 -0
  332. package/docs/components/{image-files → image-editor}/example.svelte +5 -3
  333. package/docs/components/input-options-select/README.md +2 -2
  334. package/docs/components/list-box/README.md +12 -13
  335. package/docs/components/list-box/example.svelte +3 -3
  336. package/docs/components/lookup-editor/README.md +1 -1
  337. package/docs/components/navigator/README.md +2 -1
  338. package/docs/components/navigator/example.svelte +1 -0
  339. package/docs/components/navigator-menu/README.md +24 -21
  340. package/docs/components/navigator-menu/example.svelte +4 -2
  341. package/docs/components/options-multi-select/README.md +2 -2
  342. package/docs/components/options-select/README.md +4 -4
  343. package/docs/components/page/README.md +2 -2
  344. package/docs/components/page-stack/README.md +67 -0
  345. package/docs/components/page-stack/example.svelte +7 -0
  346. package/docs/components/pagination/README.md +24 -7
  347. package/docs/components/pagination/example.svelte +5 -2
  348. package/docs/components/pagination-panel/README.md +25 -10
  349. package/docs/components/pagination-panel/example.svelte +5 -4
  350. package/docs/components/password-editor/README.md +128 -0
  351. package/docs/components/{attachment-files → password-editor}/example.svelte +5 -5
  352. package/docs/components/progress-bar/README.md +14 -4
  353. package/docs/components/progress-bar/example.svelte +1 -1
  354. package/docs/components/progress-step-bar/README.md +16 -7
  355. package/docs/components/progress-step-bar/example.svelte +5 -1
  356. package/docs/components/prompts-text-editor/README.md +8 -6
  357. package/docs/components/prompts-text-editor/example.svelte +0 -1
  358. package/docs/components/rows-layout/README.md +8 -4
  359. package/docs/components/rows-layout/example.svelte +4 -0
  360. package/docs/components/switch/README.md +2 -2
  361. package/docs/components/tabs/README.md +24 -9
  362. package/docs/components/tag/README.md +13 -2
  363. package/docs/components/tag/example.svelte +1 -0
  364. package/docs/components/text-button/README.md +20 -1
  365. package/docs/components/text-button/example.svelte +2 -0
  366. package/docs/components/time-editor/README.md +1 -1
  367. package/docs/components/transfer/README.md +16 -9
  368. package/docs/components/tree-view/README.md +29 -13
  369. package/docs/components/tree-view/example.svelte +2 -1
  370. package/docs/components/unit-number-editor/README.md +11 -8
  371. package/docs/components/unit-number-editor/example.svelte +0 -1
  372. package/package.json +13 -7
  373. package/dist/data_table/lib/CompareFunction.d.ts +0 -3
  374. package/dist/data_table/lib/FormatCell.d.ts +0 -2
  375. package/dist/form/attachment_files/FileRender.svelte +0 -125
  376. package/dist/form/attachment_files/FileRender.svelte.d.ts +0 -9
  377. package/dist/form/attachment_files/FileUploadBar.svelte +0 -66
  378. package/dist/form/attachment_files/FileUploadBar.svelte.d.ts +0 -8
  379. package/dist/form/attachment_files/FileUploadPanel.svelte +0 -161
  380. package/dist/form/attachment_files/FileUploadPanel.svelte.d.ts +0 -14
  381. package/dist/form/attachment_files/UploadFile.d.ts +0 -43
  382. package/dist/form/attachment_files/UploadFile.js +0 -80
  383. package/dist/form/cascade_options_select/CascadePanel.svelte +0 -52
  384. package/dist/form/cascade_options_select/CascadePanel.svelte.d.ts +0 -26
  385. package/dist/form/cascade_options_select/isLeafDetermine.d.ts +0 -4
  386. package/dist/form/common_editor/EditorEvents.d.ts +0 -14
  387. package/dist/form/common_editor/EditorEvents.js +0 -2
  388. package/dist/form/image-files/ImageFile.d.ts +0 -12
  389. package/dist/form/image-files/ImageFilesField.svelte +0 -128
  390. package/dist/form/image-files/ImageFilesField.svelte.d.ts +0 -18
  391. package/dist/form/image-files/ImageRender.svelte +0 -95
  392. package/dist/form/image-files/ImageRender.svelte.d.ts +0 -10
  393. package/dist/form/image-files/README.md +0 -468
  394. package/dist/form/image-files/README_CN.md +0 -468
  395. package/dist/form/image-files/index.d.ts +0 -10
  396. package/dist/form/image-files/index.js +0 -2
  397. package/dist/layout/flex/FlexBlock.svelte +0 -17
  398. package/dist/layout/flex/FlexBlock.svelte.d.ts +0 -38
  399. package/dist/layout/flex/README.md +0 -148
  400. package/dist/layout/flex/README_CN.md +0 -148
  401. package/dist/layout/flex/index.d.ts +0 -2
  402. package/dist/layout/flex/index.js +0 -2
  403. package/dist/layout/index.d.ts +0 -0
  404. package/dist/layout/index.js +0 -1
  405. package/docs/components/attachment-files/README.md +0 -332
  406. package/docs/components/image-files/README.md +0 -174
  407. /package/dist/data_table/lib/{FormatCell.js → CellAction.js} +0 -0
  408. /package/dist/data_table/lib/{CompareFunction.js → CompareFn.js} +0 -0
  409. /package/dist/{form/cascade_options_select/isLeafDetermine.js → data_table/lib/FormatCellFn.js} +0 -0
  410. /package/dist/form/{image-files/ImageFile.js → attachment_files/UploadTask.js} +0 -0
  411. /package/dist/form/{image-files → image_editor}/ImagePreview.svelte.d.ts +0 -0
@@ -1,5 +1,7 @@
1
1
  # 树形视图组件 (TreeView)
2
2
 
3
+ > **5.1.0 重命名**:本文使用 [API 命名规范](../../../docs/NAMING_CN.md) 中的名字;旧名 `onContextMenu` 已在 5.1.0 移除(5.1.0 不保留兼容别名)。
4
+
3
5
  分层树形组件,用于展示嵌套或平铺层次结构数据(基于 `HierarchyTree`),支持图标替换(如文件夹打开/关闭、文件类型徽章)、按需懒加载、选中项绑定和右键菜单。
4
6
 
5
7
  ## 特性
@@ -9,7 +11,7 @@
9
11
  - **动态展开与深层控制**:支持 `defaultExpandDepth` 初始展开深度与单击箭头切换展开。
10
12
  - **选择状态双向绑定**:支持 `bind:activeNode` 响应式绑定选中节点。
11
13
  - **异步懒加载**:支持 `lazyLoader` 按需加载子节点,加载过程中自动显示 loading 图标。
12
- - **右键菜单集成**:支持 `onContextMenu` 在节点上唤起 `ContextMenu` 右键菜单。
14
+ - **右键菜单集成**:支持 `oncontextmenu` 在节点上唤起 `ContextMenu` 右键菜单。
13
15
  - **可访问性**:容器带 `role="tree"`,支持 `onfocus`/`onblur` 焦点事件。
14
16
 
15
17
  ## 安装
@@ -43,7 +45,7 @@ import {HierarchyTree} from "@ticatec/uniface-element/TreeNodes";
43
45
  | `onchange` | `OnNodeSelectionChange` | - | 节点选择变化时的回调函数(返回 `false` 可取消本次选择) |
44
46
  | `onfocus` | `(event: FocusEvent) => void` | - | 树容器获得焦点时的回调 |
45
47
  | `onblur` | `(event: FocusEvent) => void` | - | 树容器失去焦点时的回调 |
46
- | `onContextMenu` | `OnContextMenu` | - | 右键菜单事件的回调函数 |
48
+ | `oncontextmenu` | `OnContextMenu` | - | 右键菜单事件的回调函数 |
47
49
  | `title` | `string` | - | 显示在树顶部的标题,点击标题会触发一次"取消选中"(`activeNode` 置为 `null`) |
48
50
 
49
51
  ## 类型定义
@@ -2,7 +2,6 @@
2
2
  import iconLoading from "../../assets/loading.gif";
3
3
  import type { OnContextMenu } from "../../overlay/context-menu/ContextMenuItem";
4
4
  import type { IHierarchyData } from "../../lib";
5
- import type { OnNodeSelectionChange } from "../../types";
6
5
  import type { Snippet } from 'svelte';
7
6
  import type { GetIcon, NodeIconContext, ChevronIconContext } from './TreeView.svelte';
8
7
 
@@ -15,12 +14,12 @@
15
14
  nodeIcon?: Snippet<[NodeIconContext]>;
16
15
  chevronIcon?: Snippet<[ChevronIconContext]>;
17
16
  activeNode: any;
18
- isBranch: boolean;
17
+ expandable: boolean;
19
18
  expanded: boolean;
20
19
  loading?: boolean;
21
- onToggle: () => void;
22
- onNodeSelectionChange: OnNodeSelectionChange;
23
- onContextMenu?: OnContextMenu;
20
+ ontoggle: () => void;
21
+ onselect: (node: IHierarchyData<any>) => Promise<void>;
22
+ oncontextmenu?: OnContextMenu;
24
23
  }
25
24
 
26
25
  let {
@@ -30,12 +29,12 @@
30
29
  nodeIcon,
31
30
  chevronIcon,
32
31
  activeNode,
33
- isBranch,
32
+ expandable,
34
33
  expanded,
35
34
  loading = false,
36
- onToggle,
37
- onNodeSelectionChange,
38
- onContextMenu
35
+ ontoggle,
36
+ onselect,
37
+ oncontextmenu
39
38
  }: Props = $props();
40
39
 
41
40
  let nodeText = $derived(
@@ -61,11 +60,11 @@
61
60
  const handleIconClick = async (e: MouseEvent) => {
62
61
  e.stopPropagation();
63
62
  e.preventDefault();
64
- await onToggle();
63
+ await ontoggle();
65
64
  }
66
65
 
67
66
  const handleRowClick = async () => {
68
- await onNodeSelectionChange(node);
67
+ await onselect(node);
69
68
  }
70
69
 
71
70
  const handleRowKeyDown = async (e: KeyboardEvent) => {
@@ -79,22 +78,22 @@
79
78
  if (e.key === 'Enter' || e.key === ' ') {
80
79
  e.preventDefault();
81
80
  e.stopPropagation();
82
- await onToggle();
81
+ await ontoggle();
83
82
  }
84
83
  }
85
84
 
86
85
  const handleContextMenu = (event: MouseEvent) => {
87
- onContextMenu?.(event, node);
86
+ oncontextmenu?.(event, node);
88
87
  }
89
88
  </script>
90
89
 
91
90
  <div class="tree-node" class:expanded style="padding-left: {node.level * 16}px">
92
91
  <div class="node-item" class:selected={isSelected} onclick={handleRowClick} onkeydown={handleRowKeyDown}
93
92
  oncontextmenu={handleContextMenu} role="treeitem" tabindex="0" aria-selected={isSelected}
94
- aria-expanded={isBranch ? expanded : undefined}>
93
+ aria-expanded={expandable ? expanded : undefined}>
95
94
 
96
95
  <div class="item-chevron">
97
- {#if isBranch}
96
+ {#if expandable}
98
97
  {#if loading}
99
98
  <img alt="loading" class="chevron-img" src={iconLoading}/>
100
99
  {:else if chevronIcon}
@@ -113,7 +112,7 @@
113
112
 
114
113
  {#if nodeIcon}
115
114
  <div class="node-type-icon">
116
- {@render nodeIcon({ node, expanded, isBranch })}
115
+ {@render nodeIcon({ node, expanded, isBranch: expandable })}
117
116
  </div>
118
117
  {:else if nodeIconValue}
119
118
  <div class="node-type-icon">
@@ -1,6 +1,5 @@
1
1
  import type { OnContextMenu } from "../../overlay/context-menu/ContextMenuItem";
2
2
  import type { IHierarchyData } from "../../lib";
3
- import type { OnNodeSelectionChange } from "../../types";
4
3
  import type { Snippet } from 'svelte';
5
4
  import type { GetIcon, NodeIconContext, ChevronIconContext } from './TreeView.svelte';
6
5
  type GetText<T> = (item: T) => string;
@@ -11,12 +10,12 @@ interface Props {
11
10
  nodeIcon?: Snippet<[NodeIconContext]>;
12
11
  chevronIcon?: Snippet<[ChevronIconContext]>;
13
12
  activeNode: any;
14
- isBranch: boolean;
13
+ expandable: boolean;
15
14
  expanded: boolean;
16
15
  loading?: boolean;
17
- onToggle: () => void;
18
- onNodeSelectionChange: OnNodeSelectionChange;
19
- onContextMenu?: OnContextMenu;
16
+ ontoggle: () => void;
17
+ onselect: (node: IHierarchyData<any>) => Promise<void>;
18
+ oncontextmenu?: OnContextMenu;
20
19
  }
21
20
  declare const TreeNodeView: import("svelte").Component<Props, {}, "">;
22
21
  type TreeNodeView = ReturnType<typeof TreeNodeView>;
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { untrack, type Snippet } from 'svelte';
4
4
  import {SvelteSet} from "svelte/reactivity";
5
- import type {TreeLazyLoader, NodeVisibleFun, OnNodeSelectionChange} from "../../types";
5
+ import type {TreeLazyLoader, IsNodeVisible, BeforeNodeChange, OnNodeChange} from "../../types";
6
6
  import TreeNodeView from "./TreeNodeView.svelte";
7
7
  import type {OnContextMenu} from "../../overlay/context-menu/ContextMenuItem";
8
8
  import type {HierarchyTree, IHierarchyData} from "../../lib";
@@ -32,11 +32,19 @@
32
32
  lazyLoader?: TreeLazyLoader | null;
33
33
  activeNode?: any;
34
34
  class?: string;
35
- isVisible?: NodeVisibleFun;
36
- onchange?: OnNodeSelectionChange;
35
+ isVisible?: IsNodeVisible;
36
+ /**
37
+ * 切换选中节点前的否决钩子:返回 false 阻止切换;node 为 null 表示取消选中。
38
+ */
39
+ beforeChange?: BeforeNodeChange;
40
+ /**
41
+ * 选中节点变化后的通知。
42
+ */
43
+ onchange?: OnNodeChange;
37
44
  onfocus?: (event: FocusEvent) => void;
38
45
  onblur?: (event: FocusEvent) => void;
39
- onContextMenu?: OnContextMenu;
46
+ /** 节点右键菜单回调 (event, node) */
47
+ oncontextmenu?: OnContextMenu;
40
48
  title?: string;
41
49
  /** 初始展开多少层(0 = 全部折叠,1 = 展开根节点,依此类推)。默认 0。 */
42
50
  defaultExpandDepth?: number;
@@ -53,10 +61,11 @@
53
61
  activeNode = $bindable<any>(null),
54
62
  class: className = '',
55
63
  isVisible,
64
+ beforeChange,
56
65
  onchange,
57
66
  onfocus,
58
67
  onblur,
59
- onContextMenu,
68
+ oncontextmenu,
60
69
  title = undefined,
61
70
  defaultExpandDepth = 0
62
71
  }: Props = $props();
@@ -90,14 +99,17 @@
90
99
  return lazyLoader == null ? !node.isLeaf : lazyLoader.isBranch(node);
91
100
  };
92
101
 
93
- const onNodeSelectionChange = async (node: IHierarchyData<any>): Promise<boolean> => {
94
- let accept: boolean | undefined = (await onchange?.(node));
95
- accept = accept == null ? true : accept;
96
- if (accept == null || accept == true) {
102
+ // 统一的选中切换入口:先问 beforeChange(或旧语义的 onchange),通过后再更新并通知
103
+ const changeActive = async (node: IHierarchyData<any> | null): Promise<boolean> => {
104
+ const accept = beforeChange == null || (await beforeChange(node)) !== false;
105
+ if (accept) {
97
106
  activeNode = node;
107
+ onchange?.(node);
98
108
  }
99
109
  return accept;
100
- }
110
+ };
111
+
112
+ const selectNode = async (node: IHierarchyData<any>): Promise<void> => { await changeActive(node); };
101
113
 
102
114
  const handleToggle = async (node: IHierarchyData<any>) => {
103
115
  const key = tree.getKey(node.data);
@@ -132,11 +144,7 @@
132
144
  }
133
145
 
134
146
  const handleTitleClick = async () => {
135
- let accept: boolean | undefined = (await onchange?.(null as any));
136
- accept = accept == null ? true : accept;
137
- if (accept == null || accept == true) {
138
- activeNode = null;
139
- }
147
+ await changeActive(null);
140
148
  }
141
149
 
142
150
  </script>
@@ -158,12 +166,12 @@
158
166
  {nodeIcon}
159
167
  {chevronIcon}
160
168
  {activeNode}
161
- isBranch={isBranch(node)}
162
- {onContextMenu}
163
- {onNodeSelectionChange}
169
+ expandable={isBranch(node)}
170
+ {oncontextmenu}
171
+ onselect={selectNode}
164
172
  expanded={expanded.has(tree.getKey(node.data))}
165
173
  loading={loading.has(tree.getKey(node.data))}
166
- onToggle={() => handleToggle(node)}
174
+ ontoggle={() => handleToggle(node)}
167
175
  />
168
176
  {/if}
169
177
  {/each}
@@ -1,5 +1,5 @@
1
1
  import { type Snippet } from 'svelte';
2
- import type { TreeLazyLoader, NodeVisibleFun, OnNodeSelectionChange } from "../../types";
2
+ import type { TreeLazyLoader, IsNodeVisible, BeforeNodeChange, OnNodeChange } from "../../types";
3
3
  import type { OnContextMenu } from "../../overlay/context-menu/ContextMenuItem";
4
4
  import type { HierarchyTree, IHierarchyData } from "../../lib";
5
5
  type GetText<T> = (item: T) => string;
@@ -23,11 +23,19 @@ interface Props {
23
23
  lazyLoader?: TreeLazyLoader | null;
24
24
  activeNode?: any;
25
25
  class?: string;
26
- isVisible?: NodeVisibleFun;
27
- onchange?: OnNodeSelectionChange;
26
+ isVisible?: IsNodeVisible;
27
+ /**
28
+ * 切换选中节点前的否决钩子:返回 false 阻止切换;node 为 null 表示取消选中。
29
+ */
30
+ beforeChange?: BeforeNodeChange;
31
+ /**
32
+ * 选中节点变化后的通知。
33
+ */
34
+ onchange?: OnNodeChange;
28
35
  onfocus?: (event: FocusEvent) => void;
29
36
  onblur?: (event: FocusEvent) => void;
30
- onContextMenu?: OnContextMenu;
37
+ /** 节点右键菜单回调 (event, node) */
38
+ oncontextmenu?: OnContextMenu;
31
39
  title?: string;
32
40
  /** 初始展开多少层(0 = 全部折叠,1 = 展开根节点,依此类推)。默认 0。 */
33
41
  defaultExpandDepth?: number;
@@ -1,8 +1,7 @@
1
1
  import TreeView, { type GetIcon, type NodeIconContext, type ChevronIconContext } from "./TreeView.svelte";
2
- import type { TreeLazyLoader, NodeVisibleFun, OnNodeSelectionChange, LoadChildrenFun } from "../../types";
2
+ import type { TreeLazyLoader, IsNodeVisible, BeforeNodeChange, OnNodeChange, LoadChildren } from "../../types";
3
3
  import type { IHierarchyData } from "../../lib";
4
4
  export type { IHierarchyData };
5
- export type LazyLoader = TreeLazyLoader;
6
5
  export default TreeView;
7
- export type { TreeLazyLoader, NodeVisibleFun, OnNodeSelectionChange, LoadChildrenFun };
6
+ export type { TreeLazyLoader, IsNodeVisible, BeforeNodeChange, OnNodeChange, LoadChildren };
8
7
  export type { GetIcon, NodeIconContext, ChevronIconContext };
@@ -9,8 +9,9 @@
9
9
  import FixedColumnsPanel from "./parts/FixedColumnsPanel.svelte";
10
10
  import ActionPanel from "./parts/ActionsPanel.svelte";
11
11
  import { OrderDirection } from "./lib/OrderDirection";
12
- import type { CompareFunction } from "./lib/CompareFunction";
12
+ import type { CompareFn } from "./lib/CompareFn";
13
13
  import type { GetRowFontStyle } from "../types";
14
+ import { computeVirtualWindow } from "./lib/virtualWindow";
14
15
 
15
16
  interface Props {
16
17
  columns: Array<DataColumn>;
@@ -23,9 +24,17 @@
23
24
  inlineRowHeight?: number;
24
25
  rowBorder?: boolean;
25
26
  colBorder?: boolean;
26
- emptyIndicator?: string;
27
+ /** 无数据时显示的文案 */
28
+ emptyText?: string;
27
29
  getRowFontStyle?: GetRowFontStyle<T>;
28
30
  style?: string;
31
+ /**
32
+ * 行虚拟化(窗口化渲染):仅渲染可视区域附近的行,大数据集(数千行以上)
33
+ * 建议开启。要求所有行高度一致(即统一的 rowHeight),因此默认关闭。
34
+ */
35
+ virtual?: boolean;
36
+ /** 虚拟化时可视区上下额外渲染的行数。 */
37
+ overscan?: number;
29
38
  }
30
39
 
31
40
  let {
@@ -39,9 +48,11 @@
39
48
  inlineRowHeight = $bindable(80),
40
49
  rowBorder = false,
41
50
  colBorder = false,
42
- emptyIndicator = undefined,
51
+ emptyText,
43
52
  getRowFontStyle = undefined,
44
53
  style = '',
54
+ virtual = false,
55
+ overscan = 8,
45
56
  }: Props = $props();
46
57
 
47
58
  const id: string = Math.round(new Date().getTime() + Math.random() * 1000).toString(36);
@@ -59,6 +70,23 @@
59
70
  let scrollTop = $state(0);
60
71
  let inlineComponent = $state<any>(null);
61
72
 
73
+ // Measured by ContentPanel (its scrollable data area); drives the virtual window.
74
+ let viewportHeight = $state(0);
75
+ let expandIndex = $derived(expandRow ? rows.indexOf(expandRow) : -1);
76
+ // One shared window for all three panels (frozen / content / actions), so the
77
+ // slices they render always cover the same absolute row indices.
78
+ let vwindow = $derived(virtual
79
+ ? computeVirtualWindow({
80
+ scrollTop,
81
+ viewportHeight,
82
+ rowHeight,
83
+ count: rows.length,
84
+ overscan,
85
+ expandIndex,
86
+ inlineRowHeight
87
+ })
88
+ : null);
89
+
62
90
  let orderColumn = $state<DataColumn | null>(null);
63
91
  let orderDirection = $state<OrderDirection>(OrderDirection.Ascending);
64
92
 
@@ -103,14 +131,14 @@
103
131
  }
104
132
  });
105
133
 
106
- const handleWidthChange = () => {
134
+ const onWidthChange = () => {
107
135
  if (!table) return;
108
136
  tabStyle = table.generateTemplateStyle();
109
137
  tabWidth = table.width;
110
138
  frozenWidth = table.frozenWidth;
111
139
  };
112
140
 
113
- const sortRows = (compareFun: CompareFunction, descending: boolean) => {
141
+ const sortRows = (compareFun: CompareFn, descending: boolean) => {
114
142
  if (!table) return;
115
143
  expandRow = null;
116
144
  let oList = list.sort(compareFun);
@@ -118,7 +146,7 @@
118
146
  rows = table.rows;
119
147
  };
120
148
 
121
- const handleCellClick = (col: DataColumn) => {
149
+ const onCellClick = (col: DataColumn) => {
122
150
  if (col.compareFunction != null) {
123
151
  if (col.field === orderColumn?.field) {
124
152
  orderDirection = orderDirection == OrderDirection.Ascending
@@ -132,7 +160,7 @@
132
160
  }
133
161
  };
134
162
 
135
- const handleRowExpand = async (row: TableRow) => {
163
+ const onRowExpand = async (row: TableRow) => {
136
164
  if (row == expandRow) {
137
165
  expandRow = null;
138
166
  inlineComponent = null;
@@ -147,11 +175,11 @@
147
175
  {#if table && dataColumns && fixedCols}
148
176
  {#if indicatorColumn || fixedCols.length > 0}
149
177
  <FixedColumnsPanel
150
- {handleRowExpand}
178
+ {onRowExpand}
151
179
  bind:selectedRows
152
180
  {orderDirection}
153
181
  orderColumn={orderColumn as DataColumn}
154
- {handleCellClick}
182
+ {onCellClick}
155
183
  {indicatorColumn}
156
184
  bind:expandRow
157
185
  {rowHeight}
@@ -159,9 +187,10 @@
159
187
  {fixedCols}
160
188
  {inlineRowHeight}
161
189
  {rows}
162
- {handleWidthChange}
190
+ {onWidthChange}
163
191
  width={frozenWidth}
164
192
  bind:scrollTop
193
+ {vwindow}
165
194
  />
166
195
  {/if}
167
196
 
@@ -169,8 +198,8 @@
169
198
  columns={dataColumns}
170
199
  {orderDirection}
171
200
  orderColumn={orderColumn as DataColumn}
172
- {handleWidthChange}
173
- {handleCellClick}
201
+ {onWidthChange}
202
+ {onCellClick}
174
203
  {tabWidth}
175
204
  bind:rows
176
205
  bind:scrollTop
@@ -181,14 +210,16 @@
181
210
  {table}
182
211
  {inlineComponent}
183
212
  bind:inlineRowHeight
184
- {emptyIndicator}
185
- displayHorizontalScroll={actionsColumn != null || indicatorColumn != null || fixedCols.length > 0}
213
+ {emptyText}
214
+ showHorizontalScroll={actionsColumn != null || indicatorColumn != null || fixedCols.length > 0}
186
215
  showVerticalScroll={actionsColumn == null}
187
216
  {getRowFontStyle}
217
+ {vwindow}
218
+ bind:viewportHeight
188
219
  />
189
220
  {/if}
190
221
 
191
222
  {#if actionsColumn}
192
- <ActionPanel {expandRow} {rowHeight} {headerHeight} {actionsColumn} {rows} {inlineRowHeight} bind:scrollTop />
223
+ <ActionPanel {expandRow} {rowHeight} {headerHeight} {actionsColumn} {rows} {inlineRowHeight} bind:scrollTop {vwindow} />
193
224
  {/if}
194
225
  </div>
@@ -14,9 +14,17 @@ declare function $$render<T = any>(): {
14
14
  inlineRowHeight?: number;
15
15
  rowBorder?: boolean;
16
16
  colBorder?: boolean;
17
- emptyIndicator?: string;
17
+ /** 无数据时显示的文案 */
18
+ emptyText?: string;
18
19
  getRowFontStyle?: GetRowFontStyle<T>;
19
20
  style?: string;
21
+ /**
22
+ * 行虚拟化(窗口化渲染):仅渲染可视区域附近的行,大数据集(数千行以上)
23
+ * 建议开启。要求所有行高度一致(即统一的 rowHeight),因此默认关闭。
24
+ */
25
+ virtual?: boolean;
26
+ /** 虚拟化时可视区上下额外渲染的行数。 */
27
+ overscan?: number;
20
28
  };
21
29
  exports: {};
22
30
  bindings: "inlineRowHeight" | "selectedRows";
@@ -1,5 +1,7 @@
1
1
  # DataTable
2
2
 
3
+ > **Renamed in 5.1.0**: this document uses the names from the [API Naming Guide](../../docs/NAMING.md); the old names `displayNo`, `emptyIndicator`, `warp` were removed in 5.1.0 (no compatibility aliases are kept).
4
+
3
5
  A powerful and flexible data table component featuring sorting, row selection, inline expansion, custom cell formatting, action columns, frozen columns, and row actions. Perfect for displaying large datasets with complex data structures and user interactions.
4
6
 
5
7
  ## Installation
@@ -49,7 +51,7 @@ import type { DataColumn, ActionsColumn, IndicatorColumn, RowAction } from "@tic
49
51
  | `inlineRowHeight` | `number` | `80` | Height of expanded inline rows |
50
52
  | `rowBorder` | `boolean` | `false` | Whether to show horizontal row borders |
51
53
  | `colBorder` | `boolean` | `false` | Whether to show vertical column borders |
52
- | `emptyIndicator` | `string \| undefined` | `undefined` | Text to show when no data is available |
54
+ | `emptyText` | `string \| undefined` | `undefined` | Text to show when no data is available |
53
55
  | `style` | `string` | `""` | Additional CSS styles |
54
56
 
55
57
  ## Types
@@ -64,7 +66,7 @@ interface DataColumn {
64
66
  frozen?: boolean; // Whether column is frozen/fixed
65
67
  align?: 'left' | 'center' | 'right'; // Text alignment
66
68
  minWidth?: number; // Minimum column width
67
- warp?: boolean; // Whether text can wrap
69
+ wrap?: boolean; // Whether text can wrap
68
70
  formatter?: FormatCell; // Cell formatting function
69
71
  escapeHTML?: boolean; // Whether to escape HTML in content
70
72
  href?: HrefBuilder; // Link builder function
@@ -92,7 +94,7 @@ interface ActionsColumn {
92
94
  interface IndicatorColumn {
93
95
  width: number; // Column width in pixels
94
96
  selectable?: boolean; // Whether rows are selectable
95
- displayNo?: boolean; // Whether to show row numbers
97
+ showRowNo?: boolean; // Whether to show row numbers
96
98
  buildInlineComponent?: (data: any) => Promise<any>; // Inline component builder
97
99
  }
98
100
  ```
@@ -189,7 +191,7 @@ interface RowAction {
189
191
  const indicatorColumn = {
190
192
  width: 60,
191
193
  selectable: true,
192
- displayNo: true
194
+ showRowNo: true
193
195
  };
194
196
 
195
197
  const actionsColumn = {
@@ -334,7 +336,7 @@ interface RowAction {
334
336
  const indicatorColumn = {
335
337
  width: 50,
336
338
  selectable: false,
337
- displayNo: false,
339
+ showRowNo: false,
338
340
  buildInlineComponent: async (orderData) => {
339
341
  // Simulate API call to fetch order details
340
342
  await new Promise(resolve => setTimeout(resolve, 1000));
@@ -372,7 +374,7 @@ interface RowAction {
372
374
  list={orders}
373
375
  {indicatorColumn}
374
376
  inlineRowHeight={200}
375
- emptyIndicator="No orders found"
377
+ emptyText="No orders found"
376
378
  />
377
379
  ```
378
380
 
@@ -509,7 +511,7 @@ interface RowAction {
509
511
  const indicatorColumn = {
510
512
  width: 60,
511
513
  selectable: true,
512
- displayNo: true,
514
+ showRowNo: true,
513
515
  buildInlineComponent: async (product) => {
514
516
  // Simulate loading product details
515
517
  return ProductDetails;
@@ -607,7 +609,7 @@ interface RowAction {
607
609
  inlineRowHeight={300}
608
610
  rowBorder={true}
609
611
  colBorder={true}
610
- emptyIndicator="No products found. Add some products to get started."
612
+ emptyText="No products found. Add some products to get started."
611
613
  />
612
614
  </div>
613
615
 
@@ -1,5 +1,7 @@
1
1
  # DataTable 数据表格组件
2
2
 
3
+ > **5.1.0 重命名**:本文使用 [API 命名规范](../../docs/NAMING_CN.md) 中的名字;旧名 `displayNo`, `emptyIndicator`, `warp` 已在 5.1.0 移除(5.1.0 不保留兼容别名)。
4
+
3
5
  一个功能强大且灵活的数据表格组件,支持排序、行选择、内联扩展、自定义单元格格式、操作列、冻结列和行操作。非常适合显示大型数据集、复杂数据结构和用户交互。
4
6
 
5
7
  ## 安装
@@ -49,7 +51,7 @@ import type { DataColumn, ActionsColumn, IndicatorColumn, RowAction } from "@tic
49
51
  | `inlineRowHeight` | `number` | `80` | 扩展内联行高度(像素) |
50
52
  | `rowBorder` | `boolean` | `false` | 是否显示水平行边框 |
51
53
  | `colBorder` | `boolean` | `false` | 是否显示垂直列边框 |
52
- | `emptyIndicator` | `string \| undefined` | `undefined` | 无数据时显示的文本 |
54
+ | `emptyText` | `string \| undefined` | `undefined` | 无数据时显示的文本 |
53
55
  | `style` | `string` | `""` | 附加 CSS 样式 |
54
56
 
55
57
  ## 类型
@@ -64,7 +66,7 @@ interface DataColumn {
64
66
  frozen?: boolean; // 列是否冻结/固定
65
67
  align?: 'left' | 'center' | 'right'; // 文本对齐方式
66
68
  minWidth?: number; // 最小列宽
67
- warp?: boolean; // 文本是否可换行
69
+ wrap?: boolean; // 文本是否可换行
68
70
  formatter?: FormatCell; // 单元格格式化函数
69
71
  escapeHTML?: boolean; // 是否转义 HTML 内容
70
72
  href?: HrefBuilder; // 链接生成函数
@@ -92,7 +94,7 @@ interface ActionsColumn {
92
94
  interface IndicatorColumn {
93
95
  width: number; // 列宽(像素)
94
96
  selectable?: boolean; // 行是否可选择
95
- displayNo?: boolean; // 是否显示行号
97
+ showRowNo?: boolean; // 是否显示行号
96
98
  buildInlineComponent?: (data: any) => Promise<any>; // 内联组件生成器
97
99
  }
98
100
  ```
@@ -189,7 +191,7 @@ interface RowAction {
189
191
  const indicatorColumn = {
190
192
  width: 60,
191
193
  selectable: true,
192
- displayNo: true
194
+ showRowNo: true
193
195
  };
194
196
 
195
197
  const actionsColumn = {
@@ -334,7 +336,7 @@ interface RowAction {
334
336
  const indicatorColumn = {
335
337
  width: 50,
336
338
  selectable: false,
337
- displayNo: false,
339
+ showRowNo: false,
338
340
  buildInlineComponent: async (orderData) => {
339
341
  // 模拟 API 调用以获取订单详情
340
342
  await new Promise(resolve => setTimeout(resolve, 1000));
@@ -372,7 +374,7 @@ interface RowAction {
372
374
  list={orders}
373
375
  {indicatorColumn}
374
376
  inlineRowHeight={200}
375
- emptyIndicator="未找到订单"
377
+ emptyText="未找到订单"
376
378
  />
377
379
  ```
378
380
 
@@ -509,7 +511,7 @@ interface RowAction {
509
511
  const indicatorColumn = {
510
512
  width: 60,
511
513
  selectable: true,
512
- displayNo: true,
514
+ showRowNo: true,
513
515
  buildInlineComponent: async (product) => {
514
516
  // 模拟加载产品详情
515
517
  return ProductDetails;
@@ -607,7 +609,7 @@ interface RowAction {
607
609
  inlineRowHeight={300}
608
610
  rowBorder={true}
609
611
  colBorder={true}
610
- emptyIndicator="未找到产品,请添加一些产品以开始。"
612
+ emptyText="未找到产品,请添加一些产品以开始。"
611
613
  />
612
614
  </div>
613
615
 
@@ -1,9 +1,9 @@
1
1
  import type DataColumn from "./lib/DataColumn";
2
2
  import type TableRow from "./parts/TableRow";
3
- export type RowEventHandler = (row: TableRow) => void;
4
- export type RowSelectEventHandler = (row: TableRow, value: boolean) => void;
5
- export type TableEventHandler = () => void;
6
- export type SelectionEventHandler = (value: boolean) => void;
3
+ export type OnRowExpand = (row: TableRow) => void;
4
+ export type OnRowSelect = (row: TableRow, value: boolean) => void;
5
+ export type OnWidthChange = () => void;
6
+ export type OnSelectAll = (value: boolean) => void;
7
7
  export declare enum SelectionMode {
8
8
  All = 1,
9
9
  Partial = 0,
@@ -48,7 +48,7 @@ export default class UniDataTable {
48
48
  if (col.visible != false) {
49
49
  this._frozenWidth += col.width;
50
50
  colStyle += `#tab-${this.id} .fz_col-${idx - inv} {width: ${col.width}px; text-align: ${col.align ?? 'left'}}\n`;
51
- if (col.warp) {
51
+ if (col.wrap) {
52
52
  colStyle += `#tab-${this.id} .fz_col-${idx - inv}>div {white-space: wrap}\n`;
53
53
  }
54
54
  }
@@ -61,7 +61,7 @@ export default class UniDataTable {
61
61
  if (col.visible != false) {
62
62
  this._width += col.width;
63
63
  colStyle += `#tab-${this.id} .col-${idx - inv} { width: ${col.width}px ; text-align: ${col.align ?? 'left'} }\n`;
64
- if (col.warp) {
64
+ if (col.wrap) {
65
65
  colStyle += `#tab-${this.id} .col-${idx - inv}>div {white-space: wrap}\n`;
66
66
  }
67
67
  }
@@ -1,13 +1,13 @@
1
1
  import DataTable from "./DataTable.svelte";
2
2
  import type ActionsColumn from "./lib/ActionsColumn";
3
- import type { FormatCell, CellHint } from "./lib/FormatCell";
3
+ import type { FormatCellFn, CellHint } from "./lib/FormatCellFn";
4
4
  import type IndicatorColumn from "./lib/IndicatorColumn";
5
5
  import type RowAction from "./lib/RowAction";
6
- import type { GetRowActions, ActionFunction } from "./lib/RowAction";
6
+ import type { GetRowActions, ActionHandler } from "./lib/RowAction";
7
7
  import type DataColumn from "./lib/DataColumn";
8
- import type { CellAction } from "../types";
8
+ import type { CellAction } from "./lib/CellAction";
9
9
  import ActionCell from "./parts/ActionCell.svelte";
10
10
  export default DataTable;
11
11
  export { ActionCell };
12
- export type { ActionsColumn, IndicatorColumn, FormatCell, CellHint, DataColumn };
13
- export type { RowAction, GetRowActions, ActionFunction, CellAction };
12
+ export type { ActionsColumn, IndicatorColumn, FormatCellFn, CellHint, DataColumn };
13
+ export type { RowAction, GetRowActions, ActionHandler, CellAction };