niuma-ui 2.0.4 → 2.0.9
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/CHANGELOG.md +58 -0
- package/dist/components/_shared/index.d.ts +2 -2
- package/dist/components/_shared/src/overlay-utils.d.ts +44 -1
- package/dist/components/_shared/src/overlay-utils.js +87 -2
- package/dist/components/_shared/src/reka.js +2 -2
- package/dist/components/alert/index.d.ts +1 -0
- package/dist/components/alert/src/RsAlert.css +120 -65
- package/dist/components/alert/src/RsAlert.d.ts +24 -5
- package/dist/components/alert/src/RsAlert.impl.js +108 -36
- package/dist/components/alert/src/RsAlert.js +1 -1
- package/dist/components/alert/src/alert-utils.d.ts +37 -0
- package/dist/components/alert/src/alert-utils.js +71 -0
- package/dist/components/auto-complete/src/RsAutoComplete.d.ts +1 -1
- package/dist/components/button/src/RsButton.impl.js +1 -1
- package/dist/components/card/src/RsCard.d.ts +1 -1
- package/dist/components/code-block/index.d.ts +1 -0
- package/dist/components/code-block/src/RsCodeBlock.css +93 -52
- package/dist/components/code-block/src/RsCodeBlock.d.ts +36 -9
- package/dist/components/code-block/src/RsCodeBlock.impl.js +203 -84
- package/dist/components/code-block/src/RsCodeBlock.js +1 -1
- package/dist/components/code-block/src/code-block-highlight.d.ts +4 -0
- package/dist/components/code-block/src/code-block-highlight.js +34 -0
- package/dist/components/code-block/src/code-block-utils.d.ts +23 -0
- package/dist/components/code-block/src/code-block-utils.js +71 -0
- package/dist/components/code-editor/index.d.ts +1 -1
- package/dist/components/code-editor/src/RsCodeEditor.css +118 -92
- package/dist/components/code-editor/src/RsCodeEditor.d.ts +14 -3
- package/dist/components/code-editor/src/RsCodeEditor.impl.js +261 -94
- package/dist/components/code-editor/src/RsCodeEditor.js +1 -1
- package/dist/components/code-editor/src/code-editor-utils.d.ts +15 -0
- package/dist/components/code-editor/src/code-editor-utils.js +36 -1
- package/dist/components/code-editor/src/code-mirror-completion.d.ts +1 -1
- package/dist/components/code-editor/src/code-mirror-completion.js +8 -5
- package/dist/components/code-editor/src/code-mirror-diagnostics.d.ts +2 -3
- package/dist/components/code-editor/src/code-mirror-diagnostics.js +3 -4
- package/dist/components/code-editor/src/code-mirror-ghost.d.ts +1 -1
- package/dist/components/code-editor/src/code-mirror-ghost.js +12 -3
- package/dist/components/code-editor/src/code-mirror-inline-edit.js +8 -3
- package/dist/components/code-editor/src/code-mirror-intel.d.ts +2 -2
- package/dist/components/code-editor/src/code-mirror-intel.js +50 -39
- package/dist/components/code-editor/src/code-mirror-lang.js +4 -0
- package/dist/components/code-editor/src/code-mirror-session.d.ts +13 -0
- package/dist/components/code-editor/src/code-mirror-session.js +30 -0
- package/dist/components/context-menu/index.d.ts +1 -1
- package/dist/components/context-menu/src/RsContextMenu.css +115 -89
- package/dist/components/context-menu/src/RsContextMenu.d.ts +32 -11
- package/dist/components/context-menu/src/RsContextMenu.impl.js +795 -48
- package/dist/components/context-menu/src/RsContextMenuItems.d.ts +25 -1
- package/dist/components/context-menu/src/RsContextMenuItems.impl.js +110 -61
- package/dist/components/context-menu/src/context-menu-utils.d.ts +89 -3
- package/dist/components/context-menu/src/context-menu-utils.js +168 -3
- package/dist/components/date-picker/src/RsDatePicker.d.ts +2 -2
- package/dist/components/date-picker/src/RsDateTimePicker.d.ts +2 -2
- package/dist/components/descriptions/index.d.ts +1 -1
- package/dist/components/descriptions/src/RsDescriptions.css +38 -11
- package/dist/components/descriptions/src/RsDescriptions.d.ts +20 -4
- package/dist/components/descriptions/src/RsDescriptions.impl.js +89 -19
- package/dist/components/descriptions/src/RsDescriptionsItem.impl.js +13 -6
- package/dist/components/descriptions/src/descriptions-utils.d.ts +19 -0
- package/dist/components/descriptions/src/descriptions-utils.js +39 -1
- package/dist/components/dialog/index.d.ts +1 -1
- package/dist/components/dialog/src/RsConfirmDialog.css +47 -21
- package/dist/components/dialog/src/RsConfirmDialog.d.ts +19 -7
- package/dist/components/dialog/src/RsConfirmDialog.impl.js +349 -119
- package/dist/components/dialog/src/RsConfirmDialog.js +2 -1
- package/dist/components/dialog/src/RsDialog.css +102 -109
- package/dist/components/dialog/src/RsDialog.d.ts +34 -24
- package/dist/components/dialog/src/RsDialog.impl.js +410 -177
- package/dist/components/dialog/src/RsDialog.js +2 -1
- package/dist/components/dialog/src/dialog-utils.d.ts +40 -1
- package/dist/components/dialog/src/dialog-utils.js +152 -1
- package/dist/components/dialog/src/dialog-window.js +29 -8
- package/dist/components/drawer/index.d.ts +1 -1
- package/dist/components/drawer/src/RsDrawer.css +61 -29
- package/dist/components/drawer/src/RsDrawer.d.ts +37 -21
- package/dist/components/drawer/src/RsDrawer.impl.js +441 -223
- package/dist/components/drawer/src/drawer-utils.d.ts +35 -0
- package/dist/components/drawer/src/drawer-utils.js +131 -1
- package/dist/components/dropdown/index.d.ts +1 -1
- package/dist/components/dropdown/src/RsDropdown.css +140 -61
- package/dist/components/dropdown/src/RsDropdown.d.ts +39 -6
- package/dist/components/dropdown/src/RsDropdown.impl.js +693 -63
- package/dist/components/dropdown/src/RsDropdownItemView.impl.js +17 -7
- package/dist/components/dropdown/src/RsDropdownItems.d.ts +32 -3
- package/dist/components/dropdown/src/RsDropdownItems.impl.js +171 -59
- package/dist/components/dropdown/src/dropdown-utils.d.ts +50 -0
- package/dist/components/dropdown/src/dropdown-utils.js +103 -3
- package/dist/components/empty/index.d.ts +1 -0
- package/dist/components/empty/src/RsEmpty.css +105 -23
- package/dist/components/empty/src/RsEmpty.d.ts +27 -4
- package/dist/components/empty/src/RsEmpty.impl.js +154 -11
- package/dist/components/empty/src/RsEmpty.js +2 -1
- package/dist/components/empty/src/empty-utils.d.ts +28 -0
- package/dist/components/empty/src/empty-utils.js +55 -0
- package/dist/components/form/src/RsForm.d.ts +1 -1
- package/dist/components/input-number/src/RsInputNumber.d.ts +1 -1
- package/dist/components/label/src/RsLabel.d.ts +1 -1
- package/dist/components/loading/index.d.ts +1 -0
- package/dist/components/loading/src/RsLoading.css +13 -97
- package/dist/components/loading/src/RsLoading.d.ts +52 -2
- package/dist/components/loading/src/RsLoading.impl.js +216 -33
- package/dist/components/loading/src/RsLoading.js +2 -1
- package/dist/components/loading/src/loading-status.css +210 -0
- package/dist/components/loading/src/loading-status.d.ts +34 -0
- package/dist/components/loading/src/loading-status.impl.js +84 -0
- package/dist/components/loading/src/loading-status.js +8 -0
- package/dist/components/loading/src/loading-utils.d.ts +51 -4
- package/dist/components/loading/src/loading-utils.js +122 -0
- package/dist/components/loading-bar/index.d.ts +1 -0
- package/dist/components/loading-bar/src/RsLoadingBar.css +72 -8
- package/dist/components/loading-bar/src/RsLoadingBar.d.ts +55 -11
- package/dist/components/loading-bar/src/RsLoadingBar.impl.js +298 -57
- package/dist/components/loading-bar/src/RsLoadingBar.js +1 -1
- package/dist/components/loading-bar/src/loading-bar-utils.d.ts +69 -0
- package/dist/components/loading-bar/src/loading-bar-utils.js +97 -0
- package/dist/components/log/src/RsLog.css +52 -144
- package/dist/components/log/src/RsLog.d.ts +12 -11
- package/dist/components/log/src/RsLog.impl.js +181 -148
- package/dist/components/log/src/RsLog.js +1 -1
- package/dist/components/log/src/RsLogRow.css +152 -0
- package/dist/components/log/src/RsLogRow.d.ts +35 -0
- package/dist/components/log/src/RsLogRow.impl.js +91 -0
- package/dist/components/log/src/RsLogRow.js +8 -0
- package/dist/components/log/src/log-utils.d.ts +8 -0
- package/dist/components/log/src/log-utils.js +71 -10
- package/dist/components/markdown/index.d.ts +1 -1
- package/dist/components/markdown/src/RsMarkdown.css +75 -32
- package/dist/components/markdown/src/RsMarkdown.d.ts +6 -2
- package/dist/components/markdown/src/RsMarkdown.impl.js +185 -17
- package/dist/components/markdown/src/markdown-utils.d.ts +26 -0
- package/dist/components/markdown/src/markdown-utils.js +114 -12
- package/dist/components/mentions/src/RsMentions.d.ts +2 -2
- package/dist/components/menu/index.d.ts +1 -1
- package/dist/components/menu/src/RsMenu.css +70 -29
- package/dist/components/menu/src/RsMenu.d.ts +58 -4
- package/dist/components/menu/src/RsMenu.impl.js +93 -46
- package/dist/components/menu/src/RsMenuItems.d.ts +22 -5
- package/dist/components/menu/src/RsMenuItems.impl.js +506 -154
- package/dist/components/menu/src/menu-utils.d.ts +56 -0
- package/dist/components/menu/src/menu-utils.js +139 -6
- package/dist/components/monaco-editor/index.d.ts +1 -1
- package/dist/components/monaco-editor/src/RsMonacoEditor.css +28 -16
- package/dist/components/monaco-editor/src/RsMonacoEditor.d.ts +39 -41
- package/dist/components/monaco-editor/src/RsMonacoEditor.impl.js +212 -133
- package/dist/components/monaco-editor/src/RsMonacoEditor.js +1 -1
- package/dist/components/monaco-editor/src/monaco-editor-utils.d.ts +126 -0
- package/dist/components/monaco-editor/src/monaco-editor-utils.js +302 -0
- package/dist/components/pagination/index.d.ts +2 -2
- package/dist/components/pagination/src/RsPagination.css +93 -46
- package/dist/components/pagination/src/RsPagination.d.ts +68 -8
- package/dist/components/pagination/src/RsPagination.impl.js +229 -86
- package/dist/components/pagination/src/RsPagination.js +1 -1
- package/dist/components/pagination/src/pagination-utils.d.ts +59 -0
- package/dist/components/pagination/src/pagination-utils.js +105 -1
- package/dist/components/popover/index.d.ts +1 -0
- package/dist/components/popover/src/RsPopover.css +124 -14
- package/dist/components/popover/src/RsPopover.d.ts +38 -7
- package/dist/components/popover/src/RsPopover.impl.js +546 -35
- package/dist/components/popover/src/RsPopover.js +2 -1
- package/dist/components/popover/src/popover-utils.d.ts +24 -2
- package/dist/components/popover/src/popover-utils.js +55 -0
- package/dist/components/sidebar/index.d.ts +1 -0
- package/dist/components/sidebar/src/RsSidebar.css +91 -33
- package/dist/components/sidebar/src/RsSidebar.d.ts +17 -9
- package/dist/components/sidebar/src/RsSidebar.impl.js +124 -22
- package/dist/components/sidebar/src/RsSidebar.js +1 -1
- package/dist/components/sidebar/src/RsSidebarGroup.css +23 -6
- package/dist/components/sidebar/src/RsSidebarGroup.d.ts +6 -2
- package/dist/components/sidebar/src/RsSidebarGroup.impl.js +17 -4
- package/dist/components/sidebar/src/RsSidebarGroup.js +1 -1
- package/dist/components/sidebar/src/RsSidebarItem.css +50 -20
- package/dist/components/sidebar/src/RsSidebarItem.d.ts +21 -3
- package/dist/components/sidebar/src/RsSidebarItem.impl.js +71 -20
- package/dist/components/sidebar/src/RsSidebarItem.js +1 -1
- package/dist/components/sidebar/src/sidebar-utils.d.ts +47 -0
- package/dist/components/sidebar/src/sidebar-utils.js +72 -0
- package/dist/components/split-pane/index.d.ts +2 -2
- package/dist/components/split-pane/src/RsSplitPane.css +41 -30
- package/dist/components/split-pane/src/RsSplitPane.d.ts +6 -2
- package/dist/components/split-pane/src/RsSplitPane.impl.js +153 -45
- package/dist/components/split-pane/src/split-pane-utils.d.ts +23 -0
- package/dist/components/split-pane/src/split-pane-utils.js +18 -1
- package/dist/components/stat-card/index.d.ts +1 -0
- package/dist/components/stat-card/src/RsStatCard.css +129 -25
- package/dist/components/stat-card/src/RsStatCard.d.ts +40 -4
- package/dist/components/stat-card/src/RsStatCard.impl.js +106 -12
- package/dist/components/stat-card/src/RsStatCard.js +1 -1
- package/dist/components/stat-card/src/stat-card-utils.d.ts +39 -0
- package/dist/components/stat-card/src/stat-card-utils.js +113 -0
- package/dist/components/steps/index.d.ts +1 -1
- package/dist/components/steps/src/RsSteps.css +158 -37
- package/dist/components/steps/src/RsSteps.d.ts +69 -5
- package/dist/components/steps/src/RsSteps.impl.js +168 -28
- package/dist/components/steps/src/RsSteps.js +1 -1
- package/dist/components/steps/src/steps-utils.d.ts +51 -1
- package/dist/components/steps/src/steps-utils.js +67 -1
- package/dist/components/table/src/RsTable.impl.js +4 -2
- package/dist/components/table/src/composables/useRsTableContextMenu.d.ts +16 -0
- package/dist/components/table/src/composables/useRsTableContextMenu.js +1 -1
- package/dist/components/table/src/composables/useRsTableEngine.js +6 -2
- package/dist/components/table/src/composables/useRsTableScrollLayout.js +2 -0
- package/dist/components/table/src/composables/useRsTableShell.d.ts +16 -0
- package/dist/components/table/src/rs-table-props.d.ts +1 -1
- package/dist/components/table/src/rs-table-props.js +0 -1
- package/dist/components/table/src/table-body/RsTableBody.impl.js +1 -0
- package/dist/components/table/src/table-body/RsTableCellEditor.impl.js +10 -2
- package/dist/components/table/src/table-body/RsTableColGroup.impl.js +1 -0
- package/dist/components/table/src/table-footer/RsTableSummaryRow.impl.js +1 -0
- package/dist/components/table/src/table-header/RsTableHeader.impl.js +1 -0
- package/dist/components/table/src/utils/table-utils.d.ts +10 -6
- package/dist/components/table/src/utils/table-utils.js +27 -25
- package/dist/components/table/style/rs-table.css +34 -20
- package/dist/components/tabs/index.d.ts +2 -2
- package/dist/components/tabs/src/RsTabs.css +225 -101
- package/dist/components/tabs/src/RsTabs.d.ts +37 -8
- package/dist/components/tabs/src/RsTabs.impl.js +400 -270
- package/dist/components/tabs/src/tabs-utils.d.ts +41 -2
- package/dist/components/tabs/src/tabs-utils.js +55 -1
- package/dist/components/terminal/index.d.ts +1 -1
- package/dist/components/terminal/src/RsTerminal.css +60 -37
- package/dist/components/terminal/src/RsTerminal.d.ts +36 -4
- package/dist/components/terminal/src/RsTerminal.impl.js +288 -68
- package/dist/components/terminal/src/RsTerminal.js +1 -1
- package/dist/components/terminal/src/terminal-utils.d.ts +42 -4
- package/dist/components/terminal/src/terminal-utils.js +113 -10
- package/dist/components/textarea/src/RsTextarea.d.ts +1 -1
- package/dist/components/time-picker/src/RsTimePicker.d.ts +2 -2
- package/dist/components/toaster/src/RsToaster.css +156 -203
- package/dist/components/toaster/src/RsToaster.d.ts +32 -2
- package/dist/components/toaster/src/RsToaster.impl.js +309 -34
- package/dist/components/toaster/src/toast-store.d.ts +95 -0
- package/dist/components/toaster/src/toast-store.js +177 -0
- package/dist/components/toaster/src/toast-utils.d.ts +60 -0
- package/dist/components/toaster/src/toast-utils.js +86 -0
- package/dist/components/toolbar/index.d.ts +1 -1
- package/dist/components/toolbar/src/RsToolbar.css +206 -32
- package/dist/components/toolbar/src/RsToolbar.d.ts +41 -16
- package/dist/components/toolbar/src/RsToolbar.impl.js +146 -18
- package/dist/components/toolbar/src/RsToolbar.js +2 -1
- package/dist/components/toolbar/src/toolbar-utils.d.ts +20 -0
- package/dist/components/toolbar/src/toolbar-utils.js +105 -0
- package/dist/components/tooltip/index.d.ts +1 -0
- package/dist/components/tooltip/src/RsTooltip.css +104 -26
- package/dist/components/tooltip/src/RsTooltip.d.ts +38 -16
- package/dist/components/tooltip/src/RsTooltip.impl.js +420 -51
- package/dist/components/tooltip/src/RsTooltip.js +2 -1
- package/dist/components/tooltip/src/RsTooltipProvider.d.ts +4 -4
- package/dist/components/tooltip/src/RsTooltipProvider.impl.js +51 -14
- package/dist/components/tooltip/src/tooltip-utils.d.ts +30 -0
- package/dist/components/tooltip/src/tooltip-utils.js +23 -0
- package/dist/components/tree/index.d.ts +2 -2
- package/dist/components/tree/src/RsTree.css +84 -75
- package/dist/components/tree/src/RsTree.d.ts +20 -20
- package/dist/components/tree/src/RsTree.impl.js +292 -66
- package/dist/components/tree/src/RsTree.js +1 -1
- package/dist/components/tree/src/tree-utils.d.ts +22 -0
- package/dist/components/tree/src/tree-utils.js +18 -4
- package/dist/components/tree-select/src/RsTreeSelect.d.ts +1 -1
- package/dist/components/virtual-list/index.d.ts +1 -1
- package/dist/components/virtual-list/src/RsVirtualList.css +64 -9
- package/dist/components/virtual-list/src/RsVirtualList.d.ts +31 -5
- package/dist/components/virtual-list/src/RsVirtualList.impl.js +425 -76
- package/dist/components/virtual-list/src/RsVirtualList.js +1 -1
- package/dist/components/virtual-list/src/virtual-list-utils.d.ts +64 -1
- package/dist/components/virtual-list/src/virtual-list-utils.js +215 -1
- package/dist/composables/useRsLoadingBar.d.ts +2 -5
- package/dist/composables/useRsLoadingBar.js +21 -5
- package/dist/composables/useRsTabsNav.d.ts +3 -1
- package/dist/composables/useRsTabsNav.js +96 -28
- package/dist/composables/useRsToast.d.ts +11 -13
- package/dist/composables/useRsToast.js +66 -17
- package/dist/index.d.ts +30 -21
- package/dist/index.js +14 -0
- package/dist/locale/apply.js +6 -1
- package/dist/locale/messages.js +128 -2
- package/dist/styles.css +460 -797
- package/dist/theme/brand.example.css +2 -1
- package/dist/vite-plugins/niuma-ui-host.js +1 -1
- package/package.json +2 -3
|
@@ -29,6 +29,10 @@ export interface RsTreeFlatNode {
|
|
|
29
29
|
hasChildren: boolean;
|
|
30
30
|
isLast: boolean;
|
|
31
31
|
parentKey: string | null;
|
|
32
|
+
/** 同一父节点下的兄弟个数,对应 aria-setsize */
|
|
33
|
+
setSize: number;
|
|
34
|
+
/** 在兄弟中的位置,从 1 起算,对应 aria-posinset */
|
|
35
|
+
posInSet: number;
|
|
32
36
|
/**
|
|
33
37
|
* showLine 用:下标对应祖先深度 `0..depth-1`。
|
|
34
38
|
* `true` 表示该祖先不是同级最后一项,竖线需贯穿当前行;`false` 则留空缺口。
|
|
@@ -46,6 +50,22 @@ export type RsTreeDropPosition = 'before' | 'inside' | 'after';
|
|
|
46
50
|
/** handle=显示拖拽手柄;row=整行拖拽且不显示手柄 */
|
|
47
51
|
export type RsTreeDragTrigger = 'handle' | 'row';
|
|
48
52
|
export type RsTreeSize = RsComponentSize;
|
|
53
|
+
export interface RsTreeExpose {
|
|
54
|
+
expandAll: () => void;
|
|
55
|
+
collapseAll: () => void;
|
|
56
|
+
expandNode: (key: string) => void;
|
|
57
|
+
collapseNode: (key: string) => void;
|
|
58
|
+
focusNode: (key: string) => void;
|
|
59
|
+
focus: () => void;
|
|
60
|
+
scrollToKey: (key: string) => void;
|
|
61
|
+
getSelectedKeys: () => string[];
|
|
62
|
+
getCheckedKeys: () => string[];
|
|
63
|
+
getExpandedKeys: () => string[];
|
|
64
|
+
getHalfCheckedKeys: () => string[];
|
|
65
|
+
}
|
|
66
|
+
export type RsTreeInstance = RsTreeExpose & {
|
|
67
|
+
$el: HTMLElement;
|
|
68
|
+
};
|
|
49
69
|
export declare const DEFAULT_TREE_FIELD_NAMES: Required<RsTreeFieldNames>;
|
|
50
70
|
/**
|
|
51
71
|
* 各尺寸档行高 / 缩进。
|
|
@@ -98,6 +118,8 @@ export declare function resolveTreeCheckState(key: string, checkedKeys: Readonly
|
|
|
98
118
|
export declare function toggleTreeCheck(key: string, checkedKeys: ReadonlySet<string>, index: ReadonlyMap<string, RsTreeNodeIndex>, checkStrictly: boolean, onlyCheckLeaf?: boolean): string[];
|
|
99
119
|
export declare function resolveAccordionExpandedKeys(key: string, expandedKeys: readonly string[], index: ReadonlyMap<string, RsTreeNodeIndex>, rootKeys: readonly string[]): string[];
|
|
100
120
|
export declare function resolveTreeFocusKey(flatNodes: readonly RsTreeFlatNode[], currentKey: string | null, move: RsTreeFocusMove, index: ReadonlyMap<string, RsTreeNodeIndex>): string | null;
|
|
121
|
+
/** 从当前项之后找标签前缀匹配的可见节点;一圈后仍无匹配返回 null。 */
|
|
122
|
+
export declare function resolveTreeTypeaheadKey(flatNodes: readonly RsTreeFlatNode[], currentKey: string | null, query: string, fields?: Required<RsTreeFieldNames>): string | null;
|
|
101
123
|
export declare function resolveTreeVirtualEnabled(options: {
|
|
102
124
|
virtual?: boolean;
|
|
103
125
|
flatCount: number;
|
|
@@ -164,6 +164,8 @@ function flattenVisibleTreeNodes(nodes, expandedKeys, fields = DEFAULT_TREE_FIEL
|
|
|
164
164
|
hasChildren,
|
|
165
165
|
isLast,
|
|
166
166
|
parentKey: currentParentKey,
|
|
167
|
+
setSize: items.length,
|
|
168
|
+
posInSet: index + 1,
|
|
167
169
|
levelLines
|
|
168
170
|
});
|
|
169
171
|
if (hasChildren && expandedKeys.has(key)) walk(getTreeChildren(node, fields), currentDepth + 1, key, [...ancestors, isLast]);
|
|
@@ -173,7 +175,7 @@ function flattenVisibleTreeNodes(nodes, expandedKeys, fields = DEFAULT_TREE_FIEL
|
|
|
173
175
|
return result;
|
|
174
176
|
}
|
|
175
177
|
function defaultTreeFilterNode(node, keyword, fields = DEFAULT_TREE_FIELD_NAMES) {
|
|
176
|
-
return getTreeLabel(node, fields).
|
|
178
|
+
return getTreeLabel(node, fields).toLocaleLowerCase().includes(keyword.trim().toLocaleLowerCase());
|
|
177
179
|
}
|
|
178
180
|
function filterTreeNodes(nodes, keyword, options = {}) {
|
|
179
181
|
const fields = resolveTreeFieldNames(options.fieldNames);
|
|
@@ -201,8 +203,8 @@ function splitTreeLabelHighlight(label, keyword) {
|
|
|
201
203
|
text: label,
|
|
202
204
|
highlight: false
|
|
203
205
|
}];
|
|
204
|
-
const lowerLabel = label.
|
|
205
|
-
const lowerQuery = query.
|
|
206
|
+
const lowerLabel = label.toLocaleLowerCase();
|
|
207
|
+
const lowerQuery = query.toLocaleLowerCase();
|
|
206
208
|
const index = lowerLabel.indexOf(lowerQuery);
|
|
207
209
|
if (index < 0) return [{
|
|
208
210
|
text: label,
|
|
@@ -283,6 +285,18 @@ function resolveTreeFocusKey(flatNodes, currentKey, move, index) {
|
|
|
283
285
|
default: return currentKey;
|
|
284
286
|
}
|
|
285
287
|
}
|
|
288
|
+
/** 从当前项之后找标签前缀匹配的可见节点;一圈后仍无匹配返回 null。 */
|
|
289
|
+
function resolveTreeTypeaheadKey(flatNodes, currentKey, query, fields = DEFAULT_TREE_FIELD_NAMES) {
|
|
290
|
+
const needle = query.trim().toLocaleLowerCase();
|
|
291
|
+
if (!needle || flatNodes.length === 0) return null;
|
|
292
|
+
const start = Math.max(0, flatNodes.findIndex((item) => item.key === currentKey));
|
|
293
|
+
for (let step = 1; step <= flatNodes.length; step += 1) {
|
|
294
|
+
const item = flatNodes[(start + step) % flatNodes.length];
|
|
295
|
+
if (!item || isTreeNodeDisabled(item.node, fields)) continue;
|
|
296
|
+
if (getTreeLabel(item.node, fields).toLocaleLowerCase().startsWith(needle)) return item.key;
|
|
297
|
+
}
|
|
298
|
+
return null;
|
|
299
|
+
}
|
|
286
300
|
function resolveTreeVirtualEnabled(options) {
|
|
287
301
|
if (options.virtual) return true;
|
|
288
302
|
return options.flatCount > (options.virtualThreshold ?? 100);
|
|
@@ -307,4 +321,4 @@ function sliceVirtualTreeNodes(nodes, scrollTop, viewportHeight, itemHeight, ove
|
|
|
307
321
|
};
|
|
308
322
|
}
|
|
309
323
|
//#endregion
|
|
310
|
-
export { DEFAULT_TREE_FIELD_NAMES, TREE_INDENT_BY_SIZE, TREE_ROW_HEIGHT, buildTreeNodeIndex, collectDescendantKeys, collectExpandableKeys, collectHalfCheckedKeys, defaultTreeFilterNode, filterTreeNodes, flattenTreeNodeIds, flattenVisibleTreeNodes, getTreeChildren, getTreeIsLeaf, getTreeKey, getTreeLabel, hasTreeChildren, isTreeAncestorKey, isTreeCheckboxDisabled, isTreeNodeDisabled, isTreeNodeLoading, resolveAccordionExpandedKeys, resolveTreeCheckState, resolveTreeFieldNames, resolveTreeFocusKey, resolveTreeIndent, resolveTreeRowHeight, resolveTreeVirtualEnabled, shouldShowTreeCheckbox, sliceVirtualTreeNodes, splitTreeLabelHighlight, toggleTreeCheck };
|
|
324
|
+
export { DEFAULT_TREE_FIELD_NAMES, TREE_INDENT_BY_SIZE, TREE_ROW_HEIGHT, buildTreeNodeIndex, collectDescendantKeys, collectExpandableKeys, collectHalfCheckedKeys, defaultTreeFilterNode, filterTreeNodes, flattenTreeNodeIds, flattenVisibleTreeNodes, getTreeChildren, getTreeIsLeaf, getTreeKey, getTreeLabel, hasTreeChildren, isTreeAncestorKey, isTreeCheckboxDisabled, isTreeNodeDisabled, isTreeNodeLoading, resolveAccordionExpandedKeys, resolveTreeCheckState, resolveTreeFieldNames, resolveTreeFocusKey, resolveTreeIndent, resolveTreeRowHeight, resolveTreeTypeaheadKey, resolveTreeVirtualEnabled, shouldShowTreeCheckbox, sliceVirtualTreeNodes, splitTreeLabelHighlight, toggleTreeCheck };
|
|
@@ -91,13 +91,13 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, RsTre
|
|
|
91
91
|
}>, {
|
|
92
92
|
disabled: boolean;
|
|
93
93
|
allowClear: boolean;
|
|
94
|
+
highlight: boolean;
|
|
94
95
|
multiple: boolean;
|
|
95
96
|
searchable: boolean;
|
|
96
97
|
virtual: boolean;
|
|
97
98
|
virtualThreshold: number;
|
|
98
99
|
matchTriggerWidth: boolean;
|
|
99
100
|
listHeight: number;
|
|
100
|
-
highlight: boolean;
|
|
101
101
|
checkable: boolean;
|
|
102
102
|
checkStrictly: boolean;
|
|
103
103
|
onlyCheckLeaf: boolean;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { default as RsVirtualList } from './src/RsVirtualList.js';
|
|
2
|
-
export type { RsVirtualListItemSize } from './src/virtual-list-utils';
|
|
2
|
+
export type { RsVirtualListAlign, RsVirtualListExpose, RsVirtualListInstance, RsVirtualListItemKey, RsVirtualListItemSize, RsVirtualListOrientation, } from './src/virtual-list-utils';
|
|
3
3
|
export { resolveItemSize, resolveVirtualListHeight } from './src/virtual-list-utils';
|
|
@@ -1,28 +1,83 @@
|
|
|
1
1
|
|
|
2
|
-
.rs-virtual-list[data-v-
|
|
2
|
+
.rs-virtual-list[data-v-c4f5f6d4] {
|
|
3
3
|
overflow: auto;
|
|
4
|
-
|
|
4
|
+
box-sizing: border-box;
|
|
5
|
+
border: 1px solid var(--rs-virtual-list-border, var(--rs-border-subtle));
|
|
5
6
|
border-radius: var(--rs-virtual-list-radius, var(--rs-radius-sm));
|
|
7
|
+
background: var(--rs-virtual-list-bg, var(--rs-surface));
|
|
8
|
+
color: var(--rs-virtual-list-fg, var(--rs-text-primary));
|
|
9
|
+
text-align: start;
|
|
10
|
+
}
|
|
11
|
+
.rs-virtual-list--horizontal[data-v-c4f5f6d4] {
|
|
12
|
+
overflow-x: auto;
|
|
13
|
+
overflow-y: hidden;
|
|
6
14
|
}
|
|
7
|
-
.rs-virtual-list--
|
|
15
|
+
.rs-virtual-list--borderless[data-v-c4f5f6d4] {
|
|
16
|
+
border-color: transparent;
|
|
17
|
+
background: transparent;
|
|
18
|
+
}
|
|
19
|
+
.rs-virtual-list--fill[data-v-c4f5f6d4] {
|
|
8
20
|
flex: 1;
|
|
9
21
|
align-self: stretch;
|
|
10
22
|
width: 100%;
|
|
11
23
|
min-height: 0;
|
|
12
24
|
height: 0;
|
|
13
25
|
}
|
|
14
|
-
.rs-virtual-
|
|
26
|
+
.rs-virtual-list--keyboard[data-v-c4f5f6d4]:focus-visible {
|
|
27
|
+
outline: var(--rs-focus-ring-width, 2px) solid var(--rs-focus-border);
|
|
28
|
+
outline-offset: calc(var(--rs-focus-ring-width, 2px) * -1);
|
|
29
|
+
}
|
|
30
|
+
.rs-virtual-list__spacer[data-v-c4f5f6d4] {
|
|
15
31
|
position: relative;
|
|
16
32
|
}
|
|
17
|
-
.rs-virtual-list__items[data-v-
|
|
33
|
+
.rs-virtual-list__items[data-v-c4f5f6d4] {
|
|
18
34
|
position: absolute;
|
|
19
35
|
inset-inline: 0;
|
|
20
36
|
top: 0;
|
|
37
|
+
transform: translate3d(var(--rs-virtual-list-x, 0px), var(--rs-virtual-list-y, 0px), 0);
|
|
21
38
|
}
|
|
22
|
-
.rs-virtual-
|
|
39
|
+
.rs-virtual-list--scrolling .rs-virtual-list__items[data-v-c4f5f6d4] {
|
|
40
|
+
will-change: transform;
|
|
41
|
+
}
|
|
42
|
+
.rs-virtual-list--horizontal .rs-virtual-list__items[data-v-c4f5f6d4] {
|
|
43
|
+
inset-inline: auto;
|
|
44
|
+
inset-inline-start: 0;
|
|
45
|
+
display: flex;
|
|
46
|
+
flex-direction: row;
|
|
47
|
+
width: max-content;
|
|
48
|
+
height: 100%;
|
|
49
|
+
}
|
|
50
|
+
.rs-virtual-list__item[data-v-c4f5f6d4] {
|
|
51
|
+
position: relative;
|
|
23
52
|
box-sizing: border-box;
|
|
24
53
|
}
|
|
25
|
-
.rs-virtual-list__item
|
|
26
|
-
|
|
27
|
-
|
|
54
|
+
.rs-virtual-list--horizontal .rs-virtual-list__item[data-v-c4f5f6d4] {
|
|
55
|
+
flex: none;
|
|
56
|
+
height: 100%;
|
|
57
|
+
}
|
|
58
|
+
.rs-virtual-list__item--active[data-v-c4f5f6d4] {
|
|
59
|
+
background: var(
|
|
60
|
+
--rs-virtual-list-active-bg,
|
|
61
|
+
color-mix(in srgb, var(--rs-primary) 14%, var(--rs-surface))
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
.rs-virtual-list__item--active[data-v-c4f5f6d4]::before {
|
|
65
|
+
content: '';
|
|
66
|
+
position: absolute;
|
|
67
|
+
inset-inline-start: 0;
|
|
68
|
+
inset-block: 0;
|
|
69
|
+
width: var(--rs-virtual-list-accent-width, 0.125rem);
|
|
70
|
+
background: var(--rs-virtual-list-accent, var(--rs-primary));
|
|
71
|
+
pointer-events: none;
|
|
72
|
+
}
|
|
73
|
+
.rs-virtual-list__empty[data-v-c4f5f6d4] {
|
|
74
|
+
padding: var(--rs-space-lg);
|
|
75
|
+
color: var(--rs-text-secondary);
|
|
76
|
+
font-size: var(--rs-font-size-sm);
|
|
77
|
+
text-align: start;
|
|
78
|
+
}
|
|
79
|
+
@media (prefers-reduced-motion: reduce) {
|
|
80
|
+
.rs-virtual-list--scrolling .rs-virtual-list__items[data-v-c4f5f6d4] {
|
|
81
|
+
will-change: auto;
|
|
82
|
+
}
|
|
28
83
|
}
|
|
@@ -1,30 +1,56 @@
|
|
|
1
1
|
import type { RsRadius } from '../../../theme/types';
|
|
2
|
-
import type { RsVirtualListItemSize } from './virtual-list-utils';
|
|
2
|
+
import type { RsVirtualListAlign, RsVirtualListItemKey, RsVirtualListItemSize, RsVirtualListOrientation } from './virtual-list-utils';
|
|
3
3
|
declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
4
|
-
props: import("vue").PublicProps & __VLS_PrettifyLocal<{
|
|
4
|
+
props: import("vue").PublicProps & __VLS_PrettifyLocal<({
|
|
5
5
|
items: T[];
|
|
6
6
|
itemSize?: RsVirtualListItemSize;
|
|
7
|
+
/** `'auto'` 时,测量前用来估算总高度。 */
|
|
8
|
+
estimateSize?: number;
|
|
7
9
|
height?: number | string;
|
|
8
10
|
overscan?: number;
|
|
9
|
-
activeIndex?: number | null;
|
|
10
11
|
/** keep-alive 外层可见性;变为 true 时重同步视口与 scroll 位置 */
|
|
11
12
|
layoutActive?: boolean;
|
|
12
13
|
/** 外层圆角。直角列表传 `none`。默认 sm。 */
|
|
13
14
|
radius?: RsRadius;
|
|
15
|
+
/** 滚动轴。默认纵向。 */
|
|
16
|
+
orientation?: RsVirtualListOrientation;
|
|
17
|
+
/** 稳定键。默认用索引,滚动时复用同一批节点。 */
|
|
18
|
+
itemKey?: RsVirtualListItemKey<T>;
|
|
19
|
+
/**
|
|
20
|
+
* 方向键 / Home / End 移动当前项。默认关,避免抢走外层(如日志)的键盘。
|
|
21
|
+
* 打开后根是 listbox,需要焦点。
|
|
22
|
+
*/
|
|
23
|
+
keyboard?: boolean;
|
|
24
|
+
/** 外框。嵌进已有表面时关掉。 */
|
|
25
|
+
bordered?: boolean;
|
|
26
|
+
ariaLabel?: string;
|
|
27
|
+
id?: string;
|
|
28
|
+
} & {
|
|
29
|
+
activeIndex?: number | null;
|
|
30
|
+
}) & {
|
|
31
|
+
onChange?: ((index: number, item: T) => any) | undefined;
|
|
32
|
+
onScroll?: ((event: Event) => any) | undefined;
|
|
33
|
+
"onUpdate:activeIndex"?: ((value: number | null) => any) | undefined;
|
|
14
34
|
}> & (typeof globalThis extends {
|
|
15
35
|
__VLS_PROPS_FALLBACK: infer P;
|
|
16
36
|
} ? P : {});
|
|
17
37
|
expose: (exposed: import("vue").ShallowUnwrapRef<{
|
|
18
|
-
scrollToIndex: (index: number, align?:
|
|
38
|
+
scrollToIndex: (index: number, align?: RsVirtualListAlign) => void;
|
|
39
|
+
scrollToOffset: (offset: number) => void;
|
|
40
|
+
getScrollOffset: () => number;
|
|
41
|
+
getViewport: () => HTMLElement | undefined;
|
|
42
|
+
focus: () => void;
|
|
19
43
|
}>) => void;
|
|
20
44
|
attrs: any;
|
|
21
45
|
slots: {
|
|
46
|
+
empty?: (props: {}) => any;
|
|
47
|
+
} & {
|
|
22
48
|
default?: (props: {
|
|
23
49
|
item: T;
|
|
24
50
|
index: number;
|
|
25
51
|
}) => any;
|
|
26
52
|
};
|
|
27
|
-
emit:
|
|
53
|
+
emit: (((evt: "change", index: number, item: T) => void) & ((evt: "scroll", event: Event) => void)) & ((event: "update:activeIndex", value: number | null) => void);
|
|
28
54
|
}>) => import("vue").VNode & {
|
|
29
55
|
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
30
56
|
};
|