@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.
- package/README.md +14 -13
- package/README_CN.md +17 -15
- package/dist/app_layout/ColumnsLayout.svelte +14 -10
- package/dist/app_layout/ColumnsLayout.svelte.d.ts +8 -4
- package/dist/app_layout/README.md +14 -12
- package/dist/app_layout/README_CN.md +14 -12
- package/dist/app_layout/RowsLayout.svelte +14 -10
- package/dist/app_layout/RowsLayout.svelte.d.ts +8 -4
- package/dist/base-calendar/CalendarBase.svelte +4 -10
- package/dist/base-calendar/CalendarBase.svelte.d.ts +0 -4
- package/dist/base-calendar/DateContext.d.ts +1 -0
- package/dist/base-calendar/DateContext.js +5 -8
- package/dist/base-calendar/MonthlyCalendar.svelte +11 -3
- package/dist/base-calendar/MonthlyCalendar.svelte.d.ts +1 -2
- package/dist/base-calendar/YearPickupPanel.svelte +5 -5
- package/dist/base-calendar/YearPickupPanel.svelte.d.ts +2 -2
- package/dist/base-calendar/dateUtils.js +9 -5
- package/dist/composite/pagination_panel/PaginationPanel.svelte +19 -13
- package/dist/composite/pagination_panel/PaginationPanel.svelte.d.ts +8 -5
- package/dist/composite/pagination_panel/README.md +3 -1
- package/dist/composite/pagination_panel/README_CN.md +3 -1
- package/dist/composite/transfer/Transfer.svelte +30 -16
- package/dist/composite/transfer/Transfer.svelte.d.ts +11 -4
- package/dist/composite/transfer/index.d.ts +2 -2
- package/dist/data_display/accordion/Accordion.svelte +10 -9
- package/dist/data_display/accordion/Accordion.svelte.d.ts +2 -1
- package/dist/data_display/accordion/AccordionItemView.svelte +6 -6
- package/dist/data_display/accordion/AccordionItemView.svelte.d.ts +1 -1
- package/dist/data_display/accordion/README.md +6 -4
- package/dist/data_display/accordion/README_CN.md +6 -4
- package/dist/data_display/card/Card.svelte +13 -11
- package/dist/data_display/card/Card.svelte.d.ts +5 -3
- package/dist/data_display/card/CardAction.d.ts +7 -2
- package/dist/data_display/card/CommonCardActionBar.svelte +2 -2
- package/dist/data_display/card/README.md +11 -9
- package/dist/data_display/card/README_CN.md +11 -9
- package/dist/data_display/card/index.d.ts +2 -1
- package/dist/data_display/concise_data_table/Column.d.ts +0 -6
- package/dist/data_display/concise_data_table/ConciseListTable.svelte +6 -5
- package/dist/data_display/concise_data_table/ConciseListTable.svelte.d.ts +4 -3
- package/dist/data_display/concise_data_table/DataCell.svelte +1 -1
- package/dist/data_display/concise_data_table/README.md +7 -5
- package/dist/data_display/concise_data_table/README_CN.md +7 -5
- package/dist/data_display/concise_data_table/TableOptions.d.ts +1 -1
- package/dist/data_display/list_box/ListBox.svelte +11 -15
- package/dist/data_display/list_box/ListBox.svelte.d.ts +6 -9
- package/dist/data_display/list_box/README.md +10 -8
- package/dist/data_display/list_box/README_CN.md +10 -8
- package/dist/data_display/list_box/index.d.ts +2 -3
- package/dist/data_display/tree_view/README.md +4 -2
- package/dist/data_display/tree_view/README_CN.md +4 -2
- package/dist/data_display/tree_view/TreeNodeView.svelte +15 -16
- package/dist/data_display/tree_view/TreeNodeView.svelte.d.ts +4 -5
- package/dist/data_display/tree_view/TreeView.svelte +27 -19
- package/dist/data_display/tree_view/TreeView.svelte.d.ts +12 -4
- package/dist/data_display/tree_view/index.d.ts +2 -3
- package/dist/data_table/DataTable.svelte +46 -15
- package/dist/data_table/DataTable.svelte.d.ts +9 -1
- package/dist/data_table/README.md +10 -8
- package/dist/data_table/README_CN.md +10 -8
- package/dist/data_table/UniDataTable.d.ts +4 -4
- package/dist/data_table/UniDataTable.js +2 -2
- package/dist/data_table/index.d.ts +5 -5
- package/dist/data_table/lib/CellAction.d.ts +9 -0
- package/dist/data_table/lib/CommonHeaderCell.d.ts +2 -2
- package/dist/data_table/lib/CompareFn.d.ts +3 -0
- package/dist/data_table/lib/DataColumn.d.ts +7 -12
- package/dist/data_table/lib/FormatCellFn.d.ts +2 -0
- package/dist/data_table/lib/HrefLink.d.ts +3 -3
- package/dist/data_table/lib/IndicatorColumn.d.ts +2 -1
- package/dist/data_table/lib/RowAction.d.ts +14 -20
- package/dist/data_table/lib/virtualWindow.d.ts +37 -0
- package/dist/data_table/lib/virtualWindow.js +41 -0
- package/dist/data_table/parts/ActionCell.svelte +3 -3
- package/dist/data_table/parts/ActionCell.svelte.d.ts +1 -1
- package/dist/data_table/parts/ActionsPanel.svelte +17 -2
- package/dist/data_table/parts/ActionsPanel.svelte.d.ts +3 -0
- package/dist/data_table/parts/ActionsRow.svelte +7 -5
- package/dist/data_table/parts/ContentPanel.svelte +40 -15
- package/dist/data_table/parts/ContentPanel.svelte.d.ts +11 -6
- package/dist/data_table/parts/FixedColumnsPanel.svelte +32 -16
- package/dist/data_table/parts/FixedColumnsPanel.svelte.d.ts +8 -5
- package/dist/data_table/parts/FixedHeaderPanel.svelte +14 -15
- package/dist/data_table/parts/FixedHeaderPanel.svelte.d.ts +4 -4
- package/dist/data_table/parts/FixedRow.svelte +9 -9
- package/dist/data_table/parts/FixedRow.svelte.d.ts +3 -3
- package/dist/data_table/parts/HrefCell.svelte +1 -1
- package/dist/data_table/parts/PopupMenu.svelte +3 -3
- package/dist/data_table/parts/PopupMenu.svelte.d.ts +1 -1
- package/dist/data_table/parts/TableHeaderPanel.svelte +14 -14
- package/dist/data_table/parts/TableHeaderPanel.svelte.d.ts +4 -4
- package/dist/data_table/parts/TextCell.svelte +1 -1
- package/dist/feedback/progress-bar/ProgressBar.svelte +13 -10
- package/dist/feedback/progress-bar/ProgressBar.svelte.d.ts +6 -3
- package/dist/form/FormEditor.svelte +2 -2
- package/dist/form/FormEditor.svelte.d.ts +1 -1
- package/dist/form/attachment_files/AttachmentEditor.svelte +407 -92
- package/dist/form/attachment_files/AttachmentEditor.svelte.d.ts +71 -15
- package/dist/form/attachment_files/AttachmentFile.d.ts +35 -8
- package/dist/form/attachment_files/AttachmentFile.js +54 -29
- package/dist/form/attachment_files/AttachmentListItem.svelte +208 -0
- package/dist/form/attachment_files/AttachmentListItem.svelte.d.ts +25 -0
- package/dist/form/attachment_files/AttachmentTile.svelte +296 -0
- package/dist/form/attachment_files/AttachmentTile.svelte.d.ts +25 -0
- package/dist/form/attachment_files/FileUpload.d.ts +2 -2
- package/dist/form/attachment_files/README.md +71 -452
- package/dist/form/attachment_files/README_CN.md +68 -449
- package/dist/form/attachment_files/UploadTask.d.ts +27 -0
- package/dist/form/attachment_files/index.d.ts +8 -5
- package/dist/form/attachment_files/index.js +4 -2
- package/dist/form/cascade_options_select/CascadeOptionSelect.svelte +16 -15
- package/dist/form/cascade_options_select/CascadeOptionSelect.svelte.d.ts +6 -5
- package/dist/form/cascade_options_select/IsLeaf.d.ts +4 -0
- package/dist/form/cascade_options_select/IsLeaf.js +1 -0
- package/dist/form/cascade_options_select/OptionsBox.svelte +4 -4
- package/dist/form/cascade_options_select/OptionsBox.svelte.d.ts +2 -2
- package/dist/form/color_picker/ColorPicker.svelte +3 -3
- package/dist/form/color_picker/ColorPickerPanel.svelte +1 -1
- package/dist/form/common_editor/BasePicker.svelte +7 -7
- package/dist/form/common_editor/BasePicker.svelte.d.ts +3 -3
- package/dist/form/common_editor/CommonEditor.svelte +8 -8
- package/dist/form/common_editor/CommonEditor.svelte.d.ts +2 -2
- package/dist/form/common_editor/CommonPicker.svelte +43 -31
- package/dist/form/common_editor/CommonPicker.svelte.d.ts +6 -6
- package/dist/form/common_editor/CommonPickerProps.d.ts +2 -2
- package/dist/form/common_editor/CommonPopupEditor.svelte +13 -13
- package/dist/form/common_editor/CommonPopupEditor.svelte.d.ts +3 -4
- package/dist/form/common_editor/NumberInput.svelte +10 -2
- package/dist/form/common_editor/NumberInput.svelte.d.ts +1 -1
- package/dist/form/common_range_editor/CommonRangeEditor.svelte +17 -17
- package/dist/form/common_range_editor/CommonRangeEditor.svelte.d.ts +5 -5
- package/dist/form/date_picker/DatePicker.svelte +5 -5
- package/dist/form/date_picker/DatePicker.svelte.d.ts +1 -1
- package/dist/form/date_picker/DateTimePicker.svelte +16 -6
- package/dist/form/date_picker/README.md +7 -5
- package/dist/form/date_picker/README_CN.md +7 -5
- package/dist/form/date_picker/ScrollBar.svelte +21 -20
- package/dist/form/date_picker/ScrollBar.svelte.d.ts +3 -3
- package/dist/form/date_range/DateRangeEditor.svelte +6 -6
- package/dist/form/events.d.ts +70 -0
- package/dist/form/events.js +6 -0
- package/dist/form/group_box/group-check-box/GroupCheckBox.svelte +9 -7
- package/dist/form/group_box/group-check-box/GroupCheckBox.svelte.d.ts +4 -3
- package/dist/form/group_box/group-check-box/README.md +5 -3
- package/dist/form/group_box/group-check-box/README_CN.md +5 -3
- package/dist/form/group_box/group-radio-box/GroupRadioBox.svelte +9 -7
- package/dist/form/group_box/group-radio-box/GroupRadioBox.svelte.d.ts +4 -3
- package/dist/form/group_box/group-radio-box/README.md +3 -1
- package/dist/form/group_box/group-radio-box/README_CN.md +3 -1
- package/dist/form/image_editor/ImageEditor.svelte +118 -0
- package/dist/form/image_editor/ImageEditor.svelte.d.ts +52 -0
- package/dist/form/image_editor/ImageFile.d.ts +11 -0
- package/dist/form/image_editor/ImageFile.js +1 -0
- package/dist/form/{image-files → image_editor}/ImagePreview.svelte +10 -2
- package/dist/form/image_editor/README.md +89 -0
- package/dist/form/image_editor/README_CN.md +89 -0
- package/dist/form/image_editor/index.d.ts +11 -0
- package/dist/form/image_editor/index.js +4 -0
- package/dist/form/input_options_select/InputOptionsSelect.svelte +11 -8
- package/dist/form/input_options_select/InputOptionsSelect.svelte.d.ts +2 -1
- package/dist/form/input_options_select/README.md +44 -218
- package/dist/form/input_options_select/README_CN.md +38 -211
- package/dist/form/lookup_editor/LookupEditor.svelte +7 -10
- package/dist/form/lookup_editor/LookupEditor.svelte.d.ts +2 -1
- package/dist/form/memo_editor/MemoEditor.svelte +2 -2
- package/dist/form/memo_editor/MemoEditor.svelte.d.ts +1 -1
- package/dist/form/number_editor/NumberEditor.svelte +13 -1
- package/dist/form/number_editor/NumberEditor.svelte.d.ts +1 -1
- package/dist/form/number_range/NumberRange.svelte +5 -5
- package/dist/form/options_multi_select/OptionsMultiSelect.svelte +13 -13
- package/dist/form/options_multi_select/OptionsMultiSelect.svelte.d.ts +3 -2
- package/dist/form/options_multi_select/README.md +5 -3
- package/dist/form/options_multi_select/README_CN.md +5 -3
- package/dist/form/options_select/OptionsSelect.svelte +19 -15
- package/dist/form/options_select/OptionsSelect.svelte.d.ts +2 -1
- package/dist/form/options_select/README.md +9 -7
- package/dist/form/options_select/README_CN.md +8 -6
- package/dist/form/prompts_text_editor/PromptsTextEditor.svelte +6 -5
- package/dist/form/prompts_text_editor/PromptsTextEditor.svelte.d.ts +2 -1
- package/dist/form/prompts_text_editor/README.md +16 -14
- package/dist/form/prompts_text_editor/README_CN.md +16 -14
- package/dist/form/search_box/SearchBox.svelte +3 -2
- package/dist/form/search_box/SearchBox.svelte.d.ts +1 -1
- package/dist/form/switch/README.md +7 -5
- package/dist/form/switch/README_CN.md +7 -5
- package/dist/form/switch/Switch.svelte +7 -5
- package/dist/form/switch/Switch.svelte.d.ts +4 -2
- package/dist/form/text_editor/PasswordEditor.svelte +2 -2
- package/dist/form/text_editor/PasswordEditor.svelte.d.ts +1 -1
- package/dist/form/text_editor/TextEditor.svelte +6 -4
- package/dist/form/text_editor/TextEditor.svelte.d.ts +1 -1
- package/dist/form/time_editor/README.md +4 -2
- package/dist/form/time_editor/README_CN.md +4 -2
- package/dist/form/time_editor/TimeEditor.svelte +10 -7
- package/dist/form/time_editor/TimeEditor.svelte.d.ts +2 -1
- package/dist/form/types.d.ts +5 -42
- package/dist/form/unit-number-editor/README.md +21 -19
- package/dist/form/unit-number-editor/README_CN.md +21 -19
- package/dist/form/unit-number-editor/UnitNumberEditor.svelte +12 -11
- package/dist/form/unit-number-editor/UnitNumberEditor.svelte.d.ts +4 -3
- package/dist/general/button/Button.svelte +4 -1
- package/dist/general/button/Button.svelte.d.ts +3 -1
- package/dist/general/button/IconButton.svelte +11 -5
- package/dist/general/button/IconButton.svelte.d.ts +5 -2
- package/dist/general/button/IconButton_README.md +9 -6
- package/dist/general/button/IconButton_README_CN.md +9 -6
- package/dist/general/button/TextButton.svelte +15 -5
- package/dist/general/button/TextButton.svelte.d.ts +6 -2
- package/dist/general/button/TextButton_README.md +10 -6
- package/dist/general/button/TextButton_README_CN.md +10 -6
- package/dist/general/icon/Icon.svelte +6 -4
- package/dist/general/icon/Icon.svelte.d.ts +3 -2
- package/dist/general/tag/Tag.svelte +8 -4
- package/dist/general/tag/Tag.svelte.d.ts +3 -1
- package/dist/i18nRes/i18nRes.d.ts +45 -2
- package/dist/i18nRes/i18nRes.js +7 -2
- package/dist/layouts/action_bar/ActionBar.svelte +5 -4
- package/dist/layouts/action_bar/ActionBar.svelte.d.ts +2 -1
- package/dist/layouts/action_bar/ButtonAction.d.ts +1 -23
- package/dist/layouts/action_bar/README.md +20 -18
- package/dist/layouts/action_bar/README_CN.md +19 -17
- package/dist/layouts/box/Box.svelte +4 -3
- package/dist/layouts/box/Box.svelte.d.ts +2 -1
- package/dist/layouts/box/README.md +13 -11
- package/dist/layouts/box/README_CN.md +13 -11
- package/dist/layouts/form_field/FormField.svelte +5 -4
- package/dist/layouts/form_field/FormField.svelte.d.ts +3 -2
- package/dist/layouts/form_field/README.md +11 -9
- package/dist/layouts/form_field/README_CN.md +9 -7
- package/dist/layouts/form_panel/flex_row_form/Cell.svelte +3 -1
- package/dist/layouts/form_panel/flex_row_form/Cell.svelte.d.ts +3 -1
- package/dist/layouts/form_panel/flex_row_form/Row.svelte +3 -1
- package/dist/layouts/form_panel/flex_row_form/Row.svelte.d.ts +3 -1
- package/dist/layouts/form_panel/grid_form/GridField.svelte +8 -4
- package/dist/layouts/form_panel/grid_form/GridField.svelte.d.ts +6 -2
- package/dist/layouts/form_panel/grid_form/GridForm.svelte +3 -1
- package/dist/layouts/form_panel/grid_form/GridForm.svelte.d.ts +3 -1
- package/dist/layouts/form_panel/grid_form/README.md +6 -4
- package/dist/layouts/form_panel/grid_form/README_CN.md +6 -4
- package/dist/layouts/page/Page.svelte +7 -7
- package/dist/layouts/page/Page.svelte.d.ts +2 -2
- package/dist/layouts/page/PageHeader.svelte +4 -4
- package/dist/layouts/page/PageHeader.svelte.d.ts +1 -1
- package/dist/layouts/page/README.md +18 -18
- package/dist/layouts/page/README_CN.md +18 -18
- package/dist/navigation/nav_menu/MenuItem.d.ts +1 -1
- package/dist/navigation/nav_menu/NavigatorMenu.svelte +16 -14
- package/dist/navigation/nav_menu/NavigatorMenu.svelte.d.ts +7 -5
- package/dist/navigation/nav_menu/NavigatorMenuItem.svelte +2 -2
- package/dist/navigation/nav_menu/NavigatorMenuItem.svelte.d.ts +2 -2
- package/dist/navigation/nav_menu/README.md +8 -6
- package/dist/navigation/nav_menu/README_CN.md +8 -6
- package/dist/navigation/nav_menu/index.d.ts +2 -2
- package/dist/navigation/navigator/Navigator.svelte +5 -4
- package/dist/navigation/navigator/Navigator.svelte.d.ts +3 -2
- package/dist/navigation/navigator/README.md +12 -10
- package/dist/navigation/navigator/README_CN.md +12 -10
- package/dist/navigation/pagination/Pagination.svelte +23 -15
- package/dist/navigation/pagination/Pagination.svelte.d.ts +6 -4
- package/dist/navigation/progress_step_bar/ProgressStep.d.ts +2 -1
- package/dist/navigation/progress_step_bar/ProgressStepBar.svelte +5 -4
- package/dist/navigation/progress_step_bar/ProgressStepBar.svelte.d.ts +2 -1
- package/dist/navigation/progress_step_bar/ProgressStepBlock.svelte +3 -3
- package/dist/navigation/progress_step_bar/ProgressStepBlock.svelte.d.ts +1 -1
- package/dist/navigation/progress_step_bar/README.md +37 -35
- package/dist/navigation/progress_step_bar/README_CN.md +36 -34
- package/dist/navigation/tabs/Tabs.svelte +14 -5
- package/dist/navigation/tabs/Tabs.svelte.d.ts +11 -4
- package/dist/navigation/tabs/index.d.ts +2 -2
- package/dist/overlay/common/ModalPopover.svelte +5 -4
- package/dist/overlay/common/ModalPopover.svelte.d.ts +2 -1
- package/dist/overlay/common/Popover.svelte +4 -3
- package/dist/overlay/common/Popover.svelte.d.ts +2 -1
- package/dist/overlay/context-menu/ContextMenuItem.d.ts +3 -3
- package/dist/overlay/context-menu/ContextMenuPanel.svelte +4 -4
- package/dist/overlay/context-menu/index.d.ts +2 -2
- package/dist/overlay/dialog/CommonDialog.svelte +17 -13
- package/dist/overlay/dialog/CommonDialog.svelte.d.ts +9 -5
- package/dist/overlay/dialog/Dialog.svelte +25 -19
- package/dist/overlay/dialog/Dialog.svelte.d.ts +11 -5
- package/dist/overlay/dialog/DialogActions.d.ts +1 -1
- package/dist/overlay/dialog/DialogCloseConfirm.d.ts +4 -1
- package/dist/overlay/dialog/DialogCloseConfirm.js +1 -1
- package/dist/overlay/dialog/DialogManager.svelte.js +2 -1
- package/dist/overlay/dialog/README.md +19 -17
- package/dist/overlay/dialog/README_CN.md +19 -17
- package/dist/overlay/dialog/index.d.ts +2 -2
- package/dist/overlay/message-box/IMessageBox.d.ts +4 -4
- package/dist/overlay/message-box/MessageBox.svelte.js +3 -3
- package/dist/ticatec-uniface-web.css +38 -12
- package/dist/types.d.ts +38 -46
- package/dist/unifaceContext.d.ts +2 -2
- package/dist/utils/prefixFilter.js +0 -1
- package/docs/NAMING.md +362 -0
- package/docs/NAMING_CN.md +362 -0
- package/docs/components/README.md +16 -14
- package/docs/components/accordion/README.md +13 -2
- package/docs/components/accordion/example.svelte +1 -0
- package/docs/components/action-bar/README.md +4 -4
- package/docs/components/attachment-editor/README.md +224 -0
- package/docs/components/attachment-editor/example.svelte +22 -0
- package/docs/components/box/README.md +1 -1
- package/docs/components/button/README.md +8 -1
- package/docs/components/button/example.svelte +1 -0
- package/docs/components/card/README.md +19 -5
- package/docs/components/cascade-options-select/README.md +11 -5
- package/docs/components/columns-layout/README.md +8 -4
- package/docs/components/columns-layout/example.svelte +4 -0
- package/docs/components/common-dialog/README.md +19 -10
- package/docs/components/common-dialog/example.svelte +2 -1
- package/docs/components/concise-data-table/README.md +18 -29
- package/docs/components/concise-data-table/example.svelte +1 -1
- package/docs/components/context-menu/README.md +5 -5
- package/docs/components/context-menu/example.svelte +1 -1
- package/docs/components/criteria-field/README.md +1 -0
- package/docs/components/criteria-field/example.svelte +1 -0
- package/docs/components/data-table/README.md +63 -40
- package/docs/components/data-table/example.svelte +2 -2
- package/docs/components/date-picker/README.md +1 -1
- package/docs/components/date-time-picker/README.md +1 -1
- package/docs/components/dialog/README.md +21 -14
- package/docs/components/dialog/example.svelte +1 -1
- package/docs/components/form-field/README.md +3 -3
- package/docs/components/grid-form/README.md +15 -5
- package/docs/components/grid-form/example.svelte +1 -1
- package/docs/components/group-check-box/README.md +3 -3
- package/docs/components/group-radio-box/README.md +3 -3
- package/docs/components/icon/README.md +6 -5
- package/docs/components/icon-button/README.md +10 -1
- package/docs/components/icon-button/example.svelte +1 -0
- package/docs/components/image-editor/README.md +262 -0
- package/docs/components/{image-files → image-editor}/example.svelte +5 -3
- package/docs/components/input-options-select/README.md +2 -2
- package/docs/components/list-box/README.md +12 -13
- package/docs/components/list-box/example.svelte +3 -3
- package/docs/components/lookup-editor/README.md +1 -1
- package/docs/components/navigator/README.md +2 -1
- package/docs/components/navigator/example.svelte +1 -0
- package/docs/components/navigator-menu/README.md +24 -21
- package/docs/components/navigator-menu/example.svelte +4 -2
- package/docs/components/options-multi-select/README.md +2 -2
- package/docs/components/options-select/README.md +4 -4
- package/docs/components/page/README.md +2 -2
- package/docs/components/page-stack/README.md +67 -0
- package/docs/components/page-stack/example.svelte +7 -0
- package/docs/components/pagination/README.md +24 -7
- package/docs/components/pagination/example.svelte +5 -2
- package/docs/components/pagination-panel/README.md +25 -10
- package/docs/components/pagination-panel/example.svelte +5 -4
- package/docs/components/password-editor/README.md +128 -0
- package/docs/components/{attachment-files → password-editor}/example.svelte +5 -5
- package/docs/components/progress-bar/README.md +14 -4
- package/docs/components/progress-bar/example.svelte +1 -1
- package/docs/components/progress-step-bar/README.md +16 -7
- package/docs/components/progress-step-bar/example.svelte +5 -1
- package/docs/components/prompts-text-editor/README.md +8 -6
- package/docs/components/prompts-text-editor/example.svelte +0 -1
- package/docs/components/rows-layout/README.md +8 -4
- package/docs/components/rows-layout/example.svelte +4 -0
- package/docs/components/switch/README.md +2 -2
- package/docs/components/tabs/README.md +24 -9
- package/docs/components/tag/README.md +13 -2
- package/docs/components/tag/example.svelte +1 -0
- package/docs/components/text-button/README.md +20 -1
- package/docs/components/text-button/example.svelte +2 -0
- package/docs/components/time-editor/README.md +1 -1
- package/docs/components/transfer/README.md +16 -9
- package/docs/components/tree-view/README.md +29 -13
- package/docs/components/tree-view/example.svelte +2 -1
- package/docs/components/unit-number-editor/README.md +11 -8
- package/docs/components/unit-number-editor/example.svelte +0 -1
- package/package.json +13 -7
- package/dist/data_table/lib/CompareFunction.d.ts +0 -3
- package/dist/data_table/lib/FormatCell.d.ts +0 -2
- package/dist/form/attachment_files/FileRender.svelte +0 -125
- package/dist/form/attachment_files/FileRender.svelte.d.ts +0 -9
- package/dist/form/attachment_files/FileUploadBar.svelte +0 -66
- package/dist/form/attachment_files/FileUploadBar.svelte.d.ts +0 -8
- package/dist/form/attachment_files/FileUploadPanel.svelte +0 -161
- package/dist/form/attachment_files/FileUploadPanel.svelte.d.ts +0 -14
- package/dist/form/attachment_files/UploadFile.d.ts +0 -43
- package/dist/form/attachment_files/UploadFile.js +0 -80
- package/dist/form/cascade_options_select/CascadePanel.svelte +0 -52
- package/dist/form/cascade_options_select/CascadePanel.svelte.d.ts +0 -26
- package/dist/form/cascade_options_select/isLeafDetermine.d.ts +0 -4
- package/dist/form/common_editor/EditorEvents.d.ts +0 -14
- package/dist/form/common_editor/EditorEvents.js +0 -2
- package/dist/form/image-files/ImageFile.d.ts +0 -12
- package/dist/form/image-files/ImageFilesField.svelte +0 -128
- package/dist/form/image-files/ImageFilesField.svelte.d.ts +0 -18
- package/dist/form/image-files/ImageRender.svelte +0 -95
- package/dist/form/image-files/ImageRender.svelte.d.ts +0 -10
- package/dist/form/image-files/README.md +0 -468
- package/dist/form/image-files/README_CN.md +0 -468
- package/dist/form/image-files/index.d.ts +0 -10
- package/dist/form/image-files/index.js +0 -2
- package/dist/layout/flex/FlexBlock.svelte +0 -17
- package/dist/layout/flex/FlexBlock.svelte.d.ts +0 -38
- package/dist/layout/flex/README.md +0 -148
- package/dist/layout/flex/README_CN.md +0 -148
- package/dist/layout/flex/index.d.ts +0 -2
- package/dist/layout/flex/index.js +0 -2
- package/dist/layout/index.d.ts +0 -0
- package/dist/layout/index.js +0 -1
- package/docs/components/attachment-files/README.md +0 -332
- package/docs/components/image-files/README.md +0 -174
- /package/dist/data_table/lib/{FormatCell.js → CellAction.js} +0 -0
- /package/dist/data_table/lib/{CompareFunction.js → CompareFn.js} +0 -0
- /package/dist/{form/cascade_options_select/isLeafDetermine.js → data_table/lib/FormatCellFn.js} +0 -0
- /package/dist/form/{image-files/ImageFile.js → attachment_files/UploadTask.js} +0 -0
- /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
|
-
- **右键菜单集成**:支持 `
|
|
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
|
-
| `
|
|
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
|
-
|
|
17
|
+
expandable: boolean;
|
|
19
18
|
expanded: boolean;
|
|
20
19
|
loading?: boolean;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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
|
-
|
|
32
|
+
expandable,
|
|
34
33
|
expanded,
|
|
35
34
|
loading = false,
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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
|
|
63
|
+
await ontoggle();
|
|
65
64
|
}
|
|
66
65
|
|
|
67
66
|
const handleRowClick = async () => {
|
|
68
|
-
await
|
|
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
|
|
81
|
+
await ontoggle();
|
|
83
82
|
}
|
|
84
83
|
}
|
|
85
84
|
|
|
86
85
|
const handleContextMenu = (event: MouseEvent) => {
|
|
87
|
-
|
|
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={
|
|
93
|
+
aria-expanded={expandable ? expanded : undefined}>
|
|
95
94
|
|
|
96
95
|
<div class="item-chevron">
|
|
97
|
-
{#if
|
|
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
|
-
|
|
13
|
+
expandable: boolean;
|
|
15
14
|
expanded: boolean;
|
|
16
15
|
loading?: boolean;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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,
|
|
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?:
|
|
36
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
94
|
-
|
|
95
|
-
accept =
|
|
96
|
-
if (accept
|
|
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
|
-
|
|
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
|
-
|
|
162
|
-
{
|
|
163
|
-
{
|
|
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
|
-
|
|
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,
|
|
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?:
|
|
27
|
-
|
|
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
|
-
|
|
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,
|
|
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,
|
|
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 {
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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:
|
|
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
|
|
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
|
|
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
|
-
{
|
|
178
|
+
{onRowExpand}
|
|
151
179
|
bind:selectedRows
|
|
152
180
|
{orderDirection}
|
|
153
181
|
orderColumn={orderColumn as DataColumn}
|
|
154
|
-
{
|
|
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
|
-
{
|
|
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
|
-
{
|
|
173
|
-
{
|
|
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
|
-
{
|
|
185
|
-
|
|
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
|
-
|
|
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
|
-
| `
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
| `
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
4
|
-
export type
|
|
5
|
-
export type
|
|
6
|
-
export type
|
|
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.
|
|
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.
|
|
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 {
|
|
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,
|
|
6
|
+
import type { GetRowActions, ActionHandler } from "./lib/RowAction";
|
|
7
7
|
import type DataColumn from "./lib/DataColumn";
|
|
8
|
-
import type { CellAction } from "
|
|
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,
|
|
13
|
-
export type { RowAction, GetRowActions,
|
|
12
|
+
export type { ActionsColumn, IndicatorColumn, FormatCellFn, CellHint, DataColumn };
|
|
13
|
+
export type { RowAction, GetRowActions, ActionHandler, CellAction };
|