@zerodep-dev/vue-tsx-pro-ui 0.0.0-stage → 0.2.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/LICENSE +21 -0
- package/README.md +32 -2
- package/dist/base/Badge.d.ts +28 -0
- package/dist/base/Badge.js +72 -0
- package/dist/base/Badge.js.map +1 -0
- package/dist/base/Blockquote.d.ts +13 -0
- package/dist/base/Blockquote.js +26 -0
- package/dist/base/Blockquote.js.map +1 -0
- package/dist/base/Button.d.ts +18 -0
- package/dist/base/Button.js +86 -0
- package/dist/base/Button.js.map +1 -0
- package/dist/base/ButtonBase.d.ts +21 -0
- package/dist/base/ButtonBase.js +51 -0
- package/dist/base/ButtonBase.js.map +1 -0
- package/dist/base/ButtonGroup.d.ts +24 -0
- package/dist/base/ButtonGroup.js +52 -0
- package/dist/base/ButtonGroup.js.map +1 -0
- package/dist/base/CloseButton.d.ts +15 -0
- package/dist/base/CloseButton.js +38 -0
- package/dist/base/CloseButton.js.map +1 -0
- package/dist/base/Code.d.ts +13 -0
- package/dist/base/Code.js +27 -0
- package/dist/base/Code.js.map +1 -0
- package/dist/base/CodeBlock.d.ts +89 -0
- package/dist/base/CodeBlock.js +265 -0
- package/dist/base/CodeBlock.js.map +1 -0
- package/dist/base/CopyButton.d.ts +40 -0
- package/dist/base/CopyButton.js +113 -0
- package/dist/base/CopyButton.js.map +1 -0
- package/dist/base/Heading.d.ts +49 -0
- package/dist/base/Heading.js +122 -0
- package/dist/base/Heading.js.map +1 -0
- package/dist/base/Icon.d.ts +48 -0
- package/dist/base/Icon.js +110 -0
- package/dist/base/Icon.js.map +1 -0
- package/dist/base/IconButton.d.ts +34 -0
- package/dist/base/IconButton.js +81 -0
- package/dist/base/IconButton.js.map +1 -0
- package/dist/base/IconLinkButton.d.ts +34 -0
- package/dist/base/IconLinkButton.js +81 -0
- package/dist/base/IconLinkButton.js.map +1 -0
- package/dist/base/Indicator.d.ts +126 -0
- package/dist/base/Indicator.js +158 -0
- package/dist/base/Indicator.js.map +1 -0
- package/dist/base/Kbd.d.ts +13 -0
- package/dist/base/Kbd.js +34 -0
- package/dist/base/Kbd.js.map +1 -0
- package/dist/base/Link.d.ts +61 -0
- package/dist/base/Link.js +114 -0
- package/dist/base/Link.js.map +1 -0
- package/dist/base/LinkButton.d.ts +18 -0
- package/dist/base/LinkButton.js +109 -0
- package/dist/base/LinkButton.js.map +1 -0
- package/dist/base/List.d.ts +61 -0
- package/dist/base/List.js +116 -0
- package/dist/base/List.js.map +1 -0
- package/dist/base/Mark.d.ts +13 -0
- package/dist/base/Mark.js +23 -0
- package/dist/base/Mark.js.map +1 -0
- package/dist/base/Spinner.d.ts +20 -0
- package/dist/base/Spinner.js +59 -0
- package/dist/base/Spinner.js.map +1 -0
- package/dist/base/StatusDot.d.ts +48 -0
- package/dist/base/StatusDot.js +62 -0
- package/dist/base/StatusDot.js.map +1 -0
- package/dist/base/Tag.d.ts +29 -0
- package/dist/base/Tag.js +92 -0
- package/dist/base/Tag.js.map +1 -0
- package/dist/base/Text.d.ts +57 -0
- package/dist/base/Text.js +74 -0
- package/dist/base/Text.js.map +1 -0
- package/dist/base/VisuallyHidden.d.ts +13 -0
- package/dist/base/VisuallyHidden.js +28 -0
- package/dist/base/VisuallyHidden.js.map +1 -0
- package/dist/base/badge-styles.d.ts +57 -0
- package/dist/base/badge-styles.js +329 -0
- package/dist/base/badge-styles.js.map +1 -0
- package/dist/base/button-core.d.ts +191 -0
- package/dist/base/button-core.js +660 -0
- package/dist/base/button-core.js.map +1 -0
- package/dist/charts/AreaChart.d.ts +18 -0
- package/dist/charts/AreaChart.js +90 -0
- package/dist/charts/AreaChart.js.map +1 -0
- package/dist/charts/BarChart.d.ts +19 -0
- package/dist/charts/BarChart.js +88 -0
- package/dist/charts/BarChart.js.map +1 -0
- package/dist/charts/ChordChart.d.ts +48 -0
- package/dist/charts/ChordChart.js +149 -0
- package/dist/charts/ChordChart.js.map +1 -0
- package/dist/charts/ComboChart.d.ts +30 -0
- package/dist/charts/ComboChart.js +157 -0
- package/dist/charts/ComboChart.js.map +1 -0
- package/dist/charts/DonutChart.d.ts +65 -0
- package/dist/charts/DonutChart.js +162 -0
- package/dist/charts/DonutChart.js.map +1 -0
- package/dist/charts/FunnelChart.d.ts +69 -0
- package/dist/charts/FunnelChart.js +181 -0
- package/dist/charts/FunnelChart.js.map +1 -0
- package/dist/charts/GraphChart.d.ts +135 -0
- package/dist/charts/GraphChart.js +274 -0
- package/dist/charts/GraphChart.js.map +1 -0
- package/dist/charts/LineChart.d.ts +50 -0
- package/dist/charts/LineChart.js +94 -0
- package/dist/charts/LineChart.js.map +1 -0
- package/dist/charts/MapChart.d.ts +167 -0
- package/dist/charts/MapChart.js +627 -0
- package/dist/charts/MapChart.js.map +1 -0
- package/dist/charts/RadarChart.d.ts +60 -0
- package/dist/charts/RadarChart.js +224 -0
- package/dist/charts/RadarChart.js.map +1 -0
- package/dist/charts/SankeyChart.d.ts +57 -0
- package/dist/charts/SankeyChart.js +150 -0
- package/dist/charts/SankeyChart.js.map +1 -0
- package/dist/charts/ScatterChart.d.ts +18 -0
- package/dist/charts/ScatterChart.js +82 -0
- package/dist/charts/ScatterChart.js.map +1 -0
- package/dist/charts/TimelineChart.d.ts +71 -0
- package/dist/charts/TimelineChart.js +267 -0
- package/dist/charts/TimelineChart.js.map +1 -0
- package/dist/charts/TreemapChart.d.ts +40 -0
- package/dist/charts/TreemapChart.js +155 -0
- package/dist/charts/TreemapChart.js.map +1 -0
- package/dist/charts/WaterfallChart.d.ts +61 -0
- package/dist/charts/WaterfallChart.js +167 -0
- package/dist/charts/WaterfallChart.js.map +1 -0
- package/dist/charts/XYChart.d.ts +206 -0
- package/dist/charts/XYChart.js +520 -0
- package/dist/charts/XYChart.js.map +1 -0
- package/dist/charts/axis-ticks.d.ts +23 -0
- package/dist/charts/axis-ticks.js +59 -0
- package/dist/charts/axis-ticks.js.map +1 -0
- package/dist/charts/export.d.ts +17 -0
- package/dist/charts/export.js +65 -0
- package/dist/charts/export.js.map +1 -0
- package/dist/charts/flow.d.ts +53 -0
- package/dist/charts/flow.js +29 -0
- package/dist/charts/flow.js.map +1 -0
- package/dist/charts/frame.d.ts +147 -0
- package/dist/charts/frame.js +358 -0
- package/dist/charts/frame.js.map +1 -0
- package/dist/charts/index.d.ts +30 -0
- package/dist/charts/index.js +24 -0
- package/dist/charts/label-layout.d.ts +59 -0
- package/dist/charts/label-layout.js +64 -0
- package/dist/charts/label-layout.js.map +1 -0
- package/dist/charts/series.d.ts +36 -0
- package/dist/charts/series.js +60 -0
- package/dist/charts/series.js.map +1 -0
- package/dist/charts/single.d.ts +41 -0
- package/dist/charts/single.js +65 -0
- package/dist/charts/single.js.map +1 -0
- package/dist/code-editor/CodeEditor.d.ts +18 -0
- package/dist/code-editor/CodeEditor.js +57 -0
- package/dist/code-editor/CodeEditor.js.map +1 -0
- package/dist/code-editor/editor.d.ts +52 -0
- package/dist/code-editor/editor.js +225 -0
- package/dist/code-editor/editor.js.map +1 -0
- package/dist/code-editor/index.d.ts +9 -0
- package/dist/code-editor/index.js +3 -0
- package/dist/config/Provider.d.ts +52 -0
- package/dist/config/Provider.js +111 -0
- package/dist/config/Provider.js.map +1 -0
- package/dist/config/context.d.ts +90 -0
- package/dist/config/context.js +58 -0
- package/dist/config/context.js.map +1 -0
- package/dist/config/createUi.d.ts +52 -0
- package/dist/config/createUi.js +96 -0
- package/dist/config/createUi.js.map +1 -0
- package/dist/config/defaults.d.ts +71 -0
- package/dist/config/defaults.js +45 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/lang/en-US.d.ts +3 -0
- package/dist/config/lang/en-US.js +404 -0
- package/dist/config/lang/en-US.js.map +1 -0
- package/dist/config/lang/format.d.ts +51 -0
- package/dist/config/lang/format.js +120 -0
- package/dist/config/lang/format.js.map +1 -0
- package/dist/config/lang/lang.d.ts +666 -0
- package/dist/config/lang/lang.js +31 -0
- package/dist/config/lang/lang.js.map +1 -0
- package/dist/config/lang/messages.d.ts +12 -0
- package/dist/config/lang/messages.js +36 -0
- package/dist/config/lang/messages.js.map +1 -0
- package/dist/config/lang/zh-CN.d.ts +3 -0
- package/dist/config/lang/zh-CN.js +404 -0
- package/dist/config/lang/zh-CN.js.map +1 -0
- package/dist/config/pinyin.d.ts +3 -0
- package/dist/config/pinyin.js +26 -0
- package/dist/config/pinyin.js.map +1 -0
- package/dist/config/query-state.d.ts +61 -0
- package/dist/config/query-state.js +113 -0
- package/dist/config/query-state.js.map +1 -0
- package/dist/config/shiki.d.ts +13 -0
- package/dist/config/shiki.js +97 -0
- package/dist/config/shiki.js.map +1 -0
- package/dist/config/styles.d.ts +108 -0
- package/dist/config/styles.js +59 -0
- package/dist/config/styles.js.map +1 -0
- package/dist/config/theme/boot.d.ts +97 -0
- package/dist/config/theme/boot.js +90 -0
- package/dist/config/theme/boot.js.map +1 -0
- package/dist/config/theme/builtin.d.ts +21 -0
- package/dist/config/theme/builtin.js +58 -0
- package/dist/config/theme/builtin.js.map +1 -0
- package/dist/config/theme/coffee.d.ts +84 -0
- package/dist/config/theme/coffee.js +102 -0
- package/dist/config/theme/coffee.js.map +1 -0
- package/dist/config/theme/cyberpunk.d.ts +110 -0
- package/dist/config/theme/cyberpunk.js +125 -0
- package/dist/config/theme/cyberpunk.js.map +1 -0
- package/dist/config/theme/dark.d.ts +90 -0
- package/dist/config/theme/dark.js +106 -0
- package/dist/config/theme/dark.js.map +1 -0
- package/dist/config/theme/festive.d.ts +93 -0
- package/dist/config/theme/festive.js +110 -0
- package/dist/config/theme/festive.js.map +1 -0
- package/dist/config/theme/forest.d.ts +93 -0
- package/dist/config/theme/forest.js +109 -0
- package/dist/config/theme/forest.js.map +1 -0
- package/dist/config/theme/high-contrast.d.ts +103 -0
- package/dist/config/theme/high-contrast.js +119 -0
- package/dist/config/theme/high-contrast.js.map +1 -0
- package/dist/config/theme/lemon.d.ts +103 -0
- package/dist/config/theme/lemon.js +119 -0
- package/dist/config/theme/lemon.js.map +1 -0
- package/dist/config/theme/light.d.ts +107 -0
- package/dist/config/theme/light.js +122 -0
- package/dist/config/theme/light.js.map +1 -0
- package/dist/config/theme/midnight.d.ts +86 -0
- package/dist/config/theme/midnight.js +103 -0
- package/dist/config/theme/midnight.js.map +1 -0
- package/dist/config/theme/ocean.d.ts +103 -0
- package/dist/config/theme/ocean.js +119 -0
- package/dist/config/theme/ocean.js.map +1 -0
- package/dist/config/theme/paper.d.ts +101 -0
- package/dist/config/theme/paper.js +117 -0
- package/dist/config/theme/paper.js.map +1 -0
- package/dist/config/theme/preference.d.ts +34 -0
- package/dist/config/theme/preference.js +67 -0
- package/dist/config/theme/preference.js.map +1 -0
- package/dist/config/theme/sakura.d.ts +103 -0
- package/dist/config/theme/sakura.js +119 -0
- package/dist/config/theme/sakura.js.map +1 -0
- package/dist/config/theme/theme.d.ts +59 -0
- package/dist/config/theme/theme.js +68 -0
- package/dist/config/theme/theme.js.map +1 -0
- package/dist/config/theme/token-names.d.ts +1897 -0
- package/dist/config/theme/tokens.d.ts +833 -0
- package/dist/config/theme/tokens.js +480 -0
- package/dist/config/theme/tokens.js.map +1 -0
- package/dist/config/vue-router.d.ts +67 -0
- package/dist/config/vue-router.js +143 -0
- package/dist/config/vue-router.js.map +1 -0
- package/dist/date/Calendar.d.ts +36 -0
- package/dist/date/Calendar.js +83 -0
- package/dist/date/Calendar.js.map +1 -0
- package/dist/date/CalendarBoard.d.ts +79 -0
- package/dist/date/CalendarBoard.js +403 -0
- package/dist/date/CalendarBoard.js.map +1 -0
- package/dist/date/CalendarView.d.ts +86 -0
- package/dist/date/CalendarView.js +427 -0
- package/dist/date/CalendarView.js.map +1 -0
- package/dist/date/Countdown.d.ts +45 -0
- package/dist/date/Countdown.js +75 -0
- package/dist/date/Countdown.js.map +1 -0
- package/dist/date/DateField.d.ts +34 -0
- package/dist/date/DateField.js +124 -0
- package/dist/date/DateField.js.map +1 -0
- package/dist/date/DatePicker.d.ts +41 -0
- package/dist/date/DatePicker.js +272 -0
- package/dist/date/DatePicker.js.map +1 -0
- package/dist/date/DateRangePicker.d.ts +71 -0
- package/dist/date/DateRangePicker.js +411 -0
- package/dist/date/DateRangePicker.js.map +1 -0
- package/dist/date/DateSegmentGroup.d.ts +38 -0
- package/dist/date/DateSegmentGroup.js +176 -0
- package/dist/date/DateSegmentGroup.js.map +1 -0
- package/dist/date/DateTime.d.ts +21 -0
- package/dist/date/DateTime.js +39 -0
- package/dist/date/DateTime.js.map +1 -0
- package/dist/date/QuarterCalendar.d.ts +22 -0
- package/dist/date/QuarterCalendar.js +231 -0
- package/dist/date/QuarterCalendar.js.map +1 -0
- package/dist/date/RangeCalendar.d.ts +24 -0
- package/dist/date/RangeCalendar.js +89 -0
- package/dist/date/RangeCalendar.js.map +1 -0
- package/dist/date/RelativeTime.d.ts +16 -0
- package/dist/date/RelativeTime.js +61 -0
- package/dist/date/RelativeTime.js.map +1 -0
- package/dist/date/SegmentedField.d.ts +60 -0
- package/dist/date/SegmentedField.js +175 -0
- package/dist/date/SegmentedField.js.map +1 -0
- package/dist/date/TimeField.d.ts +36 -0
- package/dist/date/TimeField.js +56 -0
- package/dist/date/TimeField.js.map +1 -0
- package/dist/date/TimePicker.d.ts +25 -0
- package/dist/date/TimePicker.js +206 -0
- package/dist/date/TimePicker.js.map +1 -0
- package/dist/date/calendar-state.d.ts +119 -0
- package/dist/date/calendar-state.js +267 -0
- package/dist/date/calendar-state.js.map +1 -0
- package/dist/date/clock.d.ts +11 -0
- package/dist/date/clock.js +37 -0
- package/dist/date/clock.js.map +1 -0
- package/dist/date/date-locale.d.ts +67 -0
- package/dist/date/date-locale.js +89 -0
- package/dist/date/date-locale.js.map +1 -0
- package/dist/date/date-segments.d.ts +132 -0
- package/dist/date/date-segments.js +410 -0
- package/dist/date/date-segments.js.map +1 -0
- package/dist/date/picker-popover.d.ts +88 -0
- package/dist/date/picker-popover.js +126 -0
- package/dist/date/picker-popover.js.map +1 -0
- package/dist/diagram/Diagram.d.ts +223 -0
- package/dist/diagram/Diagram.js +1121 -0
- package/dist/diagram/Diagram.js.map +1 -0
- package/dist/diagram/DiagramControls.d.ts +35 -0
- package/dist/diagram/DiagramControls.js +114 -0
- package/dist/diagram/DiagramControls.js.map +1 -0
- package/dist/diagram/DiagramLanes.d.ts +49 -0
- package/dist/diagram/DiagramLanes.js +92 -0
- package/dist/diagram/DiagramLanes.js.map +1 -0
- package/dist/diagram/DiagramMinimap.d.ts +39 -0
- package/dist/diagram/DiagramMinimap.js +133 -0
- package/dist/diagram/DiagramMinimap.js.map +1 -0
- package/dist/diagram/DiagramNode.d.ts +65 -0
- package/dist/diagram/DiagramNode.js +142 -0
- package/dist/diagram/DiagramNode.js.map +1 -0
- package/dist/diagram/controller.d.ts +68 -0
- package/dist/diagram/controller.js +117 -0
- package/dist/diagram/controller.js.map +1 -0
- package/dist/diagram/export.d.ts +14 -0
- package/dist/diagram/export.js +115 -0
- package/dist/diagram/export.js.map +1 -0
- package/dist/diagram/geometry.d.ts +65 -0
- package/dist/diagram/geometry.js +219 -0
- package/dist/diagram/geometry.js.map +1 -0
- package/dist/diagram/index.d.ts +20 -0
- package/dist/diagram/index.js +12 -0
- package/dist/diagram/layout.d.ts +57 -0
- package/dist/diagram/layout.js +50 -0
- package/dist/diagram/layout.js.map +1 -0
- package/dist/diagram/messages.d.ts +28 -0
- package/dist/diagram/messages.js +30 -0
- package/dist/diagram/messages.js.map +1 -0
- package/dist/diagram/route.d.ts +81 -0
- package/dist/diagram/route.js +327 -0
- package/dist/diagram/route.js.map +1 -0
- package/dist/display/Accordion.d.ts +71 -0
- package/dist/display/Accordion.js +219 -0
- package/dist/display/Accordion.js.map +1 -0
- package/dist/display/AnimatedNumber.d.ts +44 -0
- package/dist/display/AnimatedNumber.js +97 -0
- package/dist/display/AnimatedNumber.js.map +1 -0
- package/dist/display/Avatar.d.ts +74 -0
- package/dist/display/Avatar.js +158 -0
- package/dist/display/Avatar.js.map +1 -0
- package/dist/display/AvatarGroup.d.ts +29 -0
- package/dist/display/AvatarGroup.js +67 -0
- package/dist/display/AvatarGroup.js.map +1 -0
- package/dist/display/Card.d.ts +219 -0
- package/dist/display/Card.js +319 -0
- package/dist/display/Card.js.map +1 -0
- package/dist/display/Checklist.d.ts +93 -0
- package/dist/display/Checklist.js +260 -0
- package/dist/display/Checklist.js.map +1 -0
- package/dist/display/Collapse.d.ts +24 -0
- package/dist/display/Collapse.js +65 -0
- package/dist/display/Collapse.js.map +1 -0
- package/dist/display/Collapsible.d.ts +12 -0
- package/dist/display/Collapsible.js +41 -0
- package/dist/display/Collapsible.js.map +1 -0
- package/dist/display/Descriptions.d.ts +88 -0
- package/dist/display/Descriptions.js +185 -0
- package/dist/display/Descriptions.js.map +1 -0
- package/dist/display/Ellipsis.d.ts +29 -0
- package/dist/display/Ellipsis.js +111 -0
- package/dist/display/Ellipsis.js.map +1 -0
- package/dist/display/FieldCompare.d.ts +58 -0
- package/dist/display/FieldCompare.js +205 -0
- package/dist/display/FieldCompare.js.map +1 -0
- package/dist/display/Gauge.d.ts +60 -0
- package/dist/display/Gauge.js +215 -0
- package/dist/display/Gauge.js.map +1 -0
- package/dist/display/Image.d.ts +87 -0
- package/dist/display/Image.js +212 -0
- package/dist/display/Image.js.map +1 -0
- package/dist/display/ItemList.d.ts +69 -0
- package/dist/display/ItemList.js +147 -0
- package/dist/display/ItemList.js.map +1 -0
- package/dist/display/Marquee.d.ts +59 -0
- package/dist/display/Marquee.js +155 -0
- package/dist/display/Marquee.js.map +1 -0
- package/dist/display/ProportionBar.d.ts +55 -0
- package/dist/display/ProportionBar.js +99 -0
- package/dist/display/ProportionBar.js.map +1 -0
- package/dist/display/Sortable.d.ts +43 -0
- package/dist/display/Sortable.js +163 -0
- package/dist/display/Sortable.js.map +1 -0
- package/dist/display/Sparkline.d.ts +48 -0
- package/dist/display/Sparkline.js +130 -0
- package/dist/display/Sparkline.js.map +1 -0
- package/dist/display/Stat.d.ts +105 -0
- package/dist/display/Stat.js +268 -0
- package/dist/display/Stat.js.map +1 -0
- package/dist/display/Timeline.d.ts +106 -0
- package/dist/display/Timeline.js +257 -0
- package/dist/display/Timeline.js.map +1 -0
- package/dist/display/Tree.d.ts +132 -0
- package/dist/display/Tree.js +645 -0
- package/dist/display/Tree.js.map +1 -0
- package/dist/display/VirtualList.d.ts +80 -0
- package/dist/display/VirtualList.js +166 -0
- package/dist/display/VirtualList.js.map +1 -0
- package/dist/display/Watermark.d.ts +39 -0
- package/dist/display/Watermark.js +130 -0
- package/dist/display/Watermark.js.map +1 -0
- package/dist/docs-kit/CodeGroup.d.ts +29 -0
- package/dist/docs-kit/CodeGroup.js +81 -0
- package/dist/docs-kit/CodeGroup.js.map +1 -0
- package/dist/docs-kit/CodePreview.d.ts +60 -0
- package/dist/docs-kit/CodePreview.js +183 -0
- package/dist/docs-kit/CodePreview.js.map +1 -0
- package/dist/docs-kit/ColorSwatch.d.ts +28 -0
- package/dist/docs-kit/ColorSwatch.js +85 -0
- package/dist/docs-kit/ColorSwatch.js.map +1 -0
- package/dist/docs-kit/PropsTable.d.ts +73 -0
- package/dist/docs-kit/PropsTable.js +122 -0
- package/dist/docs-kit/PropsTable.js.map +1 -0
- package/dist/docs-kit/index.d.ts +13 -0
- package/dist/docs-kit/index.js +6 -0
- package/dist/docs-kit/messages.d.ts +25 -0
- package/dist/docs-kit/messages.js +30 -0
- package/dist/docs-kit/messages.js.map +1 -0
- package/dist/feedback/Alert.d.ts +83 -0
- package/dist/feedback/Alert.js +179 -0
- package/dist/feedback/Alert.js.map +1 -0
- package/dist/feedback/Banner.d.ts +60 -0
- package/dist/feedback/Banner.js +122 -0
- package/dist/feedback/Banner.js.map +1 -0
- package/dist/feedback/Empty.d.ts +38 -0
- package/dist/feedback/Empty.js +114 -0
- package/dist/feedback/Empty.js.map +1 -0
- package/dist/feedback/LoadingBar.d.ts +45 -0
- package/dist/feedback/LoadingBar.js +124 -0
- package/dist/feedback/LoadingBar.js.map +1 -0
- package/dist/feedback/LoadingOverlay.d.ts +29 -0
- package/dist/feedback/LoadingOverlay.js +70 -0
- package/dist/feedback/LoadingOverlay.js.map +1 -0
- package/dist/feedback/Progress.d.ts +215 -0
- package/dist/feedback/Progress.js +437 -0
- package/dist/feedback/Progress.js.map +1 -0
- package/dist/feedback/Result.d.ts +69 -0
- package/dist/feedback/Result.js +165 -0
- package/dist/feedback/Result.js.map +1 -0
- package/dist/feedback/Skeleton.d.ts +50 -0
- package/dist/feedback/Skeleton.js +100 -0
- package/dist/feedback/Skeleton.js.map +1 -0
- package/dist/feedback/SkeletonText.d.ts +25 -0
- package/dist/feedback/SkeletonText.js +40 -0
- package/dist/feedback/SkeletonText.js.map +1 -0
- package/dist/feedback/Toast.d.ts +204 -0
- package/dist/feedback/Toast.js +572 -0
- package/dist/feedback/Toast.js.map +1 -0
- package/dist/form/Field.d.ts +165 -0
- package/dist/form/Field.js +338 -0
- package/dist/form/Field.js.map +1 -0
- package/dist/form/Form.d.ts +14 -0
- package/dist/form/Form.js +66 -0
- package/dist/form/Form.js.map +1 -0
- package/dist/form/FormErrorSummary.d.ts +23 -0
- package/dist/form/FormErrorSummary.js +102 -0
- package/dist/form/FormErrorSummary.js.map +1 -0
- package/dist/form/FormSection.d.ts +66 -0
- package/dist/form/FormSection.js +227 -0
- package/dist/form/FormSection.js.map +1 -0
- package/dist/form/FormValue.d.ts +17 -0
- package/dist/form/FormValue.js +40 -0
- package/dist/form/FormValue.js.map +1 -0
- package/dist/form/field-layout.d.ts +34 -0
- package/dist/form/field-layout.js +39 -0
- package/dist/form/field-layout.js.map +1 -0
- package/dist/form/form-constraints.d.ts +38 -0
- package/dist/form/form-constraints.js +131 -0
- package/dist/form/form-constraints.js.map +1 -0
- package/dist/form/leave-confirmation.d.ts +9 -0
- package/dist/form/leave-confirmation.js +31 -0
- package/dist/form/leave-confirmation.js.map +1 -0
- package/dist/form/schemas.d.ts +52 -0
- package/dist/form/schemas.js +97 -0
- package/dist/form/schemas.js.map +1 -0
- package/dist/form/useForm.d.ts +195 -0
- package/dist/form/useForm.js +416 -0
- package/dist/form/useForm.js.map +1 -0
- package/dist/index.d.ts +285 -0
- package/dist/index.js +285 -0
- package/dist/input/Autocomplete.d.ts +14 -0
- package/dist/input/Autocomplete.js +35 -0
- package/dist/input/Autocomplete.js.map +1 -0
- package/dist/input/Cascader.d.ts +86 -0
- package/dist/input/Cascader.js +593 -0
- package/dist/input/Cascader.js.map +1 -0
- package/dist/input/CharacterCount.d.ts +21 -0
- package/dist/input/CharacterCount.js +47 -0
- package/dist/input/CharacterCount.js.map +1 -0
- package/dist/input/Checkbox.d.ts +93 -0
- package/dist/input/Checkbox.js +250 -0
- package/dist/input/Checkbox.js.map +1 -0
- package/dist/input/ColorField.d.ts +37 -0
- package/dist/input/ColorField.js +143 -0
- package/dist/input/ColorField.js.map +1 -0
- package/dist/input/Combobox.d.ts +75 -0
- package/dist/input/Combobox.js +321 -0
- package/dist/input/Combobox.js.map +1 -0
- package/dist/input/ConditionBuilder.d.ts +55 -0
- package/dist/input/ConditionBuilder.js +471 -0
- package/dist/input/ConditionBuilder.js.map +1 -0
- package/dist/input/ControlGroup.d.ts +26 -0
- package/dist/input/ControlGroup.js +50 -0
- package/dist/input/ControlGroup.js.map +1 -0
- package/dist/input/FileDrop.d.ts +49 -0
- package/dist/input/FileDrop.js +201 -0
- package/dist/input/FileDrop.js.map +1 -0
- package/dist/input/ListPopover.d.ts +39 -0
- package/dist/input/ListPopover.js +81 -0
- package/dist/input/ListPopover.js.map +1 -0
- package/dist/input/Listbox.d.ts +91 -0
- package/dist/input/Listbox.js +408 -0
- package/dist/input/Listbox.js.map +1 -0
- package/dist/input/Mentions.d.ts +74 -0
- package/dist/input/Mentions.js +287 -0
- package/dist/input/Mentions.js.map +1 -0
- package/dist/input/NumberField.d.ts +64 -0
- package/dist/input/NumberField.js +288 -0
- package/dist/input/NumberField.js.map +1 -0
- package/dist/input/NumberRangeField.d.ts +58 -0
- package/dist/input/NumberRangeField.js +157 -0
- package/dist/input/NumberRangeField.js.map +1 -0
- package/dist/input/OtpField.d.ts +58 -0
- package/dist/input/OtpField.js +200 -0
- package/dist/input/OtpField.js.map +1 -0
- package/dist/input/PeoplePicker.d.ts +42 -0
- package/dist/input/PeoplePicker.js +185 -0
- package/dist/input/PeoplePicker.js.map +1 -0
- package/dist/input/PeoplePickerPanel.d.ts +42 -0
- package/dist/input/PeoplePickerPanel.js +357 -0
- package/dist/input/PeoplePickerPanel.js.map +1 -0
- package/dist/input/Radio.d.ts +90 -0
- package/dist/input/Radio.js +211 -0
- package/dist/input/Radio.js.map +1 -0
- package/dist/input/Rating.d.ts +62 -0
- package/dist/input/Rating.js +225 -0
- package/dist/input/Rating.js.map +1 -0
- package/dist/input/Select.d.ts +97 -0
- package/dist/input/Select.js +455 -0
- package/dist/input/Select.js.map +1 -0
- package/dist/input/SelectedTags.d.ts +28 -0
- package/dist/input/SelectedTags.js +81 -0
- package/dist/input/SelectedTags.js.map +1 -0
- package/dist/input/Slider.d.ts +99 -0
- package/dist/input/Slider.js +343 -0
- package/dist/input/Slider.js.map +1 -0
- package/dist/input/Switch.d.ts +63 -0
- package/dist/input/Switch.js +198 -0
- package/dist/input/Switch.js.map +1 -0
- package/dist/input/TagsInput.d.ts +70 -0
- package/dist/input/TagsInput.js +314 -0
- package/dist/input/TagsInput.js.map +1 -0
- package/dist/input/TextField.d.ts +51 -0
- package/dist/input/TextField.js +185 -0
- package/dist/input/TextField.js.map +1 -0
- package/dist/input/Textarea.d.ts +50 -0
- package/dist/input/Textarea.js +146 -0
- package/dist/input/Textarea.js.map +1 -0
- package/dist/input/ToggleGroup.d.ts +82 -0
- package/dist/input/ToggleGroup.js +211 -0
- package/dist/input/ToggleGroup.js.map +1 -0
- package/dist/input/Transfer.d.ts +67 -0
- package/dist/input/Transfer.js +407 -0
- package/dist/input/Transfer.js.map +1 -0
- package/dist/input/TreeSelect.d.ts +94 -0
- package/dist/input/TreeSelect.js +412 -0
- package/dist/input/TreeSelect.js.map +1 -0
- package/dist/input/Upload.d.ts +143 -0
- package/dist/input/Upload.js +598 -0
- package/dist/input/Upload.js.map +1 -0
- package/dist/input/choice-styles.d.ts +117 -0
- package/dist/input/choice-styles.js +176 -0
- package/dist/input/choice-styles.js.map +1 -0
- package/dist/input/condition.d.ts +153 -0
- package/dist/input/condition.js +187 -0
- package/dist/input/condition.js.map +1 -0
- package/dist/input/control.d.ts +160 -0
- package/dist/input/control.js +236 -0
- package/dist/input/control.js.map +1 -0
- package/dist/input/list-state.d.ts +118 -0
- package/dist/input/list-state.js +186 -0
- package/dist/input/list-state.js.map +1 -0
- package/dist/input/people.d.ts +66 -0
- package/dist/input/people.js +47 -0
- package/dist/input/people.js.map +1 -0
- package/dist/input/remote-items.d.ts +22 -0
- package/dist/input/remote-items.js +41 -0
- package/dist/input/remote-items.js.map +1 -0
- package/dist/input/text-format.d.ts +46 -0
- package/dist/input/text-format.js +64 -0
- package/dist/input/text-format.js.map +1 -0
- package/dist/layout/Affix.d.ts +32 -0
- package/dist/layout/Affix.js +81 -0
- package/dist/layout/Affix.js.map +1 -0
- package/dist/layout/AsideLayout.d.ts +45 -0
- package/dist/layout/AsideLayout.js +69 -0
- package/dist/layout/AsideLayout.js.map +1 -0
- package/dist/layout/BackTop.d.ts +16 -0
- package/dist/layout/BackTop.js +83 -0
- package/dist/layout/BackTop.js.map +1 -0
- package/dist/layout/Container.d.ts +60 -0
- package/dist/layout/Container.js +62 -0
- package/dist/layout/Container.js.map +1 -0
- package/dist/layout/Flex.d.ts +116 -0
- package/dist/layout/Flex.js +109 -0
- package/dist/layout/Flex.js.map +1 -0
- package/dist/layout/Grid.d.ts +139 -0
- package/dist/layout/Grid.js +168 -0
- package/dist/layout/Grid.js.map +1 -0
- package/dist/layout/PageScrollbar.d.ts +20 -0
- package/dist/layout/PageScrollbar.js +49 -0
- package/dist/layout/PageScrollbar.js.map +1 -0
- package/dist/layout/Prose.d.ts +19 -0
- package/dist/layout/Prose.js +37 -0
- package/dist/layout/Prose.js.map +1 -0
- package/dist/layout/ResizeHandle.d.ts +28 -0
- package/dist/layout/ResizeHandle.js +94 -0
- package/dist/layout/ResizeHandle.js.map +1 -0
- package/dist/layout/ScrollArea.d.ts +99 -0
- package/dist/layout/ScrollArea.js +344 -0
- package/dist/layout/ScrollArea.js.map +1 -0
- package/dist/layout/Separator.d.ts +47 -0
- package/dist/layout/Separator.js +96 -0
- package/dist/layout/Separator.js.map +1 -0
- package/dist/layout/Splitter.d.ts +75 -0
- package/dist/layout/Splitter.js +236 -0
- package/dist/layout/Splitter.js.map +1 -0
- package/dist/layout/ViewportFill.d.ts +26 -0
- package/dist/layout/ViewportFill.js +59 -0
- package/dist/layout/ViewportFill.js.map +1 -0
- package/dist/navigation/Breadcrumbs.d.ts +59 -0
- package/dist/navigation/Breadcrumbs.js +150 -0
- package/dist/navigation/Breadcrumbs.js.map +1 -0
- package/dist/navigation/NavBar.d.ts +35 -0
- package/dist/navigation/NavBar.js +182 -0
- package/dist/navigation/NavBar.js.map +1 -0
- package/dist/navigation/NavList.d.ts +112 -0
- package/dist/navigation/NavList.js +375 -0
- package/dist/navigation/NavList.js.map +1 -0
- package/dist/navigation/PageJump.d.ts +27 -0
- package/dist/navigation/PageJump.js +77 -0
- package/dist/navigation/PageJump.js.map +1 -0
- package/dist/navigation/PageSizeSelect.d.ts +19 -0
- package/dist/navigation/PageSizeSelect.js +65 -0
- package/dist/navigation/PageSizeSelect.js.map +1 -0
- package/dist/navigation/Pager.d.ts +30 -0
- package/dist/navigation/Pager.js +111 -0
- package/dist/navigation/Pager.js.map +1 -0
- package/dist/navigation/Pagination.d.ts +51 -0
- package/dist/navigation/Pagination.js +157 -0
- package/dist/navigation/Pagination.js.map +1 -0
- package/dist/navigation/PaginationBar.d.ts +54 -0
- package/dist/navigation/PaginationBar.js +125 -0
- package/dist/navigation/PaginationBar.js.map +1 -0
- package/dist/navigation/SkipLink.d.ts +16 -0
- package/dist/navigation/SkipLink.js +58 -0
- package/dist/navigation/SkipLink.js.map +1 -0
- package/dist/navigation/Steps.d.ts +93 -0
- package/dist/navigation/Steps.js +198 -0
- package/dist/navigation/Steps.js.map +1 -0
- package/dist/navigation/TableOfContents.d.ts +32 -0
- package/dist/navigation/TableOfContents.js +119 -0
- package/dist/navigation/TableOfContents.js.map +1 -0
- package/dist/navigation/Tabs.d.ts +208 -0
- package/dist/navigation/Tabs.js +626 -0
- package/dist/navigation/Tabs.js.map +1 -0
- package/dist/navigation/Toolbar.d.ts +39 -0
- package/dist/navigation/Toolbar.js +67 -0
- package/dist/navigation/Toolbar.js.map +1 -0
- package/dist/overlay/AlertDialog.d.ts +43 -0
- package/dist/overlay/AlertDialog.js +106 -0
- package/dist/overlay/AlertDialog.js.map +1 -0
- package/dist/overlay/CommandPalette.d.ts +64 -0
- package/dist/overlay/CommandPalette.js +250 -0
- package/dist/overlay/CommandPalette.js.map +1 -0
- package/dist/overlay/ContextMenu.d.ts +21 -0
- package/dist/overlay/ContextMenu.js +76 -0
- package/dist/overlay/ContextMenu.js.map +1 -0
- package/dist/overlay/Dialog.d.ts +70 -0
- package/dist/overlay/Dialog.js +91 -0
- package/dist/overlay/Dialog.js.map +1 -0
- package/dist/overlay/Drawer.d.ts +186 -0
- package/dist/overlay/Drawer.js +214 -0
- package/dist/overlay/Drawer.js.map +1 -0
- package/dist/overlay/HoverCard.d.ts +48 -0
- package/dist/overlay/HoverCard.js +86 -0
- package/dist/overlay/HoverCard.js.map +1 -0
- package/dist/overlay/Lightbox.d.ts +57 -0
- package/dist/overlay/Lightbox.js +374 -0
- package/dist/overlay/Lightbox.js.map +1 -0
- package/dist/overlay/Menu.d.ts +218 -0
- package/dist/overlay/Menu.js +816 -0
- package/dist/overlay/Menu.js.map +1 -0
- package/dist/overlay/ModalCore.d.ts +132 -0
- package/dist/overlay/ModalCore.js +274 -0
- package/dist/overlay/ModalCore.js.map +1 -0
- package/dist/overlay/Popconfirm.d.ts +49 -0
- package/dist/overlay/Popconfirm.js +167 -0
- package/dist/overlay/Popconfirm.js.map +1 -0
- package/dist/overlay/Popover.d.ts +40 -0
- package/dist/overlay/Popover.js +96 -0
- package/dist/overlay/Popover.js.map +1 -0
- package/dist/overlay/Tooltip.d.ts +47 -0
- package/dist/overlay/Tooltip.js +86 -0
- package/dist/overlay/Tooltip.js.map +1 -0
- package/dist/overlay/Tour.d.ts +74 -0
- package/dist/overlay/Tour.js +309 -0
- package/dist/overlay/Tour.js.map +1 -0
- package/dist/overlay/detached.d.ts +40 -0
- package/dist/overlay/detached.js +109 -0
- package/dist/overlay/detached.js.map +1 -0
- package/dist/patterns/ActionBar.d.ts +29 -0
- package/dist/patterns/ActionBar.js +75 -0
- package/dist/patterns/ActionBar.js.map +1 -0
- package/dist/patterns/AppShell.d.ts +168 -0
- package/dist/patterns/AppShell.js +620 -0
- package/dist/patterns/AppShell.js.map +1 -0
- package/dist/patterns/CommentThread.d.ts +128 -0
- package/dist/patterns/CommentThread.js +386 -0
- package/dist/patterns/CommentThread.js.map +1 -0
- package/dist/patterns/DataImport.d.ts +72 -0
- package/dist/patterns/DataImport.js +486 -0
- package/dist/patterns/DataImport.js.map +1 -0
- package/dist/patterns/DeadlineBadge.d.ts +21 -0
- package/dist/patterns/DeadlineBadge.js +76 -0
- package/dist/patterns/DeadlineBadge.js.map +1 -0
- package/dist/patterns/FilterBar.d.ts +66 -0
- package/dist/patterns/FilterBar.js +254 -0
- package/dist/patterns/FilterBar.js.map +1 -0
- package/dist/patterns/KanbanBoard.d.ts +79 -0
- package/dist/patterns/KanbanBoard.js +294 -0
- package/dist/patterns/KanbanBoard.js.map +1 -0
- package/dist/patterns/NotificationCenter.d.ts +110 -0
- package/dist/patterns/NotificationCenter.js +342 -0
- package/dist/patterns/NotificationCenter.js.map +1 -0
- package/dist/patterns/PageTabs.d.ts +30 -0
- package/dist/patterns/PageTabs.js +97 -0
- package/dist/patterns/PageTabs.js.map +1 -0
- package/dist/patterns/QueryTable.d.ts +67 -0
- package/dist/patterns/QueryTable.js +301 -0
- package/dist/patterns/QueryTable.js.map +1 -0
- package/dist/patterns/StepsForm.d.ts +49 -0
- package/dist/patterns/StepsForm.js +130 -0
- package/dist/patterns/StepsForm.js.map +1 -0
- package/dist/patterns/ThemeSwitcher.d.ts +20 -0
- package/dist/patterns/ThemeSwitcher.js +102 -0
- package/dist/patterns/ThemeSwitcher.js.map +1 -0
- package/dist/patterns/form-dialog.d.ts +62 -0
- package/dist/patterns/form-dialog.js +143 -0
- package/dist/patterns/form-dialog.js.map +1 -0
- package/dist/patterns/index.d.ts +24 -0
- package/dist/patterns/index.js +15 -0
- package/dist/patterns/messages.d.ts +174 -0
- package/dist/patterns/messages.js +186 -0
- package/dist/patterns/messages.js.map +1 -0
- package/dist/table/ColumnHeaderActions.d.ts +71 -0
- package/dist/table/ColumnHeaderActions.js +247 -0
- package/dist/table/ColumnHeaderActions.js.map +1 -0
- package/dist/table/ColumnResizer.d.ts +12 -0
- package/dist/table/ColumnResizer.js +32 -0
- package/dist/table/ColumnResizer.js.map +1 -0
- package/dist/table/ColumnSettings.d.ts +34 -0
- package/dist/table/ColumnSettings.js +136 -0
- package/dist/table/ColumnSettings.js.map +1 -0
- package/dist/table/ColumnTable.d.ts +51 -0
- package/dist/table/ColumnTable.js +140 -0
- package/dist/table/ColumnTable.js.map +1 -0
- package/dist/table/DataTable.d.ts +44 -0
- package/dist/table/DataTable.js +453 -0
- package/dist/table/DataTable.js.map +1 -0
- package/dist/table/DataTableView.d.ts +328 -0
- package/dist/table/DataTableView.js +963 -0
- package/dist/table/DataTableView.js.map +1 -0
- package/dist/table/PivotTable.d.ts +66 -0
- package/dist/table/PivotTable.js +122 -0
- package/dist/table/PivotTable.js.map +1 -0
- package/dist/table/SelectionBar.d.ts +29 -0
- package/dist/table/SelectionBar.js +86 -0
- package/dist/table/SelectionBar.js.map +1 -0
- package/dist/table/Table.d.ts +169 -0
- package/dist/table/Table.js +304 -0
- package/dist/table/Table.js.map +1 -0
- package/dist/table/TreeDataTable.d.ts +36 -0
- package/dist/table/TreeDataTable.js +168 -0
- package/dist/table/TreeDataTable.js.map +1 -0
- package/dist/table/column-display.d.ts +20 -0
- package/dist/table/column-display.js +43 -0
- package/dist/table/column-display.js.map +1 -0
- package/dist/table/columns.d.ts +244 -0
- package/dist/table/columns.js +271 -0
- package/dist/table/columns.js.map +1 -0
- package/dist/table/csv.d.ts +24 -0
- package/dist/table/csv.js +35 -0
- package/dist/table/csv.js.map +1 -0
- package/dist/table/pivot.d.ts +66 -0
- package/dist/table/pivot.js +85 -0
- package/dist/table/pivot.js.map +1 -0
- package/dist/table/sheet.d.ts +44 -0
- package/dist/table/sheet.js +78 -0
- package/dist/table/sheet.js.map +1 -0
- package/dist/table/table-styles.d.ts +136 -0
- package/dist/table/table-styles.js +403 -0
- package/dist/table/table-styles.js.map +1 -0
- package/dist/table/use-table-query.d.ts +89 -0
- package/dist/table/use-table-query.js +194 -0
- package/dist/table/use-table-query.js.map +1 -0
- package/dist/theme-customize/ThemeCustomizer.d.ts +63 -0
- package/dist/theme-customize/ThemeCustomizer.js +361 -0
- package/dist/theme-customize/ThemeCustomizer.js.map +1 -0
- package/dist/theme-customize/ThemeThumbnail.d.ts +20 -0
- package/dist/theme-customize/ThemeThumbnail.js +82 -0
- package/dist/theme-customize/ThemeThumbnail.js.map +1 -0
- package/dist/theme-customize/contrast.d.ts +27 -0
- package/dist/theme-customize/contrast.js +251 -0
- package/dist/theme-customize/contrast.js.map +1 -0
- package/dist/theme-customize/customize.d.ts +65 -0
- package/dist/theme-customize/customize.js +105 -0
- package/dist/theme-customize/customize.js.map +1 -0
- package/dist/theme-customize/design-tokens.d.ts +31 -0
- package/dist/theme-customize/design-tokens.js +183 -0
- package/dist/theme-customize/design-tokens.js.map +1 -0
- package/dist/theme-customize/index.d.ts +20 -0
- package/dist/theme-customize/index.js +9 -0
- package/dist/theme-customize/messages.d.ts +74 -0
- package/dist/theme-customize/messages.js +142 -0
- package/dist/theme-customize/messages.js.map +1 -0
- package/dist/theme-customize/palette.d.ts +898 -0
- package/dist/theme-customize/palette.js +111 -0
- package/dist/theme-customize/palette.js.map +1 -0
- package/dist/theme-customize/token-catalog.d.ts +20 -0
- package/dist/theme-customize/token-catalog.js +836 -0
- package/dist/theme-customize/token-catalog.js.map +1 -0
- package/dist/three/background/AuroraBackground.d.ts +30 -0
- package/dist/three/background/AuroraBackground.js +80 -0
- package/dist/three/background/AuroraBackground.js.map +1 -0
- package/dist/three/background/MeshGradient.d.ts +28 -0
- package/dist/three/background/MeshGradient.js +76 -0
- package/dist/three/background/MeshGradient.js.map +1 -0
- package/dist/three/background/ShaderBackground.d.ts +25 -0
- package/dist/three/background/ShaderBackground.js +107 -0
- package/dist/three/background/ShaderBackground.js.map +1 -0
- package/dist/three/core/EffectSurface.d.ts +41 -0
- package/dist/three/core/EffectSurface.js +62 -0
- package/dist/three/core/EffectSurface.js.map +1 -0
- package/dist/three/core/ThreeCanvas.d.ts +39 -0
- package/dist/three/core/ThreeCanvas.js +77 -0
- package/dist/three/core/ThreeCanvas.js.map +1 -0
- package/dist/three/core/dispose.d.ts +9 -0
- package/dist/three/core/dispose.js +26 -0
- package/dist/three/core/dispose.js.map +1 -0
- package/dist/three/core/orbit.d.ts +31 -0
- package/dist/three/core/orbit.js +83 -0
- package/dist/three/core/orbit.js.map +1 -0
- package/dist/three/core/quality.d.ts +59 -0
- package/dist/three/core/quality.js +80 -0
- package/dist/three/core/quality.js.map +1 -0
- package/dist/three/core/renderer.d.ts +110 -0
- package/dist/three/core/renderer.js +303 -0
- package/dist/three/core/renderer.js.map +1 -0
- package/dist/three/core/shaders.d.ts +19 -0
- package/dist/three/core/shaders.js +100 -0
- package/dist/three/core/shaders.js.map +1 -0
- package/dist/three/core/theme-colors.d.ts +30 -0
- package/dist/three/core/theme-colors.js +113 -0
- package/dist/three/core/theme-colors.js.map +1 -0
- package/dist/three/effects/Confetti.d.ts +62 -0
- package/dist/three/effects/Confetti.js +242 -0
- package/dist/three/effects/Confetti.js.map +1 -0
- package/dist/three/effects/ParticleField.d.ts +39 -0
- package/dist/three/effects/ParticleField.js +266 -0
- package/dist/three/effects/ParticleField.js.map +1 -0
- package/dist/three/effects/WaveGrid.d.ts +37 -0
- package/dist/three/effects/WaveGrid.js +130 -0
- package/dist/three/effects/WaveGrid.js.map +1 -0
- package/dist/three/globe/Globe.d.ts +70 -0
- package/dist/three/globe/Globe.js +337 -0
- package/dist/three/globe/Globe.js.map +1 -0
- package/dist/three/globe/land.d.ts +9 -0
- package/dist/three/globe/land.js +14 -0
- package/dist/three/globe/land.js.map +1 -0
- package/dist/three/index.d.ts +24 -0
- package/dist/three/index.js +18 -0
- package/dist/three/model/ModelViewer.d.ts +63 -0
- package/dist/three/model/ModelViewer.js +193 -0
- package/dist/three/model/ModelViewer.js.map +1 -0
- package/dist/utils/data/clone.d.ts +8 -0
- package/dist/utils/data/clone.js +21 -0
- package/dist/utils/data/clone.js.map +1 -0
- package/dist/utils/data/collation.d.ts +36 -0
- package/dist/utils/data/collation.js +69 -0
- package/dist/utils/data/collation.js.map +1 -0
- package/dist/utils/data/color.d.ts +32 -0
- package/dist/utils/data/color.js +90 -0
- package/dist/utils/data/color.js.map +1 -0
- package/dist/utils/data/date.d.ts +196 -0
- package/dist/utils/data/date.js +421 -0
- package/dist/utils/data/date.js.map +1 -0
- package/dist/utils/data/diff.d.ts +21 -0
- package/dist/utils/data/diff.js +43 -0
- package/dist/utils/data/diff.js.map +1 -0
- package/dist/utils/data/equality.d.ts +5 -0
- package/dist/utils/data/equality.js +24 -0
- package/dist/utils/data/equality.js.map +1 -0
- package/dist/utils/data/history.d.ts +59 -0
- package/dist/utils/data/history.js +132 -0
- package/dist/utils/data/history.js.map +1 -0
- package/dist/utils/data/intl-cache.d.ts +8 -0
- package/dist/utils/data/intl-cache.js +19 -0
- package/dist/utils/data/intl-cache.js.map +1 -0
- package/dist/utils/data/number-parse.d.ts +7 -0
- package/dist/utils/data/number-parse.js +45 -0
- package/dist/utils/data/number-parse.js.map +1 -0
- package/dist/utils/data/number.d.ts +10 -0
- package/dist/utils/data/number.js +28 -0
- package/dist/utils/data/number.js.map +1 -0
- package/dist/utils/data/numeric.d.ts +62 -0
- package/dist/utils/data/numeric.js +178 -0
- package/dist/utils/data/numeric.js.map +1 -0
- package/dist/utils/data/pagination.d.ts +21 -0
- package/dist/utils/data/pagination.js +22 -0
- package/dist/utils/data/pagination.js.map +1 -0
- package/dist/utils/data/selection.d.ts +41 -0
- package/dist/utils/data/selection.js +21 -0
- package/dist/utils/data/selection.js.map +1 -0
- package/dist/utils/data/status.d.ts +43 -0
- package/dist/utils/data/status.js +27 -0
- package/dist/utils/data/status.js.map +1 -0
- package/dist/utils/data/text.d.ts +12 -0
- package/dist/utils/data/text.js +30 -0
- package/dist/utils/data/text.js.map +1 -0
- package/dist/utils/data/tree.d.ts +140 -0
- package/dist/utils/data/tree.js +273 -0
- package/dist/utils/data/tree.js.map +1 -0
- package/dist/utils/data/workdays.d.ts +67 -0
- package/dist/utils/data/workdays.js +67 -0
- package/dist/utils/data/workdays.js.map +1 -0
- package/dist/utils/dom/announcer.d.ts +11 -0
- package/dist/utils/dom/announcer.js +53 -0
- package/dist/utils/dom/announcer.js.map +1 -0
- package/dist/utils/dom/caret.d.ts +14 -0
- package/dist/utils/dom/caret.js +72 -0
- package/dist/utils/dom/caret.js.map +1 -0
- package/dist/utils/dom/clipboard.d.ts +16 -0
- package/dist/utils/dom/clipboard.js +66 -0
- package/dist/utils/dom/clipboard.js.map +1 -0
- package/dist/utils/dom/direction.d.ts +12 -0
- package/dist/utils/dom/direction.js +20 -0
- package/dist/utils/dom/direction.js.map +1 -0
- package/dist/utils/dom/download.d.ts +14 -0
- package/dist/utils/dom/download.js +36 -0
- package/dist/utils/dom/download.js.map +1 -0
- package/dist/utils/dom/element.d.ts +3 -0
- package/dist/utils/dom/element.js +12 -0
- package/dist/utils/dom/element.js.map +1 -0
- package/dist/utils/dom/event-listener.d.ts +8 -0
- package/dist/utils/dom/event-listener.js +35 -0
- package/dist/utils/dom/event-listener.js.map +1 -0
- package/dist/utils/dom/floating.d.ts +149 -0
- package/dist/utils/dom/floating.js +262 -0
- package/dist/utils/dom/floating.js.map +1 -0
- package/dist/utils/dom/focus.d.ts +28 -0
- package/dist/utils/dom/focus.js +105 -0
- package/dist/utils/dom/focus.js.map +1 -0
- package/dist/utils/dom/fullscreen.d.ts +11 -0
- package/dist/utils/dom/fullscreen.js +43 -0
- package/dist/utils/dom/fullscreen.js.map +1 -0
- package/dist/utils/dom/hotkeys.d.ts +43 -0
- package/dist/utils/dom/hotkeys.js +174 -0
- package/dist/utils/dom/hotkeys.js.map +1 -0
- package/dist/utils/dom/hover-intent.d.ts +47 -0
- package/dist/utils/dom/hover-intent.js +72 -0
- package/dist/utils/dom/hover-intent.js.map +1 -0
- package/dist/utils/dom/hover-layer.d.ts +36 -0
- package/dist/utils/dom/hover-layer.js +74 -0
- package/dist/utils/dom/hover-layer.js.map +1 -0
- package/dist/utils/dom/intersection.d.ts +13 -0
- package/dist/utils/dom/intersection.js +36 -0
- package/dist/utils/dom/intersection.js.map +1 -0
- package/dist/utils/dom/layout-batch.d.ts +14 -0
- package/dist/utils/dom/layout-batch.js +26 -0
- package/dist/utils/dom/layout-batch.js.map +1 -0
- package/dist/utils/dom/link.d.ts +18 -0
- package/dist/utils/dom/link.js +44 -0
- package/dist/utils/dom/link.js.map +1 -0
- package/dist/utils/dom/media-query.d.ts +18 -0
- package/dist/utils/dom/media-query.js +36 -0
- package/dist/utils/dom/media-query.js.map +1 -0
- package/dist/utils/dom/move.d.ts +47 -0
- package/dist/utils/dom/move.js +69 -0
- package/dist/utils/dom/move.js.map +1 -0
- package/dist/utils/dom/open-change.d.ts +51 -0
- package/dist/utils/dom/open-change.js +21 -0
- package/dist/utils/dom/open-change.js.map +1 -0
- package/dist/utils/dom/overflow.d.ts +29 -0
- package/dist/utils/dom/overflow.js +108 -0
- package/dist/utils/dom/overflow.js.map +1 -0
- package/dist/utils/dom/overlay.d.ts +35 -0
- package/dist/utils/dom/overlay.js +104 -0
- package/dist/utils/dom/overlay.js.map +1 -0
- package/dist/utils/dom/page-visibility.d.ts +10 -0
- package/dist/utils/dom/page-visibility.js +22 -0
- package/dist/utils/dom/page-visibility.js.map +1 -0
- package/dist/utils/dom/pan-zoom.d.ts +109 -0
- package/dist/utils/dom/pan-zoom.js +257 -0
- package/dist/utils/dom/pan-zoom.js.map +1 -0
- package/dist/utils/dom/rasterize.d.ts +18 -0
- package/dist/utils/dom/rasterize.js +41 -0
- package/dist/utils/dom/rasterize.js.map +1 -0
- package/dist/utils/dom/resize.d.ts +4 -0
- package/dist/utils/dom/resize.js +65 -0
- package/dist/utils/dom/resize.js.map +1 -0
- package/dist/utils/dom/ripple.d.ts +40 -0
- package/dist/utils/dom/ripple.js +96 -0
- package/dist/utils/dom/ripple.js.map +1 -0
- package/dist/utils/dom/roving-focus.d.ts +44 -0
- package/dist/utils/dom/roving-focus.js +184 -0
- package/dist/utils/dom/roving-focus.js.map +1 -0
- package/dist/utils/dom/scroll-spy.d.ts +30 -0
- package/dist/utils/dom/scroll-spy.js +55 -0
- package/dist/utils/dom/scroll-spy.js.map +1 -0
- package/dist/utils/dom/sortable.d.ts +82 -0
- package/dist/utils/dom/sortable.js +437 -0
- package/dist/utils/dom/sortable.js.map +1 -0
- package/dist/utils/dom/storage.d.ts +21 -0
- package/dist/utils/dom/storage.js +66 -0
- package/dist/utils/dom/storage.js.map +1 -0
- package/dist/utils/dom/typeahead.d.ts +15 -0
- package/dist/utils/dom/typeahead.js +26 -0
- package/dist/utils/dom/typeahead.js.map +1 -0
- package/dist/utils/motion/active-indicator.d.ts +24 -0
- package/dist/utils/motion/active-indicator.js +58 -0
- package/dist/utils/motion/active-indicator.js.map +1 -0
- package/dist/utils/motion/animation.d.ts +58 -0
- package/dist/utils/motion/animation.js +83 -0
- package/dist/utils/motion/animation.js.map +1 -0
- package/dist/utils/motion/delayed-loading.d.ts +18 -0
- package/dist/utils/motion/delayed-loading.js +38 -0
- package/dist/utils/motion/delayed-loading.js.map +1 -0
- package/dist/utils/motion/layout.d.ts +17 -0
- package/dist/utils/motion/layout.js +43 -0
- package/dist/utils/motion/layout.js.map +1 -0
- package/dist/utils/motion/pointer.d.ts +14 -0
- package/dist/utils/motion/pointer.js +72 -0
- package/dist/utils/motion/pointer.js.map +1 -0
- package/dist/utils/motion/presence.d.ts +57 -0
- package/dist/utils/motion/presence.js +100 -0
- package/dist/utils/motion/presence.js.map +1 -0
- package/dist/utils/motion/reveal.d.ts +9 -0
- package/dist/utils/motion/reveal.js +68 -0
- package/dist/utils/motion/reveal.js.map +1 -0
- package/dist/utils/motion/tween.d.ts +34 -0
- package/dist/utils/motion/tween.js +50 -0
- package/dist/utils/motion/tween.js.map +1 -0
- package/dist/utils/props.d.ts +84 -0
- package/dist/utils/props.js +189 -0
- package/dist/utils/props.js.map +1 -0
- package/dist/utils/request/error-message.d.ts +17 -0
- package/dist/utils/request/error-message.js +50 -0
- package/dist/utils/request/error-message.js.map +1 -0
- package/dist/utils/request/http.d.ts +165 -0
- package/dist/utils/request/http.js +247 -0
- package/dist/utils/request/http.js.map +1 -0
- package/dist/utils/request/use-autosave.d.ts +35 -0
- package/dist/utils/request/use-autosave.js +69 -0
- package/dist/utils/request/use-autosave.js.map +1 -0
- package/dist/utils/request/use-request.d.ts +37 -0
- package/dist/utils/request/use-request.js +90 -0
- package/dist/utils/request/use-request.js.map +1 -0
- package/dist/utils/request/wire.d.ts +48 -0
- package/dist/utils/request/wire.js +208 -0
- package/dist/utils/request/wire.js.map +1 -0
- package/dist/utils/style/attached.d.ts +25 -0
- package/dist/utils/style/attached.js +82 -0
- package/dist/utils/style/attached.js.map +1 -0
- package/dist/utils/style/item-styles.d.ts +18 -0
- package/dist/utils/style/item-styles.js +79 -0
- package/dist/utils/style/item-styles.js.map +1 -0
- package/dist/utils/style/markers.d.ts +6 -0
- package/dist/utils/style/markers.js +11 -0
- package/dist/utils/style/markers.js.map +1 -0
- package/dist/utils/style/shimmer.d.ts +20 -0
- package/dist/utils/style/shimmer.js +58 -0
- package/dist/utils/style/shimmer.js.map +1 -0
- package/dist/utils/style/styles.d.ts +118 -0
- package/dist/utils/style/styles.js +114 -0
- package/dist/utils/style/styles.js.map +1 -0
- package/dist/utils/style/swatch-styles.d.ts +10 -0
- package/dist/utils/style/swatch-styles.js +19 -0
- package/dist/utils/style/swatch-styles.js.map +1 -0
- package/dist/utils/style/tone-styles.d.ts +58 -0
- package/dist/utils/style/tone-styles.js +180 -0
- package/dist/utils/style/tone-styles.js.map +1 -0
- package/dist/utils/style/transitions.d.ts +43 -0
- package/dist/utils/style/transitions.js +118 -0
- package/dist/utils/style/transitions.js.map +1 -0
- package/dist/utils/style/typography.d.ts +155 -0
- package/dist/utils/style/typography.js +80 -0
- package/dist/utils/style/typography.js.map +1 -0
- package/dist/utils/style/vars.d.ts +18 -0
- package/dist/utils/style/vars.js +21 -0
- package/dist/utils/style/vars.js.map +1 -0
- package/dist/utils/virtual/use-virtualizer.d.ts +43 -0
- package/dist/utils/virtual/use-virtualizer.js +94 -0
- package/dist/utils/virtual/use-virtualizer.js.map +1 -0
- package/dist/utils/virtual/virtualizer.d.ts +145 -0
- package/dist/utils/virtual/virtualizer.js +316 -0
- package/dist/utils/virtual/virtualizer.js.map +1 -0
- package/dist/xlsx/index.d.ts +7 -0
- package/dist/xlsx/index.js +1 -0
- package/dist/xlsx/workbook.d.ts +33 -0
- package/dist/xlsx/workbook.js +195 -0
- package/dist/xlsx/workbook.js.map +1 -0
- package/package.json +258 -3
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/** useRequest 的选项 */
|
|
2
|
+
export interface RequestOptions<P, T> {
|
|
3
|
+
/** 请求参数:读到的响应式值变了、且内容确实不同时重新请求;不写时只在开始与 refresh 时请求 */
|
|
4
|
+
params?: () => P;
|
|
5
|
+
/** 参数变了以后等多久再请求(毫秒),默认 0;refresh 不等 */
|
|
6
|
+
debounce?: number;
|
|
7
|
+
/** 一开始就请求,默认 true;false 时等调用 refresh(或参数变化) */
|
|
8
|
+
immediate?: boolean;
|
|
9
|
+
/** 重新请求时保留上一次的数据,默认 true;false 时请求一开始就清空 */
|
|
10
|
+
keepPrevious?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* 自动请求的开关(弹层打开时才请求这类):为 false 时 immediate 与参数变化都不请求,refresh 照常。
|
|
13
|
+
* 变回 true 时不自动补一次,需要时调用 refresh
|
|
14
|
+
*/
|
|
15
|
+
enabled?: () => boolean;
|
|
16
|
+
/** 成功后调用 */
|
|
17
|
+
onSuccess?: (data: T, params: P) => void;
|
|
18
|
+
/** 失败后调用(取消的不算) */
|
|
19
|
+
onError?: (error: unknown, params: P) => void;
|
|
20
|
+
}
|
|
21
|
+
/** useRequest 的返回值 */
|
|
22
|
+
export interface RequestState<T> {
|
|
23
|
+
/** 最后一次成功的结果 */
|
|
24
|
+
readonly data: T | undefined;
|
|
25
|
+
/** 最后一次失败的原因;成功后清空 */
|
|
26
|
+
readonly error: unknown;
|
|
27
|
+
/** 正在请求(防抖等待时还不算) */
|
|
28
|
+
readonly loading: boolean;
|
|
29
|
+
/** 按当前参数立即请求,取消进行中的;返回结果,失败或被后来的请求顶掉时为 undefined */
|
|
30
|
+
refresh(): Promise<T | undefined>;
|
|
31
|
+
/** 取消进行中的请求与等着的防抖 */
|
|
32
|
+
cancel(): void;
|
|
33
|
+
/** 直接改数据(乐观更新、本地删掉一行),不发请求 */
|
|
34
|
+
mutate(data: T | undefined): void;
|
|
35
|
+
}
|
|
36
|
+
/** 请求的状态(在 setup 里调用;见文件开头) */
|
|
37
|
+
export declare function useRequest<T, P = undefined>(fetcher: (params: P, signal: AbortSignal) => Promise<T>, options?: RequestOptions<P, T>): RequestState<T>;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { sameValue } from "../data/equality.js";
|
|
2
|
+
import { isAbortError } from "./http.js";
|
|
3
|
+
import { onScopeDispose, shallowRef, watch } from "vue";
|
|
4
|
+
//#region src/utils/request/use-request.ts
|
|
5
|
+
/**
|
|
6
|
+
* 一个请求的状态(参考 TanStack Query、alova 的 useWatcher):只采用最后一次的结果,发新请求时取消上一次,
|
|
7
|
+
* 参数变化防抖,重新请求时保留旧数据(表格不闪成空的)。
|
|
8
|
+
*
|
|
9
|
+
* const http = useHttp();
|
|
10
|
+
* const users = useRequest(
|
|
11
|
+
* ({ keyword, page }, signal) => http.request<Page<User>>({ url: '/users', query: { keyword, page }, signal }),
|
|
12
|
+
* { params: () => ({ keyword, page }), debounce: 300 },
|
|
13
|
+
* );
|
|
14
|
+
* users.data?.rows; users.loading; users.error; users.refresh();
|
|
15
|
+
*
|
|
16
|
+
* 只在浏览器里自动请求:服务端渲染时 data 留空,等页面在浏览器里接管后再请求。
|
|
17
|
+
*/
|
|
18
|
+
/** 请求的状态(在 setup 里调用;见文件开头) */
|
|
19
|
+
function useRequest(fetcher, options = {}) {
|
|
20
|
+
const { params, debounce = 0, immediate = true, keepPrevious = true } = options;
|
|
21
|
+
const data = shallowRef();
|
|
22
|
+
const error = shallowRef();
|
|
23
|
+
const loading = shallowRef(false);
|
|
24
|
+
let controller;
|
|
25
|
+
let timer;
|
|
26
|
+
let latest = 0;
|
|
27
|
+
const readParams = () => params?.();
|
|
28
|
+
let last = params ? readParams() : void 0;
|
|
29
|
+
function cancel() {
|
|
30
|
+
clearTimeout(timer);
|
|
31
|
+
latest++;
|
|
32
|
+
controller?.abort();
|
|
33
|
+
controller = void 0;
|
|
34
|
+
loading.value = false;
|
|
35
|
+
}
|
|
36
|
+
async function run(current) {
|
|
37
|
+
cancel();
|
|
38
|
+
last = current;
|
|
39
|
+
const id = latest;
|
|
40
|
+
const own = controller = new AbortController();
|
|
41
|
+
loading.value = true;
|
|
42
|
+
if (!keepPrevious) data.value = void 0;
|
|
43
|
+
try {
|
|
44
|
+
const result = await fetcher(current, own.signal);
|
|
45
|
+
if (id !== latest) return void 0;
|
|
46
|
+
data.value = result;
|
|
47
|
+
error.value = void 0;
|
|
48
|
+
options.onSuccess?.(result, current);
|
|
49
|
+
return result;
|
|
50
|
+
} catch (reason) {
|
|
51
|
+
if (id !== latest || isAbortError(reason)) return void 0;
|
|
52
|
+
error.value = reason;
|
|
53
|
+
options.onError?.(reason, current);
|
|
54
|
+
return;
|
|
55
|
+
} finally {
|
|
56
|
+
if (id === latest) {
|
|
57
|
+
loading.value = false;
|
|
58
|
+
controller = void 0;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
if (params) watch(readParams, (next) => {
|
|
63
|
+
if (options.enabled?.() === false) return;
|
|
64
|
+
if (sameValue(next, last)) return;
|
|
65
|
+
last = next;
|
|
66
|
+
clearTimeout(timer);
|
|
67
|
+
if (debounce > 0) timer = setTimeout(() => void run(next), debounce);
|
|
68
|
+
else run(next);
|
|
69
|
+
});
|
|
70
|
+
if (immediate && options.enabled?.() !== false && typeof window !== "undefined") run(readParams());
|
|
71
|
+
onScopeDispose(cancel);
|
|
72
|
+
return {
|
|
73
|
+
get data() {
|
|
74
|
+
return data.value;
|
|
75
|
+
},
|
|
76
|
+
get error() {
|
|
77
|
+
return error.value;
|
|
78
|
+
},
|
|
79
|
+
get loading() {
|
|
80
|
+
return loading.value;
|
|
81
|
+
},
|
|
82
|
+
refresh: () => run(readParams()),
|
|
83
|
+
cancel,
|
|
84
|
+
mutate: (value) => data.value = value
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
//#endregion
|
|
88
|
+
export { useRequest };
|
|
89
|
+
|
|
90
|
+
//# sourceMappingURL=use-request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-request.js","names":[],"sources":["../../../src/utils/request/use-request.ts"],"sourcesContent":["/**\n * 一个请求的状态(参考 TanStack Query、alova 的 useWatcher):只采用最后一次的结果,发新请求时取消上一次,\n * 参数变化防抖,重新请求时保留旧数据(表格不闪成空的)。\n *\n * const http = useHttp();\n * const users = useRequest(\n * ({ keyword, page }, signal) => http.request<Page<User>>({ url: '/users', query: { keyword, page }, signal }),\n * { params: () => ({ keyword, page }), debounce: 300 },\n * );\n * users.data?.rows; users.loading; users.error; users.refresh();\n *\n * 只在浏览器里自动请求:服务端渲染时 data 留空,等页面在浏览器里接管后再请求。\n */\nimport { onScopeDispose, shallowRef, watch } from 'vue';\nimport { sameValue } from '../data/equality';\nimport { isAbortError } from './http';\n\n/** useRequest 的选项 */\nexport interface RequestOptions<P, T> {\n /** 请求参数:读到的响应式值变了、且内容确实不同时重新请求;不写时只在开始与 refresh 时请求 */\n params?: () => P;\n /** 参数变了以后等多久再请求(毫秒),默认 0;refresh 不等 */\n debounce?: number;\n /** 一开始就请求,默认 true;false 时等调用 refresh(或参数变化) */\n immediate?: boolean;\n /** 重新请求时保留上一次的数据,默认 true;false 时请求一开始就清空 */\n keepPrevious?: boolean;\n /**\n * 自动请求的开关(弹层打开时才请求这类):为 false 时 immediate 与参数变化都不请求,refresh 照常。\n * 变回 true 时不自动补一次,需要时调用 refresh\n */\n enabled?: () => boolean;\n /** 成功后调用 */\n onSuccess?: (data: T, params: P) => void;\n /** 失败后调用(取消的不算) */\n onError?: (error: unknown, params: P) => void;\n}\n\n/** useRequest 的返回值 */\nexport interface RequestState<T> {\n /** 最后一次成功的结果 */\n readonly data: T | undefined;\n /** 最后一次失败的原因;成功后清空 */\n readonly error: unknown;\n /** 正在请求(防抖等待时还不算) */\n readonly loading: boolean;\n /** 按当前参数立即请求,取消进行中的;返回结果,失败或被后来的请求顶掉时为 undefined */\n refresh(): Promise<T | undefined>;\n /** 取消进行中的请求与等着的防抖 */\n cancel(): void;\n /** 直接改数据(乐观更新、本地删掉一行),不发请求 */\n mutate(data: T | undefined): void;\n}\n\n/** 请求的状态(在 setup 里调用;见文件开头) */\nexport function useRequest<T, P = undefined>(\n fetcher: (params: P, signal: AbortSignal) => Promise<T>,\n options: RequestOptions<P, T> = {},\n): RequestState<T> {\n const { params, debounce = 0, immediate = true, keepPrevious = true } = options;\n const data = shallowRef<T>();\n const error = shallowRef<unknown>();\n const loading = shallowRef(false);\n let controller: AbortController | undefined;\n let timer: ReturnType<typeof setTimeout> | undefined;\n // 每次请求一个编号:结果回来时不是最后一次的就丢掉(fetcher 没理会 signal 时也不会覆盖)\n let latest = 0;\n const readParams = () => params?.() as P;\n // 上一次请求(或开始时)的参数:参数变了但与它相同时不再请求(refresh 之后侦听器又看到同一组参数)\n let last = params ? readParams() : undefined;\n\n function cancel() {\n clearTimeout(timer);\n latest++;\n controller?.abort();\n controller = undefined;\n loading.value = false;\n }\n\n async function run(current: P): Promise<T | undefined> {\n cancel();\n last = current;\n const id = latest;\n const own = (controller = new AbortController());\n loading.value = true;\n if (!keepPrevious) data.value = undefined;\n try {\n const result = await fetcher(current, own.signal);\n if (id !== latest) return undefined;\n data.value = result;\n error.value = undefined;\n options.onSuccess?.(result, current);\n return result;\n } catch (reason) {\n if (id !== latest || isAbortError(reason)) return undefined;\n error.value = reason;\n options.onError?.(reason, current);\n return undefined;\n } finally {\n if (id === latest) {\n loading.value = false;\n controller = undefined;\n }\n }\n }\n\n if (params) {\n watch(readParams, (next) => {\n if (options.enabled?.() === false) return;\n if (sameValue(next, last)) return;\n last = next;\n clearTimeout(timer);\n if (debounce > 0) timer = setTimeout(() => void run(next), debounce);\n else void run(next);\n });\n }\n if (immediate && options.enabled?.() !== false && typeof window !== 'undefined') {\n void run(readParams());\n }\n onScopeDispose(cancel);\n\n return {\n get data() {\n return data.value;\n },\n get error() {\n return error.value;\n },\n get loading() {\n return loading.value;\n },\n refresh: () => run(readParams()),\n cancel,\n mutate: (value) => (data.value = value),\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAuDA,SAAgB,WACd,SACA,UAAgC,CAAC,GAChB;CACjB,MAAM,EAAE,QAAQ,WAAW,GAAG,YAAY,MAAM,eAAe,SAAS;CACxE,MAAM,OAAO,WAAc;CAC3B,MAAM,QAAQ,WAAoB;CAClC,MAAM,UAAU,WAAW,KAAK;CAChC,IAAI;CACJ,IAAI;CAEJ,IAAI,SAAS;CACb,MAAM,mBAAmB,SAAS;CAElC,IAAI,OAAO,SAAS,WAAW,IAAI,KAAA;CAEnC,SAAS,SAAS;EAChB,aAAa,KAAK;EAClB;EACA,YAAY,MAAM;EAClB,aAAa,KAAA;EACb,QAAQ,QAAQ;CAClB;CAEA,eAAe,IAAI,SAAoC;EACrD,OAAO;EACP,OAAO;EACP,MAAM,KAAK;EACX,MAAM,MAAO,aAAa,IAAI,gBAAgB;EAC9C,QAAQ,QAAQ;EAChB,IAAI,CAAC,cAAc,KAAK,QAAQ,KAAA;EAChC,IAAI;GACF,MAAM,SAAS,MAAM,QAAQ,SAAS,IAAI,MAAM;GAChD,IAAI,OAAO,QAAQ,OAAO,KAAA;GAC1B,KAAK,QAAQ;GACb,MAAM,QAAQ,KAAA;GACd,QAAQ,YAAY,QAAQ,OAAO;GACnC,OAAO;EACT,SAAS,QAAQ;GACf,IAAI,OAAO,UAAU,aAAa,MAAM,GAAG,OAAO,KAAA;GAClD,MAAM,QAAQ;GACd,QAAQ,UAAU,QAAQ,OAAO;GACjC;EACF,UAAU;GACR,IAAI,OAAO,QAAQ;IACjB,QAAQ,QAAQ;IAChB,aAAa,KAAA;GACf;EACF;CACF;CAEA,IAAI,QACF,MAAM,aAAa,SAAS;EAC1B,IAAI,QAAQ,UAAU,MAAM,OAAO;EACnC,IAAI,UAAU,MAAM,IAAI,GAAG;EAC3B,OAAO;EACP,aAAa,KAAK;EAClB,IAAI,WAAW,GAAG,QAAQ,iBAAiB,KAAK,IAAI,IAAI,GAAG,QAAQ;OAC9D,IAAS,IAAI;CACpB,CAAC;CAEH,IAAI,aAAa,QAAQ,UAAU,MAAM,SAAS,OAAO,WAAW,aAClE,IAAS,WAAW,CAAC;CAEvB,eAAe,MAAM;CAErB,OAAO;EACL,IAAI,OAAO;GACT,OAAO,KAAK;EACd;EACA,IAAI,QAAQ;GACV,OAAO,MAAM;EACf;EACA,IAAI,UAAU;GACZ,OAAO,QAAQ;EACjB;EACA,eAAe,IAAI,WAAW,CAAC;EAC/B;EACA,SAAS,UAAW,KAAK,QAAQ;CACnC;AACF"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 线上的 typed JSON(与 query 库的 @zerodep-dev/wire、Java 的 org.dpdns.zerodep.wire 同一套写法):bigint、Decimal、
|
|
3
|
+
* 日期、时间、字节等 JSON 不能原样承载的值写成文字,根对象上的 `$types` 记下它们的位置(路径 → 种类),对方据此还原。
|
|
4
|
+
* createHttpClient 默认就用它:请求体经 toWire 发出,带 `$types` 的响应经 fromWire 还原,地址栏参数经 wireText 写成文字。
|
|
5
|
+
*
|
|
6
|
+
* toWire({ id: 9007199254740993n, amount: new Decimal('12.50'), on: new CalendarDate(2024, 1, 31) })
|
|
7
|
+
* // { id: '9007199254740993', amount: '12.5', on: '2024-01-31', $types: { id: 'bigint', amount: 'decimal', on: 'date' } }
|
|
8
|
+
*
|
|
9
|
+
* 种类与文字:bigint 是十进制整数,decimal 不用科学计数法,double 只有 NaN / ±Infinity 写成文字,date 'YYYY-MM-DD'、
|
|
10
|
+
* time 'HH:mm:ss'、timestamp 'YYYY-MM-DDTHH:mm:ss[.fff]'、timestamptz 换算成 UTC 带 Z,bytes 是标准 base64。
|
|
11
|
+
* 路径从根开始用点连接属性名,数组不占一段(`rows.amount` 是每一行的 amount),属性名里的 ~ 与 . 写成 ~0、~1。
|
|
12
|
+
*
|
|
13
|
+
* 还原的默认值跟组件的约定走:bigint 还原成 bigint;decimal 在给了 Decimal 构造函数时还原成 Decimal,否则留作十进制文字
|
|
14
|
+
* (DataTable 的数字列、NumberField 都认);日期与时间留作 ISO 文字(组件对外的值就是它),dates: 'objects' 时还原成
|
|
15
|
+
* CalendarDate、Time、CalendarDateTime、ZonedDateTime。这里不在运行时导入 decimal.js(同 numeric.ts)。
|
|
16
|
+
*/
|
|
17
|
+
import { CalendarDate, CalendarDateTime, Time, ZonedDateTime } from '@internationalized/date';
|
|
18
|
+
import type Decimal from 'decimal.js';
|
|
19
|
+
/** 线上要还原的值的种类 */
|
|
20
|
+
export type WireType = 'bigint' | 'decimal' | 'double' | 'date' | 'time' | 'timestamp' | 'timestamptz' | 'bytes';
|
|
21
|
+
/** 根对象上的类型表:路径 → 种类 */
|
|
22
|
+
export type WireTypes = Record<string, WireType>;
|
|
23
|
+
/** 能写成线上文字的单个值(地址栏参数、表头筛选) */
|
|
24
|
+
export type WireScalar = string | number | boolean | bigint | Decimal | CalendarDate | CalendarDateTime | ZonedDateTime | Time | Date | null | undefined;
|
|
25
|
+
/** fromWire 怎样还原 */
|
|
26
|
+
export interface WireReviveOptions {
|
|
27
|
+
/** 还原 decimal 用的构造函数(decimal.js 的 Decimal 或它 clone 出来的);不给时 decimal 留作十进制文字 */
|
|
28
|
+
decimal?: new (text: string) => Decimal;
|
|
29
|
+
/** 日期与时间:'iso' 留作 ISO 文字(默认),'objects' 还原成 CalendarDate、Time、CalendarDateTime、ZonedDateTime */
|
|
30
|
+
dates?: 'iso' | 'objects';
|
|
31
|
+
/** 'objects' 时 timestamptz 还原到哪个时区,默认浏览器的时区 */
|
|
32
|
+
timeZone?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* 一个值写成线上的文字:地址栏参数、表头筛选都用它。Decimal 不用科学计数法,日期与时间是 ISO 写法,
|
|
36
|
+
* 带时区的时刻换算成 UTC;null、undefined 是空字符串
|
|
37
|
+
*/
|
|
38
|
+
export declare function wireText(value: WireScalar): string;
|
|
39
|
+
/**
|
|
40
|
+
* 把值写成线上的 JSON:要还原的值写成文字,根对象上加 `$types`;没有这样的值时就是普通 JSON。
|
|
41
|
+
* 对象取自身可枚举的属性(undefined 与函数跳过),有 toJSON 的先调用它;同一路径上既有文字又有 Decimal 这类值时报错
|
|
42
|
+
*/
|
|
43
|
+
export declare function toWire(value: unknown): unknown;
|
|
44
|
+
/**
|
|
45
|
+
* 读线上的 JSON:按根上的 `$types` 还原(见文件开头的默认值),去掉 `$types`,`{ $value, $types }` 拆成里面的值;
|
|
46
|
+
* 没有 `$types` 时原样返回。就地改写传入的对象(通常刚由 JSON.parse 得到)
|
|
47
|
+
*/
|
|
48
|
+
export declare function fromWire<T = unknown>(json: unknown, options?: WireReviveOptions): T;
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import { isDecimal, numericText } from "../data/numeric.js";
|
|
2
|
+
import { CalendarDate, CalendarDateTime, Time, ZonedDateTime, getLocalTimeZone, parseAbsolute, parseDate, parseDateTime, parseTime } from "@internationalized/date";
|
|
3
|
+
//#region src/utils/request/wire.ts
|
|
4
|
+
/**
|
|
5
|
+
* 线上的 typed JSON(与 query 库的 @zerodep-dev/wire、Java 的 org.dpdns.zerodep.wire 同一套写法):bigint、Decimal、
|
|
6
|
+
* 日期、时间、字节等 JSON 不能原样承载的值写成文字,根对象上的 `$types` 记下它们的位置(路径 → 种类),对方据此还原。
|
|
7
|
+
* createHttpClient 默认就用它:请求体经 toWire 发出,带 `$types` 的响应经 fromWire 还原,地址栏参数经 wireText 写成文字。
|
|
8
|
+
*
|
|
9
|
+
* toWire({ id: 9007199254740993n, amount: new Decimal('12.50'), on: new CalendarDate(2024, 1, 31) })
|
|
10
|
+
* // { id: '9007199254740993', amount: '12.5', on: '2024-01-31', $types: { id: 'bigint', amount: 'decimal', on: 'date' } }
|
|
11
|
+
*
|
|
12
|
+
* 种类与文字:bigint 是十进制整数,decimal 不用科学计数法,double 只有 NaN / ±Infinity 写成文字,date 'YYYY-MM-DD'、
|
|
13
|
+
* time 'HH:mm:ss'、timestamp 'YYYY-MM-DDTHH:mm:ss[.fff]'、timestamptz 换算成 UTC 带 Z,bytes 是标准 base64。
|
|
14
|
+
* 路径从根开始用点连接属性名,数组不占一段(`rows.amount` 是每一行的 amount),属性名里的 ~ 与 . 写成 ~0、~1。
|
|
15
|
+
*
|
|
16
|
+
* 还原的默认值跟组件的约定走:bigint 还原成 bigint;decimal 在给了 Decimal 构造函数时还原成 Decimal,否则留作十进制文字
|
|
17
|
+
* (DataTable 的数字列、NumberField 都认);日期与时间留作 ISO 文字(组件对外的值就是它),dates: 'objects' 时还原成
|
|
18
|
+
* CalendarDate、Time、CalendarDateTime、ZonedDateTime。这里不在运行时导入 decimal.js(同 numeric.ts)。
|
|
19
|
+
*/
|
|
20
|
+
var TYPES = "$types";
|
|
21
|
+
var VALUE = "$value";
|
|
22
|
+
/** 值要还原成哪一种;JSON 能原样承载的值为 undefined */
|
|
23
|
+
function wireTypeOf(value) {
|
|
24
|
+
if (typeof value === "bigint") return "bigint";
|
|
25
|
+
if (typeof value === "number") return Number.isFinite(value) ? void 0 : "double";
|
|
26
|
+
if (typeof value !== "object" || value === null) return void 0;
|
|
27
|
+
if (isDecimal(value)) return "decimal";
|
|
28
|
+
if (value instanceof CalendarDateTime) return "timestamp";
|
|
29
|
+
if (value instanceof CalendarDate) return "date";
|
|
30
|
+
if (value instanceof Time) return "time";
|
|
31
|
+
if (value instanceof ZonedDateTime || value instanceof Date) return "timestamptz";
|
|
32
|
+
if (value instanceof Uint8Array) return "bytes";
|
|
33
|
+
}
|
|
34
|
+
/** 要还原的值写成的文字 */
|
|
35
|
+
function specialText(type, value) {
|
|
36
|
+
switch (type) {
|
|
37
|
+
case "decimal": return numericText(value);
|
|
38
|
+
case "timestamptz": return utcText(value instanceof Date ? value.getTime() : value.toDate().getTime());
|
|
39
|
+
case "bytes": return encodeBase64(value);
|
|
40
|
+
default: return String(value);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/** 某一时刻的 UTC 写法:总有秒,毫秒去掉末尾的零 */
|
|
44
|
+
function utcText(epochMillis) {
|
|
45
|
+
return new Date(epochMillis).toISOString().replace(/\.(\d{3})Z$/, (_, ms) => ms === "000" ? "Z" : `.${ms.replace(/0+$/, "")}Z`);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* 一个值写成线上的文字:地址栏参数、表头筛选都用它。Decimal 不用科学计数法,日期与时间是 ISO 写法,
|
|
49
|
+
* 带时区的时刻换算成 UTC;null、undefined 是空字符串
|
|
50
|
+
*/
|
|
51
|
+
function wireText(value) {
|
|
52
|
+
if (value === null || value === void 0) return "";
|
|
53
|
+
if (typeof value === "string") return value;
|
|
54
|
+
if (typeof value === "number") return Object.is(value, -0) ? "0" : String(value);
|
|
55
|
+
if (typeof value === "boolean" || typeof value === "bigint") return String(value);
|
|
56
|
+
const type = wireTypeOf(value);
|
|
57
|
+
if (!type) throw new TypeError(`wireText:${String(value)} 不是单个值`);
|
|
58
|
+
return specialText(type, value);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* 把值写成线上的 JSON:要还原的值写成文字,根对象上加 `$types`;没有这样的值时就是普通 JSON。
|
|
62
|
+
* 对象取自身可枚举的属性(undefined 与函数跳过),有 toJSON 的先调用它;同一路径上既有文字又有 Decimal 这类值时报错
|
|
63
|
+
*/
|
|
64
|
+
function toWire(value) {
|
|
65
|
+
const found = /* @__PURE__ */ new Map();
|
|
66
|
+
const json = encode(value, "", found, /* @__PURE__ */ new Set());
|
|
67
|
+
const types = {};
|
|
68
|
+
for (const [path, type] of found) if (type !== "text") types[path] = type;
|
|
69
|
+
if (Object.keys(types).length === 0) return json;
|
|
70
|
+
if (isRecord(json)) return {
|
|
71
|
+
...json,
|
|
72
|
+
[TYPES]: types
|
|
73
|
+
};
|
|
74
|
+
const wrapped = {};
|
|
75
|
+
for (const [path, type] of Object.entries(types)) wrapped[path === "" ? VALUE : `${VALUE}.${path}`] = type;
|
|
76
|
+
return {
|
|
77
|
+
[VALUE]: json,
|
|
78
|
+
[TYPES]: wrapped
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
function encode(value, path, found, seen) {
|
|
82
|
+
if (value === null || value === void 0) return null;
|
|
83
|
+
if (typeof value === "string") {
|
|
84
|
+
note(found, path, "text");
|
|
85
|
+
return value;
|
|
86
|
+
}
|
|
87
|
+
if (typeof value === "boolean") return value;
|
|
88
|
+
if (typeof value === "number" && Number.isFinite(value)) return Object.is(value, -0) ? 0 : value;
|
|
89
|
+
if (typeof value === "function" || typeof value === "symbol") return null;
|
|
90
|
+
const type = wireTypeOf(value);
|
|
91
|
+
if (type) {
|
|
92
|
+
note(found, path, type);
|
|
93
|
+
return specialText(type, value);
|
|
94
|
+
}
|
|
95
|
+
const object = value;
|
|
96
|
+
if (seen.has(object)) throw new TypeError(`toWire:${path || "根对象"}引用了自己`);
|
|
97
|
+
seen.add(object);
|
|
98
|
+
try {
|
|
99
|
+
if (Array.isArray(object) || object instanceof Set) return [...object].map((item) => encode(item, path, found, seen));
|
|
100
|
+
if (typeof object.toJSON === "function") return encode(object.toJSON(), path, found, seen);
|
|
101
|
+
const entries = object instanceof Map ? [...object].map(([k, v]) => [String(k), v]) : Object.entries(object);
|
|
102
|
+
const out = {};
|
|
103
|
+
for (const [key, item] of entries) {
|
|
104
|
+
if (item === void 0 || typeof item === "function") continue;
|
|
105
|
+
out[key] = encode(item, path === "" ? escape(key) : `${path}.${escape(key)}`, found, seen);
|
|
106
|
+
}
|
|
107
|
+
return out;
|
|
108
|
+
} finally {
|
|
109
|
+
seen.delete(object);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/** 记下路径上的值的种类;同一路径出现两种时报错(对方无从还原) */
|
|
113
|
+
function note(found, path, type) {
|
|
114
|
+
const known = found.get(path);
|
|
115
|
+
if (known !== void 0 && known !== type) throw new TypeError(`toWire:${path || "根"}上的值既有 ${known} 又有 ${type},一个路径只能是一种值`);
|
|
116
|
+
found.set(path, type);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* 读线上的 JSON:按根上的 `$types` 还原(见文件开头的默认值),去掉 `$types`,`{ $value, $types }` 拆成里面的值;
|
|
120
|
+
* 没有 `$types` 时原样返回。就地改写传入的对象(通常刚由 JSON.parse 得到)
|
|
121
|
+
*/
|
|
122
|
+
function fromWire(json, options = {}) {
|
|
123
|
+
if (!isRecord(json) || !Object.hasOwn(json, TYPES)) return json;
|
|
124
|
+
const types = json[TYPES];
|
|
125
|
+
if (!isRecord(types)) throw new TypeError("fromWire:$types 要是 路径 → 种类 的对象");
|
|
126
|
+
delete json[TYPES];
|
|
127
|
+
for (const [path, type] of Object.entries(types)) {
|
|
128
|
+
const steps = path.split(".").map(unescape);
|
|
129
|
+
try {
|
|
130
|
+
revive(json, steps[0], steps.slice(1), type, options);
|
|
131
|
+
} catch (error) {
|
|
132
|
+
throw new TypeError(`fromWire:${path}:${error.message}`, { cause: error });
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
const keys = Object.keys(json);
|
|
136
|
+
return keys.length === 1 && keys[0] === VALUE ? json[VALUE] : json;
|
|
137
|
+
}
|
|
138
|
+
function revive(holder, key, rest, type, options) {
|
|
139
|
+
const value = holder[key];
|
|
140
|
+
if (Array.isArray(value)) {
|
|
141
|
+
for (let i = 0; i < value.length; i++) revive(value, i, rest, type, options);
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
if (rest.length === 0) {
|
|
145
|
+
if (typeof value === "string") holder[key] = parseText(type, value, options);
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
if (isRecord(value)) revive(value, rest[0], rest.slice(1), type, options);
|
|
149
|
+
}
|
|
150
|
+
/** 按种类读一段文字;留作文字的种类原样返回 */
|
|
151
|
+
function parseText(type, text, options) {
|
|
152
|
+
const objects = options.dates === "objects";
|
|
153
|
+
switch (type) {
|
|
154
|
+
case "bigint":
|
|
155
|
+
if (!/^[+-]?\d+$/.test(text)) throw new TypeError(`${JSON.stringify(text)} 不是整数`);
|
|
156
|
+
return BigInt(text);
|
|
157
|
+
case "decimal": return options.decimal ? new options.decimal(text) : text;
|
|
158
|
+
case "double": return Number(text);
|
|
159
|
+
case "bytes": return decodeBase64(text);
|
|
160
|
+
case "date": return objects ? parseDate(text) : text;
|
|
161
|
+
case "time": return objects ? parseTime(text) : text;
|
|
162
|
+
case "timestamp": return objects ? parseDateTime(text.replace(" ", "T")) : text;
|
|
163
|
+
case "timestamptz": return objects ? parseAbsolute(text, options.timeZone ?? getLocalTimeZone()) : text;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
var BASE64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
|
167
|
+
/** 标准 base64(带补齐的 =),与 Java 的 Base64.getEncoder() 一致 */
|
|
168
|
+
function encodeBase64(bytes) {
|
|
169
|
+
let out = "";
|
|
170
|
+
for (let i = 0; i < bytes.length; i += 3) {
|
|
171
|
+
const [a, b, c] = [
|
|
172
|
+
bytes[i],
|
|
173
|
+
bytes[i + 1],
|
|
174
|
+
bytes[i + 2]
|
|
175
|
+
];
|
|
176
|
+
out += BASE64[a >> 2] + BASE64[(a & 3) << 4 | (b ?? 0) >> 4];
|
|
177
|
+
out += b === void 0 ? "==" : BASE64[(b & 15) << 2 | (c ?? 0) >> 6] + (c === void 0 ? "=" : BASE64[c & 63]);
|
|
178
|
+
}
|
|
179
|
+
return out;
|
|
180
|
+
}
|
|
181
|
+
/** 读标准 base64 */
|
|
182
|
+
function decodeBase64(text) {
|
|
183
|
+
if (text.length % 4 !== 0 || !/^[A-Za-z0-9+/]*={0,2}$/.test(text)) throw new TypeError(`${JSON.stringify(text.slice(0, 40))} 不是 base64`);
|
|
184
|
+
const pad = text.endsWith("==") ? 2 : text.endsWith("=") ? 1 : 0;
|
|
185
|
+
const out = new Uint8Array(text.length / 4 * 3 - pad);
|
|
186
|
+
let at = 0;
|
|
187
|
+
for (let i = 0; i < text.length; i += 4) {
|
|
188
|
+
let n = 0;
|
|
189
|
+
for (let k = 0; k < 4; k++) n = n << 6 | Math.max(0, BASE64.indexOf(text[i + k]));
|
|
190
|
+
for (const byte of [
|
|
191
|
+
n >> 16,
|
|
192
|
+
n >> 8 & 255,
|
|
193
|
+
n & 255
|
|
194
|
+
]) if (at < out.length) out[at++] = byte;
|
|
195
|
+
}
|
|
196
|
+
return out;
|
|
197
|
+
}
|
|
198
|
+
/** 属性名写进路径:~ → ~0,. → ~1(同 JSON Pointer) */
|
|
199
|
+
var escape = (key) => key.replaceAll("~", "~0").replaceAll(".", "~1");
|
|
200
|
+
/** escape 的反向 */
|
|
201
|
+
var unescape = (step) => step.replaceAll("~1", ".").replaceAll("~0", "~");
|
|
202
|
+
function isRecord(value) {
|
|
203
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
204
|
+
}
|
|
205
|
+
//#endregion
|
|
206
|
+
export { fromWire, toWire, wireText };
|
|
207
|
+
|
|
208
|
+
//# sourceMappingURL=wire.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wire.js","names":[],"sources":["../../../src/utils/request/wire.ts"],"sourcesContent":["/**\n * 线上的 typed JSON(与 query 库的 @zerodep-dev/wire、Java 的 org.dpdns.zerodep.wire 同一套写法):bigint、Decimal、\n * 日期、时间、字节等 JSON 不能原样承载的值写成文字,根对象上的 `$types` 记下它们的位置(路径 → 种类),对方据此还原。\n * createHttpClient 默认就用它:请求体经 toWire 发出,带 `$types` 的响应经 fromWire 还原,地址栏参数经 wireText 写成文字。\n *\n * toWire({ id: 9007199254740993n, amount: new Decimal('12.50'), on: new CalendarDate(2024, 1, 31) })\n * // { id: '9007199254740993', amount: '12.5', on: '2024-01-31', $types: { id: 'bigint', amount: 'decimal', on: 'date' } }\n *\n * 种类与文字:bigint 是十进制整数,decimal 不用科学计数法,double 只有 NaN / ±Infinity 写成文字,date 'YYYY-MM-DD'、\n * time 'HH:mm:ss'、timestamp 'YYYY-MM-DDTHH:mm:ss[.fff]'、timestamptz 换算成 UTC 带 Z,bytes 是标准 base64。\n * 路径从根开始用点连接属性名,数组不占一段(`rows.amount` 是每一行的 amount),属性名里的 ~ 与 . 写成 ~0、~1。\n *\n * 还原的默认值跟组件的约定走:bigint 还原成 bigint;decimal 在给了 Decimal 构造函数时还原成 Decimal,否则留作十进制文字\n * (DataTable 的数字列、NumberField 都认);日期与时间留作 ISO 文字(组件对外的值就是它),dates: 'objects' 时还原成\n * CalendarDate、Time、CalendarDateTime、ZonedDateTime。这里不在运行时导入 decimal.js(同 numeric.ts)。\n */\nimport {\n CalendarDate,\n CalendarDateTime,\n getLocalTimeZone,\n parseAbsolute,\n parseDate,\n parseDateTime,\n parseTime,\n Time,\n ZonedDateTime,\n} from '@internationalized/date';\nimport type Decimal from 'decimal.js';\nimport { isDecimal, numericText } from '../data/numeric';\n\n/** 线上要还原的值的种类 */\nexport type WireType =\n 'bigint' | 'decimal' | 'double' | 'date' | 'time' | 'timestamp' | 'timestamptz' | 'bytes';\n\n/** 根对象上的类型表:路径 → 种类 */\nexport type WireTypes = Record<string, WireType>;\n\n/** 能写成线上文字的单个值(地址栏参数、表头筛选) */\nexport type WireScalar =\n | string\n | number\n | boolean\n | bigint\n | Decimal\n | CalendarDate\n | CalendarDateTime\n | ZonedDateTime\n | Time\n | Date\n | null\n | undefined;\n\n/** fromWire 怎样还原 */\nexport interface WireReviveOptions {\n /** 还原 decimal 用的构造函数(decimal.js 的 Decimal 或它 clone 出来的);不给时 decimal 留作十进制文字 */\n decimal?: new (text: string) => Decimal;\n /** 日期与时间:'iso' 留作 ISO 文字(默认),'objects' 还原成 CalendarDate、Time、CalendarDateTime、ZonedDateTime */\n dates?: 'iso' | 'objects';\n /** 'objects' 时 timestamptz 还原到哪个时区,默认浏览器的时区 */\n timeZone?: string;\n}\n\nconst TYPES = '$types';\nconst VALUE = '$value';\n\n/** 值要还原成哪一种;JSON 能原样承载的值为 undefined */\nfunction wireTypeOf(value: unknown): WireType | undefined {\n if (typeof value === 'bigint') return 'bigint';\n if (typeof value === 'number') return Number.isFinite(value) ? undefined : 'double';\n if (typeof value !== 'object' || value === null) return undefined;\n if (isDecimal(value)) return 'decimal';\n if (value instanceof CalendarDateTime) return 'timestamp';\n if (value instanceof CalendarDate) return 'date';\n if (value instanceof Time) return 'time';\n if (value instanceof ZonedDateTime || value instanceof Date) return 'timestamptz';\n if (value instanceof Uint8Array) return 'bytes';\n return undefined;\n}\n\n/** 要还原的值写成的文字 */\nfunction specialText(type: WireType, value: unknown): string {\n switch (type) {\n case 'decimal':\n return numericText(value as Decimal);\n case 'timestamptz':\n return utcText(\n value instanceof Date ? value.getTime() : (value as ZonedDateTime).toDate().getTime(),\n );\n case 'bytes':\n return encodeBase64(value as Uint8Array);\n default:\n return String(value);\n }\n}\n\n/** 某一时刻的 UTC 写法:总有秒,毫秒去掉末尾的零 */\nfunction utcText(epochMillis: number): string {\n return new Date(epochMillis)\n .toISOString()\n .replace(/\\.(\\d{3})Z$/, (_, ms: string) => (ms === '000' ? 'Z' : `.${ms.replace(/0+$/, '')}Z`));\n}\n\n/**\n * 一个值写成线上的文字:地址栏参数、表头筛选都用它。Decimal 不用科学计数法,日期与时间是 ISO 写法,\n * 带时区的时刻换算成 UTC;null、undefined 是空字符串\n */\nexport function wireText(value: WireScalar): string {\n if (value === null || value === undefined) return '';\n if (typeof value === 'string') return value;\n if (typeof value === 'number') return Object.is(value, -0) ? '0' : String(value);\n if (typeof value === 'boolean' || typeof value === 'bigint') return String(value);\n const type = wireTypeOf(value);\n if (!type) throw new TypeError(`wireText:${String(value)} 不是单个值`);\n return specialText(type, value);\n}\n\n/**\n * 把值写成线上的 JSON:要还原的值写成文字,根对象上加 `$types`;没有这样的值时就是普通 JSON。\n * 对象取自身可枚举的属性(undefined 与函数跳过),有 toJSON 的先调用它;同一路径上既有文字又有 Decimal 这类值时报错\n */\nexport function toWire(value: unknown): unknown {\n const found = new Map<string, WireType | 'text'>();\n const json = encode(value, '', found, new Set());\n const types: WireTypes = {};\n for (const [path, type] of found) if (type !== 'text') types[path] = type;\n if (Object.keys(types).length === 0) return json;\n if (isRecord(json)) return { ...json, [TYPES]: types };\n const wrapped: WireTypes = {};\n for (const [path, type] of Object.entries(types))\n wrapped[path === '' ? VALUE : `${VALUE}.${path}`] = type;\n return { [VALUE]: json, [TYPES]: wrapped };\n}\n\nfunction encode(\n value: unknown,\n path: string,\n found: Map<string, WireType | 'text'>,\n seen: Set<object>,\n): unknown {\n if (value === null || value === undefined) return null;\n if (typeof value === 'string') {\n note(found, path, 'text');\n return value;\n }\n if (typeof value === 'boolean') return value;\n if (typeof value === 'number' && Number.isFinite(value)) return Object.is(value, -0) ? 0 : value;\n if (typeof value === 'function' || typeof value === 'symbol') return null;\n const type = wireTypeOf(value);\n if (type) {\n note(found, path, type);\n return specialText(type, value);\n }\n const object = value as object;\n if (seen.has(object)) throw new TypeError(`toWire:${path || '根对象'}引用了自己`);\n seen.add(object);\n try {\n if (Array.isArray(object) || object instanceof Set)\n return [...object].map((item: unknown) => encode(item, path, found, seen));\n if (typeof (object as { toJSON?: unknown }).toJSON === 'function')\n return encode((object as { toJSON(): unknown }).toJSON(), path, found, seen);\n const entries =\n object instanceof Map\n ? [...(object as Map<unknown, unknown>)].map(([k, v]) => [String(k), v] as const)\n : Object.entries(object);\n const out: Record<string, unknown> = {};\n for (const [key, item] of entries) {\n if (item === undefined || typeof item === 'function') continue;\n out[key] = encode(item, path === '' ? escape(key) : `${path}.${escape(key)}`, found, seen);\n }\n return out;\n } finally {\n seen.delete(object);\n }\n}\n\n/** 记下路径上的值的种类;同一路径出现两种时报错(对方无从还原) */\nfunction note(found: Map<string, WireType | 'text'>, path: string, type: WireType | 'text') {\n const known = found.get(path);\n if (known !== undefined && known !== type)\n throw new TypeError(\n `toWire:${path || '根'}上的值既有 ${known} 又有 ${type},一个路径只能是一种值`,\n );\n found.set(path, type);\n}\n\n/**\n * 读线上的 JSON:按根上的 `$types` 还原(见文件开头的默认值),去掉 `$types`,`{ $value, $types }` 拆成里面的值;\n * 没有 `$types` 时原样返回。就地改写传入的对象(通常刚由 JSON.parse 得到)\n */\nexport function fromWire<T = unknown>(json: unknown, options: WireReviveOptions = {}): T {\n if (!isRecord(json) || !Object.hasOwn(json, TYPES)) return json as T;\n const types = json[TYPES];\n if (!isRecord(types)) throw new TypeError('fromWire:$types 要是 路径 → 种类 的对象');\n delete json[TYPES];\n for (const [path, type] of Object.entries(types)) {\n const steps = path.split('.').map(unescape);\n try {\n revive(json, steps[0]!, steps.slice(1), type as WireType, options);\n } catch (error) {\n throw new TypeError(`fromWire:${path}:${(error as Error).message}`, { cause: error });\n }\n }\n const keys = Object.keys(json);\n return (keys.length === 1 && keys[0] === VALUE ? json[VALUE] : json) as T;\n}\n\nfunction revive(\n holder: Record<string | number, unknown>,\n key: string | number,\n rest: readonly string[],\n type: WireType,\n options: WireReviveOptions,\n) {\n const value = holder[key];\n if (Array.isArray(value)) {\n for (let i = 0; i < value.length; i++)\n revive(value as unknown as Record<number, unknown>, i, rest, type, options);\n return;\n }\n if (rest.length === 0) {\n if (typeof value === 'string') holder[key] = parseText(type, value, options);\n return;\n }\n if (isRecord(value)) revive(value, rest[0]!, rest.slice(1), type, options);\n}\n\n/** 按种类读一段文字;留作文字的种类原样返回 */\nfunction parseText(type: WireType, text: string, options: WireReviveOptions): unknown {\n const objects = options.dates === 'objects';\n switch (type) {\n case 'bigint':\n if (!/^[+-]?\\d+$/.test(text)) throw new TypeError(`${JSON.stringify(text)} 不是整数`);\n return BigInt(text);\n case 'decimal':\n return options.decimal ? new options.decimal(text) : text;\n case 'double':\n return Number(text);\n case 'bytes':\n return decodeBase64(text);\n case 'date':\n return objects ? parseDate(text) : text;\n case 'time':\n return objects ? parseTime(text) : text;\n case 'timestamp':\n return objects ? parseDateTime(text.replace(' ', 'T')) : text;\n case 'timestamptz':\n return objects ? parseAbsolute(text, options.timeZone ?? getLocalTimeZone()) : text;\n }\n}\n\nconst BASE64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n/** 标准 base64(带补齐的 =),与 Java 的 Base64.getEncoder() 一致 */\nfunction encodeBase64(bytes: Uint8Array): string {\n let out = '';\n for (let i = 0; i < bytes.length; i += 3) {\n const [a, b, c] = [bytes[i]!, bytes[i + 1], bytes[i + 2]];\n out += BASE64[a >> 2]! + BASE64[((a & 3) << 4) | ((b ?? 0) >> 4)]!;\n out +=\n b === undefined\n ? '=='\n : BASE64[((b & 15) << 2) | ((c ?? 0) >> 6)]! + (c === undefined ? '=' : BASE64[c & 63]!);\n }\n return out;\n}\n\n/** 读标准 base64 */\nfunction decodeBase64(text: string): Uint8Array {\n if (text.length % 4 !== 0 || !/^[A-Za-z0-9+/]*={0,2}$/.test(text))\n throw new TypeError(`${JSON.stringify(text.slice(0, 40))} 不是 base64`);\n const pad = text.endsWith('==') ? 2 : text.endsWith('=') ? 1 : 0;\n const out = new Uint8Array((text.length / 4) * 3 - pad);\n let at = 0;\n for (let i = 0; i < text.length; i += 4) {\n let n = 0;\n for (let k = 0; k < 4; k++) n = (n << 6) | Math.max(0, BASE64.indexOf(text[i + k]!));\n for (const byte of [n >> 16, (n >> 8) & 255, n & 255]) if (at < out.length) out[at++] = byte;\n }\n return out;\n}\n\n/** 属性名写进路径:~ → ~0,. → ~1(同 JSON Pointer) */\nconst escape = (key: string) => key.replaceAll('~', '~0').replaceAll('.', '~1');\n\n/** escape 的反向 */\nconst unescape = (step: string) => step.replaceAll('~1', '.').replaceAll('~0', '~');\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as css from '@zerodep-dev/vue-tsx-pro-tsx/styles';
|
|
2
|
+
/** 相连的方向 */
|
|
3
|
+
export interface AttachedOrientations {
|
|
4
|
+
/** 横排(默认):去掉左右相邻一侧的圆角 */
|
|
5
|
+
horizontal: unknown;
|
|
6
|
+
/** 竖排:去掉上下相邻一侧的圆角 */
|
|
7
|
+
vertical: unknown;
|
|
8
|
+
}
|
|
9
|
+
/** 组交给里面的控件的状态 */
|
|
10
|
+
export interface AttachedState {
|
|
11
|
+
/** 排列方向:决定去掉哪一侧的圆角 */
|
|
12
|
+
readonly orientation: keyof AttachedOrientations;
|
|
13
|
+
}
|
|
14
|
+
/** 相连的一组的上下文:按钮家族与输入框外壳据此相连 */
|
|
15
|
+
export declare const AttachedContext: import("@zerodep-dev/vue-tsx-pro-tsx").Context<AttachedState>;
|
|
16
|
+
/**
|
|
17
|
+
* 组里相连的控件:去掉相邻一侧的圆角,边框叠在一起(不显得加粗);
|
|
18
|
+
* 悬停、聚焦的那个浮到上面,边框与焦点环不被邻居盖住。
|
|
19
|
+
* 只在“不是第一个 / 最后一个”时设值:两端不写,控件自己的圆角(radiusStyles)照常生效
|
|
20
|
+
* (写成 default: 0 再在首尾设 null 时,null 只是不生成规则,0 仍然生效)
|
|
21
|
+
*/
|
|
22
|
+
export declare const attachedStyles: Readonly<{
|
|
23
|
+
horizontal: css.CompiledStyles;
|
|
24
|
+
vertical: css.CompiledStyles;
|
|
25
|
+
}>;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { t } from "../../config/theme/tokens.js";
|
|
2
|
+
import { createContext } from "@zerodep-dev/vue-tsx-pro-tsx";
|
|
3
|
+
import * as css from "@zerodep-dev/vue-tsx-pro-tsx/styles";
|
|
4
|
+
//#region src/utils/style/attached.ts
|
|
5
|
+
/**
|
|
6
|
+
* 相连的一组控件:几个按钮(ButtonGroup)或输入框与按钮(ControlGroup,如“币种 + 金额 + 查询”)连成一条,
|
|
7
|
+
* 相邻一侧不要圆角、边框叠在一起。组经 AttachedContext 告诉里面的控件排列方向,控件把 attachedStyles 加到自己的外壳上。
|
|
8
|
+
* 外壳要是组的直接子元素。判断首尾时跳过不占位的兄弟(选择框的弹出面板、表单的隐藏 input),
|
|
9
|
+
* 用 :nth-child(1 of …)(各浏览器 2023 年起支持)。
|
|
10
|
+
*/
|
|
11
|
+
/** 相连的一组的上下文:按钮家族与输入框外壳据此相连 */
|
|
12
|
+
var AttachedContext = createContext("Attached");
|
|
13
|
+
/**
|
|
14
|
+
* 组里相连的控件:去掉相邻一侧的圆角,边框叠在一起(不显得加粗);
|
|
15
|
+
* 悬停、聚焦的那个浮到上面,边框与焦点环不被邻居盖住。
|
|
16
|
+
* 只在“不是第一个 / 最后一个”时设值:两端不写,控件自己的圆角(radiusStyles)照常生效
|
|
17
|
+
* (写成 default: 0 再在首尾设 null 时,null 只是不生成规则,0 仍然生效)
|
|
18
|
+
*/
|
|
19
|
+
var attachedStyles = css.create({
|
|
20
|
+
horizontal: {
|
|
21
|
+
position: "relative",
|
|
22
|
+
zIndex: {
|
|
23
|
+
default: null,
|
|
24
|
+
":hover": 1,
|
|
25
|
+
":focus-visible": 2,
|
|
26
|
+
":focus-within": 2
|
|
27
|
+
},
|
|
28
|
+
marginInlineStart: {
|
|
29
|
+
default: null,
|
|
30
|
+
":not(:nth-child(1 of :not([popover], [hidden], input[type=\"hidden\"], template)))": `calc(-1 * ${t.borderWidths.xs})`
|
|
31
|
+
},
|
|
32
|
+
borderStartStartRadius: {
|
|
33
|
+
default: null,
|
|
34
|
+
":not(:nth-child(1 of :not([popover], [hidden], input[type=\"hidden\"], template)))": 0
|
|
35
|
+
},
|
|
36
|
+
borderEndStartRadius: {
|
|
37
|
+
default: null,
|
|
38
|
+
":not(:nth-child(1 of :not([popover], [hidden], input[type=\"hidden\"], template)))": 0
|
|
39
|
+
},
|
|
40
|
+
borderStartEndRadius: {
|
|
41
|
+
default: null,
|
|
42
|
+
":not(:nth-last-child(1 of :not([popover], [hidden], input[type=\"hidden\"], template)))": 0
|
|
43
|
+
},
|
|
44
|
+
borderEndEndRadius: {
|
|
45
|
+
default: null,
|
|
46
|
+
":not(:nth-last-child(1 of :not([popover], [hidden], input[type=\"hidden\"], template)))": 0
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
vertical: {
|
|
50
|
+
position: "relative",
|
|
51
|
+
zIndex: {
|
|
52
|
+
default: null,
|
|
53
|
+
":hover": 1,
|
|
54
|
+
":focus-visible": 2,
|
|
55
|
+
":focus-within": 2
|
|
56
|
+
},
|
|
57
|
+
marginBlockStart: {
|
|
58
|
+
default: null,
|
|
59
|
+
":not(:nth-child(1 of :not([popover], [hidden], input[type=\"hidden\"], template)))": `calc(-1 * ${t.borderWidths.xs})`
|
|
60
|
+
},
|
|
61
|
+
borderStartStartRadius: {
|
|
62
|
+
default: null,
|
|
63
|
+
":not(:nth-child(1 of :not([popover], [hidden], input[type=\"hidden\"], template)))": 0
|
|
64
|
+
},
|
|
65
|
+
borderStartEndRadius: {
|
|
66
|
+
default: null,
|
|
67
|
+
":not(:nth-child(1 of :not([popover], [hidden], input[type=\"hidden\"], template)))": 0
|
|
68
|
+
},
|
|
69
|
+
borderEndStartRadius: {
|
|
70
|
+
default: null,
|
|
71
|
+
":not(:nth-last-child(1 of :not([popover], [hidden], input[type=\"hidden\"], template)))": 0
|
|
72
|
+
},
|
|
73
|
+
borderEndEndRadius: {
|
|
74
|
+
default: null,
|
|
75
|
+
":not(:nth-last-child(1 of :not([popover], [hidden], input[type=\"hidden\"], template)))": 0
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
//#endregion
|
|
80
|
+
export { AttachedContext, attachedStyles };
|
|
81
|
+
|
|
82
|
+
//# sourceMappingURL=attached.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attached.js","names":[],"sources":["../../../src/utils/style/attached.ts"],"sourcesContent":["/**\n * 相连的一组控件:几个按钮(ButtonGroup)或输入框与按钮(ControlGroup,如“币种 + 金额 + 查询”)连成一条,\n * 相邻一侧不要圆角、边框叠在一起。组经 AttachedContext 告诉里面的控件排列方向,控件把 attachedStyles 加到自己的外壳上。\n * 外壳要是组的直接子元素。判断首尾时跳过不占位的兄弟(选择框的弹出面板、表单的隐藏 input),\n * 用 :nth-child(1 of …)(各浏览器 2023 年起支持)。\n */\nimport { createContext } from '@zerodep-dev/vue-tsx-pro-tsx';\nimport * as css from '@zerodep-dev/vue-tsx-pro-tsx/styles';\nimport { t } from '../../config/theme/tokens';\n\n/** 相连的方向 */\nexport interface AttachedOrientations {\n /** 横排(默认):去掉左右相邻一侧的圆角 */\n horizontal: unknown;\n /** 竖排:去掉上下相邻一侧的圆角 */\n vertical: unknown;\n}\n\n/** 组交给里面的控件的状态 */\nexport interface AttachedState {\n /** 排列方向:决定去掉哪一侧的圆角 */\n readonly orientation: keyof AttachedOrientations;\n}\n\n/** 相连的一组的上下文:按钮家族与输入框外壳据此相连 */\nexport const AttachedContext = createContext<AttachedState>('Attached');\n\n/**\n * 组里相连的控件:去掉相邻一侧的圆角,边框叠在一起(不显得加粗);\n * 悬停、聚焦的那个浮到上面,边框与焦点环不被邻居盖住。\n * 只在“不是第一个 / 最后一个”时设值:两端不写,控件自己的圆角(radiusStyles)照常生效\n * (写成 default: 0 再在首尾设 null 时,null 只是不生成规则,0 仍然生效)\n */\nexport const attachedStyles = css.create({\n horizontal: {\n position: 'relative',\n zIndex: { default: null, ':hover': 1, ':focus-visible': 2, ':focus-within': 2 },\n marginInlineStart: {\n default: null,\n ':not(:nth-child(1 of :not([popover], [hidden], input[type=\"hidden\"], template)))': `calc(-1 * ${t.borderWidths.xs})`,\n },\n borderStartStartRadius: {\n default: null,\n ':not(:nth-child(1 of :not([popover], [hidden], input[type=\"hidden\"], template)))': 0,\n },\n borderEndStartRadius: {\n default: null,\n ':not(:nth-child(1 of :not([popover], [hidden], input[type=\"hidden\"], template)))': 0,\n },\n borderStartEndRadius: {\n default: null,\n ':not(:nth-last-child(1 of :not([popover], [hidden], input[type=\"hidden\"], template)))': 0,\n },\n borderEndEndRadius: {\n default: null,\n ':not(:nth-last-child(1 of :not([popover], [hidden], input[type=\"hidden\"], template)))': 0,\n },\n },\n vertical: {\n position: 'relative',\n zIndex: { default: null, ':hover': 1, ':focus-visible': 2, ':focus-within': 2 },\n marginBlockStart: {\n default: null,\n ':not(:nth-child(1 of :not([popover], [hidden], input[type=\"hidden\"], template)))': `calc(-1 * ${t.borderWidths.xs})`,\n },\n borderStartStartRadius: {\n default: null,\n ':not(:nth-child(1 of :not([popover], [hidden], input[type=\"hidden\"], template)))': 0,\n },\n borderStartEndRadius: {\n default: null,\n ':not(:nth-child(1 of :not([popover], [hidden], input[type=\"hidden\"], template)))': 0,\n },\n borderEndStartRadius: {\n default: null,\n ':not(:nth-last-child(1 of :not([popover], [hidden], input[type=\"hidden\"], template)))': 0,\n },\n borderEndEndRadius: {\n default: null,\n ':not(:nth-last-child(1 of :not([popover], [hidden], input[type=\"hidden\"], template)))': 0,\n },\n },\n});\n"],"mappings":";;;;;;;;;;;AAyBA,IAAa,kBAAkB,cAA6B,UAAU;;;;;;;AAQtE,IAAa,iBAAiB,IAAI,OAAO;CACvC,YAAY;EACV,UAAU;EACV,QAAQ;GAAE,SAAS;GAAM,UAAU;GAAG,kBAAkB;GAAG,iBAAiB;EAAE;EAC9E,mBAAmB;GACjB,SAAS;GACT,sFAAoF,aAAa,EAAE,aAAa,GAAE;EACpH;EACA,wBAAwB;GACtB,SAAS;GACT,sFAAoF;EACtF;EACA,sBAAsB;GACpB,SAAS;GACT,sFAAoF;EACtF;EACA,sBAAsB;GACpB,SAAS;GACT,2FAAyF;EAC3F;EACA,oBAAoB;GAClB,SAAS;GACT,2FAAyF;EAC3F;CACF;CACA,UAAU;EACR,UAAU;EACV,QAAQ;GAAE,SAAS;GAAM,UAAU;GAAG,kBAAkB;GAAG,iBAAiB;EAAE;EAC9E,kBAAkB;GAChB,SAAS;GACT,sFAAoF,aAAa,EAAE,aAAa,GAAE;EACpH;EACA,wBAAwB;GACtB,SAAS;GACT,sFAAoF;EACtF;EACA,sBAAsB;GACpB,SAAS;GACT,sFAAoF;EACtF;EACA,sBAAsB;GACpB,SAAS;GACT,2FAAyF;EAC3F;EACA,oBAAoB;GAClB,SAAS;GACT,2FAAyF;EAC3F;CACF;AACF,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 列表行的外观:菜单项、下拉选项、侧边导航项、表格行共用的悬停、高亮、选中、当前、危险、不可用。
|
|
3
|
+
* 各组件只在这些之上补自己的差别(导航项的字重与内边距、菜单项的焦点环),状态的颜色只在这里定义。
|
|
4
|
+
*
|
|
5
|
+
* sx: [itemStyles.row, itemStyles.hoverable, active && itemStyles.highlighted, disabled && itemStyles.disabled]
|
|
6
|
+
*/
|
|
7
|
+
import * as css from '@zerodep-dev/vue-tsx-pro-tsx/styles';
|
|
8
|
+
/** 列表行的布局与各状态的颜色 */
|
|
9
|
+
export declare const itemStyles: Readonly<{
|
|
10
|
+
current: css.CompiledStyles;
|
|
11
|
+
danger: css.CompiledStyles;
|
|
12
|
+
disabled: css.CompiledStyles;
|
|
13
|
+
highlighted: css.CompiledStyles;
|
|
14
|
+
hoverable: css.CompiledStyles;
|
|
15
|
+
label: css.CompiledStyles;
|
|
16
|
+
row: css.CompiledStyles;
|
|
17
|
+
selected: css.CompiledStyles;
|
|
18
|
+
}>;
|