niuma-ui 2.0.4 → 2.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/CHANGELOG.md +67 -0
- package/NOTICE +0 -1
- package/README.md +3 -3
- package/README.zh-CN.md +3 -3
- 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/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.css +75 -72
- package/dist/components/button/src/RsButton.d.ts +1 -4
- package/dist/components/button/src/RsButton.impl.js +3 -7
- package/dist/components/button/src/RsButton.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/config-provider/src/RsConfigProvider.css +1 -1
- package/dist/components/config-provider/src/RsConfigProvider.d.ts +2 -2
- package/dist/components/config-provider/src/RsConfigProvider.impl.js +7 -16
- package/dist/components/config-provider/src/RsConfigProvider.js +1 -1
- 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/RsTableCell.impl.js +1 -1
- 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 +86 -28
- 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 +465 -808
- package/dist/theme/brand.example.css +3 -2
- package/dist/vite-plugins/niuma-ui-host.js +1 -1
- package/package.json +2 -5
- package/dist/components/_shared/src/reka.d.ts +0 -2
- package/dist/components/_shared/src/reka.js +0 -2
|
@@ -1,33 +1,40 @@
|
|
|
1
|
+
import { useRsConfigOptional } from "../../../composables/useRsConfig.js";
|
|
2
|
+
import { resolveDirMode } from "../../../locale/apply.js";
|
|
1
3
|
import { useRsI18n } from "../../../composables/useRsI18n.js";
|
|
2
4
|
import RsIcon_default from "../../icon/src/RsIcon.js";
|
|
3
|
-
import { applySplitResize, collapseSplitPane, expandSplitPane, isSplitPaneCollapsed, normalizeSplitSizes, resolveSplitAutoFlags, resolveSplitConstraints, roundSize, splitSizesEqual } from "./split-pane-utils.js";
|
|
4
|
-
import { Fragment, computed, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, mergeModels, normalizeClass, normalizeStyle, openBlock, ref, renderList, renderSlot,
|
|
5
|
+
import { applySplitResize, collapseSplitPane, expandSplitPane, invertSplitAxisDelta, isSplitPaneCollapsed, isSplitResizerInteractive, normalizeSplitSizes, resolveSplitAutoFlags, resolveSplitConstraints, roundSize, splitPaneDomId, splitSizesEqual } from "./split-pane-utils.js";
|
|
6
|
+
import { Fragment, computed, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, mergeModels, normalizeClass, normalizeStyle, onUnmounted, openBlock, ref, renderList, renderSlot, useId, useModel, watch } from "vue";
|
|
5
7
|
//#region src/components/split-pane/src/RsSplitPane.vue?vue&type=script&setup=true&lang.ts
|
|
6
|
-
var _hoisted_1 = ["
|
|
7
|
-
var _hoisted_2 = [
|
|
8
|
+
var _hoisted_1 = ["id", "aria-label"];
|
|
9
|
+
var _hoisted_2 = ["id", "data-pane-key"];
|
|
10
|
+
var _hoisted_3 = [
|
|
8
11
|
"data-resizer-index",
|
|
9
12
|
"onPointerdown",
|
|
10
13
|
"onPointermove",
|
|
11
14
|
"onPointerup",
|
|
12
|
-
"onPointercancel"
|
|
15
|
+
"onPointercancel",
|
|
16
|
+
"onLostpointercapture"
|
|
13
17
|
];
|
|
14
|
-
var
|
|
18
|
+
var _hoisted_4 = [
|
|
15
19
|
"tabindex",
|
|
16
20
|
"aria-orientation",
|
|
17
21
|
"aria-valuenow",
|
|
18
22
|
"aria-valuemin",
|
|
19
23
|
"aria-valuemax",
|
|
24
|
+
"aria-valuetext",
|
|
25
|
+
"aria-controls",
|
|
20
26
|
"aria-label",
|
|
21
27
|
"aria-disabled",
|
|
22
28
|
"onKeydown",
|
|
23
29
|
"onDblclick"
|
|
24
30
|
];
|
|
25
|
-
var
|
|
31
|
+
var _hoisted_5 = {
|
|
26
32
|
key: 0,
|
|
27
33
|
class: "rs-split__grip",
|
|
28
34
|
"aria-hidden": "true"
|
|
29
35
|
};
|
|
30
36
|
var RsSplitPane_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
37
|
+
name: "RsSplitPane",
|
|
31
38
|
__name: "RsSplitPane",
|
|
32
39
|
props: /*@__PURE__*/ mergeModels({
|
|
33
40
|
panes: {},
|
|
@@ -44,7 +51,9 @@ var RsSplitPane_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
44
51
|
fill: {
|
|
45
52
|
type: Boolean,
|
|
46
53
|
default: false
|
|
47
|
-
}
|
|
54
|
+
},
|
|
55
|
+
id: {},
|
|
56
|
+
ariaLabel: {}
|
|
48
57
|
}, {
|
|
49
58
|
"sizes": { default: () => [] },
|
|
50
59
|
"sizesModifiers": {}
|
|
@@ -52,6 +61,7 @@ var RsSplitPane_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
52
61
|
emits: /*@__PURE__*/ mergeModels([
|
|
53
62
|
"resize",
|
|
54
63
|
"resize-end",
|
|
64
|
+
"resize-start",
|
|
55
65
|
"collapse",
|
|
56
66
|
"expand"
|
|
57
67
|
], ["update:sizes"]),
|
|
@@ -60,13 +70,20 @@ var RsSplitPane_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
60
70
|
/** 各面板尺寸(百分比,总和 100) */
|
|
61
71
|
const model = useModel(__props, "sizes");
|
|
62
72
|
const emit = __emit;
|
|
63
|
-
const { t } = useRsI18n();
|
|
73
|
+
const { t, locale } = useRsI18n();
|
|
74
|
+
const config = useRsConfigOptional();
|
|
75
|
+
const fallbackId = useId();
|
|
64
76
|
const rootRef = ref(null);
|
|
65
77
|
const sizes = ref([]);
|
|
78
|
+
const rootId = computed(() => props.id || fallbackId);
|
|
79
|
+
const groupLabel = computed(() => props.ariaLabel || t("split.label"));
|
|
80
|
+
const writingDir = computed(() => resolveDirMode(config?.dir.value ?? "auto", config?.locale.value ?? locale.value));
|
|
66
81
|
const constraints = computed(() => resolveSplitConstraints(props.panes));
|
|
67
82
|
const resizerCount = computed(() => Math.max(0, props.panes.length - 1));
|
|
68
83
|
/** 内容自适应面板标记;首次拖拽/键盘调整时会物化为百分比并清空 */
|
|
69
84
|
const autoFlags = ref(resolveSplitAutoFlags(props.panes));
|
|
85
|
+
/** pane key → 折叠前尺寸;expand 未显式传 toSize 时还原 */
|
|
86
|
+
const sizeBeforeCollapse = /* @__PURE__ */ new Map();
|
|
70
87
|
/** 归一化初始值,作为双击复位的基准 */
|
|
71
88
|
let initialSizes = normalizeSplitSizes(props.panes, modelSeed());
|
|
72
89
|
sizes.value = initialSizes.slice();
|
|
@@ -76,11 +93,16 @@ var RsSplitPane_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
76
93
|
function paneKeySignature() {
|
|
77
94
|
return props.panes.map((pane) => pane.key).join("|");
|
|
78
95
|
}
|
|
96
|
+
function pruneCollapseMemory() {
|
|
97
|
+
const keys = new Set(props.panes.map((pane) => pane.key));
|
|
98
|
+
for (const key of sizeBeforeCollapse.keys()) if (!keys.has(key)) sizeBeforeCollapse.delete(key);
|
|
99
|
+
}
|
|
79
100
|
watch(() => paneKeySignature(), () => {
|
|
80
101
|
const provided = sizes.value.length === props.panes.length ? sizes.value : void 0;
|
|
81
102
|
autoFlags.value = resolveSplitAutoFlags(props.panes);
|
|
82
103
|
initialSizes = normalizeSplitSizes(props.panes, provided);
|
|
83
104
|
sizes.value = initialSizes.slice();
|
|
105
|
+
pruneCollapseMemory();
|
|
84
106
|
syncModel(sizes.value);
|
|
85
107
|
});
|
|
86
108
|
watch(() => props.panes.map((pane) => pane.size).join("|"), () => {
|
|
@@ -105,8 +127,6 @@ var RsSplitPane_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
105
127
|
syncModel(next);
|
|
106
128
|
emit("resize", next.slice());
|
|
107
129
|
}
|
|
108
|
-
/** pane key → 折叠前尺寸;expand 未显式传 toSize 时还原 */
|
|
109
|
-
const sizeBeforeCollapse = /* @__PURE__ */ new Map();
|
|
110
130
|
function emitBoundaryTransitions(before, after) {
|
|
111
131
|
props.panes.forEach((pane, index) => {
|
|
112
132
|
const constraint = constraints.value[index];
|
|
@@ -124,12 +144,39 @@ var RsSplitPane_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
124
144
|
if (toSize !== void 0) return toSize;
|
|
125
145
|
return sizeBeforeCollapse.get(key) ?? initialSizes[index];
|
|
126
146
|
}
|
|
147
|
+
function paneDomId(key) {
|
|
148
|
+
return splitPaneDomId(rootId.value, key);
|
|
149
|
+
}
|
|
150
|
+
function resizerInteractive(index) {
|
|
151
|
+
return isSplitResizerInteractive(props.panes[index], props.disabled);
|
|
152
|
+
}
|
|
153
|
+
function resizerAriaLabel(index) {
|
|
154
|
+
return props.panes[index]?.resizerAriaLabel || t("split.resize");
|
|
155
|
+
}
|
|
156
|
+
function resizerValueText(index) {
|
|
157
|
+
return t("split.value", { value: Math.round(sizes.value[index] ?? 0) });
|
|
158
|
+
}
|
|
159
|
+
function resizerControls(index) {
|
|
160
|
+
return [props.panes[index], props.panes[index + 1]].filter((pane) => Boolean(pane)).map((pane) => paneDomId(pane.key)).join(" ");
|
|
161
|
+
}
|
|
162
|
+
/** 跟计算样式,避免只读 Config 而父级已写 dir=rtl */
|
|
163
|
+
function rootIsRtl() {
|
|
164
|
+
const root = rootRef.value;
|
|
165
|
+
if (root && typeof getComputedStyle === "function") return getComputedStyle(root).direction === "rtl";
|
|
166
|
+
return writingDir.value === "rtl";
|
|
167
|
+
}
|
|
168
|
+
function axisDelta(raw) {
|
|
169
|
+
return invertSplitAxisDelta(props.orientation, rootIsRtl(), raw);
|
|
170
|
+
}
|
|
127
171
|
let dragIndex = null;
|
|
128
172
|
let dragOrigin = 0;
|
|
129
173
|
let dragStartSizes = [];
|
|
130
174
|
let flexPx = 0;
|
|
131
175
|
let pendingDragSizes = null;
|
|
132
176
|
let dragFrame = 0;
|
|
177
|
+
let dragTarget = null;
|
|
178
|
+
let dragPointerId = null;
|
|
179
|
+
let dragPaneEls = [];
|
|
133
180
|
function directPaneElements(root) {
|
|
134
181
|
return [...root.children].filter((el) => el instanceof HTMLElement && el.classList.contains("rs-split__pane"));
|
|
135
182
|
}
|
|
@@ -140,41 +187,69 @@ var RsSplitPane_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
140
187
|
}
|
|
141
188
|
/** 拖拽过程中直接写 flex-grow,避免每帧触发 Vue 重渲染 */
|
|
142
189
|
function applyDragToDom(next) {
|
|
143
|
-
const panes = paneElements();
|
|
190
|
+
const panes = dragPaneEls.length ? dragPaneEls : paneElements();
|
|
144
191
|
next.forEach((size, i) => {
|
|
145
192
|
panes[i]?.style.setProperty("flex-grow", String(size));
|
|
146
193
|
});
|
|
147
194
|
}
|
|
148
|
-
function setDraggingUi(active,
|
|
149
|
-
|
|
150
|
-
if (!root) return;
|
|
151
|
-
root.classList.toggle("rs-split--dragging", active);
|
|
152
|
-
const host = root.querySelector(`[data-resizer-index="${index}"]`);
|
|
195
|
+
function setDraggingUi(active, host) {
|
|
196
|
+
rootRef.value?.classList.toggle("rs-split--dragging", active);
|
|
153
197
|
if (!host) return;
|
|
154
|
-
if (active) host.
|
|
155
|
-
else host.
|
|
198
|
+
if (active) host.dataset.active = "";
|
|
199
|
+
else delete host.dataset.active;
|
|
156
200
|
}
|
|
157
201
|
function scheduleDragApply(next) {
|
|
158
202
|
pendingDragSizes = next;
|
|
159
203
|
if (dragFrame) return;
|
|
160
204
|
dragFrame = requestAnimationFrame(() => {
|
|
161
205
|
dragFrame = 0;
|
|
162
|
-
if (pendingDragSizes)
|
|
206
|
+
if (!pendingDragSizes) return;
|
|
207
|
+
applyDragToDom(pendingDragSizes);
|
|
208
|
+
emit("resize", pendingDragSizes.slice());
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
function clearDragInlineStyles() {
|
|
212
|
+
(dragPaneEls.length ? dragPaneEls : paneElements()).forEach((el) => {
|
|
213
|
+
el.style.removeProperty("flex-grow");
|
|
163
214
|
});
|
|
164
215
|
}
|
|
216
|
+
function releaseDragPointer() {
|
|
217
|
+
if (dragTarget && dragPointerId != null) try {
|
|
218
|
+
dragTarget.releasePointerCapture(dragPointerId);
|
|
219
|
+
} catch {}
|
|
220
|
+
dragTarget = null;
|
|
221
|
+
dragPointerId = null;
|
|
222
|
+
}
|
|
223
|
+
function abortDrag() {
|
|
224
|
+
if (dragFrame) {
|
|
225
|
+
cancelAnimationFrame(dragFrame);
|
|
226
|
+
dragFrame = 0;
|
|
227
|
+
}
|
|
228
|
+
const host = dragTarget;
|
|
229
|
+
const index = dragIndex;
|
|
230
|
+
releaseDragPointer();
|
|
231
|
+
if (index !== null) {
|
|
232
|
+
setDraggingUi(false, host);
|
|
233
|
+
clearDragInlineStyles();
|
|
234
|
+
}
|
|
235
|
+
dragIndex = null;
|
|
236
|
+
pendingDragSizes = null;
|
|
237
|
+
dragPaneEls = [];
|
|
238
|
+
}
|
|
165
239
|
function finishDrag(index) {
|
|
166
240
|
if (dragIndex !== index) return;
|
|
167
|
-
dragIndex = null;
|
|
168
241
|
if (dragFrame) {
|
|
169
242
|
cancelAnimationFrame(dragFrame);
|
|
170
243
|
dragFrame = 0;
|
|
171
244
|
}
|
|
172
|
-
|
|
245
|
+
const host = dragTarget;
|
|
173
246
|
const final = pendingDragSizes ?? sizes.value;
|
|
174
247
|
pendingDragSizes = null;
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
248
|
+
dragIndex = null;
|
|
249
|
+
releaseDragPointer();
|
|
250
|
+
setDraggingUi(false, host);
|
|
251
|
+
clearDragInlineStyles();
|
|
252
|
+
dragPaneEls = [];
|
|
178
253
|
commit(final);
|
|
179
254
|
emitBoundaryTransitions(dragStartSizes, final);
|
|
180
255
|
emit("resize-end", final.slice());
|
|
@@ -193,40 +268,51 @@ var RsSplitPane_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
193
268
|
return sum;
|
|
194
269
|
}
|
|
195
270
|
function onResizerPointerDown(index, event) {
|
|
196
|
-
if (
|
|
271
|
+
if (!resizerInteractive(index)) return;
|
|
197
272
|
if (event.pointerType === "mouse" && event.button !== 0) return;
|
|
198
273
|
materializeAutoPanes();
|
|
199
|
-
event.currentTarget
|
|
274
|
+
const target = event.currentTarget;
|
|
275
|
+
target.setPointerCapture?.(event.pointerId);
|
|
200
276
|
dragIndex = index;
|
|
201
277
|
dragOrigin = props.orientation === "horizontal" ? event.clientX : event.clientY;
|
|
202
278
|
dragStartSizes = sizes.value.slice();
|
|
203
279
|
pendingDragSizes = dragStartSizes;
|
|
204
280
|
flexPx = measureFlexPx();
|
|
205
|
-
|
|
281
|
+
dragTarget = target;
|
|
282
|
+
dragPointerId = event.pointerId;
|
|
283
|
+
dragPaneEls = paneElements();
|
|
284
|
+
setDraggingUi(true, target);
|
|
285
|
+
emit("resize-start", dragStartSizes.slice());
|
|
206
286
|
event.preventDefault();
|
|
207
287
|
}
|
|
208
288
|
function onResizerPointerMove(index, event) {
|
|
209
289
|
if (dragIndex !== index || flexPx <= 0) return;
|
|
210
|
-
const deltaPercent = ((props.orientation === "horizontal" ? event.clientX : event.clientY) - dragOrigin) / flexPx * 100;
|
|
290
|
+
const deltaPercent = axisDelta(((props.orientation === "horizontal" ? event.clientX : event.clientY) - dragOrigin) / flexPx * 100);
|
|
211
291
|
scheduleDragApply(applySplitResize(dragStartSizes, constraints.value, index, deltaPercent));
|
|
212
292
|
}
|
|
213
293
|
function endDrag(index, event) {
|
|
214
294
|
if (dragIndex !== index) return;
|
|
215
|
-
|
|
295
|
+
if (dragTarget && event.pointerId === dragPointerId) try {
|
|
296
|
+
dragTarget.releasePointerCapture(event.pointerId);
|
|
297
|
+
} catch {}
|
|
298
|
+
finishDrag(index);
|
|
299
|
+
}
|
|
300
|
+
function onLostPointerCapture(index) {
|
|
301
|
+
if (dragIndex !== index) return;
|
|
216
302
|
finishDrag(index);
|
|
217
303
|
}
|
|
218
304
|
function onResizerKeydown(index, event) {
|
|
219
|
-
if (
|
|
305
|
+
if (!resizerInteractive(index)) return;
|
|
220
306
|
materializeAutoPanes();
|
|
221
307
|
const horizontal = props.orientation === "horizontal";
|
|
222
308
|
const step = props.keyboardStep;
|
|
223
309
|
let delta = 0;
|
|
224
310
|
switch (event.key) {
|
|
225
311
|
case "ArrowLeft":
|
|
226
|
-
if (horizontal) delta = -step;
|
|
312
|
+
if (horizontal) delta = axisDelta(-step);
|
|
227
313
|
break;
|
|
228
314
|
case "ArrowRight":
|
|
229
|
-
if (horizontal) delta = step;
|
|
315
|
+
if (horizontal) delta = axisDelta(step);
|
|
230
316
|
break;
|
|
231
317
|
case "ArrowUp":
|
|
232
318
|
if (!horizontal) delta = -step;
|
|
@@ -249,13 +335,14 @@ var RsSplitPane_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
249
335
|
}
|
|
250
336
|
if (delta === 0) return;
|
|
251
337
|
event.preventDefault();
|
|
338
|
+
emit("resize-start", sizes.value.slice());
|
|
252
339
|
const before = sizes.value.slice();
|
|
253
340
|
commit(applySplitResize(sizes.value, constraints.value, index, delta));
|
|
254
341
|
emitBoundaryTransitions(before, sizes.value);
|
|
255
342
|
emit("resize-end", sizes.value.slice());
|
|
256
343
|
}
|
|
257
344
|
function onResizerDblClick(index) {
|
|
258
|
-
if (
|
|
345
|
+
if (!resizerInteractive(index)) return;
|
|
259
346
|
materializeAutoPanes();
|
|
260
347
|
const a = sizes.value[index];
|
|
261
348
|
const b = sizes.value[index + 1];
|
|
@@ -363,22 +450,37 @@ var RsSplitPane_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
363
450
|
commit(initialSizes.slice());
|
|
364
451
|
emit("resize-end", sizes.value.slice());
|
|
365
452
|
}
|
|
453
|
+
function focus(index) {
|
|
454
|
+
const root = rootRef.value;
|
|
455
|
+
if (!root) return;
|
|
456
|
+
const hosts = [...root.querySelectorAll("[data-resizer-index]")];
|
|
457
|
+
((index !== void 0 ? hosts.find((el) => Number(el.dataset.resizerIndex) === index) : hosts.find((el) => resizerInteractive(Number(el.dataset.resizerIndex)))) ?? hosts[0])?.querySelector(".rs-split__resizer")?.focus();
|
|
458
|
+
}
|
|
459
|
+
onUnmounted(() => {
|
|
460
|
+
abortDrag();
|
|
461
|
+
sizeBeforeCollapse.clear();
|
|
462
|
+
});
|
|
366
463
|
__expose({
|
|
367
464
|
collapse,
|
|
368
465
|
expand,
|
|
369
466
|
reset,
|
|
370
|
-
getSizes: () => sizes.value.slice()
|
|
467
|
+
getSizes: () => sizes.value.slice(),
|
|
468
|
+
focus
|
|
371
469
|
});
|
|
372
470
|
return (_ctx, _cache) => {
|
|
373
471
|
return openBlock(), createElementBlock("div", {
|
|
472
|
+
id: __props.id,
|
|
374
473
|
ref_key: "rootRef",
|
|
375
474
|
ref: rootRef,
|
|
376
475
|
class: normalizeClass(["rs-split", [`rs-split--${__props.orientation}`, {
|
|
377
476
|
"rs-split--disabled": __props.disabled,
|
|
378
477
|
"rs-split--fill": __props.fill
|
|
379
|
-
}]])
|
|
478
|
+
}]]),
|
|
479
|
+
role: "group",
|
|
480
|
+
"aria-label": groupLabel.value
|
|
380
481
|
}, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.panes, (pane, index) => {
|
|
381
482
|
return openBlock(), createElementBlock(Fragment, { key: pane.key }, [createElementVNode("div", {
|
|
483
|
+
id: paneDomId(pane.key),
|
|
382
484
|
class: normalizeClass(["rs-split__pane", {
|
|
383
485
|
"rs-split__pane--collapsed": paneCollapsed(index),
|
|
384
486
|
"rs-split__pane--auto": autoFlags.value[index]
|
|
@@ -388,30 +490,36 @@ var RsSplitPane_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
388
490
|
}, [renderSlot(_ctx.$slots, pane.key, {
|
|
389
491
|
size: sizes.value[index],
|
|
390
492
|
collapsed: paneCollapsed(index)
|
|
391
|
-
})], 14,
|
|
493
|
+
})], 14, _hoisted_2), index < resizerCount.value ? (openBlock(), createElementBlock("div", {
|
|
392
494
|
key: 0,
|
|
393
|
-
class: normalizeClass(["rs-split__resizer-host", {
|
|
495
|
+
class: normalizeClass(["rs-split__resizer-host", {
|
|
496
|
+
"rs-split__resizer-host--handle": resizerShowsHandle(index),
|
|
497
|
+
"rs-split__resizer-host--disabled": !resizerInteractive(index)
|
|
498
|
+
}]),
|
|
394
499
|
"data-resizer-index": index,
|
|
395
500
|
onPointerdown: ($event) => onResizerPointerDown(index, $event),
|
|
396
501
|
onPointermove: ($event) => onResizerPointerMove(index, $event),
|
|
397
502
|
onPointerup: ($event) => endDrag(index, $event),
|
|
398
|
-
onPointercancel: ($event) => endDrag(index, $event)
|
|
503
|
+
onPointercancel: ($event) => endDrag(index, $event),
|
|
504
|
+
onLostpointercapture: ($event) => onLostPointerCapture(index)
|
|
399
505
|
}, [createElementVNode("hr", {
|
|
400
506
|
class: normalizeClass(["rs-split__resizer", { "rs-split__resizer--handle": resizerShowsHandle(index) }]),
|
|
401
|
-
tabindex:
|
|
507
|
+
tabindex: resizerInteractive(index) ? 0 : -1,
|
|
402
508
|
"aria-orientation": __props.orientation === "horizontal" ? "vertical" : "horizontal",
|
|
403
509
|
"aria-valuenow": Math.round(sizes.value[index] ?? 0),
|
|
404
510
|
"aria-valuemin": Math.round(constraints.value[index]?.min ?? 0),
|
|
405
511
|
"aria-valuemax": Math.round(constraints.value[index]?.max ?? 100),
|
|
406
|
-
"aria-
|
|
407
|
-
"aria-
|
|
512
|
+
"aria-valuetext": resizerValueText(index),
|
|
513
|
+
"aria-controls": resizerControls(index),
|
|
514
|
+
"aria-label": resizerAriaLabel(index),
|
|
515
|
+
"aria-disabled": resizerInteractive(index) ? void 0 : true,
|
|
408
516
|
onKeydown: ($event) => onResizerKeydown(index, $event),
|
|
409
517
|
onDblclick: ($event) => onResizerDblClick(index)
|
|
410
|
-
}, null, 42,
|
|
518
|
+
}, null, 42, _hoisted_4), resizerShowsHandle(index) ? (openBlock(), createElementBlock("span", _hoisted_5, [createVNode(RsIcon_default, {
|
|
411
519
|
name: __props.orientation === "horizontal" ? "grip-vertical" : "grip-horizontal",
|
|
412
520
|
size: 12
|
|
413
|
-
}, null, 8, ["name"])])) : createCommentVNode("", true)], 42,
|
|
414
|
-
}), 128))],
|
|
521
|
+
}, null, 8, ["name"])])) : createCommentVNode("", true)], 42, _hoisted_3)) : createCommentVNode("", true)], 64);
|
|
522
|
+
}), 128))], 10, _hoisted_1);
|
|
415
523
|
};
|
|
416
524
|
}
|
|
417
525
|
});
|
|
@@ -23,6 +23,18 @@ export interface RsSplitPaneItem {
|
|
|
23
23
|
collapsedSize?: number;
|
|
24
24
|
/** 本面板右侧分隔条是否显示抓手;缺省时继承 RsSplitPane.withHandle */
|
|
25
25
|
resizerHandle?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* 本面板右侧 / 下方分隔条是否可拖、可键盘调整。
|
|
28
|
+
* 默认 true;false 时缝仍渲染,但不能改尺寸。
|
|
29
|
+
*/
|
|
30
|
+
resizable?: boolean;
|
|
31
|
+
/** 覆盖本缝的 aria-label;缺省走 split.resize */
|
|
32
|
+
resizerAriaLabel?: string;
|
|
33
|
+
}
|
|
34
|
+
/** 具名插槽参数:当前占比与是否折叠 */
|
|
35
|
+
export interface RsSplitPaneSlot {
|
|
36
|
+
size: number;
|
|
37
|
+
collapsed: boolean;
|
|
26
38
|
}
|
|
27
39
|
/**
|
|
28
40
|
* RsSplitPane 模板 ref 请用此类型。
|
|
@@ -33,6 +45,8 @@ export interface RsSplitPaneExpose {
|
|
|
33
45
|
expand: (key: string, toSize?: number) => void;
|
|
34
46
|
reset: () => void;
|
|
35
47
|
getSizes: () => number[];
|
|
48
|
+
/** 聚焦第 index 条分隔条(默认第一条可交互缝) */
|
|
49
|
+
focus: (index?: number) => void;
|
|
36
50
|
}
|
|
37
51
|
/** 模板 ref 实例:expose + 根节点 */
|
|
38
52
|
export type RsSplitPaneInstance = RsSplitPaneExpose & {
|
|
@@ -72,3 +86,12 @@ export declare function collapseSplitPane(sizes: number[], constraints: RsSplitC
|
|
|
72
86
|
export declare function expandSplitPane(sizes: number[], constraints: RsSplitConstraint[], index: number, toSize?: number): number[];
|
|
73
87
|
/** 两组尺寸是否近似相等(用于受控回写时避免抖动) */
|
|
74
88
|
export declare function splitSizesEqual(a: number[], b: number[], epsilon?: number): boolean;
|
|
89
|
+
/**
|
|
90
|
+
* RTL 下行方向主轴与视觉左右对调:指针 / 左右键的增量要取反,
|
|
91
|
+
* 分隔条才跟手、且符合 APG「方向键按物理方向移动分隔条」。
|
|
92
|
+
*/
|
|
93
|
+
export declare function invertSplitAxisDelta(orientation: RsSplitOrientation, rtl: boolean, delta: number): number;
|
|
94
|
+
/** 面板 DOM id:给 separator 的 aria-controls 用 */
|
|
95
|
+
export declare function splitPaneDomId(rootId: string, key: string): string;
|
|
96
|
+
/** 第 index 条缝(pane[index] 右侧 / 下方)是否允许拖拽与键盘调整 */
|
|
97
|
+
export declare function isSplitResizerInteractive(pane: RsSplitPaneItem | undefined, disabled: boolean): boolean;
|
|
@@ -131,5 +131,22 @@ function splitSizesEqual(a, b, epsilon = .01) {
|
|
|
131
131
|
if (a.length !== b.length) return false;
|
|
132
132
|
return a.every((value, index) => Math.abs(value - (b[index] ?? 0)) <= epsilon);
|
|
133
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* RTL 下行方向主轴与视觉左右对调:指针 / 左右键的增量要取反,
|
|
136
|
+
* 分隔条才跟手、且符合 APG「方向键按物理方向移动分隔条」。
|
|
137
|
+
*/
|
|
138
|
+
function invertSplitAxisDelta(orientation, rtl, delta) {
|
|
139
|
+
if (rtl && orientation === "horizontal") return -delta;
|
|
140
|
+
return delta;
|
|
141
|
+
}
|
|
142
|
+
/** 面板 DOM id:给 separator 的 aria-controls 用 */
|
|
143
|
+
function splitPaneDomId(rootId, key) {
|
|
144
|
+
return `${rootId}-pane-${key.replace(/[^a-zA-Z0-9_-]/g, "-")}`;
|
|
145
|
+
}
|
|
146
|
+
/** 第 index 条缝(pane[index] 右侧 / 下方)是否允许拖拽与键盘调整 */
|
|
147
|
+
function isSplitResizerInteractive(pane, disabled) {
|
|
148
|
+
if (disabled) return false;
|
|
149
|
+
return pane?.resizable !== false;
|
|
150
|
+
}
|
|
134
151
|
//#endregion
|
|
135
|
-
export { applySplitResize, collapseSplitPane, expandSplitPane, isRsSplitPaneAutoSize, isSplitPaneCollapsed, normalizeSplitSizes, resolveSplitAutoFlags, resolveSplitConstraints, roundSize, splitSizesEqual };
|
|
152
|
+
export { applySplitResize, collapseSplitPane, expandSplitPane, invertSplitAxisDelta, isRsSplitPaneAutoSize, isSplitPaneCollapsed, isSplitResizerInteractive, normalizeSplitSizes, resolveSplitAutoFlags, resolveSplitConstraints, roundSize, splitPaneDomId, splitSizesEqual };
|
|
@@ -1,51 +1,155 @@
|
|
|
1
1
|
|
|
2
|
-
.rs-stat-card[data-v-
|
|
2
|
+
.rs-stat-card[data-v-75b35569] {
|
|
3
|
+
--rs-stat-accent: var(--rs-primary);
|
|
3
4
|
position: relative;
|
|
5
|
+
display: flex;
|
|
6
|
+
flex-direction: column;
|
|
7
|
+
min-inline-size: 0;
|
|
4
8
|
overflow: hidden;
|
|
5
9
|
border: 1px solid var(--rs-border);
|
|
6
10
|
border-radius: var(--rs-radius);
|
|
7
11
|
background: var(--rs-surface);
|
|
8
12
|
box-shadow: var(--rs-shadow-sm);
|
|
13
|
+
color: var(--rs-text-primary);
|
|
9
14
|
}
|
|
10
|
-
.rs-stat-
|
|
11
|
-
|
|
12
|
-
background: var(--rs-primary);
|
|
15
|
+
.rs-stat-card--success[data-v-75b35569] {
|
|
16
|
+
--rs-stat-accent: var(--rs-success);
|
|
13
17
|
}
|
|
14
|
-
.rs-stat-card--
|
|
15
|
-
|
|
18
|
+
.rs-stat-card--warning[data-v-75b35569] {
|
|
19
|
+
--rs-stat-accent: var(--rs-warning);
|
|
16
20
|
}
|
|
17
|
-
.rs-stat-card--
|
|
18
|
-
|
|
21
|
+
.rs-stat-card--danger[data-v-75b35569] {
|
|
22
|
+
--rs-stat-accent: var(--rs-danger);
|
|
19
23
|
}
|
|
20
|
-
.rs-stat-card--
|
|
21
|
-
|
|
24
|
+
.rs-stat-card--info[data-v-75b35569] {
|
|
25
|
+
--rs-stat-accent: var(--rs-info);
|
|
22
26
|
}
|
|
23
|
-
.rs-stat-
|
|
24
|
-
|
|
27
|
+
.rs-stat-card__accent[data-v-75b35569] {
|
|
28
|
+
flex: none;
|
|
29
|
+
block-size: calc(var(--rs-space-xs) * 0.75);
|
|
30
|
+
background: var(--rs-stat-accent);
|
|
25
31
|
}
|
|
26
|
-
.rs-stat-card__body[data-v-
|
|
32
|
+
.rs-stat-card__body[data-v-75b35569] {
|
|
27
33
|
padding: var(--rs-space-lg);
|
|
28
34
|
}
|
|
29
|
-
.rs-stat-
|
|
30
|
-
|
|
35
|
+
.rs-stat-card--sm .rs-stat-card__body[data-v-75b35569] {
|
|
36
|
+
padding: var(--rs-space-md);
|
|
37
|
+
}
|
|
38
|
+
.rs-stat-card--lg .rs-stat-card__body[data-v-75b35569] {
|
|
39
|
+
padding: var(--rs-space-xl);
|
|
40
|
+
}
|
|
41
|
+
.rs-stat-card__top[data-v-75b35569] {
|
|
42
|
+
display: flex;
|
|
43
|
+
align-items: flex-start;
|
|
44
|
+
justify-content: space-between;
|
|
45
|
+
gap: var(--rs-space-sm);
|
|
46
|
+
}
|
|
47
|
+
.rs-stat-card__label[data-v-75b35569] {
|
|
48
|
+
margin: 0;
|
|
49
|
+
min-inline-size: 0;
|
|
50
|
+
color: var(--rs-text-secondary);
|
|
31
51
|
font-size: var(--rs-font-size-sm);
|
|
52
|
+
font-weight: var(--rs-font-weight-medium);
|
|
53
|
+
line-height: var(--rs-line-height-normal);
|
|
54
|
+
}
|
|
55
|
+
.rs-stat-card__icon[data-v-75b35569] {
|
|
56
|
+
display: inline-flex;
|
|
57
|
+
flex: none;
|
|
58
|
+
color: var(--rs-stat-accent);
|
|
32
59
|
}
|
|
33
|
-
.rs-stat-card__value[data-v-
|
|
34
|
-
|
|
35
|
-
|
|
60
|
+
.rs-stat-card__value[data-v-75b35569] {
|
|
61
|
+
display: flex;
|
|
62
|
+
flex-wrap: wrap;
|
|
63
|
+
align-items: baseline;
|
|
64
|
+
gap: var(--rs-space-xs);
|
|
65
|
+
margin-block-start: var(--rs-space-sm);
|
|
66
|
+
color: var(--rs-text-primary);
|
|
36
67
|
font-size: var(--rs-font-size-3xl);
|
|
37
68
|
font-weight: var(--rs-font-weight-bold);
|
|
38
|
-
|
|
69
|
+
font-variant-numeric: tabular-nums;
|
|
70
|
+
line-height: var(--rs-line-height-tight);
|
|
71
|
+
overflow-wrap: anywhere;
|
|
39
72
|
}
|
|
40
|
-
.rs-stat-
|
|
73
|
+
.rs-stat-card--sm .rs-stat-card__value[data-v-75b35569] {
|
|
74
|
+
font-size: var(--rs-font-size-2xl);
|
|
75
|
+
}
|
|
76
|
+
.rs-stat-card--lg .rs-stat-card__value[data-v-75b35569] {
|
|
77
|
+
font-size: calc(var(--rs-font-size-3xl) + var(--rs-space-xs));
|
|
78
|
+
}
|
|
79
|
+
.rs-stat-card__affix[data-v-75b35569] {
|
|
80
|
+
color: var(--rs-text-secondary);
|
|
81
|
+
font-size: var(--rs-font-size-sm);
|
|
82
|
+
font-weight: var(--rs-font-weight-medium);
|
|
83
|
+
line-height: var(--rs-line-height-normal);
|
|
84
|
+
white-space: nowrap;
|
|
85
|
+
}
|
|
86
|
+
.rs-stat-card__trend[data-v-75b35569] {
|
|
87
|
+
display: flex;
|
|
88
|
+
flex-wrap: wrap;
|
|
89
|
+
align-items: baseline;
|
|
90
|
+
gap: var(--rs-space-xs);
|
|
41
91
|
margin: var(--rs-space-sm) 0 0;
|
|
42
|
-
color: var(--rs-
|
|
92
|
+
color: var(--rs-text-secondary);
|
|
43
93
|
font-size: var(--rs-font-size-sm);
|
|
94
|
+
font-weight: var(--rs-font-weight-medium);
|
|
95
|
+
font-variant-numeric: tabular-nums;
|
|
96
|
+
line-height: var(--rs-line-height-normal);
|
|
97
|
+
}
|
|
98
|
+
.rs-stat-card__trend--primary[data-v-75b35569] {
|
|
99
|
+
color: var(--rs-primary);
|
|
100
|
+
}
|
|
101
|
+
.rs-stat-card__trend--success[data-v-75b35569] {
|
|
102
|
+
color: var(--rs-success);
|
|
103
|
+
}
|
|
104
|
+
.rs-stat-card__trend--warning[data-v-75b35569] {
|
|
105
|
+
color: var(--rs-warning);
|
|
106
|
+
}
|
|
107
|
+
.rs-stat-card__trend--danger[data-v-75b35569] {
|
|
108
|
+
color: var(--rs-danger);
|
|
109
|
+
}
|
|
110
|
+
.rs-stat-card__trend--info[data-v-75b35569] {
|
|
111
|
+
color: var(--rs-info);
|
|
44
112
|
}
|
|
45
|
-
.rs-stat-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
113
|
+
.rs-stat-card__description[data-v-75b35569] {
|
|
114
|
+
margin: var(--rs-space-sm) 0 0;
|
|
115
|
+
color: var(--rs-text-secondary);
|
|
116
|
+
font-size: var(--rs-font-size-sm);
|
|
117
|
+
line-height: var(--rs-line-height-normal);
|
|
118
|
+
}
|
|
119
|
+
.rs-stat-card__skeleton[data-v-75b35569] {
|
|
120
|
+
position: relative;
|
|
121
|
+
inline-size: calc(var(--rs-space-xl) * 5);
|
|
122
|
+
block-size: var(--rs-font-size-3xl);
|
|
123
|
+
margin-block-start: var(--rs-space-sm);
|
|
49
124
|
border-radius: var(--rs-radius-sm);
|
|
50
125
|
background: var(--rs-surface-hover);
|
|
126
|
+
animation: rs-stat-card-pulse-75b35569 1.4s ease-in-out infinite;
|
|
127
|
+
}
|
|
128
|
+
.rs-stat-card--sm .rs-stat-card__skeleton[data-v-75b35569] {
|
|
129
|
+
inline-size: calc(var(--rs-space-xl) * 4);
|
|
130
|
+
block-size: var(--rs-font-size-2xl);
|
|
131
|
+
}
|
|
132
|
+
.rs-stat-card--lg .rs-stat-card__skeleton[data-v-75b35569] {
|
|
133
|
+
inline-size: calc(var(--rs-space-xl) * 6);
|
|
134
|
+
}
|
|
135
|
+
.rs-stat-card__sr[data-v-75b35569] {
|
|
136
|
+
position: absolute;
|
|
137
|
+
inline-size: 1px;
|
|
138
|
+
block-size: 1px;
|
|
139
|
+
padding: 0;
|
|
140
|
+
margin: -1px;
|
|
141
|
+
overflow: hidden;
|
|
142
|
+
clip: rect(0, 0, 0, 0);
|
|
143
|
+
white-space: nowrap;
|
|
144
|
+
border: 0;
|
|
145
|
+
}
|
|
146
|
+
@media (prefers-reduced-motion: reduce) {
|
|
147
|
+
.rs-stat-card__skeleton[data-v-75b35569] {
|
|
148
|
+
animation: none;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
@keyframes rs-stat-card-pulse-75b35569 {
|
|
152
|
+
50% {
|
|
153
|
+
opacity: 0.55;
|
|
154
|
+
}
|
|
51
155
|
}
|