@astryx-vue/core 0.2.6 → 0.4.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/THIRD_PARTY_NOTICES.md +9 -0
- package/dist/AlertDialog/index.js +1 -1
- package/dist/{AlertDialog-BBhl5P1X.js → AlertDialog-C2inDZWG.js} +13 -7
- package/dist/AppShell/index.d.ts +1 -1
- package/dist/AppShell/index.js +1 -1
- package/dist/{AppShell-mrflO0Uy.js → AppShell-CumzH-8z.js} +3 -3
- package/dist/Avatar/index.d.ts +1 -1
- package/dist/Avatar/index.js +1 -1
- package/dist/{Avatar-pPZ4dI_s.js → Avatar-BW0TE8t9.js} +47 -34
- package/dist/AvatarGroup/index.d.ts +1 -1
- package/dist/AvatarGroup/index.js +1 -1
- package/dist/{AvatarGroup-B--NQSB3.js → AvatarGroup-DLC_FFR5.js} +57 -13
- package/dist/Banner/index.d.ts +1 -1
- package/dist/Banner/index.js +1 -1
- package/dist/{Banner-GbGxrqQO.js → Banner-C5VAwo4D.js} +68 -34
- package/dist/Blockquote/index.js +1 -1
- package/dist/Blockquote-DRoKdcxZ.js +27 -0
- package/dist/BottomSheet/index.d.ts +1 -1
- package/dist/BottomSheet/index.js +2 -2
- package/dist/{BottomSheet-eJ3FzTBD.js → BottomSheet-B4sc3F1S.js} +288 -140
- package/dist/{BottomSheet-DIVwbGr3.js → BottomSheet-m54uCMJN.js} +20 -4
- package/dist/Breadcrumbs/index.d.ts +2 -2
- package/dist/Breadcrumbs/index.js +2 -2
- package/dist/Breadcrumbs-CTaz7Kh4.js +223 -0
- package/dist/Button/index.d.ts +1 -1
- package/dist/Button/index.js +1 -1
- package/dist/{Button-B6Hj_O_s.js → Button-ONOoHdkg.js} +25 -15
- package/dist/ButtonGroup/index.d.ts +1 -1
- package/dist/ButtonGroup/index.js +1 -1
- package/dist/ButtonGroup-DnkSZ9a5.js +87 -0
- package/dist/{ButtonTooltip-nWWrth8j.js → ButtonTooltip-CNKOQHYR.js} +7 -4
- package/dist/Calendar/index.d.ts +1 -1
- package/dist/Calendar/index.js +1 -1
- package/dist/{Calendar-B7vIowKq.js → Calendar-BAqzzQm2.js} +5 -5
- package/dist/Card/index.d.ts +2 -2
- package/dist/Card/index.js +1 -1
- package/dist/{Card-HAjZQg2s.js → Card-B-I24X9S.js} +2 -0
- package/dist/Carousel/index.js +1 -1
- package/dist/{Carousel-DAkOa7KK.js → Carousel-DXC22UWq.js} +50 -33
- package/dist/Chat/index.d.ts +1 -1
- package/dist/Chat/index.js +1 -1
- package/dist/{Chat-DVoI6UOA.js → Chat-BdJW6IX5.js} +152 -83
- package/dist/CheckboxIndicator/index.js +1 -1
- package/dist/{CheckboxIndicator-D37cm2Rh.js → CheckboxIndicator-fH4d-JE1.js} +9 -3
- package/dist/CheckboxInput/index.d.ts +1 -1
- package/dist/CheckboxInput/index.js +1 -1
- package/dist/{CheckboxInput-BS9J6edf.js → CheckboxInput-DJHCbwgC.js} +19 -11
- package/dist/CheckboxList/index.d.ts +1 -1
- package/dist/CheckboxList/index.js +1 -1
- package/dist/{CheckboxList-CX1i_jVP.js → CheckboxList-BdZIP4_J.js} +155 -38
- package/dist/Citation/index.js +1 -1
- package/dist/{Citation-Djgwa0ko.js → Citation-DbZn2vms.js} +8 -3
- package/dist/ClickableCard/index.d.ts +1 -1
- package/dist/ClickableCard/index.js +1 -1
- package/dist/{ClickableCard-Bhds4RRe.js → ClickableCard-ChAfiw9T.js} +10 -7
- package/dist/Code/index.d.ts +1 -1
- package/dist/Code/index.js +3 -3
- package/dist/{Code-XnPuGxey.js → Code-Bg7GBdxy.js} +2 -1
- package/dist/{CodeBlock-BUM3czCS.js → CodeBlock-Caaflp7C.js} +7 -3
- package/dist/Collapsible/index.d.ts +1 -1
- package/dist/Collapsible/index.js +1 -1
- package/dist/{Collapsible-Cov3Pyq5.js → Collapsible-Bdj0WYpb.js} +13 -11
- package/dist/CommandPalette/index.d.ts +1 -1
- package/dist/CommandPalette/index.js +1 -1
- package/dist/{CommandPalette-D6wYS30d.js → CommandPalette-C_MClfAg.js} +146 -62
- package/dist/ComplexSelector/index.d.ts +1 -1
- package/dist/ComplexSelector/index.js +1 -1
- package/dist/{ComplexSelector-Bil81sfq.js → ComplexSelector-BeVQaqRf.js} +94 -22
- package/dist/ContextMenu/index.d.ts +2 -2
- package/dist/ContextMenu/index.js +2 -2
- package/dist/{ContextMenu-DdLJnxNN.js → ContextMenu-C6hPYvYz.js} +299 -179
- package/dist/DateInput/index.d.ts +1 -1
- package/dist/DateInput/index.js +1 -1
- package/dist/{DateInput-u2XKccpK.js → DateInput-BjLdmYor.js} +567 -76
- package/dist/DateRangeInput/index.d.ts +1 -1
- package/dist/DateRangeInput/index.js +1 -1
- package/dist/{DateRangeInput-u7LhH6up.js → DateRangeInput-Br3wVEfD.js} +99 -28
- package/dist/DateTimeInput/index.d.ts +1 -1
- package/dist/DateTimeInput/index.js +1 -1
- package/dist/DateTimeInput-CAZBwoRe.js +562 -0
- package/dist/Dialog/index.d.ts +1 -1
- package/dist/Dialog/index.js +2 -2
- package/dist/{Dialog-BiOSKQso.js → Dialog-Dce4Y97V.js} +28 -11
- package/dist/{Dialog-FGHfDu5M.js → Dialog-fhyxB00e.js} +32 -5
- package/dist/Divider/index.d.ts +1 -1
- package/dist/Divider/index.js +1 -1
- package/dist/{Divider-BtwnL18I.js → Divider-mOZ6vIQw.js} +5 -1
- package/dist/DropdownMenu/index.d.ts +2 -2
- package/dist/DropdownMenu/index.js +3 -3
- package/dist/{DropdownMenu-SM_BEOgM.js → DropdownMenu-BdGmQVb1.js} +85 -57
- package/dist/{DropdownMenu-BEasdJ6R.js → DropdownMenu-BzQrNV9C.js} +481 -264
- package/dist/{DropdownMenuRadioItem.vue-CXEURBcq.d.ts → DropdownMenuRadioItem.vue-Qd-8Rg4Q.d.ts} +236 -230
- package/dist/EmptyState/index.js +1 -1
- package/dist/{EmptyState-C_GH7IV5.js → EmptyState-CmOQf2SH.js} +2 -2
- package/dist/Field/index.d.ts +4 -3
- package/dist/Field/index.js +4 -3
- package/dist/{Field-D5gUEGw4.js → Field--OEsLBfE.js} +4 -3
- package/dist/{FieldInfoTip-Ds-sW_jY.js → FieldInfoTip-gxsnfkZw.js} +3 -3
- package/dist/{FieldLabel-BNeXRuGH.js → FieldLabel-jxIiWgLw.js} +12 -7
- package/dist/FieldStatus/index.d.ts +1 -1
- package/dist/FileInput/index.d.ts +1 -1
- package/dist/FileInput/index.js +1 -1
- package/dist/{FileInput-BpdiO1V8.js → FileInput-B_pUxB0Y.js} +106 -29
- package/dist/FormLayout/index.d.ts +1 -1
- package/dist/FormLayout/index.js +1 -1
- package/dist/{FormLayout-D47FjiOq.js → FormLayout-B9dUB6Ps.js} +1 -1
- package/dist/Heading/index.d.ts +1 -1
- package/dist/Heading/index.js +1 -1
- package/dist/{Heading-BnwWEWkp.js → Heading-BzBunfN7.js} +1 -1
- package/dist/HoverCard/index.js +1 -1
- package/dist/{HoverCard-ycY50pRN.js → HoverCard-BpJhT0sn.js} +35 -22
- package/dist/Icon/index.d.ts +4 -4
- package/dist/Icon/index.js +1 -1
- package/dist/{Icon-bteSId7T.js → Icon-KDnUyY7f.js} +12 -20
- package/dist/IconButton/index.js +1 -1
- package/dist/{IconButton-DDNgNl7B.js → IconButton-DI-XBbtV.js} +1 -1
- package/dist/Indicator/index.d.ts +2 -2
- package/dist/Indicator/index.js +2 -1
- package/dist/InputClearButton-CwXPan8c.js +40 -0
- package/dist/InputGroup/index.d.ts +1 -1
- package/dist/InputGroup/index.js +2 -2
- package/dist/{InputGroup-CA03Smrs.js → InputGroup-DiiocoIW.js} +2 -2
- package/dist/InternationalizationProvider/index.d.ts +1 -1
- package/dist/InternationalizationProvider/index.js +1 -1
- package/dist/{InternationalizationProvider-DJay_w3B.js → InternationalizationProvider-kBapgKAQ.js} +5 -9
- package/dist/{Item-KhFKX9St.js → Item-DWMIjN8n.js} +34 -9
- package/dist/Kbd/index.js +1 -1
- package/dist/{Kbd-BB-Dw6zE.js → Kbd-CV3LO2Ge.js} +18 -2
- package/dist/LayerContentBoundary-CvsKxwwm.js +27 -0
- package/dist/LayerProvider/index.js +1 -1
- package/dist/{LayerProvider-D9NsQFzL.js → LayerProvider-B6zpMBWC.js} +15 -3
- package/dist/Layout/index.d.ts +1 -1
- package/dist/Layout/index.js +2 -2
- package/dist/{Layout-9X6eCUoY.js → Layout-JJRCG7Mf.js} +1 -1
- package/dist/{LayoutPanel-DeOh00p5.js → LayoutPanel-zM5vjrKS.js} +15 -8
- package/dist/Lightbox/index.js +1 -1
- package/dist/{Lightbox-DTF9EdTG.js → Lightbox-D8wyPgMK.js} +8 -6
- package/dist/Link/index.d.ts +2 -2
- package/dist/Link/index.js +1 -1
- package/dist/{Link-BqHCtiyt.js → Link-DweIpOtN.js} +29 -12
- package/dist/List/index.d.ts +1 -1
- package/dist/List/index.js +2 -2
- package/dist/{ListItem-8RWT8XAG.js → ListItem-BQXMu1Tb.js} +1 -1
- package/dist/Markdown/index.d.ts +5 -2
- package/dist/Markdown/index.js +5 -2
- package/dist/Markdown/parser/index.d.ts +4 -0
- package/dist/Markdown/parser/index.js +3 -0
- package/dist/Markdown/plugin-protocol/index.d.ts +35 -0
- package/dist/Markdown/plugin-protocol/index.js +107 -0
- package/dist/Markdown/plugin-renderer/index.d.ts +31 -0
- package/dist/Markdown/plugin-renderer/index.js +42 -0
- package/dist/{Markdown-2CVyZDuB.js → Markdown-DhVfOvXk.js} +195 -484
- package/dist/MediaTheme-DlLqYhDy.js +433 -0
- package/dist/MetadataList/index.js +1 -1
- package/dist/{MetadataList-B-OelQlt.js → MetadataList-CEYceIlN.js} +15 -7
- package/dist/MobileNav/index.js +1 -1
- package/dist/{MobileNavToggle-C3dkrM98.js → MobileNavToggle-pdoJFZHx.js} +60 -19
- package/dist/MoreMenu/index.d.ts +1 -1
- package/dist/MoreMenu/index.js +1 -1
- package/dist/{MoreMenu-D1WFGqGU.js → MoreMenu-CFNqSRev.js} +87 -67
- package/dist/MultiSelector/index.d.ts +1 -1
- package/dist/MultiSelector/index.js +1 -1
- package/dist/MultiSelector-DuVatmq5.js +1456 -0
- package/dist/{NavDisclosure-C_fugrQ3.js → NavDisclosure-Bq9DTZLO.js} +29 -7
- package/dist/{NavHeadingSurface-B3yJspSN.js → NavHeadingSurface-C4v_MtkX.js} +29 -26
- package/dist/NavItem/index.d.ts +1 -1
- package/dist/NavItem/index.js +2 -2
- package/dist/{NavItem-BBIGSvDj.js → NavItem-BPb3yfgz.js} +17 -4
- package/dist/NavMenu/index.d.ts +1 -1
- package/dist/NavMenu/index.js +3 -3
- package/dist/{NavMenu-ThXguZAz.js → NavMenu-BYIDzjix.js} +42 -15
- package/dist/{NavMenuItem-BvJNsDFC.js → NavMenuItem-D3FO90GR.js} +14 -12
- package/dist/NumberInput/index.d.ts +1 -1
- package/dist/NumberInput/index.js +1 -1
- package/dist/NumberInput-B0vzOg3N.js +727 -0
- package/dist/Outline/index.d.ts +2 -2
- package/dist/Outline/index.js +2 -2
- package/dist/{Outline-755h-lMP.js → Outline-CfGv2F1o.js} +91 -6
- package/dist/OverflowList/index.d.ts +2 -2
- package/dist/OverflowList/index.js +1 -1
- package/dist/{OverflowList-NmrSMbxb.js → OverflowList-BgRLZ3dh.js} +23 -6
- package/dist/Pagination/index.d.ts +1 -1
- package/dist/Pagination/index.js +1 -1
- package/dist/{Pagination-Cc4BrjQg.js → Pagination-Bfe12018.js} +2 -2
- package/dist/PickerWheel-CSwUYfes.js +69 -0
- package/dist/Popover/index.d.ts +1 -1
- package/dist/Popover/index.js +1 -1
- package/dist/{Popover-CtoBfVlD.js → Popover-78dFjTb9.js} +28 -17
- package/dist/PowerSearch/index.d.ts +1 -1
- package/dist/PowerSearch/index.js +1 -1
- package/dist/{PowerSearch-DHoiObLn.js → PowerSearch-BoAMdFaT.js} +776 -586
- package/dist/ProgressBar/index.d.ts +1 -1
- package/dist/ProgressBar/index.js +1 -1
- package/dist/{ProgressBar-CVLzdoBK.js → ProgressBar-VP4JS7vm.js} +10 -7
- package/dist/Radio/index.d.ts +1 -1
- package/dist/Radio/index.js +1 -1
- package/dist/{RadioGroup-Bfu6JSNV.js → RadioGroup-BIipql-L.js} +94 -26
- package/dist/RadioList/index.d.ts +1 -1
- package/dist/RadioList/index.js +1 -1
- package/dist/{RadioList-xY1cwLdZ.js → RadioList-GyhgBg4j.js} +57 -8
- package/dist/Resizable/index.d.ts +1 -1
- package/dist/Resizable/index.js +1 -1
- package/dist/{ResizeHandle-q4nD_586.js → ResizeHandle-TPlUCAHD.js} +103 -50
- package/dist/ScrollableArea/index.d.ts +1 -1
- package/dist/ScrollableArea/index.js +1 -1
- package/dist/{ScrollableArea-CJiaALHm.js → ScrollableArea-0u6RWtGG.js} +14 -3
- package/dist/Scrollbars/index.d.ts +2 -0
- package/dist/Scrollbars/index.js +3 -0
- package/dist/Scrollbars-D_93hJYK.js +75 -0
- package/dist/SegmentedControl/index.js +1 -1
- package/dist/{SegmentedControl-ChHmFrrC.js → SegmentedControl-D1wWGBZo.js} +11 -5
- package/dist/SelectableCard/index.d.ts +1 -1
- package/dist/SelectableCard/index.js +1 -1
- package/dist/{SelectableCard-Bj5s_tIN.js → SelectableCard-BEqnhPaX.js} +17 -12
- package/dist/Selector/index.d.ts +1 -1
- package/dist/Selector/index.js +1 -1
- package/dist/Selector-CPISLzp7.js +1049 -0
- package/dist/SideNav/index.d.ts +1 -1
- package/dist/SideNav/index.js +1 -1
- package/dist/{SideNav-Dtv8eA2j.js → SideNav-CN2QeAtY.js} +64 -41
- package/dist/Slider/index.d.ts +1 -1
- package/dist/Slider/index.js +1 -1
- package/dist/{Slider-DWobsPgm.js → Slider-pdC0jpHu.js} +172 -46
- package/dist/Spinner/index.js +1 -1
- package/dist/Spinner-DdVUadii.js +200 -0
- package/dist/Stack/index.d.ts +1 -1
- package/dist/Stack/index.js +2 -2
- package/dist/{Stack-CjQEavuq.js → Stack-Bb_h60t3.js} +10 -3
- package/dist/{Stack-D_Bhs-3r.js → Stack-Bp-XN9J4.js} +20 -9
- package/dist/StatusDot/index.d.ts +1 -1
- package/dist/StatusDot/index.js +1 -1
- package/dist/{StatusDot-BPUhMOff.js → StatusDot-BS_ohXhd.js} +8 -4
- package/dist/Stepper/index.d.ts +1 -1
- package/dist/Stepper/index.js +1 -1
- package/dist/{Stepper-CE8dHysu.js → Stepper-CyaSRSdu.js} +101 -79
- package/dist/Switch/index.d.ts +1 -1
- package/dist/Switch/index.js +1 -1
- package/dist/{Switch-DaVPRxvN.js → Switch-Z2Vfiiic.js} +38 -22
- package/dist/TabList/index.d.ts +2 -2
- package/dist/TabList/index.js +1 -1
- package/dist/{TabList-DIkK9sgK.js → TabList-DRqP0Hrv.js} +205 -63
- package/dist/Table/index.d.ts +3 -3
- package/dist/Table/index.js +1 -1
- package/dist/{Table-hqZMmzfU.js → Table-BcrrylMX.js} +727 -448
- package/dist/Text/index.d.ts +2 -2
- package/dist/Text/index.js +1 -1
- package/dist/{Text-CV3LmscH.js → Text-CmTOgYXf.js} +1 -1
- package/dist/TextArea/index.d.ts +1 -1
- package/dist/TextArea/index.js +1 -1
- package/dist/{TextArea-Ab5Sw60T.js → TextArea-DA9CCG_J.js} +104 -50
- package/dist/TextInput/index.d.ts +1 -1
- package/dist/TextInput/index.js +1 -1
- package/dist/{TextInput-zFT1_qgI.js → TextInput-CI96einV.js} +71 -38
- package/dist/Theme/index.d.ts +3 -3
- package/dist/Theme/index.js +3 -2
- package/dist/Theme-BbDT8B_C.js +2125 -0
- package/dist/Thumbnail/index.js +1 -1
- package/dist/{Thumbnail-C3NnJUFG.js → Thumbnail-B2ZAY59J.js} +13 -10
- package/dist/{TimeField-ByiJKBRM.js → TimeField-CpAgja9D.js} +299 -40
- package/dist/TimeInput/index.d.ts +1 -1
- package/dist/TimeInput/index.js +1 -1
- package/dist/{TimeInput-S8n946tp.js → TimeInput-Bw_lHS4M.js} +78 -9
- package/dist/Timer/index.d.ts +1 -1
- package/dist/Timer/index.js +1 -1
- package/dist/{Timer-avMQk5DN.js → Timer-CH7GsEVu.js} +1 -1
- package/dist/Timestamp/index.d.ts +1 -1
- package/dist/Timestamp/index.js +1 -1
- package/dist/{Timestamp-xpQKCk0d.js → Timestamp-BFNuoTZ0.js} +5 -5
- package/dist/Toast/index.d.ts +1 -1
- package/dist/Toast/index.js +1 -1
- package/dist/Toast-DwnPjx6j.js +685 -0
- package/dist/ToggleButton/index.d.ts +1 -1
- package/dist/ToggleButton/index.js +1 -1
- package/dist/{ToggleButton-B-C-Q7XP.js → ToggleButton-cLjh9W-x.js} +5 -4
- package/dist/Token/index.d.ts +1 -1
- package/dist/Token/index.js +1 -1
- package/dist/{Token-DsntTYhQ.js → Token-BfS4vi__.js} +32 -17
- package/dist/Tokenizer/index.d.ts +1 -1
- package/dist/Tokenizer/index.js +1 -1
- package/dist/{Tokenizer-41p035dX.js → Tokenizer-Ci3E5bvP.js} +109 -23
- package/dist/Toolbar/index.d.ts +2 -2
- package/dist/Toolbar/index.js +1 -1
- package/dist/{Toolbar-BrgvvTCk.js → Toolbar-C0pMWL4S.js} +1 -1
- package/dist/Tooltip/index.d.ts +1 -1
- package/dist/Tooltip/index.js +1 -1
- package/dist/{Tooltip-C4Vaqd3G.js → Tooltip-sAM8i1eO.js} +23 -19
- package/dist/TopNav/index.d.ts +1 -1
- package/dist/TopNav/index.js +1 -1
- package/dist/{TopNav-CeSeEMX3.js → TopNav-gW59zp1o.js} +16 -15
- package/dist/TreeList/index.d.ts +1 -1
- package/dist/TreeList/index.js +1 -1
- package/dist/{TreeList-BUz-KZJd.js → TreeList-DaoI7zaH.js} +124 -41
- package/dist/Typeahead/index.d.ts +1 -1
- package/dist/Typeahead/index.js +2 -2
- package/dist/{Typeahead-k3xhFxkr.js → Typeahead-D4JjvjK4.js} +125 -26
- package/dist/{TypeaheadMenu-DBW6rHeO.js → TypeaheadMenu-BQlMrfqX.js} +141 -51
- package/dist/{announce-Cnio10Wk.js → announce-B210eJVf.js} +17 -2
- package/dist/characterReferences-BJ-jLhsR.js +65 -0
- package/dist/characters-rcDbGt71.d.ts +29 -0
- package/dist/characters-wTnzjkkR.js +58 -0
- package/dist/{colorMode-CBgdgDSn.js → colorMode-BxqfDP4P.js} +1 -4
- package/dist/composables/index.d.ts +5 -4
- package/dist/composables/index.js +23 -18
- package/dist/{composables-CbKx9C1Y.js → composables-Bc02zKAO.js} +167 -197
- package/dist/context-B6UElI5X.js +5 -0
- package/dist/{context-Cfjh8te1.js → context-Cfml4jaK.js} +5 -3
- package/dist/{context-iABt_ueM.js → context-DWfi56sq.js} +451 -122
- package/dist/context-IvbU9c3T.js +8 -0
- package/dist/context-pjBxaMSh.js +28 -0
- package/dist/fieldParts--SyRZVQG.js +44 -0
- package/dist/fieldParts-LXpQMKE8.d.ts +27 -0
- package/dist/{focus-CpficIgf.js → focus-l8jVTcqd.js} +1 -1
- package/dist/hoverIntent-DMHGb85c.js +115 -0
- package/dist/{index-Cde5JvtX.d.ts → index-B-nESNam.d.ts} +8 -7
- package/dist/{index-CsNi1I8j.d.ts → index-B08-Uxhv.d.ts} +4 -2
- package/dist/{index-Cn-sSds-.d.ts → index-B56j4eI2.d.ts} +24 -1
- package/dist/{index-BJMJ09K-.d.ts → index-BEZ4ezJk.d.ts} +1 -1
- package/dist/{index-DeQwYJbg.d.ts → index-BNaRK-s5.d.ts} +10 -1
- package/dist/{index-CQCTKjIO.d.ts → index-BO9TY87G.d.ts} +5 -4
- package/dist/{index-BJSxFVXH.d.ts → index-BQEJj72c.d.ts} +21 -8
- package/dist/{index-BXk7Wng7.d.ts → index-BULhhnGf.d.ts} +1 -1
- package/dist/{index-D97pQbua.d.ts → index-BV2D2x_u.d.ts} +1 -1
- package/dist/{index-BPYzIIYn.d.ts → index-BZKgbyN9.d.ts} +2 -2
- package/dist/index-BkUkm6Al.d.ts +11 -0
- package/dist/{index-ClNU2Th8.d.ts → index-Bn-v89Vt.d.ts} +10 -6
- package/dist/{index-Bu8NA2SD.d.ts → index-BnEhvmdR.d.ts} +16 -7
- package/dist/index-Bo-ofFyg.d.ts +166 -0
- package/dist/{index-i0tNFWfz.d.ts → index-BqhgeAT4.d.ts} +2 -0
- package/dist/{index-DWh2WC8W.d.ts → index-C4Cjz6OK.d.ts} +2 -2
- package/dist/{index-B7yhzGUT.d.ts → index-C7sam-SB.d.ts} +2 -2
- package/dist/{index-BrJzFA5X.d.ts → index-C90l2rH1.d.ts} +1 -1
- package/dist/{index-vP0EtrJJ.d.ts → index-C9gAlDt_.d.ts} +6 -3
- package/dist/{index-csA1lH_0.d.ts → index-CJ6ajsUC.d.ts} +2 -2
- package/dist/{index-CY-KvZ9B.d.ts → index-CK-Dbh0f.d.ts} +1 -1
- package/dist/index-CKUfpmFL.d.ts +375 -0
- package/dist/{index-DXpSFlPG.d.ts → index-CKgBTAzC.d.ts} +4 -4
- package/dist/{index-EFqQF2Bx.d.ts → index-CPtDjmcX.d.ts} +4 -4
- package/dist/{index-12QYAbiz.d.ts → index-CRrSHbok.d.ts} +3 -2
- package/dist/{index-DG52Bg0W.d.ts → index-CTf3SK0b.d.ts} +6 -0
- package/dist/{index-BNy3SW4S.d.ts → index-CTjkJP4x.d.ts} +32 -3
- package/dist/{index-Ca8VIE4l.d.ts → index-CVn0GBdB.d.ts} +1 -1
- package/dist/{index-YKCx03zD.d.ts → index-CdvmnNMH.d.ts} +1 -1
- package/dist/{index-BUEPz7BL.d.ts → index-CikMzeab.d.ts} +3 -3
- package/dist/{index-CdtZjkmG.d.ts → index-CpNlPLBF.d.ts} +183 -129
- package/dist/{index-N7OVZ38M.d.ts → index-Cs1xsHKi.d.ts} +28 -16
- package/dist/{index-Cyb9Du5Z.d.ts → index-CtTGt6Dv.d.ts} +1 -1
- package/dist/{index-HV6W3xCx.d.ts → index-D05JGsT3.d.ts} +5 -2
- package/dist/{index-CsTbMVDS.d.ts → index-D0_HsuC3.d.ts} +4 -4
- package/dist/{index-BgT6mH3U.d.ts → index-D7ShT2c-.d.ts} +1 -1
- package/dist/{index-CkKPMIeX.d.ts → index-D7XRtUTY.d.ts} +9 -0
- package/dist/{index-TntQsADQ.d.ts → index-DEm3kRBO.d.ts} +4 -3
- package/dist/{index-DamRHh1i.d.ts → index-DLAG3m9W.d.ts} +11 -1
- package/dist/{index-DUnDGFQE.d.ts → index-DNA2l1RN.d.ts} +1 -1
- package/dist/{index-WnUY4Kxu.d.ts → index-DRJZ-v1E.d.ts} +4 -4
- package/dist/{index-DYp2RWkM.d.ts → index-DY8Wph-A.d.ts} +3 -3
- package/dist/{index-B1WJxt-n.d.ts → index-DfC05uKG.d.ts} +17 -7
- package/dist/{index-C5e-7Obr.d.ts → index-Dj1_1t3j.d.ts} +19 -6
- package/dist/{index-jW-mP58D.d.ts → index-Dr4b_oji.d.ts} +22 -15
- package/dist/{index-uKnRGtzi.d.ts → index-Ds201-d2.d.ts} +18 -4
- package/dist/{index-DIXAzTKL.d.ts → index-DxxudRgB.d.ts} +1 -1
- package/dist/{index-DQmK3Lq_.d.ts → index-IfsSCj8J.d.ts} +19 -6
- package/dist/{index-B1eCxBCY.d.ts → index-TXcNH86P.d.ts} +1 -1
- package/dist/{index-XuAAcYiP.d.ts → index-f3d9cVtj.d.ts} +1 -1
- package/dist/index-fAZaRruV.d.ts +125 -0
- package/dist/{index-D5N9ikrS.d.ts → index-hCpxKePE.d.ts} +1 -1
- package/dist/{index-T2FOcOuI.d.ts → index-jOwU3YoR.d.ts} +400 -90
- package/dist/{index-DdGck82Y.d.ts → index-pNtfr-RW.d.ts} +2 -2
- package/dist/{index-BhpAUzUr.d.ts → index-unAZVFGz.d.ts} +2 -2
- package/dist/index.d.ts +84 -77
- package/dist/index.js +151 -134
- package/dist/inlineSize-BNe8wggI.js +66 -0
- package/dist/inputPresentation-BOyHkCDr.js +62 -0
- package/dist/interactionModality-ACpTMhak.js +44 -0
- package/dist/isApplePlatform-B1ju6F5B.js +27 -0
- package/dist/isRenderable-BnKHIqfd.js +21 -0
- package/dist/layerDepth-CNDh-IHb.js +181 -0
- package/dist/link-DuuA2eCL.js +30 -0
- package/dist/{loadCatalog-BGHKG_9N.d.ts → loadCatalog-DlLFZreI.d.ts} +281 -7
- package/dist/loadCatalog-eopw74qb.js +424 -0
- package/dist/locale/index.d.ts +2 -2
- package/dist/locale/index.js +4 -3
- package/dist/locale-CabGJlGp.js +343 -0
- package/dist/modalOutlet-CUOcrhIu.js +56 -0
- package/dist/optionAction-Cg7xQLUA.d.ts +6 -0
- package/dist/{power-search-DrDfcoL1.d.ts → power-search-gHLIYXs5.d.ts} +2 -0
- package/dist/protocol-DHxY0NI8.js +113 -0
- package/dist/protocol-RSeMzAN1.d.ts +238 -0
- package/dist/publicParser-B0MRoikr.d.ts +141 -0
- package/dist/publicParser-uHC_T0Fo.js +895 -0
- package/dist/resizableChannel-3vivrEcT.js +20 -0
- package/dist/safeUrl-CsvfcZ9m.js +54 -0
- package/dist/scopedProvide-C-Df7c15.js +30 -0
- package/dist/scrollKeyboardDelegation-D7cumnOl.js +238 -0
- package/dist/scrollLock-C3aT4-0z.js +102 -0
- package/dist/{searchResultMessage-hXXNOFJP.js → searchResultMessage-mCpJBvra.js} +5 -14
- package/dist/{semantic-CKH9XVqa.d.ts → semantic-BF_AjLvk.d.ts} +6 -3
- package/dist/slug-C65CUsf9.js +32 -0
- package/dist/syntaxContext-DmIfNNtb.js +4 -0
- package/dist/triggerVariant-BsL8jMHs.js +16 -0
- package/dist/{types-0Q_SJv_F.d.ts → types-Bb7OGivY.d.ts} +6 -1
- package/dist/{types-H4Bbbxiw.d.ts → types-BnNTzEnd.d.ts} +1 -1
- package/dist/{types-CwyibrRB.d.ts → types-C5GQ2KCK.d.ts} +23 -3
- package/dist/{types-BBWrcHMD.d.ts → types-Ckih2YJi.d.ts} +3 -2
- package/dist/{types-gKsEkk2g.d.ts → types-CsqwQkf1.d.ts} +143 -10
- package/dist/upstreamMap-xr3gvREu.js +731 -0
- package/dist/{useAnchoredListbox-DwztMNjP.js → useAnchoredListbox-DGxxKHZb.js} +2 -2
- package/dist/{useAsyncSource-xpQovjV_.d.ts → useAsyncSource-aGzrvRkI.d.ts} +3 -0
- package/dist/{useClickableContainer-DyNpnSEa.js → useClickableContainer-CdGp_Cev.js} +1 -1
- package/dist/{useClipboard-BDfbEsWd.js → useClipboard-Dk8cS810.js} +1 -1
- package/dist/useHoverLayerDismiss-kYJ_NqL4.js +27 -0
- package/dist/{useIndicator-i1NORM7W.js → useIndicator-MZmfBWid.js} +5 -23
- package/dist/{useInputContainer-CpgDe2-4.js → useInputContainer-CLcYrby4.js} +1 -1
- package/dist/{useInputStatusIcon-DBOwxV4x.js → useInputStatusIcon-DAE7PExr.js} +1 -1
- package/dist/useLayerMountTarget-BmZyeKWE.js +156 -0
- package/dist/{useListFocus-D0iOJl39.js → useListFocus-ChxLg0b4.js} +3 -2
- package/dist/{useMenuDrillIn-DzKGkTho.js → useMenuDrillIn-DhUnPvKs.js} +6 -5
- package/dist/useMenuHover-Djreu23i.js +170 -0
- package/dist/useMenuPress-8foxY8z4.js +764 -0
- package/dist/{useMergedRefs-CfHHlCsn.js → useMergedRefs-Cb6_w93m.js} +24 -4
- package/dist/{useNumberField-4-dIGVed.js → useNumberField-Dk1BE3-K.js} +3 -3
- package/dist/useOptionActionGrid-CkJcuvaU.js +97 -0
- package/dist/{usePositionedLayer-Cru9_00b.js → usePositionedLayer-B7cvG-_v.js} +43 -49
- package/dist/usePressFeedback-BJCpjEpv.js +319 -0
- package/dist/{useResizable-DDwPpPe6.d.ts → useResizable-1MHPNaRD.d.ts} +19 -1
- package/dist/{useResizable-B3ahKLoZ.js → useResizable-I3BCiLSL.js} +72 -40
- package/dist/useResolvedLabelHidden-B2rlWiaI.js +30 -0
- package/dist/{useRestoreFocus-Djw9RUIf.js → useRestoreFocus-XEKs5-gp.js} +49 -7
- package/dist/useScrollOverflow-DuMoGXmm.js +67 -0
- package/dist/useScrollableArea-BE8b3qm7.js +222 -0
- package/dist/useScrollbars-C2NJ6Qwq.js +43 -0
- package/dist/{useTimeValue-6ufHM15W.js → useTimeValue-BJd0xBhG.js} +4 -22
- package/dist/useTranslator-BmWt2BBt.js +35 -0
- package/dist/{useTypeahead-PAK8lMYz.js → useTypeahead-BvtflkRk.js} +4 -5
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.js +5 -0
- package/dist/{utils-D33VQDnk.js → utils-ClVseK2w.js} +29 -2
- package/dist/utils-z3Q6BGIJ.js +819 -0
- package/locales/SOURCE.json +1 -1
- package/package.json +24 -3
- package/reset.css +364 -1
- package/styles/avatar-group.css +9 -1
- package/styles/badge.css +8 -5
- package/styles/banner.css +124 -26
- package/styles/blockquote.css +1 -0
- package/styles/bordered-control.css +1 -1
- package/styles/bottom-sheet.css +74 -6
- package/styles/breadcrumbs.css +16 -2
- package/styles/button-group.css +3 -1
- package/styles/button.css +53 -11
- package/styles/card.css +1 -1
- package/styles/chat.css +16 -6
- package/styles/checkbox-input.css +10 -0
- package/styles/clickable-card.css +10 -3
- package/styles/collapsible.css +12 -5
- package/styles/command-palette.css +29 -14
- package/styles/complex-selector.css +22 -5
- package/styles/context-menu.css +3 -3
- package/styles/date-input.css +111 -1
- package/styles/dialog-header.css +4 -1
- package/styles/dialog.css +7 -0
- package/styles/dropdown-menu.css +12 -3
- package/styles/field.css +5 -0
- package/styles/form-layout.css +1 -0
- package/styles/heading.css +18 -8
- package/styles/icon.css +4 -0
- package/styles/kbd.css +1 -1
- package/styles/layer.css +72 -0
- package/styles/list.css +9 -2
- package/styles/metadata-list.css +1 -0
- package/styles/mobile-nav.css +4 -1
- package/styles/multi-selector.css +48 -1
- package/styles/nav-item.css +9 -2
- package/styles/nav-menu.css +12 -2
- package/styles/number-input.css +9 -1
- package/styles/overflow-list.css +1 -1
- package/styles/popover.css +2 -1
- package/styles/power-search.css +5 -3
- package/styles/pressable.css +63 -22
- package/styles/progress-bar.css +15 -3
- package/styles/radio.css +16 -0
- package/styles/resize-handle.css +42 -0
- package/styles/scrollbars.css +28 -0
- package/styles/segmented-control.css +12 -4
- package/styles/selector.css +53 -1
- package/styles/side-nav.css +19 -0
- package/styles/slider.css +4 -3
- package/styles/spinner.css +48 -42
- package/styles/stepper.css +58 -4
- package/styles/switch.css +26 -0
- package/styles/tab-list.css +132 -3
- package/styles/table.css +88 -10
- package/styles/text-area.css +1 -1
- package/styles/text-input.css +1 -1
- package/styles/text.css +6 -6
- package/styles/thumbnail.css +11 -3
- package/styles/time-input.css +8 -0
- package/styles/toast.css +37 -3
- package/styles/token.css +2 -2
- package/styles/tokenizer.css +1 -1
- package/styles/toolbar.css +4 -1
- package/styles/tree-list.css +1 -1
- package/styles/typeahead.css +34 -1
- package/styles.css +1 -0
- package/dist/Blockquote-DFqBv_oJ.js +0 -18
- package/dist/Breadcrumbs-DPVaziH4.js +0 -141
- package/dist/ButtonGroup-ySQWanDP.js +0 -125
- package/dist/DateTimeInput-DHp683jZ.js +0 -268
- package/dist/MultiSelector-BeV98x7X.js +0 -988
- package/dist/NumberInput-AZ9x3oja.js +0 -473
- package/dist/Selector-DuVozKNq.js +0 -675
- package/dist/Spinner-9cYUCnDy.js +0 -84
- package/dist/Theme-CtaUWo4g.js +0 -1246
- package/dist/Toast-BuqIZV5z.js +0 -322
- package/dist/context-4PuqD1Ic.js +0 -4
- package/dist/context-D5-MwxnN.js +0 -4
- package/dist/index-BH9PzQ1F.d.ts +0 -87
- package/dist/link-C4_WogdF.js +0 -18
- package/dist/loadCatalog-CXKqEB9s.js +0 -877
- package/dist/locale-DgkZEMTn.js +0 -105
- package/dist/platform-B_9W_aHW.js +0 -33
- package/dist/scrollLock-BzIvIimL.js +0 -42
- package/dist/useMenuPress-D-FRNrBW.js +0 -573
- package/dist/useScrollableArea-DDk_CluT.js +0 -172
- /package/dist/{index-lgvUFSCO.d.ts → index-CryFtTT6.d.ts} +0 -0
|
@@ -1,19 +1,24 @@
|
|
|
1
|
-
import { t as _sfc_main$
|
|
2
|
-
import { t as _sfc_main$
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { t as
|
|
8
|
-
import { t as _sfc_main$
|
|
9
|
-
import { t as
|
|
10
|
-
import { t as _sfc_main$
|
|
11
|
-
import { t as _sfc_main$
|
|
12
|
-
import { t as _sfc_main$
|
|
13
|
-
import { t as _sfc_main$
|
|
14
|
-
import { t as _sfc_main$
|
|
15
|
-
import { t as _sfc_main$
|
|
16
|
-
import {
|
|
1
|
+
import { t as _sfc_main$15 } from "./VisuallyHidden-C7NN3VEP.js";
|
|
2
|
+
import { t as _sfc_main$16 } from "./Button-ONOoHdkg.js";
|
|
3
|
+
import { n as useLayerTeleportTarget } from "./useLayerMountTarget-BmZyeKWE.js";
|
|
4
|
+
import { n as firstCharacter } from "./characters-wTnzjkkR.js";
|
|
5
|
+
import { s as useAstryxMessages } from "./context-DWfi56sq.js";
|
|
6
|
+
import { n as useCollator } from "./locale-CabGJlGp.js";
|
|
7
|
+
import { t as useScrollableArea } from "./useScrollableArea-BE8b3qm7.js";
|
|
8
|
+
import { t as _sfc_main$17 } from "./Tooltip-sAM8i1eO.js";
|
|
9
|
+
import { t as useScrollbars } from "./useScrollbars-C2NJ6Qwq.js";
|
|
10
|
+
import { t as _sfc_main$18 } from "./Icon-KDnUyY7f.js";
|
|
11
|
+
import { t as _sfc_main$19 } from "./CheckboxInput-DJHCbwgC.js";
|
|
12
|
+
import { t as _sfc_main$20 } from "./Popover-78dFjTb9.js";
|
|
13
|
+
import { t as _sfc_main$21 } from "./DateInput-BjLdmYor.js";
|
|
14
|
+
import { t as _sfc_main$22 } from "./MultiSelector-DuVatmq5.js";
|
|
15
|
+
import { t as _sfc_main$23 } from "./NumberInput-B0vzOg3N.js";
|
|
16
|
+
import { t as _sfc_main$24 } from "./Pagination-Bfe12018.js";
|
|
17
|
+
import { t as _sfc_main$25 } from "./Selector-CPISLzp7.js";
|
|
18
|
+
import { t as _sfc_main$26 } from "./TextInput-CI96einV.js";
|
|
19
|
+
import { t as _sfc_main$27 } from "./Toolbar-C0pMWL4S.js";
|
|
20
|
+
import { Fragment, Teleport, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, h, mergeProps, nextTick, normalizeClass, normalizeStyle, onBeforeUnmount, onMounted, onScopeDispose, openBlock, ref, renderList, renderSlot, shallowRef, toDisplayString, toValue, unref, useAttrs, watch, withCtx, withModifiers } from "vue";
|
|
21
|
+
import "../styles/layer.css";
|
|
17
22
|
import "../styles/table.css";
|
|
18
23
|
function proportional(value = 1, options) {
|
|
19
24
|
return {
|
|
@@ -74,6 +79,118 @@ function resolveColumnFloorWidths(columns) {
|
|
|
74
79
|
}
|
|
75
80
|
return widths;
|
|
76
81
|
}
|
|
82
|
+
const MAX_COMPATIBLE_FUNCTION = /^(?:calc|min|max|clamp|var)\(/i;
|
|
83
|
+
const PX_LENGTH = /^(\d+(?:\.\d+)?)px$/i;
|
|
84
|
+
const LENGTH_UNITS = /* @__PURE__ */ new Set([
|
|
85
|
+
"px",
|
|
86
|
+
"em",
|
|
87
|
+
"rem",
|
|
88
|
+
"lh",
|
|
89
|
+
"rlh",
|
|
90
|
+
"ex",
|
|
91
|
+
"rex",
|
|
92
|
+
"ch",
|
|
93
|
+
"rch",
|
|
94
|
+
"cap",
|
|
95
|
+
"rcap",
|
|
96
|
+
"ic",
|
|
97
|
+
"ric",
|
|
98
|
+
"vw",
|
|
99
|
+
"vh",
|
|
100
|
+
"vi",
|
|
101
|
+
"vb",
|
|
102
|
+
"vmin",
|
|
103
|
+
"vmax",
|
|
104
|
+
"svw",
|
|
105
|
+
"svh",
|
|
106
|
+
"svi",
|
|
107
|
+
"svb",
|
|
108
|
+
"svmin",
|
|
109
|
+
"svmax",
|
|
110
|
+
"lvw",
|
|
111
|
+
"lvh",
|
|
112
|
+
"lvi",
|
|
113
|
+
"lvb",
|
|
114
|
+
"lvmin",
|
|
115
|
+
"lvmax",
|
|
116
|
+
"dvw",
|
|
117
|
+
"dvh",
|
|
118
|
+
"dvi",
|
|
119
|
+
"dvb",
|
|
120
|
+
"dvmin",
|
|
121
|
+
"dvmax",
|
|
122
|
+
"cqw",
|
|
123
|
+
"cqh",
|
|
124
|
+
"cqi",
|
|
125
|
+
"cqb",
|
|
126
|
+
"cqmin",
|
|
127
|
+
"cqmax",
|
|
128
|
+
"cm",
|
|
129
|
+
"mm",
|
|
130
|
+
"q",
|
|
131
|
+
"in",
|
|
132
|
+
"pt",
|
|
133
|
+
"pc",
|
|
134
|
+
"%"
|
|
135
|
+
]);
|
|
136
|
+
function isZeroLength(value) {
|
|
137
|
+
const magnitude = value.trim().replace(/[a-z%]+$/i, "");
|
|
138
|
+
if (!/^[+-]?(?:\d+(?:\.\d+)?|\.\d+)$/.test(magnitude)) return false;
|
|
139
|
+
return Number(magnitude) === 0;
|
|
140
|
+
}
|
|
141
|
+
function isCssMaxLength(value) {
|
|
142
|
+
if (value.endsWith("%")) return /^[+-]?(?:\d+(?:\.\d+)?|\.\d+)$/.test(value.slice(0, -1));
|
|
143
|
+
const unit = value.match(/[a-z]+$/i)?.[0]?.toLowerCase();
|
|
144
|
+
if (unit == null || !LENGTH_UNITS.has(unit)) return false;
|
|
145
|
+
return /^[+-]?(?:\d+(?:\.\d+)?|\.\d+)$/.test(value.slice(0, -unit.length));
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* 数据表的内联最小宽度:列宽下限和调用方写的 `minWidth` 里较大的那个。
|
|
149
|
+
*
|
|
150
|
+
* 数字、0 和 px 直接比较。其它长度、百分比、`calc()` / `var()` 交给 CSS `max()`。
|
|
151
|
+
* `auto`、`max-content` 这类关键字不能放进 `max()`,这时列宽下限胜出。
|
|
152
|
+
*/
|
|
153
|
+
function resolveTableMinWidth(consumer, floorPx) {
|
|
154
|
+
const floor = `${floorPx}px`;
|
|
155
|
+
if (consumer == null) return floor;
|
|
156
|
+
if (typeof consumer === "number") return `${Math.max(consumer, floorPx)}px`;
|
|
157
|
+
const value = consumer.trim();
|
|
158
|
+
if (value === "" || isZeroLength(value)) return floor;
|
|
159
|
+
const px = PX_LENGTH.exec(value);
|
|
160
|
+
if (px) return `${Math.max(Number(px[1]), floorPx)}px`;
|
|
161
|
+
if (isCssMaxLength(value) || MAX_COMPATIBLE_FUNCTION.test(value)) return `max(${value}, ${floor})`;
|
|
162
|
+
return floor;
|
|
163
|
+
}
|
|
164
|
+
/** 把样式里的 `minWidth` 拆出来,剩下的继续留给滚动容器。字符串样式拆不开,原样返回。 */
|
|
165
|
+
function splitStyleMinWidth(style) {
|
|
166
|
+
if (style == null || typeof style === "string") return {
|
|
167
|
+
minWidth: void 0,
|
|
168
|
+
style
|
|
169
|
+
};
|
|
170
|
+
if (Array.isArray(style)) {
|
|
171
|
+
let minWidth;
|
|
172
|
+
const next = style.map((item) => {
|
|
173
|
+
const split = splitStyleMinWidth(item);
|
|
174
|
+
if (split.minWidth != null) minWidth = split.minWidth;
|
|
175
|
+
return split.style;
|
|
176
|
+
});
|
|
177
|
+
return {
|
|
178
|
+
minWidth,
|
|
179
|
+
style: next
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
if (typeof style === "object") {
|
|
183
|
+
const { minWidth, ...rest } = style;
|
|
184
|
+
return {
|
|
185
|
+
minWidth,
|
|
186
|
+
style: rest
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
return {
|
|
190
|
+
minWidth: void 0,
|
|
191
|
+
style
|
|
192
|
+
};
|
|
193
|
+
}
|
|
77
194
|
function resolveColumnWidths(columns) {
|
|
78
195
|
const { totalProportion, pixelTotal, maxProportionalSpace } = planColumnSpace(columns);
|
|
79
196
|
const result = /* @__PURE__ */ new Map();
|
|
@@ -97,7 +214,8 @@ function resolveColumnWidths(columns) {
|
|
|
97
214
|
}
|
|
98
215
|
function capitalize(value) {
|
|
99
216
|
if (value.length === 0) return value;
|
|
100
|
-
|
|
217
|
+
const first = firstCharacter(value);
|
|
218
|
+
return first.toUpperCase() + value.slice(first.length);
|
|
101
219
|
}
|
|
102
220
|
function cellText(value) {
|
|
103
221
|
if (value == null) return "";
|
|
@@ -139,7 +257,7 @@ function generateColumns(data) {
|
|
|
139
257
|
};
|
|
140
258
|
});
|
|
141
259
|
}
|
|
142
|
-
function sortRows(rows, sort, columns = []) {
|
|
260
|
+
function sortRows(rows, sort, columns = [], collator) {
|
|
143
261
|
if (sort.length === 0) return [...rows];
|
|
144
262
|
const comparators = /* @__PURE__ */ new Map();
|
|
145
263
|
for (const column of columns) {
|
|
@@ -151,19 +269,21 @@ function sortRows(rows, sort, columns = []) {
|
|
|
151
269
|
copy.sort((a, b) => {
|
|
152
270
|
for (const entry of sort) {
|
|
153
271
|
const custom = comparators.get(entry.sortKey);
|
|
154
|
-
const result = custom ? custom(a, b) : compareValues(a[entry.sortKey], b[entry.sortKey]);
|
|
272
|
+
const result = custom ? custom(a, b) : compareValues(a[entry.sortKey], b[entry.sortKey], collator);
|
|
155
273
|
if (result !== 0) return entry.direction === "ascending" ? result : -result;
|
|
156
274
|
}
|
|
157
275
|
return 0;
|
|
158
276
|
});
|
|
159
277
|
return copy;
|
|
160
278
|
}
|
|
161
|
-
function compareValues(a, b) {
|
|
279
|
+
function compareValues(a, b, collator) {
|
|
162
280
|
if (a == null && b == null) return 0;
|
|
163
281
|
if (a == null) return 1;
|
|
164
282
|
if (b == null) return -1;
|
|
165
283
|
if (typeof a === "number" && typeof b === "number") return a - b;
|
|
166
|
-
|
|
284
|
+
const left = String(a);
|
|
285
|
+
const right = String(b);
|
|
286
|
+
return collator ? collator.compare(left, right) : left.localeCompare(right);
|
|
167
287
|
}
|
|
168
288
|
//#endregion
|
|
169
289
|
//#region src/Table/plugins/columnResize.ts
|
|
@@ -587,8 +707,8 @@ function useTablePagination(config) {
|
|
|
587
707
|
}
|
|
588
708
|
//#endregion
|
|
589
709
|
//#region src/Table/TableExpansionChevron.vue
|
|
590
|
-
const _hoisted_1$
|
|
591
|
-
const _sfc_main$
|
|
710
|
+
const _hoisted_1$11 = ["aria-expanded", "aria-label"];
|
|
711
|
+
const _sfc_main$14 = /*@__PURE__*/ defineComponent({
|
|
592
712
|
name: "AstryxTableExpansionChevron",
|
|
593
713
|
__name: "TableExpansionChevron",
|
|
594
714
|
props: { expanded: { type: Boolean } },
|
|
@@ -606,7 +726,7 @@ const _sfc_main$13 = /*@__PURE__*/ defineComponent({
|
|
|
606
726
|
}, [createElementVNode("span", { class: normalizeClass(["astryx-table__chevron-icon", { "is-expanded": __props.expanded }]) }, [createVNode(_sfc_main$18, {
|
|
607
727
|
icon: "chevronRight",
|
|
608
728
|
size: "xsm"
|
|
609
|
-
})], 2)], 8, _hoisted_1$
|
|
729
|
+
})], 2)], 8, _hoisted_1$11);
|
|
610
730
|
};
|
|
611
731
|
}
|
|
612
732
|
});
|
|
@@ -627,7 +747,7 @@ function useTableRowExpansion(config) {
|
|
|
627
747
|
const current = toValue(config);
|
|
628
748
|
if (!(current.getIsItemExpandable?.(item) ?? true)) return null;
|
|
629
749
|
const key = current.getRowKey(item);
|
|
630
|
-
return h(_sfc_main$
|
|
750
|
+
return h(_sfc_main$14, {
|
|
631
751
|
expanded: current.expandedKeys.has(key),
|
|
632
752
|
onToggle: () => current.onToggle(key)
|
|
633
753
|
});
|
|
@@ -870,9 +990,10 @@ function useTableSelection(config) {
|
|
|
870
990
|
//#endregion
|
|
871
991
|
//#region src/Table/plugins/sortable.ts
|
|
872
992
|
function useTableSortableState(options) {
|
|
873
|
-
const sort = ref(options.defaultSort ?? []);
|
|
993
|
+
const sort = ref(toValue(options.defaultSort) ?? []);
|
|
994
|
+
const collator = useCollator({ numeric: true });
|
|
874
995
|
return {
|
|
875
|
-
sortedData: computed(() => sortRows(toValue(options.data), sort.value, toValue(options.columns) ?? [])),
|
|
996
|
+
sortedData: computed(() => sortRows(toValue(options.data), sort.value, toValue(options.columns) ?? [], collator.value)),
|
|
876
997
|
sort,
|
|
877
998
|
sortConfig: {
|
|
878
999
|
get sort() {
|
|
@@ -1052,13 +1173,13 @@ function selectColumn() {
|
|
|
1052
1173
|
}
|
|
1053
1174
|
//#endregion
|
|
1054
1175
|
//#region src/Table/TableTreeCell.vue
|
|
1055
|
-
const _hoisted_1$
|
|
1056
|
-
const _hoisted_2$
|
|
1176
|
+
const _hoisted_1$10 = ["aria-expanded", "aria-label"];
|
|
1177
|
+
const _hoisted_2$3 = {
|
|
1057
1178
|
key: 1,
|
|
1058
1179
|
class: "astryx-table__tree-spacer"
|
|
1059
1180
|
};
|
|
1060
1181
|
const _hoisted_3$3 = { class: "astryx-table__tree-label" };
|
|
1061
|
-
const _sfc_main$
|
|
1182
|
+
const _sfc_main$13 = /*@__PURE__*/ defineComponent({
|
|
1062
1183
|
name: "AstryxTableTreeCell",
|
|
1063
1184
|
__name: "TableTreeCell",
|
|
1064
1185
|
props: {
|
|
@@ -1095,12 +1216,19 @@ const _sfc_main$12 = /*@__PURE__*/ defineComponent({
|
|
|
1095
1216
|
}, [createElementVNode("span", { class: normalizeClass(["astryx-table__chevron-icon", { "is-expanded": __props.expanded }]) }, [createVNode(_sfc_main$18, {
|
|
1096
1217
|
icon: "chevronRight",
|
|
1097
1218
|
size: "xsm"
|
|
1098
|
-
})], 2)], 8, _hoisted_1$
|
|
1219
|
+
})], 2)], 8, _hoisted_1$10)) : (openBlock(), createElementBlock("span", _hoisted_2$3)), createElementVNode("span", _hoisted_3$3, [renderSlot(_ctx.$slots, "default")])], 4);
|
|
1099
1220
|
};
|
|
1100
1221
|
}
|
|
1101
1222
|
});
|
|
1102
1223
|
//#endregion
|
|
1103
1224
|
//#region src/Table/plugins/tree.ts
|
|
1225
|
+
/**
|
|
1226
|
+
* config 本身和里面的字段都可能是 ref 或 getter,两层都要解开。
|
|
1227
|
+
* 只解数据类字段:`idKey` 这类回调字段是函数,`toValue` 会把它当 getter 调用掉。
|
|
1228
|
+
*/
|
|
1229
|
+
function fieldValue(value) {
|
|
1230
|
+
return value === void 0 ? void 0 : toValue(value);
|
|
1231
|
+
}
|
|
1104
1232
|
function itemId(item, idKey) {
|
|
1105
1233
|
return typeof idKey === "function" ? String(idKey(item)) : String(item[idKey]);
|
|
1106
1234
|
}
|
|
@@ -1124,7 +1252,7 @@ function flattenTree(config, expandedIds) {
|
|
|
1124
1252
|
expandablePath.delete(id);
|
|
1125
1253
|
}
|
|
1126
1254
|
};
|
|
1127
|
-
walkAll(config.data);
|
|
1255
|
+
walkAll(fieldValue(config.data) ?? []);
|
|
1128
1256
|
const path = /* @__PURE__ */ new Set();
|
|
1129
1257
|
const walk = (items, level) => {
|
|
1130
1258
|
const siblings = config.sortSiblings ? config.sortSiblings([...items]) : items;
|
|
@@ -1147,7 +1275,7 @@ function flattenTree(config, expandedIds) {
|
|
|
1147
1275
|
}
|
|
1148
1276
|
}
|
|
1149
1277
|
};
|
|
1150
|
-
walk(config.data, 0);
|
|
1278
|
+
walk(fieldValue(config.data) ?? [], 0);
|
|
1151
1279
|
return {
|
|
1152
1280
|
rows,
|
|
1153
1281
|
meta,
|
|
@@ -1184,7 +1312,7 @@ function useTableTreeData(config) {
|
|
|
1184
1312
|
const meta = live.getRowMeta(item);
|
|
1185
1313
|
const body = original?.(item, index) ?? cellText(item[column.key]);
|
|
1186
1314
|
if (meta == null) return body;
|
|
1187
|
-
return h(_sfc_main$
|
|
1315
|
+
return h(_sfc_main$13, {
|
|
1188
1316
|
level: meta.level,
|
|
1189
1317
|
hasChildren: meta.hasChildren,
|
|
1190
1318
|
expanded: meta.isExpanded,
|
|
@@ -1237,8 +1365,8 @@ function useTableTreeData(config) {
|
|
|
1237
1365
|
}
|
|
1238
1366
|
function useTableTreeState(config) {
|
|
1239
1367
|
const initial = toValue(config);
|
|
1240
|
-
const internal = ref(new Set(initial.defaultExpandedIds ?? []));
|
|
1241
|
-
const expandedIds = computed(() => toValue(config).expandedIds ?? internal.value);
|
|
1368
|
+
const internal = ref(new Set(fieldValue(initial.defaultExpandedIds) ?? []));
|
|
1369
|
+
const expandedIds = computed(() => fieldValue(toValue(config).expandedIds) ?? internal.value);
|
|
1242
1370
|
const flat = computed(() => flattenTree(toValue(config), expandedIds.value));
|
|
1243
1371
|
const isAllExpanded = computed(() => expansionState(flat.value.expandableIds, expandedIds.value));
|
|
1244
1372
|
function commit(next) {
|
|
@@ -1283,6 +1411,72 @@ function useTableTreeState(config) {
|
|
|
1283
1411
|
};
|
|
1284
1412
|
}
|
|
1285
1413
|
//#endregion
|
|
1414
|
+
//#region src/Table/rowPatch.ts
|
|
1415
|
+
/**
|
|
1416
|
+
* 把多个插件的行事件合成一个处理器,按插件顺序依次调用。
|
|
1417
|
+
* 每个事件单独合并,插件只给其中一个事件时其余事件不受影响。
|
|
1418
|
+
*/
|
|
1419
|
+
function mergeListeners(sources) {
|
|
1420
|
+
if (sources.length === 0) return void 0;
|
|
1421
|
+
const enters = sources.map((source) => source.onMouseenter).filter((handler) => handler != null);
|
|
1422
|
+
const leaves = sources.map((source) => source.onMouseleave).filter((handler) => handler != null);
|
|
1423
|
+
const focuses = sources.map((source) => source.onFocus).filter((handler) => handler != null);
|
|
1424
|
+
const blurs = sources.map((source) => source.onBlur).filter((handler) => handler != null);
|
|
1425
|
+
const merged = {};
|
|
1426
|
+
if (enters.length > 0) merged.onMouseenter = (event) => {
|
|
1427
|
+
for (const handler of enters) handler(event);
|
|
1428
|
+
};
|
|
1429
|
+
if (leaves.length > 0) merged.onMouseleave = (event) => {
|
|
1430
|
+
for (const handler of leaves) handler(event);
|
|
1431
|
+
};
|
|
1432
|
+
if (focuses.length > 0) merged.onFocus = (event) => {
|
|
1433
|
+
for (const handler of focuses) handler(event);
|
|
1434
|
+
};
|
|
1435
|
+
if (blurs.length > 0) merged.onBlur = (event) => {
|
|
1436
|
+
for (const handler of blurs) handler(event);
|
|
1437
|
+
};
|
|
1438
|
+
return merged;
|
|
1439
|
+
}
|
|
1440
|
+
/**
|
|
1441
|
+
* 收集所有插件对这一行的贡献。分组头、展开面板、是否参与选择这类二选一的字段以第一个给出
|
|
1442
|
+
* 结果的插件为准,类名、属性、事件、行元素回调、右键菜单则依次叠加。
|
|
1443
|
+
*/
|
|
1444
|
+
function mergeRowPatches(plugins, row, index, columnCount) {
|
|
1445
|
+
const classes = [];
|
|
1446
|
+
const clicks = [];
|
|
1447
|
+
const refs = [];
|
|
1448
|
+
const menus = [];
|
|
1449
|
+
const listeners = [];
|
|
1450
|
+
const merged = {};
|
|
1451
|
+
for (const plugin of plugins) {
|
|
1452
|
+
const patch = plugin.rowPatch?.(row, index, columnCount);
|
|
1453
|
+
if (patch == null) continue;
|
|
1454
|
+
if (patch.group && merged.group == null) merged.group = patch.group;
|
|
1455
|
+
if (patch.panel && merged.panel == null) merged.panel = patch.panel;
|
|
1456
|
+
if (patch.suppressSelection) merged.suppressSelection = true;
|
|
1457
|
+
if (patch.skipRowIndex) merged.skipRowIndex = true;
|
|
1458
|
+
if (patch.class) classes.push(patch.class);
|
|
1459
|
+
if (patch.attrs) merged.attrs = {
|
|
1460
|
+
...merged.attrs,
|
|
1461
|
+
...patch.attrs
|
|
1462
|
+
};
|
|
1463
|
+
if (patch.onClick) clicks.push(patch.onClick);
|
|
1464
|
+
if (patch.ref) refs.push(patch.ref);
|
|
1465
|
+
if (patch.listeners) listeners.push(patch.listeners);
|
|
1466
|
+
if (patch.menu) menus.push(...patch.menu);
|
|
1467
|
+
}
|
|
1468
|
+
merged.class = classes.join(" ") || void 0;
|
|
1469
|
+
merged.menu = menus;
|
|
1470
|
+
merged.listeners = mergeListeners(listeners);
|
|
1471
|
+
if (clicks.length > 0) merged.onClick = (event) => {
|
|
1472
|
+
for (const click of clicks) click(event);
|
|
1473
|
+
};
|
|
1474
|
+
if (refs.length > 0) merged.ref = (element) => {
|
|
1475
|
+
for (const callback of refs) callback(element);
|
|
1476
|
+
};
|
|
1477
|
+
return merged;
|
|
1478
|
+
}
|
|
1479
|
+
//#endregion
|
|
1286
1480
|
//#region src/Table/TableDataRenderers.ts
|
|
1287
1481
|
/**
|
|
1288
1482
|
* 渲染单元格内容:优先走列自己的 renderCell,没给就回退成纯文本。
|
|
@@ -1377,10 +1571,11 @@ const PluginFooter = defineComponent({
|
|
|
1377
1571
|
});
|
|
1378
1572
|
//#endregion
|
|
1379
1573
|
//#region src/Table/TableFilterControl.vue
|
|
1380
|
-
const _hoisted_1$
|
|
1381
|
-
const _hoisted_2$
|
|
1382
|
-
const _hoisted_3$2 = { class: "astryx-table__filter-
|
|
1383
|
-
const
|
|
1574
|
+
const _hoisted_1$9 = ["data-variant"];
|
|
1575
|
+
const _hoisted_2$2 = ["aria-label", "data-active"];
|
|
1576
|
+
const _hoisted_3$2 = { class: "astryx-table__filter-popover" };
|
|
1577
|
+
const _hoisted_4$2 = { class: "astryx-table__filter-actions" };
|
|
1578
|
+
const _sfc_main$12 = /*@__PURE__*/ defineComponent({
|
|
1384
1579
|
__name: "TableFilterControl",
|
|
1385
1580
|
props: { filter: {} },
|
|
1386
1581
|
setup(__props) {
|
|
@@ -1388,6 +1583,11 @@ const _sfc_main$11 = /*@__PURE__*/ defineComponent({
|
|
|
1388
1583
|
const messages = useAstryxMessages();
|
|
1389
1584
|
const draft = ref(props.filter.value);
|
|
1390
1585
|
const isCompact = computed(() => props.filter.variant === "inline-compact");
|
|
1586
|
+
/** 有生效的筛选值时漏斗用强调色,一眼看出这一列被筛过。 */
|
|
1587
|
+
const hasValue = computed(() => {
|
|
1588
|
+
const value = props.filter.value;
|
|
1589
|
+
return value != null && value !== "" && !(Array.isArray(value) && value.length === 0);
|
|
1590
|
+
});
|
|
1391
1591
|
watch(() => props.filter.value, (value) => {
|
|
1392
1592
|
draft.value = value;
|
|
1393
1593
|
});
|
|
@@ -1521,7 +1721,7 @@ const _sfc_main$11 = /*@__PURE__*/ defineComponent({
|
|
|
1521
1721
|
"has-close-button": false,
|
|
1522
1722
|
width: 240
|
|
1523
1723
|
}, {
|
|
1524
|
-
content: withCtx(() => [createElementVNode("div",
|
|
1724
|
+
content: withCtx(() => [createElementVNode("div", _hoisted_3$2, [__props.filter.field.type === "string" ? (openBlock(), createBlock(_sfc_main$26, {
|
|
1525
1725
|
key: 0,
|
|
1526
1726
|
"model-value": textValue(draft.value),
|
|
1527
1727
|
label: __props.filter.field.label,
|
|
@@ -1594,7 +1794,7 @@ const _sfc_main$11 = /*@__PURE__*/ defineComponent({
|
|
|
1594
1794
|
"label",
|
|
1595
1795
|
"placeholder",
|
|
1596
1796
|
"options"
|
|
1597
|
-
])), createElementVNode("div",
|
|
1797
|
+
])), createElementVNode("div", _hoisted_4$2, [createVNode(_sfc_main$16, {
|
|
1598
1798
|
variant: "ghost",
|
|
1599
1799
|
size: "sm",
|
|
1600
1800
|
label: unref(messages).table.reset,
|
|
@@ -1605,7 +1805,7 @@ const _sfc_main$11 = /*@__PURE__*/ defineComponent({
|
|
|
1605
1805
|
}, {
|
|
1606
1806
|
default: withCtx(() => [createTextVNode(toDisplayString(unref(messages).table.reset), 1)]),
|
|
1607
1807
|
_: 1
|
|
1608
|
-
}, 8, ["label"]), createVNode(_sfc_main$
|
|
1808
|
+
}, 8, ["label"]), createVNode(_sfc_main$16, {
|
|
1609
1809
|
variant: "primary",
|
|
1610
1810
|
size: "sm",
|
|
1611
1811
|
label: unref(messages).table.apply,
|
|
@@ -1614,33 +1814,32 @@ const _sfc_main$11 = /*@__PURE__*/ defineComponent({
|
|
|
1614
1814
|
default: withCtx(() => [createTextVNode(toDisplayString(unref(messages).table.apply), 1)]),
|
|
1615
1815
|
_: 1
|
|
1616
1816
|
}, 8, ["label"])])])]),
|
|
1617
|
-
default: withCtx(() => [
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
label: __props.filter.field.label
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
}, 8, ["label"])]),
|
|
1817
|
+
default: withCtx(() => [createElementVNode("button", {
|
|
1818
|
+
type: "button",
|
|
1819
|
+
class: "astryx-table__filter-trigger",
|
|
1820
|
+
"aria-label": __props.filter.field.label,
|
|
1821
|
+
"data-active": hasValue.value || void 0
|
|
1822
|
+
}, [createVNode(_sfc_main$18, {
|
|
1823
|
+
icon: "funnel",
|
|
1824
|
+
size: "xsm",
|
|
1825
|
+
color: hasValue.value ? "accent" : "secondary"
|
|
1826
|
+
}, null, 8, ["color"])], 8, _hoisted_2$2)]),
|
|
1628
1827
|
_: 1
|
|
1629
|
-
}, 8, ["label"]))], 8, _hoisted_1$
|
|
1828
|
+
}, 8, ["label"]))], 8, _hoisted_1$9);
|
|
1630
1829
|
};
|
|
1631
1830
|
}
|
|
1632
1831
|
});
|
|
1633
1832
|
//#endregion
|
|
1634
1833
|
//#region src/Table/TableGroupHeader.vue
|
|
1635
|
-
const _hoisted_1$
|
|
1636
|
-
const _hoisted_2$
|
|
1834
|
+
const _hoisted_1$8 = ["data-pinned"];
|
|
1835
|
+
const _hoisted_2$1 = [
|
|
1637
1836
|
"data-pinned",
|
|
1638
1837
|
"aria-expanded",
|
|
1639
1838
|
"aria-label"
|
|
1640
1839
|
];
|
|
1641
1840
|
const _hoisted_3$1 = { class: "astryx-table__group-label" };
|
|
1642
1841
|
const _hoisted_4$1 = { class: "astryx-table__group-count" };
|
|
1643
|
-
const _sfc_main$
|
|
1842
|
+
const _sfc_main$11 = /*@__PURE__*/ defineComponent({
|
|
1644
1843
|
name: "AstryxTableGroupHeader",
|
|
1645
1844
|
__name: "TableGroupHeader",
|
|
1646
1845
|
props: {
|
|
@@ -1667,19 +1866,19 @@ const _sfc_main$10 = /*@__PURE__*/ defineComponent({
|
|
|
1667
1866
|
}, [createElementVNode("span", { class: normalizeClass(["astryx-table__chevron-icon", { "is-expanded": !__props.collapsed }]) }, [createVNode(_sfc_main$18, {
|
|
1668
1867
|
icon: "chevronRight",
|
|
1669
1868
|
size: "sm"
|
|
1670
|
-
})], 2)], 8, _hoisted_2$
|
|
1869
|
+
})], 2)], 8, _hoisted_2$1), renderSlot(_ctx.$slots, "default", {}, () => [createElementVNode("span", _hoisted_3$1, [createTextVNode(toDisplayString(__props.groupKey) + " ", 1), createElementVNode("span", _hoisted_4$1, "(" + toDisplayString(__props.count) + ")", 1)])])], 8, _hoisted_1$8);
|
|
1671
1870
|
};
|
|
1672
1871
|
}
|
|
1673
1872
|
});
|
|
1674
1873
|
//#endregion
|
|
1675
1874
|
//#region src/Table/TableRowMenu.vue
|
|
1676
|
-
const _hoisted_1$
|
|
1875
|
+
const _hoisted_1$7 = [
|
|
1677
1876
|
"tabindex",
|
|
1678
1877
|
"onClick",
|
|
1679
1878
|
"onFocusin",
|
|
1680
1879
|
"onMouseenter"
|
|
1681
1880
|
];
|
|
1682
|
-
const _sfc_main$
|
|
1881
|
+
const _sfc_main$10 = /*@__PURE__*/ defineComponent({
|
|
1683
1882
|
name: "AstryxTableRowMenu",
|
|
1684
1883
|
__name: "TableRowMenu",
|
|
1685
1884
|
props: {
|
|
@@ -1691,6 +1890,7 @@ const _sfc_main$9 = /*@__PURE__*/ defineComponent({
|
|
|
1691
1890
|
setup(__props, { emit: __emit }) {
|
|
1692
1891
|
const props = __props;
|
|
1693
1892
|
const emit = __emit;
|
|
1893
|
+
const teleportTarget = useLayerTeleportTarget();
|
|
1694
1894
|
const root = ref(null);
|
|
1695
1895
|
const active = ref(0);
|
|
1696
1896
|
function focusItem(index) {
|
|
@@ -1738,10 +1938,10 @@ const _sfc_main$9 = /*@__PURE__*/ defineComponent({
|
|
|
1738
1938
|
document.removeEventListener("pointerdown", onPointerDown);
|
|
1739
1939
|
});
|
|
1740
1940
|
return (_ctx, _cache) => {
|
|
1741
|
-
return openBlock(),
|
|
1941
|
+
return openBlock(), createBlock(Teleport, { to: unref(teleportTarget) }, [createElementVNode("div", {
|
|
1742
1942
|
ref_key: "root",
|
|
1743
1943
|
ref: root,
|
|
1744
|
-
class: "astryx-table-menu",
|
|
1944
|
+
class: "astryx-table-menu astryx-layer",
|
|
1745
1945
|
role: "menu",
|
|
1746
1946
|
tabindex: "-1",
|
|
1747
1947
|
style: normalizeStyle({
|
|
@@ -1763,15 +1963,208 @@ const _sfc_main$9 = /*@__PURE__*/ defineComponent({
|
|
|
1763
1963
|
key: 0,
|
|
1764
1964
|
icon: item.icon,
|
|
1765
1965
|
size: "xsm"
|
|
1766
|
-
}, null, 8, ["icon"])) : createCommentVNode("v-if", true), createElementVNode("span", null, toDisplayString(item.label), 1)], 40, _hoisted_1$
|
|
1767
|
-
}), 128))], 36);
|
|
1966
|
+
}, null, 8, ["icon"])) : createCommentVNode("v-if", true), createElementVNode("span", null, toDisplayString(item.label), 1)], 40, _hoisted_1$7);
|
|
1967
|
+
}), 128))], 36)], 8, ["to"]);
|
|
1768
1968
|
};
|
|
1769
1969
|
}
|
|
1770
1970
|
});
|
|
1771
1971
|
//#endregion
|
|
1972
|
+
//#region src/Table/TableScroll.vue
|
|
1973
|
+
const _hoisted_1$6 = ["aria-label", "tabindex"];
|
|
1974
|
+
const _sfc_main$9 = /*@__PURE__*/ defineComponent({
|
|
1975
|
+
inheritAttrs: false,
|
|
1976
|
+
__name: "TableScroll",
|
|
1977
|
+
props: { label: {} },
|
|
1978
|
+
emits: ["viewport"],
|
|
1979
|
+
setup(__props, { emit: __emit }) {
|
|
1980
|
+
const emit = __emit;
|
|
1981
|
+
const attrs = useAttrs();
|
|
1982
|
+
const scroll = useScrollableArea({
|
|
1983
|
+
axis: "inline",
|
|
1984
|
+
overscroll: "contain",
|
|
1985
|
+
keyboardAccess: { owner: "content" }
|
|
1986
|
+
});
|
|
1987
|
+
const viewportEl = shallowRef(null);
|
|
1988
|
+
function bindViewport(element) {
|
|
1989
|
+
scroll.viewport(element);
|
|
1990
|
+
const node = element instanceof HTMLElement ? element : null;
|
|
1991
|
+
viewportEl.value = node;
|
|
1992
|
+
emit("viewport", node);
|
|
1993
|
+
}
|
|
1994
|
+
useScrollbars(viewportEl);
|
|
1995
|
+
const tabindex = computed(() => scroll.state.value.inline.isScrollable ? 0 : void 0);
|
|
1996
|
+
const rootClass = computed(() => ["astryx-table-scroll", attrs.class]);
|
|
1997
|
+
const rootStyle = computed(() => [attrs.style, scroll.viewportStyle.value]);
|
|
1998
|
+
return (_ctx, _cache) => {
|
|
1999
|
+
return openBlock(), createElementBlock("div", mergeProps({
|
|
2000
|
+
ref: bindViewport,
|
|
2001
|
+
class: rootClass.value,
|
|
2002
|
+
role: "group",
|
|
2003
|
+
"aria-label": __props.label,
|
|
2004
|
+
tabindex: tabindex.value
|
|
2005
|
+
}, unref(scroll).viewportAttrs.value, { style: rootStyle.value }), [createElementVNode("div", {
|
|
2006
|
+
ref: unref(scroll).content,
|
|
2007
|
+
"data-scroll-content": ""
|
|
2008
|
+
}, [renderSlot(_ctx.$slots, "default")], 512)], 16, _hoisted_1$6);
|
|
2009
|
+
};
|
|
2010
|
+
}
|
|
2011
|
+
});
|
|
2012
|
+
//#endregion
|
|
2013
|
+
//#region src/Table/useTableColumnResizeSession.ts
|
|
2014
|
+
/**
|
|
2015
|
+
* 表头列宽把手的指针拖动和键盘步进。
|
|
2016
|
+
* 宽度怎么分给相邻列由 `resizeColumnWidths` 决定,这里只负责会话和预览。
|
|
2017
|
+
*/
|
|
2018
|
+
function useTableColumnResizeSession(options) {
|
|
2019
|
+
function buildResizeState(cell, column) {
|
|
2020
|
+
const row = cell.parentElement;
|
|
2021
|
+
if (row == null) return null;
|
|
2022
|
+
const table = cell.closest("table");
|
|
2023
|
+
const contributions = options.contributions();
|
|
2024
|
+
const dragged = contributions.get(column.key);
|
|
2025
|
+
const snapshots = [];
|
|
2026
|
+
const elements = /* @__PURE__ */ new Map();
|
|
2027
|
+
for (const child of Array.from(row.children)) {
|
|
2028
|
+
if (!(child instanceof HTMLElement)) continue;
|
|
2029
|
+
const key = child.dataset.column;
|
|
2030
|
+
if (key == null) continue;
|
|
2031
|
+
const contribution = contributions.get(key);
|
|
2032
|
+
if (contribution == null) continue;
|
|
2033
|
+
const measured = child.getBoundingClientRect().width;
|
|
2034
|
+
snapshots.push({
|
|
2035
|
+
key,
|
|
2036
|
+
initialWidth: contribution.currentWidth ?? (measured > 0 ? measured : 0),
|
|
2037
|
+
minWidth: contribution.minWidth,
|
|
2038
|
+
maxWidth: contribution.maxWidth
|
|
2039
|
+
});
|
|
2040
|
+
elements.set(key, child);
|
|
2041
|
+
}
|
|
2042
|
+
const resizeIndex = snapshots.findIndex((item) => item.key === column.key);
|
|
2043
|
+
if (resizeIndex < 0) return null;
|
|
2044
|
+
return {
|
|
2045
|
+
snapshots,
|
|
2046
|
+
resizeIndex,
|
|
2047
|
+
neighborIndex: dragged?.neighborKey == null ? null : snapshots.findIndex((item) => item.key === dragged.neighborKey),
|
|
2048
|
+
tableWidth: table?.getBoundingClientRect().width ?? 0,
|
|
2049
|
+
direction: columnResizeDirectionSign(getComputedStyle(cell).direction),
|
|
2050
|
+
elements
|
|
2051
|
+
};
|
|
2052
|
+
}
|
|
2053
|
+
function applyResize(widths, state) {
|
|
2054
|
+
state.snapshots.forEach((snapshot, index) => {
|
|
2055
|
+
const element = state.elements.get(snapshot.key);
|
|
2056
|
+
const width = widths[index];
|
|
2057
|
+
if (element == null || width == null) return;
|
|
2058
|
+
const pixels = `${width}px`;
|
|
2059
|
+
element.style.width = pixels;
|
|
2060
|
+
element.style.minWidth = pixels;
|
|
2061
|
+
element.style.maxWidth = pixels;
|
|
2062
|
+
});
|
|
2063
|
+
}
|
|
2064
|
+
function resetResizeStyles(state) {
|
|
2065
|
+
for (const element of state.elements.values()) {
|
|
2066
|
+
element.style.width = "";
|
|
2067
|
+
element.style.minWidth = "";
|
|
2068
|
+
element.style.maxWidth = "";
|
|
2069
|
+
}
|
|
2070
|
+
}
|
|
2071
|
+
/** 算一次拖动结果:先把预览写到表头,再把变了的列交给插件。 */
|
|
2072
|
+
function commitResize(state, delta) {
|
|
2073
|
+
const widths = resizeColumnWidths(state, delta);
|
|
2074
|
+
applyResize(widths, state);
|
|
2075
|
+
const last = state.snapshots.length - 1;
|
|
2076
|
+
const updates = {};
|
|
2077
|
+
state.snapshots.forEach((snapshot, index) => {
|
|
2078
|
+
const width = widths[index];
|
|
2079
|
+
if (index !== last && width != null) updates[snapshot.key] = width;
|
|
2080
|
+
});
|
|
2081
|
+
if (Object.keys(updates).length === 0) return;
|
|
2082
|
+
for (const plugin of options.plugins()) plugin.onColumnResizeEnd?.(updates);
|
|
2083
|
+
}
|
|
2084
|
+
function resizeLabel(column) {
|
|
2085
|
+
const header = typeof column.header === "string" && column.header.length > 0 ? column.header : column.key;
|
|
2086
|
+
return options.resizeColumnLabel(header);
|
|
2087
|
+
}
|
|
2088
|
+
function resizeMax(contribution) {
|
|
2089
|
+
const max = contribution?.maxWidth;
|
|
2090
|
+
return max == null || !Number.isFinite(max) ? void 0 : max;
|
|
2091
|
+
}
|
|
2092
|
+
function startResize(event, column) {
|
|
2093
|
+
const target = event.currentTarget;
|
|
2094
|
+
if (!(target instanceof HTMLElement) || event.button !== 0) return;
|
|
2095
|
+
const cell = target.closest("th");
|
|
2096
|
+
const state = cell == null ? null : buildResizeState(cell, column);
|
|
2097
|
+
if (state == null || cell == null) return;
|
|
2098
|
+
event.preventDefault();
|
|
2099
|
+
const pointerId = event.pointerId;
|
|
2100
|
+
const startX = event.clientX;
|
|
2101
|
+
const table = cell.closest("table");
|
|
2102
|
+
const previousUserSelect = table?.style.userSelect ?? "";
|
|
2103
|
+
if (table != null) table.style.userSelect = "none";
|
|
2104
|
+
target.setAttribute("data-resizing", "true");
|
|
2105
|
+
target.setPointerCapture(pointerId);
|
|
2106
|
+
const listeners = new AbortController();
|
|
2107
|
+
const move = (moveEvent) => {
|
|
2108
|
+
if (moveEvent.pointerId !== pointerId) return;
|
|
2109
|
+
applyResize(resizeColumnWidths(state, (moveEvent.clientX - startX) * state.direction), state);
|
|
2110
|
+
};
|
|
2111
|
+
const finish = () => {
|
|
2112
|
+
listeners.abort();
|
|
2113
|
+
target.removeAttribute("data-resizing");
|
|
2114
|
+
if (target.hasPointerCapture(pointerId)) target.releasePointerCapture(pointerId);
|
|
2115
|
+
if (table != null) table.style.userSelect = previousUserSelect;
|
|
2116
|
+
};
|
|
2117
|
+
const stop = (upEvent) => {
|
|
2118
|
+
if (upEvent.pointerId !== pointerId) return;
|
|
2119
|
+
finish();
|
|
2120
|
+
commitResize(state, (upEvent.clientX - startX) * state.direction);
|
|
2121
|
+
};
|
|
2122
|
+
const cancel = (cancelEvent) => {
|
|
2123
|
+
if (cancelEvent.pointerId !== pointerId) return;
|
|
2124
|
+
finish();
|
|
2125
|
+
resetResizeStyles(state);
|
|
2126
|
+
};
|
|
2127
|
+
const listenerOptions = { signal: listeners.signal };
|
|
2128
|
+
target.addEventListener("pointermove", move, listenerOptions);
|
|
2129
|
+
target.addEventListener("pointerup", stop, listenerOptions);
|
|
2130
|
+
target.addEventListener("pointercancel", cancel, listenerOptions);
|
|
2131
|
+
}
|
|
2132
|
+
function onResizeKeydown(event, column) {
|
|
2133
|
+
const handle = event.currentTarget;
|
|
2134
|
+
if (!(handle instanceof HTMLElement)) return;
|
|
2135
|
+
const cell = handle.closest("th");
|
|
2136
|
+
const state = cell == null ? null : buildResizeState(cell, column);
|
|
2137
|
+
if (state == null) return;
|
|
2138
|
+
const self = state.snapshots[state.resizeIndex];
|
|
2139
|
+
if (self == null) return;
|
|
2140
|
+
const step = columnResizeStep(event.shiftKey);
|
|
2141
|
+
let delta = null;
|
|
2142
|
+
switch (event.key) {
|
|
2143
|
+
case "ArrowRight":
|
|
2144
|
+
delta = step * state.direction;
|
|
2145
|
+
break;
|
|
2146
|
+
case "ArrowLeft":
|
|
2147
|
+
delta = -step * state.direction;
|
|
2148
|
+
break;
|
|
2149
|
+
case "Home":
|
|
2150
|
+
delta = self.minWidth - self.initialWidth;
|
|
2151
|
+
break;
|
|
2152
|
+
case "End": if (Number.isFinite(self.maxWidth)) delta = self.maxWidth - self.initialWidth;
|
|
2153
|
+
}
|
|
2154
|
+
if (delta == null) return;
|
|
2155
|
+
event.preventDefault();
|
|
2156
|
+
commitResize(state, delta);
|
|
2157
|
+
}
|
|
2158
|
+
return {
|
|
2159
|
+
startResize,
|
|
2160
|
+
onResizeKeydown,
|
|
2161
|
+
resizeLabel,
|
|
2162
|
+
resizeMax
|
|
2163
|
+
};
|
|
2164
|
+
}
|
|
2165
|
+
//#endregion
|
|
1772
2166
|
//#region src/Table/TableData.vue
|
|
1773
|
-
const _hoisted_1$5 = [
|
|
1774
|
-
const _hoisted_2$1 = [
|
|
2167
|
+
const _hoisted_1$5 = [
|
|
1775
2168
|
"data-density",
|
|
1776
2169
|
"data-dividers",
|
|
1777
2170
|
"data-striped",
|
|
@@ -1781,26 +2174,26 @@ const _hoisted_2$1 = [
|
|
|
1781
2174
|
"data-row-highlight",
|
|
1782
2175
|
"aria-rowcount"
|
|
1783
2176
|
];
|
|
1784
|
-
const
|
|
2177
|
+
const _hoisted_2 = [
|
|
1785
2178
|
"data-column",
|
|
1786
2179
|
"data-align",
|
|
1787
2180
|
"aria-sort"
|
|
1788
2181
|
];
|
|
1789
|
-
const
|
|
1790
|
-
const
|
|
1791
|
-
const
|
|
2182
|
+
const _hoisted_3 = { class: "astryx-table__header" };
|
|
2183
|
+
const _hoisted_4 = { class: "astryx-table__header-line" };
|
|
2184
|
+
const _hoisted_5 = [
|
|
1792
2185
|
"data-align",
|
|
1793
2186
|
"aria-label",
|
|
1794
2187
|
"onClick"
|
|
1795
2188
|
];
|
|
1796
|
-
const
|
|
1797
|
-
const
|
|
1798
|
-
const
|
|
2189
|
+
const _hoisted_6 = { key: 1 };
|
|
2190
|
+
const _hoisted_7 = ["data-active"];
|
|
2191
|
+
const _hoisted_8 = {
|
|
1799
2192
|
key: 2,
|
|
1800
2193
|
class: "astryx-table__sort-rank"
|
|
1801
2194
|
};
|
|
1802
|
-
const
|
|
1803
|
-
const
|
|
2195
|
+
const _hoisted_9 = { key: 2 };
|
|
2196
|
+
const _hoisted_10 = [
|
|
1804
2197
|
"aria-label",
|
|
1805
2198
|
"aria-valuenow",
|
|
1806
2199
|
"aria-valuemin",
|
|
@@ -1808,20 +2201,24 @@ const _hoisted_11 = [
|
|
|
1808
2201
|
"onPointerdown",
|
|
1809
2202
|
"onKeydown"
|
|
1810
2203
|
];
|
|
1811
|
-
const
|
|
1812
|
-
const
|
|
1813
|
-
const
|
|
2204
|
+
const _hoisted_11 = { key: 0 };
|
|
2205
|
+
const _hoisted_12 = ["colspan"];
|
|
2206
|
+
const _hoisted_13 = [
|
|
1814
2207
|
"aria-selected",
|
|
1815
2208
|
"aria-rowindex",
|
|
2209
|
+
"onBlur",
|
|
1816
2210
|
"onClick",
|
|
1817
|
-
"onContextmenu"
|
|
2211
|
+
"onContextmenu",
|
|
2212
|
+
"onFocus",
|
|
2213
|
+
"onMouseenter",
|
|
2214
|
+
"onMouseleave"
|
|
1818
2215
|
];
|
|
1819
|
-
const
|
|
1820
|
-
const
|
|
1821
|
-
const
|
|
1822
|
-
const
|
|
1823
|
-
/** 收集这一行表头的宽度快照,用来算拖动后的宽度。 */
|
|
2216
|
+
const _hoisted_14 = ["colspan"];
|
|
2217
|
+
const _hoisted_15 = ["data-column", "data-align"];
|
|
2218
|
+
const _hoisted_16 = ["data-variant"];
|
|
2219
|
+
const _hoisted_17 = ["colspan"];
|
|
1824
2220
|
const _sfc_main$8 = /*@__PURE__*/ defineComponent({
|
|
2221
|
+
inheritAttrs: false,
|
|
1825
2222
|
__name: "TableData",
|
|
1826
2223
|
props: {
|
|
1827
2224
|
rows: {},
|
|
@@ -1836,14 +2233,15 @@ const _sfc_main$8 = /*@__PURE__*/ defineComponent({
|
|
|
1836
2233
|
textOverflow: {},
|
|
1837
2234
|
verticalAlign: {},
|
|
1838
2235
|
rowIndexStart: {},
|
|
1839
|
-
rowCount: {}
|
|
1840
|
-
minWidth: {}
|
|
2236
|
+
rowCount: {}
|
|
1841
2237
|
},
|
|
1842
2238
|
setup(__props) {
|
|
1843
2239
|
const props = __props;
|
|
2240
|
+
const attrs = useAttrs();
|
|
1844
2241
|
const messages = useAstryxMessages();
|
|
1845
2242
|
const scrollRoot = ref(null);
|
|
1846
2243
|
const menu = ref(null);
|
|
2244
|
+
const scrollStyle = computed(() => splitStyleMinWidth(attrs.style).style);
|
|
1847
2245
|
const resolvedColumns = computed(() => props.plugins.reduce((columns, plugin) => plugin.transformColumns?.(columns) ?? columns, [...props.columns]));
|
|
1848
2246
|
const widths = computed(() => resolveColumnWidths(resolvedColumns.value));
|
|
1849
2247
|
const selection = computed(() => props.plugins.find((plugin) => plugin.selection)?.selection);
|
|
@@ -1866,6 +2264,12 @@ const _sfc_main$8 = /*@__PURE__*/ defineComponent({
|
|
|
1866
2264
|
};
|
|
1867
2265
|
}
|
|
1868
2266
|
const resizeContributions = computed(() => new Map(resolvedColumns.value.map((column) => [column.key, resizeContribution(column)])));
|
|
2267
|
+
const { startResize, onResizeKeydown, resizeLabel, resizeMax } = useTableColumnResizeSession({
|
|
2268
|
+
plugins: () => props.plugins,
|
|
2269
|
+
contributions: () => resizeContributions.value,
|
|
2270
|
+
resizeColumnLabel: (header) => messages.value.table.resizeColumn(header)
|
|
2271
|
+
});
|
|
2272
|
+
const tableStyle = computed(() => ({ minWidth: resolveTableMinWidth(splitStyleMinWidth(attrs.style).minWidth, widths.value.tableMinWidth) }));
|
|
1869
2273
|
const layoutColumns = computed(() => selection.value ? [selectColumn(), ...resolvedColumns.value] : resolvedColumns.value);
|
|
1870
2274
|
const columnCount = computed(() => layoutColumns.value.length);
|
|
1871
2275
|
const trackRows = computed(() => props.rowCount != null || props.rowIndexStart != null);
|
|
@@ -1876,10 +2280,12 @@ const _sfc_main$8 = /*@__PURE__*/ defineComponent({
|
|
|
1876
2280
|
function bindScroll(element) {
|
|
1877
2281
|
for (const plugin of props.plugins) plugin.bindScrollRoot?.(element);
|
|
1878
2282
|
}
|
|
1879
|
-
|
|
1880
|
-
if (
|
|
1881
|
-
if (
|
|
1882
|
-
|
|
2283
|
+
function onViewport(element) {
|
|
2284
|
+
if (scrollRoot.value === element) return;
|
|
2285
|
+
if (scrollRoot.value != null) bindScroll(null);
|
|
2286
|
+
scrollRoot.value = element;
|
|
2287
|
+
if (element != null) bindScroll(element);
|
|
2288
|
+
}
|
|
1883
2289
|
onBeforeUnmount(() => {
|
|
1884
2290
|
bindScroll(null);
|
|
1885
2291
|
});
|
|
@@ -1906,6 +2312,16 @@ const _sfc_main$8 = /*@__PURE__*/ defineComponent({
|
|
|
1906
2312
|
}
|
|
1907
2313
|
return null;
|
|
1908
2314
|
}
|
|
2315
|
+
const filterContributions = computed(() => new Map(resolvedColumns.value.map((column) => [column.key, filterFor(column)])));
|
|
2316
|
+
/**
|
|
2317
|
+
* 取某一列落在指定位置的筛选控件。
|
|
2318
|
+
* `popover` 是一个漏斗按钮,跟标题、排序图标同一行;`inline` 系列是输入框,垫在标题下面。
|
|
2319
|
+
*/
|
|
2320
|
+
function filterAt(column, place) {
|
|
2321
|
+
const filter = filterContributions.value.get(column.key) ?? null;
|
|
2322
|
+
if (filter == null) return null;
|
|
2323
|
+
return (filter.variant === "popover" ? "line" : "below") === place ? filter : null;
|
|
2324
|
+
}
|
|
1909
2325
|
function rowKey(row, index) {
|
|
1910
2326
|
if (typeof props.idKey === "function") return props.idKey(row);
|
|
1911
2327
|
const id = row[props.idKey];
|
|
@@ -1944,38 +2360,19 @@ const _sfc_main$8 = /*@__PURE__*/ defineComponent({
|
|
|
1944
2360
|
if (column.verticalAlign) style.verticalAlign = column.verticalAlign;
|
|
1945
2361
|
return style;
|
|
1946
2362
|
}
|
|
1947
|
-
|
|
1948
|
-
|
|
1949
|
-
const
|
|
1950
|
-
|
|
1951
|
-
|
|
1952
|
-
|
|
1953
|
-
const patch = plugin.rowPatch?.(row, index, columnCount.value);
|
|
1954
|
-
if (patch == null) continue;
|
|
1955
|
-
if (patch.group && merged.group == null) merged.group = patch.group;
|
|
1956
|
-
if (patch.panel && merged.panel == null) merged.panel = patch.panel;
|
|
1957
|
-
if (patch.suppressSelection) merged.suppressSelection = true;
|
|
1958
|
-
if (patch.skipRowIndex) merged.skipRowIndex = true;
|
|
1959
|
-
if (patch.class) classes.push(patch.class);
|
|
1960
|
-
if (patch.attrs) merged.attrs = {
|
|
1961
|
-
...merged.attrs,
|
|
1962
|
-
...patch.attrs
|
|
1963
|
-
};
|
|
1964
|
-
if (patch.onClick) clicks.push(patch.onClick);
|
|
1965
|
-
if (patch.menu) menus.push(...patch.menu);
|
|
1966
|
-
}
|
|
1967
|
-
merged.class = classes.join(" ") || void 0;
|
|
1968
|
-
merged.menu = menus;
|
|
1969
|
-
if (clicks.length > 0) merged.onClick = (event) => {
|
|
1970
|
-
for (const click of clicks) click(event);
|
|
2363
|
+
/** Vue 的 ref 回调拿到的是更宽的 `Element`,收窄成 `<tr>` 再交给插件。 */
|
|
2364
|
+
function rowRefBinding(patch) {
|
|
2365
|
+
const callback = patch.ref;
|
|
2366
|
+
if (callback == null) return void 0;
|
|
2367
|
+
return (element) => {
|
|
2368
|
+
callback(element);
|
|
1971
2369
|
};
|
|
1972
|
-
return merged;
|
|
1973
2370
|
}
|
|
1974
2371
|
const entries = computed(() => {
|
|
1975
2372
|
let ordinal = 0;
|
|
1976
2373
|
const start = props.rowIndexStart ?? 1;
|
|
1977
2374
|
return props.rows.map((row, index) => {
|
|
1978
|
-
const patch =
|
|
2375
|
+
const patch = mergeRowPatches(props.plugins, row, index, columnCount.value);
|
|
1979
2376
|
let rowIndex;
|
|
1980
2377
|
if (trackRows.value && !patch.skipRowIndex) {
|
|
1981
2378
|
rowIndex = start + ordinal;
|
|
@@ -1986,6 +2383,7 @@ const _sfc_main$8 = /*@__PURE__*/ defineComponent({
|
|
|
1986
2383
|
row,
|
|
1987
2384
|
index,
|
|
1988
2385
|
patch,
|
|
2386
|
+
ref: rowRefBinding(patch),
|
|
1989
2387
|
rowIndex
|
|
1990
2388
|
};
|
|
1991
2389
|
});
|
|
@@ -1999,144 +2397,6 @@ const _sfc_main$8 = /*@__PURE__*/ defineComponent({
|
|
|
1999
2397
|
items
|
|
2000
2398
|
};
|
|
2001
2399
|
}
|
|
2002
|
-
function buildResizeState(cell, column) {
|
|
2003
|
-
const row = cell.parentElement;
|
|
2004
|
-
if (row == null) return null;
|
|
2005
|
-
const table = cell.closest("table");
|
|
2006
|
-
const dragged = resizeContributions.value.get(column.key);
|
|
2007
|
-
const snapshots = [];
|
|
2008
|
-
const elements = /* @__PURE__ */ new Map();
|
|
2009
|
-
for (const child of Array.from(row.children)) {
|
|
2010
|
-
if (!(child instanceof HTMLElement)) continue;
|
|
2011
|
-
const key = child.dataset.column;
|
|
2012
|
-
if (key == null) continue;
|
|
2013
|
-
const contribution = resizeContributions.value.get(key);
|
|
2014
|
-
if (contribution == null) continue;
|
|
2015
|
-
const measured = child.getBoundingClientRect().width;
|
|
2016
|
-
snapshots.push({
|
|
2017
|
-
key,
|
|
2018
|
-
initialWidth: contribution.currentWidth ?? (measured > 0 ? measured : 0),
|
|
2019
|
-
minWidth: contribution.minWidth,
|
|
2020
|
-
maxWidth: contribution.maxWidth
|
|
2021
|
-
});
|
|
2022
|
-
elements.set(key, child);
|
|
2023
|
-
}
|
|
2024
|
-
const resizeIndex = snapshots.findIndex((item) => item.key === column.key);
|
|
2025
|
-
if (resizeIndex < 0) return null;
|
|
2026
|
-
return {
|
|
2027
|
-
snapshots,
|
|
2028
|
-
resizeIndex,
|
|
2029
|
-
neighborIndex: dragged?.neighborKey == null ? null : snapshots.findIndex((item) => item.key === dragged.neighborKey),
|
|
2030
|
-
tableWidth: table?.getBoundingClientRect().width ?? 0,
|
|
2031
|
-
direction: columnResizeDirectionSign(getComputedStyle(cell).direction),
|
|
2032
|
-
elements
|
|
2033
|
-
};
|
|
2034
|
-
}
|
|
2035
|
-
function applyResize(widths, state) {
|
|
2036
|
-
state.snapshots.forEach((snapshot, index) => {
|
|
2037
|
-
const element = state.elements.get(snapshot.key);
|
|
2038
|
-
const width = widths[index];
|
|
2039
|
-
if (element == null || width == null) return;
|
|
2040
|
-
const pixels = `${width}px`;
|
|
2041
|
-
element.style.width = pixels;
|
|
2042
|
-
element.style.minWidth = pixels;
|
|
2043
|
-
element.style.maxWidth = pixels;
|
|
2044
|
-
});
|
|
2045
|
-
}
|
|
2046
|
-
function resetResizeStyles(state) {
|
|
2047
|
-
for (const element of state.elements.values()) {
|
|
2048
|
-
element.style.width = "";
|
|
2049
|
-
element.style.minWidth = "";
|
|
2050
|
-
element.style.maxWidth = "";
|
|
2051
|
-
}
|
|
2052
|
-
}
|
|
2053
|
-
/** 算一次拖动结果:先把预览写到表头,再把变了的列交给插件。 */
|
|
2054
|
-
function commitResize(state, delta) {
|
|
2055
|
-
const widths = resizeColumnWidths(state, delta);
|
|
2056
|
-
applyResize(widths, state);
|
|
2057
|
-
const last = state.snapshots.length - 1;
|
|
2058
|
-
const updates = {};
|
|
2059
|
-
state.snapshots.forEach((snapshot, index) => {
|
|
2060
|
-
const width = widths[index];
|
|
2061
|
-
if (index !== last && width != null) updates[snapshot.key] = width;
|
|
2062
|
-
});
|
|
2063
|
-
if (Object.keys(updates).length === 0) return;
|
|
2064
|
-
for (const plugin of props.plugins) plugin.onColumnResizeEnd?.(updates);
|
|
2065
|
-
}
|
|
2066
|
-
function resizeLabel(column) {
|
|
2067
|
-
const header = typeof column.header === "string" && column.header.length > 0 ? column.header : column.key;
|
|
2068
|
-
return messages.value.table.resizeColumn(header);
|
|
2069
|
-
}
|
|
2070
|
-
function resizeMax(contribution) {
|
|
2071
|
-
const max = contribution?.maxWidth;
|
|
2072
|
-
return max == null || !Number.isFinite(max) ? void 0 : max;
|
|
2073
|
-
}
|
|
2074
|
-
function startResize(event, column) {
|
|
2075
|
-
const target = event.currentTarget;
|
|
2076
|
-
if (!(target instanceof HTMLElement) || event.button !== 0) return;
|
|
2077
|
-
const cell = target.closest("th");
|
|
2078
|
-
const state = cell == null ? null : buildResizeState(cell, column);
|
|
2079
|
-
if (state == null || cell == null) return;
|
|
2080
|
-
event.preventDefault();
|
|
2081
|
-
const pointerId = event.pointerId;
|
|
2082
|
-
const startX = event.clientX;
|
|
2083
|
-
const table = cell.closest("table");
|
|
2084
|
-
const previousUserSelect = table?.style.userSelect ?? "";
|
|
2085
|
-
if (table != null) table.style.userSelect = "none";
|
|
2086
|
-
target.setAttribute("data-resizing", "true");
|
|
2087
|
-
target.setPointerCapture(pointerId);
|
|
2088
|
-
const listeners = new AbortController();
|
|
2089
|
-
const move = (moveEvent) => {
|
|
2090
|
-
if (moveEvent.pointerId !== pointerId) return;
|
|
2091
|
-
applyResize(resizeColumnWidths(state, (moveEvent.clientX - startX) * state.direction), state);
|
|
2092
|
-
};
|
|
2093
|
-
const finish = () => {
|
|
2094
|
-
listeners.abort();
|
|
2095
|
-
target.removeAttribute("data-resizing");
|
|
2096
|
-
if (target.hasPointerCapture(pointerId)) target.releasePointerCapture(pointerId);
|
|
2097
|
-
if (table != null) table.style.userSelect = previousUserSelect;
|
|
2098
|
-
};
|
|
2099
|
-
const stop = (upEvent) => {
|
|
2100
|
-
if (upEvent.pointerId !== pointerId) return;
|
|
2101
|
-
finish();
|
|
2102
|
-
commitResize(state, (upEvent.clientX - startX) * state.direction);
|
|
2103
|
-
};
|
|
2104
|
-
const cancel = (cancelEvent) => {
|
|
2105
|
-
if (cancelEvent.pointerId !== pointerId) return;
|
|
2106
|
-
finish();
|
|
2107
|
-
resetResizeStyles(state);
|
|
2108
|
-
};
|
|
2109
|
-
const options = { signal: listeners.signal };
|
|
2110
|
-
target.addEventListener("pointermove", move, options);
|
|
2111
|
-
target.addEventListener("pointerup", stop, options);
|
|
2112
|
-
target.addEventListener("pointercancel", cancel, options);
|
|
2113
|
-
}
|
|
2114
|
-
function onResizeKeydown(event, column) {
|
|
2115
|
-
const handle = event.currentTarget;
|
|
2116
|
-
if (!(handle instanceof HTMLElement)) return;
|
|
2117
|
-
const cell = handle.closest("th");
|
|
2118
|
-
const state = cell == null ? null : buildResizeState(cell, column);
|
|
2119
|
-
if (state == null) return;
|
|
2120
|
-
const self = state.snapshots[state.resizeIndex];
|
|
2121
|
-
if (self == null) return;
|
|
2122
|
-
const step = columnResizeStep(event.shiftKey);
|
|
2123
|
-
let delta = null;
|
|
2124
|
-
switch (event.key) {
|
|
2125
|
-
case "ArrowRight":
|
|
2126
|
-
delta = step * state.direction;
|
|
2127
|
-
break;
|
|
2128
|
-
case "ArrowLeft":
|
|
2129
|
-
delta = -step * state.direction;
|
|
2130
|
-
break;
|
|
2131
|
-
case "Home":
|
|
2132
|
-
delta = self.minWidth - self.initialWidth;
|
|
2133
|
-
break;
|
|
2134
|
-
case "End": if (Number.isFinite(self.maxWidth)) delta = self.maxWidth - self.initialWidth;
|
|
2135
|
-
}
|
|
2136
|
-
if (delta == null) return;
|
|
2137
|
-
event.preventDefault();
|
|
2138
|
-
commitResize(state, delta);
|
|
2139
|
-
}
|
|
2140
2400
|
function selectCellPatch(kind, row) {
|
|
2141
2401
|
return mergeCell(selectColumn(), row, kind);
|
|
2142
2402
|
}
|
|
@@ -2147,197 +2407,215 @@ const _sfc_main$8 = /*@__PURE__*/ defineComponent({
|
|
|
2147
2407
|
return selection.value?.isEnabled?.(row) ?? true;
|
|
2148
2408
|
}
|
|
2149
2409
|
return (_ctx, _cache) => {
|
|
2150
|
-
return openBlock(),
|
|
2151
|
-
|
|
2152
|
-
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2159
|
-
|
|
2160
|
-
|
|
2161
|
-
|
|
2162
|
-
|
|
2163
|
-
|
|
2164
|
-
|
|
2165
|
-
|
|
2166
|
-
|
|
2167
|
-
|
|
2168
|
-
|
|
2169
|
-
|
|
2170
|
-
|
|
2171
|
-
|
|
2172
|
-
|
|
2173
|
-
|
|
2174
|
-
|
|
2175
|
-
|
|
2176
|
-
key: 0,
|
|
2177
|
-
class: ["astryx-table__select", selectCellPatch("header", null).class],
|
|
2178
|
-
scope: "col"
|
|
2179
|
-
}, selectCellPatch("header", null).attrs, { style: selectCellPatch("header", null).style }), [createVNode(_sfc_main$19, {
|
|
2180
|
-
"model-value": selection.value.isIndeterminate() ? "indeterminate" : selection.value.isAllSelected(),
|
|
2181
|
-
label: unref(messages).table.selectAllRows,
|
|
2182
|
-
"is-label-hidden": "",
|
|
2183
|
-
size: "sm",
|
|
2184
|
-
"onUpdate:modelValue": _cache[0] || (_cache[0] = (value) => selection.value?.selectAll(value === true))
|
|
2185
|
-
}, null, 8, ["model-value", "label"])], 16)) : createCommentVNode("v-if", true), (openBlock(true), createElementBlock(Fragment, null, renderList(resolvedColumns.value, (column) => {
|
|
2186
|
-
return openBlock(), createElementBlock("th", mergeProps({
|
|
2187
|
-
key: column.key,
|
|
2188
|
-
scope: "col",
|
|
2189
|
-
"data-column": column.key,
|
|
2190
|
-
"data-align": column.align,
|
|
2191
|
-
class: mergeCell(column, null, "header").class
|
|
2192
|
-
}, { ref_for: true }, mergeCell(column, null, "header").attrs, {
|
|
2193
|
-
style: headerStyle(column),
|
|
2194
|
-
"aria-sort": sortFor(column)?.direction ?? void 0
|
|
2195
|
-
}), [
|
|
2196
|
-
createElementVNode("div", _hoisted_4, [createElementVNode("div", _hoisted_5, [createVNode(unref(HeaderAddon), {
|
|
2197
|
-
column,
|
|
2198
|
-
plugins: __props.plugins
|
|
2199
|
-
}, null, 8, ["column", "plugins"]), sortFor(column) ? (openBlock(), createElementBlock("button", {
|
|
2200
|
-
key: 0,
|
|
2201
|
-
type: "button",
|
|
2202
|
-
class: "astryx-table__sort",
|
|
2203
|
-
"data-align": column.align,
|
|
2204
|
-
"aria-label": sortFor(column)?.label,
|
|
2205
|
-
onClick: ($event) => sortFor(column)?.onClick($event)
|
|
2206
|
-
}, [
|
|
2207
|
-
column.headerHidden ? (openBlock(), createBlock(_sfc_main$14, { key: 0 }, {
|
|
2208
|
-
default: withCtx(() => [createTextVNode(toDisplayString(column.header ?? column.key), 1)]),
|
|
2209
|
-
_: 2
|
|
2210
|
-
}, 1024)) : (openBlock(), createElementBlock("span", _hoisted_7, toDisplayString(column.header ?? column.key), 1)),
|
|
2211
|
-
createElementVNode("span", {
|
|
2212
|
-
class: "astryx-table__sort-icon",
|
|
2213
|
-
"data-active": sortFor(column)?.direction != null || void 0
|
|
2214
|
-
}, [createVNode(_sfc_main$18, {
|
|
2215
|
-
icon: sortFor(column)?.direction === "descending" ? "arrowDown" : "arrowUp",
|
|
2216
|
-
size: "sm"
|
|
2217
|
-
}, null, 8, ["icon"])], 8, _hoisted_8),
|
|
2218
|
-
sortFor(column)?.rank ? (openBlock(), createElementBlock("span", _hoisted_9, toDisplayString(sortFor(column)?.rank), 1)) : createCommentVNode("v-if", true)
|
|
2219
|
-
], 8, _hoisted_6)) : column.headerHidden ? (openBlock(), createBlock(_sfc_main$14, { key: 1 }, {
|
|
2220
|
-
default: withCtx(() => [createTextVNode(toDisplayString(column.header ?? column.key), 1)]),
|
|
2221
|
-
_: 2
|
|
2222
|
-
}, 1024)) : (openBlock(), createElementBlock("span", _hoisted_10, toDisplayString(column.header ?? column.key), 1))]), filterFor(column) ? (openBlock(), createBlock(_sfc_main$11, {
|
|
2223
|
-
key: 0,
|
|
2224
|
-
filter: filterFor(column)
|
|
2225
|
-
}, null, 8, ["filter"])) : createCommentVNode("v-if", true)]),
|
|
2226
|
-
createCommentVNode(" eslint-disable-next-line vue-a11y/no-static-element-interactions -- role=\"separator\" 是 WAI-ARIA 的分隔条:自己可聚焦,方向键也归它处理。 "),
|
|
2227
|
-
resizeContributions.value.get(column.key)?.hasHandle ? (openBlock(), createElementBlock("span", {
|
|
2228
|
-
key: 0,
|
|
2229
|
-
class: "astryx-table__resize",
|
|
2230
|
-
role: "separator",
|
|
2231
|
-
"aria-orientation": "vertical",
|
|
2232
|
-
"aria-label": resizeLabel(column),
|
|
2233
|
-
"aria-valuenow": resizeContributions.value.get(column.key)?.currentWidth ?? resizeContributions.value.get(column.key)?.minWidth,
|
|
2234
|
-
"aria-valuemin": resizeContributions.value.get(column.key)?.minWidth,
|
|
2235
|
-
"aria-valuemax": resizeMax(resizeContributions.value.get(column.key)),
|
|
2236
|
-
tabindex: "0",
|
|
2237
|
-
onPointerdown: ($event) => startResize($event, column),
|
|
2238
|
-
onKeydown: ($event) => onResizeKeydown($event, column)
|
|
2239
|
-
}, null, 40, _hoisted_11)) : createCommentVNode("v-if", true)
|
|
2240
|
-
], 16, _hoisted_3);
|
|
2241
|
-
}), 128))])]), createElementVNode("tbody", null, [__props.rows.length === 0 ? (openBlock(), createElementBlock("tr", _hoisted_12, [createElementVNode("td", {
|
|
2242
|
-
class: "astryx-table__empty",
|
|
2243
|
-
colspan: columnCount.value
|
|
2244
|
-
}, [renderSlot(_ctx.$slots, "empty", {}, () => [createTextVNode(toDisplayString(unref(messages).table.noData), 1)])], 8, _hoisted_13)])) : createCommentVNode("v-if", true), (openBlock(true), createElementBlock(Fragment, null, renderList(entries.value, (entry) => {
|
|
2245
|
-
return openBlock(), createElementBlock(Fragment, { key: entry.key }, [createElementVNode("tr", mergeProps({
|
|
2246
|
-
"aria-selected": !entry.patch.group && isSelected(entry.row) ? "true" : void 0,
|
|
2247
|
-
"aria-rowindex": entry.rowIndex,
|
|
2248
|
-
class: entry.patch.class
|
|
2249
|
-
}, { ref_for: true }, entry.patch.attrs, {
|
|
2250
|
-
onClick: ($event) => entry.patch.onClick?.($event),
|
|
2251
|
-
onContextmenu: ($event) => openMenu($event, entry.patch.menu)
|
|
2252
|
-
}), [entry.patch.group ? (openBlock(), createElementBlock("td", {
|
|
2253
|
-
key: 0,
|
|
2254
|
-
class: "astryx-table__group",
|
|
2255
|
-
colspan: columnCount.value
|
|
2256
|
-
}, [createVNode(_sfc_main$10, {
|
|
2257
|
-
"group-key": entry.patch.group.groupKey,
|
|
2258
|
-
count: entry.patch.group.count,
|
|
2259
|
-
collapsed: entry.patch.group.collapsed,
|
|
2260
|
-
custom: entry.patch.group.render != null,
|
|
2261
|
-
onToggle: ($event) => entry.patch.group.onToggle()
|
|
2262
|
-
}, {
|
|
2263
|
-
default: withCtx(() => [entry.patch.group.render ? (openBlock(), createBlock(unref(RenderFn), {
|
|
2264
|
-
key: 0,
|
|
2265
|
-
render: entry.patch.group.render
|
|
2266
|
-
}, null, 8, ["render"])) : createCommentVNode("v-if", true)]),
|
|
2267
|
-
_: 2
|
|
2268
|
-
}, 1032, [
|
|
2269
|
-
"group-key",
|
|
2270
|
-
"count",
|
|
2271
|
-
"collapsed",
|
|
2272
|
-
"custom",
|
|
2273
|
-
"onToggle"
|
|
2274
|
-
])], 8, _hoisted_15)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [selection.value && !entry.patch.suppressSelection ? (openBlock(), createElementBlock("td", mergeProps({
|
|
2275
|
-
key: 0,
|
|
2276
|
-
class: ["astryx-table__select", selectCellPatch("body", entry.row).class]
|
|
2277
|
-
}, { ref_for: true }, selectCellPatch("body", entry.row).attrs, { style: selectCellPatch("body", entry.row).style }), [selection.value.isSelectable?.(entry.row) !== false ? (openBlock(), createBlock(_sfc_main$19, {
|
|
2410
|
+
return openBlock(), createBlock(_sfc_main$9, {
|
|
2411
|
+
class: normalizeClass(unref(attrs).class),
|
|
2412
|
+
style: normalizeStyle(scrollStyle.value),
|
|
2413
|
+
label: __props.label,
|
|
2414
|
+
onViewport
|
|
2415
|
+
}, {
|
|
2416
|
+
default: withCtx(() => [
|
|
2417
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.plugins.filter((item) => item.above), (plugin, index) => {
|
|
2418
|
+
return openBlock(), createBlock(unref(PluginFooter), {
|
|
2419
|
+
key: `above-${index}`,
|
|
2420
|
+
plugin,
|
|
2421
|
+
place: "above"
|
|
2422
|
+
}, null, 8, ["plugin"]);
|
|
2423
|
+
}), 128)),
|
|
2424
|
+
createElementVNode("table", {
|
|
2425
|
+
class: "astryx-table",
|
|
2426
|
+
"data-density": __props.density,
|
|
2427
|
+
"data-dividers": __props.dividers,
|
|
2428
|
+
"data-striped": __props.isStriped || void 0,
|
|
2429
|
+
"data-hover": __props.hasHover || void 0,
|
|
2430
|
+
"data-overflow": __props.textOverflow,
|
|
2431
|
+
"data-valign": __props.verticalAlign,
|
|
2432
|
+
"data-row-highlight": selection.value?.hasRowHighlight === false ? "off" : void 0,
|
|
2433
|
+
"aria-rowcount": ariaRowCount.value,
|
|
2434
|
+
style: normalizeStyle(tableStyle.value)
|
|
2435
|
+
}, [createElementVNode("thead", null, [createElementVNode("tr", null, [selection.value ? (openBlock(), createElementBlock("th", mergeProps({
|
|
2278
2436
|
key: 0,
|
|
2279
|
-
"
|
|
2280
|
-
|
|
2437
|
+
class: ["astryx-table__select", selectCellPatch("header", null).class],
|
|
2438
|
+
scope: "col"
|
|
2439
|
+
}, selectCellPatch("header", null).attrs, { style: selectCellPatch("header", null).style }), [createVNode(_sfc_main$19, {
|
|
2440
|
+
"model-value": selection.value.isIndeterminate() ? "indeterminate" : selection.value.isAllSelected(),
|
|
2441
|
+
label: unref(messages).table.selectAllRows,
|
|
2281
2442
|
"is-label-hidden": "",
|
|
2282
2443
|
size: "sm",
|
|
2283
|
-
"
|
|
2284
|
-
|
|
2285
|
-
|
|
2286
|
-
"model-value",
|
|
2287
|
-
"label",
|
|
2288
|
-
"is-disabled",
|
|
2289
|
-
"onUpdate:modelValue"
|
|
2290
|
-
])) : createCommentVNode("v-if", true)], 16)) : createCommentVNode("v-if", true), (openBlock(true), createElementBlock(Fragment, null, renderList(resolvedColumns.value, (column) => {
|
|
2291
|
-
return openBlock(), createElementBlock("td", mergeProps({
|
|
2444
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = (value) => selection.value?.selectAll(value === true))
|
|
2445
|
+
}, null, 8, ["model-value", "label"])], 16)) : createCommentVNode("v-if", true), (openBlock(true), createElementBlock(Fragment, null, renderList(resolvedColumns.value, (column) => {
|
|
2446
|
+
return openBlock(), createElementBlock("th", mergeProps({
|
|
2292
2447
|
key: column.key,
|
|
2448
|
+
scope: "col",
|
|
2293
2449
|
"data-column": column.key,
|
|
2294
2450
|
"data-align": column.align,
|
|
2295
|
-
class: mergeCell(column,
|
|
2296
|
-
}, { ref_for: true }, mergeCell(column,
|
|
2297
|
-
column,
|
|
2298
|
-
|
|
2299
|
-
|
|
2451
|
+
class: mergeCell(column, null, "header").class
|
|
2452
|
+
}, { ref_for: true }, mergeCell(column, null, "header").attrs, {
|
|
2453
|
+
style: headerStyle(column),
|
|
2454
|
+
"aria-sort": sortFor(column)?.direction ?? void 0
|
|
2455
|
+
}), [
|
|
2456
|
+
createElementVNode("div", _hoisted_3, [createElementVNode("div", _hoisted_4, [
|
|
2457
|
+
createVNode(unref(HeaderAddon), {
|
|
2458
|
+
column,
|
|
2459
|
+
plugins: __props.plugins
|
|
2460
|
+
}, null, 8, ["column", "plugins"]),
|
|
2461
|
+
sortFor(column) ? (openBlock(), createElementBlock("button", {
|
|
2462
|
+
key: 0,
|
|
2463
|
+
type: "button",
|
|
2464
|
+
class: "astryx-table__sort",
|
|
2465
|
+
"data-align": column.align,
|
|
2466
|
+
"aria-label": sortFor(column)?.label,
|
|
2467
|
+
onClick: ($event) => sortFor(column)?.onClick($event)
|
|
2468
|
+
}, [
|
|
2469
|
+
column.headerHidden ? (openBlock(), createBlock(_sfc_main$15, { key: 0 }, {
|
|
2470
|
+
default: withCtx(() => [createTextVNode(toDisplayString(column.header ?? column.key), 1)]),
|
|
2471
|
+
_: 2
|
|
2472
|
+
}, 1024)) : (openBlock(), createElementBlock("span", _hoisted_6, toDisplayString(column.header ?? column.key), 1)),
|
|
2473
|
+
createElementVNode("span", {
|
|
2474
|
+
class: "astryx-table__sort-icon",
|
|
2475
|
+
"data-active": sortFor(column)?.direction != null || void 0
|
|
2476
|
+
}, [createVNode(_sfc_main$18, {
|
|
2477
|
+
icon: sortFor(column)?.direction === "descending" ? "arrowDown" : "arrowUp",
|
|
2478
|
+
size: "sm"
|
|
2479
|
+
}, null, 8, ["icon"])], 8, _hoisted_7),
|
|
2480
|
+
sortFor(column)?.rank ? (openBlock(), createElementBlock("span", _hoisted_8, toDisplayString(sortFor(column)?.rank), 1)) : createCommentVNode("v-if", true)
|
|
2481
|
+
], 8, _hoisted_5)) : column.headerHidden ? (openBlock(), createBlock(_sfc_main$15, { key: 1 }, {
|
|
2482
|
+
default: withCtx(() => [createTextVNode(toDisplayString(column.header ?? column.key), 1)]),
|
|
2483
|
+
_: 2
|
|
2484
|
+
}, 1024)) : (openBlock(), createElementBlock("span", _hoisted_9, toDisplayString(column.header ?? column.key), 1)),
|
|
2485
|
+
filterAt(column, "line") ? (openBlock(), createBlock(_sfc_main$12, {
|
|
2486
|
+
key: 3,
|
|
2487
|
+
filter: filterAt(column, "line")
|
|
2488
|
+
}, null, 8, ["filter"])) : createCommentVNode("v-if", true)
|
|
2489
|
+
]), filterAt(column, "below") ? (openBlock(), createBlock(_sfc_main$12, {
|
|
2490
|
+
key: 0,
|
|
2491
|
+
filter: filterAt(column, "below")
|
|
2492
|
+
}, null, 8, ["filter"])) : createCommentVNode("v-if", true)]),
|
|
2493
|
+
createCommentVNode(" eslint-disable-next-line vue-a11y/no-static-element-interactions -- role=\"separator\" 是 WAI-ARIA 的分隔条:自己可聚焦,方向键也归它处理。 "),
|
|
2494
|
+
resizeContributions.value.get(column.key)?.hasHandle ? (openBlock(), createElementBlock("span", {
|
|
2495
|
+
key: 0,
|
|
2496
|
+
class: "astryx-table__resize",
|
|
2497
|
+
role: "separator",
|
|
2498
|
+
"aria-orientation": "vertical",
|
|
2499
|
+
"aria-label": unref(resizeLabel)(column),
|
|
2500
|
+
"aria-valuenow": resizeContributions.value.get(column.key)?.currentWidth ?? resizeContributions.value.get(column.key)?.minWidth,
|
|
2501
|
+
"aria-valuemin": resizeContributions.value.get(column.key)?.minWidth,
|
|
2502
|
+
"aria-valuemax": unref(resizeMax)(resizeContributions.value.get(column.key)),
|
|
2503
|
+
tabindex: "0",
|
|
2504
|
+
onPointerdown: ($event) => unref(startResize)($event, column),
|
|
2505
|
+
onKeydown: ($event) => unref(onResizeKeydown)($event, column)
|
|
2506
|
+
}, null, 40, _hoisted_10)) : createCommentVNode("v-if", true)
|
|
2507
|
+
], 16, _hoisted_2);
|
|
2508
|
+
}), 128))])]), createElementVNode("tbody", null, [__props.rows.length === 0 ? (openBlock(), createElementBlock("tr", _hoisted_11, [createElementVNode("td", {
|
|
2509
|
+
class: "astryx-table__empty",
|
|
2510
|
+
colspan: columnCount.value
|
|
2511
|
+
}, [renderSlot(_ctx.$slots, "empty", {}, () => [createTextVNode(toDisplayString(unref(messages).table.noData), 1)])], 8, _hoisted_12)])) : createCommentVNode("v-if", true), (openBlock(true), createElementBlock(Fragment, null, renderList(entries.value, (entry) => {
|
|
2512
|
+
return openBlock(), createElementBlock(Fragment, { key: entry.key }, [createElementVNode("tr", mergeProps({
|
|
2513
|
+
ref_for: true,
|
|
2514
|
+
ref: entry.ref,
|
|
2515
|
+
"aria-selected": !entry.patch.group && isSelected(entry.row) ? "true" : void 0,
|
|
2516
|
+
"aria-rowindex": entry.rowIndex,
|
|
2517
|
+
class: entry.patch.class
|
|
2518
|
+
}, { ref_for: true }, entry.patch.attrs, {
|
|
2519
|
+
onBlur: ($event) => entry.patch.listeners?.onBlur?.($event),
|
|
2520
|
+
onClick: ($event) => entry.patch.onClick?.($event),
|
|
2521
|
+
onContextmenu: ($event) => openMenu($event, entry.patch.menu),
|
|
2522
|
+
onFocus: ($event) => entry.patch.listeners?.onFocus?.($event),
|
|
2523
|
+
onMouseenter: ($event) => entry.patch.listeners?.onMouseenter?.($event),
|
|
2524
|
+
onMouseleave: ($event) => entry.patch.listeners?.onMouseleave?.($event)
|
|
2525
|
+
}), [entry.patch.group ? (openBlock(), createElementBlock("td", {
|
|
2526
|
+
key: 0,
|
|
2527
|
+
class: "astryx-table__group",
|
|
2528
|
+
colspan: columnCount.value
|
|
2529
|
+
}, [createVNode(_sfc_main$11, {
|
|
2530
|
+
"group-key": entry.patch.group.groupKey,
|
|
2531
|
+
count: entry.patch.group.count,
|
|
2532
|
+
collapsed: entry.patch.group.collapsed,
|
|
2533
|
+
custom: entry.patch.group.render != null,
|
|
2534
|
+
onToggle: ($event) => entry.patch.group.onToggle()
|
|
2535
|
+
}, {
|
|
2536
|
+
default: withCtx(() => [entry.patch.group.render ? (openBlock(), createBlock(unref(RenderFn), {
|
|
2537
|
+
key: 0,
|
|
2538
|
+
render: entry.patch.group.render
|
|
2539
|
+
}, null, 8, ["render"])) : createCommentVNode("v-if", true)]),
|
|
2540
|
+
_: 2
|
|
2541
|
+
}, 1032, [
|
|
2542
|
+
"group-key",
|
|
2543
|
+
"count",
|
|
2544
|
+
"collapsed",
|
|
2545
|
+
"custom",
|
|
2546
|
+
"onToggle"
|
|
2547
|
+
])], 8, _hoisted_14)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [selection.value && !entry.patch.suppressSelection ? (openBlock(), createElementBlock("td", mergeProps({
|
|
2548
|
+
key: 0,
|
|
2549
|
+
class: ["astryx-table__select", selectCellPatch("body", entry.row).class]
|
|
2550
|
+
}, { ref_for: true }, selectCellPatch("body", entry.row).attrs, { style: selectCellPatch("body", entry.row).style }), [selection.value.isSelectable?.(entry.row) !== false ? (openBlock(), createBlock(_sfc_main$19, {
|
|
2551
|
+
key: 0,
|
|
2552
|
+
"model-value": selection.value.isSelected(entry.row),
|
|
2553
|
+
label: selection.value.rowLabel?.(entry.row) ? unref(messages).table.selectRowNamed(selection.value.rowLabel(entry.row)) : unref(messages).table.selectRow,
|
|
2554
|
+
"is-label-hidden": "",
|
|
2555
|
+
size: "sm",
|
|
2556
|
+
"is-disabled": !isEnabled(entry.row),
|
|
2557
|
+
"onUpdate:modelValue": (value) => selection.value?.selectRow(entry.row, value === true)
|
|
2300
2558
|
}, null, 8, [
|
|
2301
|
-
"
|
|
2302
|
-
"
|
|
2303
|
-
"
|
|
2304
|
-
|
|
2305
|
-
|
|
2559
|
+
"model-value",
|
|
2560
|
+
"label",
|
|
2561
|
+
"is-disabled",
|
|
2562
|
+
"onUpdate:modelValue"
|
|
2563
|
+
])) : createCommentVNode("v-if", true)], 16)) : createCommentVNode("v-if", true), (openBlock(true), createElementBlock(Fragment, null, renderList(resolvedColumns.value, (column) => {
|
|
2564
|
+
return openBlock(), createElementBlock("td", mergeProps({
|
|
2565
|
+
key: column.key,
|
|
2566
|
+
"data-column": column.key,
|
|
2567
|
+
"data-align": column.align,
|
|
2568
|
+
class: mergeCell(column, entry.row, "body").class
|
|
2569
|
+
}, { ref_for: true }, mergeCell(column, entry.row, "body").attrs, { style: bodyStyle(column, entry.row) }), [createVNode(unref(CellContent), {
|
|
2570
|
+
column,
|
|
2571
|
+
row: entry.row,
|
|
2572
|
+
index: entry.index
|
|
2573
|
+
}, null, 8, [
|
|
2574
|
+
"column",
|
|
2575
|
+
"row",
|
|
2576
|
+
"index"
|
|
2577
|
+
])], 16, _hoisted_15);
|
|
2578
|
+
}), 128))], 64))], 16, _hoisted_13), entry.patch.panel ? (openBlock(), createElementBlock("tr", {
|
|
2579
|
+
key: 0,
|
|
2580
|
+
"data-expansion-panel": "",
|
|
2581
|
+
class: "astryx-table__panel-row",
|
|
2582
|
+
"data-variant": entry.patch.panel.variant
|
|
2583
|
+
}, [createElementVNode("td", {
|
|
2584
|
+
class: "astryx-table__panel",
|
|
2585
|
+
colspan: columnCount.value
|
|
2586
|
+
}, [createVNode(unref(RenderFn), { render: entry.patch.panel.render }, null, 8, ["render"])], 8, _hoisted_17)], 8, _hoisted_16)) : createCommentVNode("v-if", true)], 64);
|
|
2587
|
+
}), 128))])], 12, _hoisted_1$5),
|
|
2588
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.plugins.filter((item) => item.below), (plugin, index) => {
|
|
2589
|
+
return openBlock(), createBlock(unref(PluginFooter), {
|
|
2590
|
+
key: `below-${index}`,
|
|
2591
|
+
plugin,
|
|
2592
|
+
place: "below"
|
|
2593
|
+
}, null, 8, ["plugin"]);
|
|
2594
|
+
}), 128)),
|
|
2595
|
+
menu.value ? (openBlock(), createBlock(_sfc_main$10, {
|
|
2306
2596
|
key: 0,
|
|
2307
|
-
|
|
2308
|
-
|
|
2309
|
-
|
|
2310
|
-
|
|
2311
|
-
|
|
2312
|
-
|
|
2313
|
-
|
|
2314
|
-
|
|
2315
|
-
|
|
2316
|
-
|
|
2317
|
-
|
|
2318
|
-
|
|
2319
|
-
|
|
2320
|
-
|
|
2321
|
-
|
|
2322
|
-
|
|
2323
|
-
key: 0,
|
|
2324
|
-
x: menu.value.x,
|
|
2325
|
-
y: menu.value.y,
|
|
2326
|
-
items: menu.value.items,
|
|
2327
|
-
onClose: _cache[1] || (_cache[1] = ($event) => menu.value = null)
|
|
2328
|
-
}, null, 8, [
|
|
2329
|
-
"x",
|
|
2330
|
-
"y",
|
|
2331
|
-
"items"
|
|
2332
|
-
])) : createCommentVNode("v-if", true)]))
|
|
2333
|
-
], 8, _hoisted_1$5);
|
|
2597
|
+
x: menu.value.x,
|
|
2598
|
+
y: menu.value.y,
|
|
2599
|
+
items: menu.value.items,
|
|
2600
|
+
onClose: _cache[1] || (_cache[1] = ($event) => menu.value = null)
|
|
2601
|
+
}, null, 8, [
|
|
2602
|
+
"x",
|
|
2603
|
+
"y",
|
|
2604
|
+
"items"
|
|
2605
|
+
])) : createCommentVNode("v-if", true)
|
|
2606
|
+
]),
|
|
2607
|
+
_: 3
|
|
2608
|
+
}, 8, [
|
|
2609
|
+
"class",
|
|
2610
|
+
"style",
|
|
2611
|
+
"label"
|
|
2612
|
+
]);
|
|
2334
2613
|
};
|
|
2335
2614
|
}
|
|
2336
2615
|
});
|
|
2337
2616
|
//#endregion
|
|
2338
2617
|
//#region src/Table/Table.vue
|
|
2339
|
-
const _hoisted_1$4 = [
|
|
2340
|
-
const _hoisted_2 = [
|
|
2618
|
+
const _hoisted_1$4 = [
|
|
2341
2619
|
"data-density",
|
|
2342
2620
|
"data-dividers",
|
|
2343
2621
|
"data-striped",
|
|
@@ -2422,21 +2700,22 @@ const _sfc_main$7 = /*@__PURE__*/ defineComponent({
|
|
|
2422
2700
|
"vertical-align",
|
|
2423
2701
|
"row-index-start",
|
|
2424
2702
|
"row-count"
|
|
2425
|
-
])) : (openBlock(),
|
|
2703
|
+
])) : (openBlock(), createBlock(_sfc_main$9, {
|
|
2426
2704
|
key: 1,
|
|
2427
|
-
|
|
2428
|
-
|
|
2429
|
-
|
|
2430
|
-
|
|
2431
|
-
|
|
2432
|
-
|
|
2433
|
-
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
"
|
|
2439
|
-
|
|
2705
|
+
label: __props.label ?? unref(messages).table.label
|
|
2706
|
+
}, {
|
|
2707
|
+
default: withCtx(() => [createElementVNode("table", {
|
|
2708
|
+
class: normalizeClass(["astryx-table", _ctx.$attrs.class]),
|
|
2709
|
+
style: normalizeStyle(_ctx.$attrs.style),
|
|
2710
|
+
"data-density": __props.density,
|
|
2711
|
+
"data-dividers": __props.dividers,
|
|
2712
|
+
"data-striped": __props.isStriped || void 0,
|
|
2713
|
+
"data-hover": __props.hasHover || void 0,
|
|
2714
|
+
"data-overflow": __props.textOverflow,
|
|
2715
|
+
"data-valign": __props.verticalAlign
|
|
2716
|
+
}, [renderSlot(_ctx.$slots, "default")], 14, _hoisted_1$4)]),
|
|
2717
|
+
_: 3
|
|
2718
|
+
}, 8, ["label"]));
|
|
2440
2719
|
};
|
|
2441
2720
|
}
|
|
2442
2721
|
});
|
|
@@ -2581,7 +2860,7 @@ const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
|
2581
2860
|
size: __props.size,
|
|
2582
2861
|
variant: toolbarVariant.value
|
|
2583
2862
|
}, createSlots({
|
|
2584
|
-
end: withCtx(() => [createElementVNode("span", _hoisted_1, [renderSlot(_ctx.$slots, "label", { count: effectiveCount.value }, () => [createTextVNode(toDisplayString(resolvedCountLabel.value), 1)])]), createVNode(_sfc_main$
|
|
2863
|
+
end: withCtx(() => [createElementVNode("span", _hoisted_1, [renderSlot(_ctx.$slots, "label", { count: effectiveCount.value }, () => [createTextVNode(toDisplayString(resolvedCountLabel.value), 1)])]), createVNode(_sfc_main$16, {
|
|
2585
2864
|
class: "astryx-table-selection-toolbar__clear",
|
|
2586
2865
|
label: resolvedClearLabel.value,
|
|
2587
2866
|
size: __props.size,
|