antdv-next 1.5.6 → 1.7.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/dist/_util/ContextIsolator.js +12 -3
- package/dist/_util/PurePanel.js +17 -14
- package/dist/_util/fallbackProp.d.ts +13 -0
- package/dist/_util/fallbackProp.js +15 -0
- package/dist/_util/hooks/useAllowClear.d.ts +35 -0
- package/dist/_util/hooks/useAllowClear.js +34 -0
- package/dist/_util/hooks/useClosable.js +1 -1
- package/dist/_util/hooks/useMergeSemantic.js +3 -2
- package/dist/_util/omitUndefined.d.ts +13 -0
- package/dist/_util/omitUndefined.js +20 -0
- package/dist/_util/tools.d.ts +3 -1
- package/dist/_util/tools.js +6 -1
- package/dist/_util/wave/index.js +4 -2
- package/dist/_util/wave/style.d.ts +5 -1
- package/dist/_util/wave/useWave.d.ts +2 -1
- package/dist/_util/wave/useWave.js +4 -3
- package/dist/affix/style/index.d.ts +5 -1
- package/dist/alert/Alert.d.ts +6 -2
- package/dist/alert/Alert.js +135 -129
- package/dist/alert/style/index.d.ts +7 -4
- package/dist/alert/style/index.js +12 -9
- package/dist/anchor/style/index.d.ts +5 -1
- package/dist/antd-with-locales.esm.js +21947 -18522
- package/dist/antd-with-locales.js +82 -82
- package/dist/antd.css +1 -1
- package/dist/antd.esm.js +19553 -16771
- package/dist/antd.js +82 -82
- package/dist/app/style/index.d.ts +5 -1
- package/dist/auto-complete/index.js +1 -0
- package/dist/avatar/Avatar.js +2 -4
- package/dist/avatar/AvatarContext.d.ts +2 -2
- package/dist/avatar/style/index.d.ts +5 -1
- package/dist/badge/index.js +1 -1
- package/dist/badge/style/index.d.ts +5 -1
- package/dist/badge/style/index.js +2 -9
- package/dist/badge/style/ribbon.d.ts +5 -1
- package/dist/border-beam/BorderBeam.d.ts +8 -1
- package/dist/border-beam/BorderBeam.js +28 -14
- package/dist/border-beam/index.d.ts +2 -2
- package/dist/border-beam/style/index.d.ts +5 -1
- package/dist/breadcrumb/BreadcrumbItem.js +2 -2
- package/dist/breadcrumb/style/index.d.ts +5 -1
- package/dist/button/style/index.d.ts +5 -1
- package/dist/calendar/style/index.d.ts +4 -1
- package/dist/card/Card.js +1 -1
- package/dist/card/style/index.d.ts +5 -1
- package/dist/card/style/index.js +2 -2
- package/dist/carousel/index.js +1 -1
- package/dist/carousel/style/index.d.ts +5 -1
- package/dist/carousel/style/index.js +1 -1
- package/dist/cascader/Panel.js +3 -3
- package/dist/cascader/index.js +14 -6
- package/dist/cascader/style/index.d.ts +5 -1
- package/dist/cascader/style/panel.d.ts +5 -1
- package/dist/checkbox/Checkbox.js +6 -4
- package/dist/checkbox/Group.d.ts +19 -1
- package/dist/checkbox/Group.js +34 -5
- package/dist/checkbox/GroupContext.d.ts +3 -0
- package/dist/checkbox/index.d.ts +2 -2
- package/dist/checkbox/style/index.d.ts +4 -1
- package/dist/collapse/style/index.d.ts +4 -1
- package/dist/color-picker/ColorPicker.js +8 -12
- package/dist/color-picker/style/index.d.ts +5 -1
- package/dist/color-picker/style/input.js +1 -1
- package/dist/components.d.ts +1 -1
- package/dist/config-provider/context.d.ts +16 -21
- package/dist/config-provider/context.js +32 -38
- package/dist/config-provider/define.d.ts +3 -1
- package/dist/config-provider/hooks/useCSSVarCls.d.ts +3 -0
- package/dist/config-provider/hooks/useCSSVarCls.js +4 -3
- package/dist/config-provider/index.d.ts +2 -2
- package/dist/config-provider/index.js +24 -1
- package/dist/date-picker/generatePicker/generateRangePicker.js +29 -4
- package/dist/date-picker/generatePicker/generateSinglePicker.js +32 -6
- package/dist/date-picker/generatePicker/interface.d.ts +4 -0
- package/dist/date-picker/generatePicker/useComponents.d.ts +3 -3
- package/dist/date-picker/style/index.d.ts +5 -1
- package/dist/date-picker/style/panel.js +1 -1
- package/dist/date-picker/style/util.js +1 -1
- package/dist/date-picker/util.d.ts +10 -12
- package/dist/date-picker/util.js +14 -7
- package/dist/descriptions/Cell.js +80 -75
- package/dist/descriptions/Row.js +14 -11
- package/dist/descriptions/hooks/useItems.d.ts +10 -10
- package/dist/descriptions/style/index.d.ts +5 -1
- package/dist/descriptions/style/index.js +11 -13
- package/dist/divider/style/index.d.ts +5 -1
- package/dist/divider/style/index.js +1 -1
- package/dist/drawer/DrawerPanel.js +7 -7
- package/dist/drawer/index.d.ts +0 -2
- package/dist/drawer/index.js +0 -1
- package/dist/drawer/style/index.d.ts +5 -1
- package/dist/dropdown/dropdown.d.ts +2 -0
- package/dist/dropdown/dropdown.js +11 -3
- package/dist/dropdown/style/index.d.ts +5 -1
- package/dist/dropdown/style/index.js +1 -1
- package/dist/empty/style/index.d.ts +5 -1
- package/dist/flex/index.js +1 -1
- package/dist/flex/style/index.d.ts +5 -1
- package/dist/float-button/FloatButtonGroup.js +1 -1
- package/dist/float-button/style/index.d.ts +5 -1
- package/dist/form/ErrorList.js +1 -1
- package/dist/form/Form.js +1 -1
- package/dist/form/FormItem/ItemHolder.js +1 -1
- package/dist/form/FormItem/index.js +38 -18
- package/dist/form/FormItemInput.js +1 -1
- package/dist/form/FormItemLabel.js +1 -1
- package/dist/form/context.d.ts +1 -1
- package/dist/form/hooks/useVariant.d.ts +1 -1
- package/dist/form/hooks/useVariant.js +1 -1
- package/dist/form/style/index.d.ts +5 -1
- package/dist/grid/style/index.d.ts +5 -2
- package/dist/image/hooks/useMergedPreviewConfig.d.ts +1 -0
- package/dist/image/hooks/useMergedPreviewConfig.js +2 -1
- package/dist/image/hooks/usePreviewConfig.d.ts +9 -9
- package/dist/image/style/index.d.ts +4 -1
- package/dist/index.d.ts +1 -1
- package/dist/input/Group.js +1 -1
- package/dist/input/Input.d.ts +2 -1
- package/dist/input/Input.js +8 -5
- package/dist/input/OTP/OTPInput.d.ts +2 -1
- package/dist/input/OTP/OTPInput.js +12 -3
- package/dist/input/OTP/index.d.ts +3 -1
- package/dist/input/OTP/index.js +15 -6
- package/dist/input/Password.js +7 -5
- package/dist/input/Search.js +4 -2
- package/dist/input/TextArea.d.ts +3 -1
- package/dist/input/TextArea.js +13 -8
- package/dist/input/style/index.d.ts +5 -2
- package/dist/input/style/index.js +1 -1
- package/dist/input/style/otp.d.ts +5 -1
- package/dist/input/style/search.d.ts +5 -1
- package/dist/input/style/textarea.d.ts +5 -1
- package/dist/input-number/index.d.ts +3 -6
- package/dist/input-number/index.js +8 -3
- package/dist/input-number/style/index.d.ts +5 -1
- package/dist/input-number/style/index.js +1 -5
- package/dist/layout/style/index.d.ts +5 -1
- package/dist/layout/style/sider.d.ts +5 -1
- package/dist/listy/index.d.ts +1 -1
- package/dist/listy/index.js +9 -7
- package/dist/listy/interface.d.ts +6 -1
- package/dist/listy/style/index.d.ts +5 -1
- package/dist/listy/style/index.js +4 -2
- package/dist/locale/ar_EG.js +9 -0
- package/dist/locale/az_AZ.js +9 -0
- package/dist/locale/bg_BG.js +9 -0
- package/dist/locale/bn_BD.js +9 -0
- package/dist/locale/by_BY.js +9 -0
- package/dist/locale/ca_ES.js +9 -0
- package/dist/locale/cs_CZ.js +9 -0
- package/dist/locale/da_DK.js +9 -0
- package/dist/locale/de_DE.js +9 -0
- package/dist/locale/el_GR.js +9 -0
- package/dist/locale/en_GB.js +11 -1
- package/dist/locale/en_US.js +11 -1
- package/dist/locale/es_ES.js +9 -0
- package/dist/locale/et_EE.js +9 -0
- package/dist/locale/eu_ES.js +9 -0
- package/dist/locale/fa_IR.js +9 -0
- package/dist/locale/fi_FI.js +10 -1
- package/dist/locale/fr_BE.js +9 -0
- package/dist/locale/fr_CA.js +9 -0
- package/dist/locale/fr_FR.js +9 -0
- package/dist/locale/ga_IE.js +9 -0
- package/dist/locale/gl_ES.js +9 -0
- package/dist/locale/he_IL.js +9 -0
- package/dist/locale/hi_IN.js +9 -0
- package/dist/locale/hr_HR.js +9 -0
- package/dist/locale/hu_HU.js +9 -0
- package/dist/locale/hy_AM.js +9 -0
- package/dist/locale/id_ID.js +9 -0
- package/dist/locale/index.d.ts +3 -0
- package/dist/locale/is_IS.js +9 -0
- package/dist/locale/it_IT.js +9 -0
- package/dist/locale/ja_JP.js +9 -0
- package/dist/locale/ka_GE.js +9 -0
- package/dist/locale/kk_KZ.js +9 -0
- package/dist/locale/km_KH.js +9 -0
- package/dist/locale/kmr_IQ.js +9 -0
- package/dist/locale/kn_IN.js +9 -0
- package/dist/locale/ko_KR.js +9 -0
- package/dist/locale/ku_IQ.js +9 -0
- package/dist/locale/lt_LT.js +9 -0
- package/dist/locale/lv_LV.js +9 -0
- package/dist/locale/mk_MK.js +9 -0
- package/dist/locale/ml_IN.js +9 -0
- package/dist/locale/mn_MN.js +9 -0
- package/dist/locale/mr_IN.js +9 -0
- package/dist/locale/ms_MY.js +9 -0
- package/dist/locale/my_MM.js +9 -0
- package/dist/locale/nb_NO.js +9 -0
- package/dist/locale/ne_NP.js +9 -0
- package/dist/locale/nl_BE.js +9 -0
- package/dist/locale/nl_NL.js +9 -0
- package/dist/locale/pl_PL.js +9 -0
- package/dist/locale/pt_BR.js +9 -0
- package/dist/locale/pt_PT.js +9 -0
- package/dist/locale/ro_RO.js +19 -10
- package/dist/locale/ru_RU.js +9 -0
- package/dist/locale/si_LK.js +9 -0
- package/dist/locale/sk_SK.js +9 -0
- package/dist/locale/sl_SI.js +9 -0
- package/dist/locale/sq_AL.js +9 -0
- package/dist/locale/sr_RS.js +9 -0
- package/dist/locale/sv_SE.js +9 -0
- package/dist/locale/ta_IN.js +10 -1
- package/dist/locale/th_TH.js +9 -0
- package/dist/locale/tk_TK.js +9 -0
- package/dist/locale/tr_TR.js +9 -0
- package/dist/locale/uk_UA.js +9 -0
- package/dist/locale/ur_PK.js +9 -0
- package/dist/locale/useLocale.d.ts +7 -2
- package/dist/locale/useLocale.js +12 -1
- package/dist/locale/uz_UZ.js +9 -0
- package/dist/locale/vi_VN.js +9 -0
- package/dist/locale/zh_CN.js +13 -3
- package/dist/locale/zh_HK.js +11 -1
- package/dist/locale/zh_TW.js +11 -1
- package/dist/masonry/Masonry.js +1 -1
- package/dist/masonry/style/index.d.ts +4 -1
- package/dist/mentions/index.d.ts +2 -3
- package/dist/mentions/index.js +10 -5
- package/dist/mentions/style/index.d.ts +5 -1
- package/dist/mentions/style/index.js +1 -1
- package/dist/menu/MenuContext.d.ts +2 -0
- package/dist/menu/MenuItem.js +25 -7
- package/dist/menu/index.js +5 -0
- package/dist/menu/menu.d.ts +3 -0
- package/dist/menu/menu.js +7 -0
- package/dist/message/style/index.d.ts +5 -1
- package/dist/modal/ConfirmDialog.js +14 -7
- package/dist/modal/style/index.d.ts +3 -1
- package/dist/notification/PurePanel.js +7 -12
- package/dist/notification/interface.d.ts +8 -0
- package/dist/notification/style/index.d.ts +4 -1
- package/dist/notification/style/index.js +1 -1
- package/dist/notification/style/placement.js +10 -7
- package/dist/notification/useNotification.js +5 -15
- package/dist/package.js +1 -1
- package/dist/pagination/Pagination.js +2 -2
- package/dist/pagination/style/index.d.ts +5 -1
- package/dist/pagination/useShowSizeChanger.d.ts +3 -0
- package/dist/pagination/useShowSizeChanger.js +1 -1
- package/dist/popconfirm/index.js +5 -5
- package/dist/popconfirm/style/index.d.ts +5 -1
- package/dist/popconfirm/style/index.js +1 -1
- package/dist/popover/index.js +5 -4
- package/dist/popover/style/index.d.ts +5 -1
- package/dist/popover/style/index.js +2 -2
- package/dist/progress/Circle.js +0 -8
- package/dist/progress/Line.js +1 -9
- package/dist/progress/Steps.js +0 -8
- package/dist/progress/progress.js +2 -14
- package/dist/progress/style/index.d.ts +5 -1
- package/dist/qrcode/index.js +4 -25
- package/dist/qrcode/interface.d.ts +1 -1
- package/dist/qrcode/style/index.d.ts +5 -1
- package/dist/radio/group.js +40 -7
- package/dist/radio/index.d.ts +2 -2
- package/dist/radio/interface.d.ts +19 -1
- package/dist/radio/radio.js +5 -3
- package/dist/radio/style/index.d.ts +5 -1
- package/dist/rate/style/index.d.ts +5 -1
- package/dist/result/index.js +3 -3
- package/dist/result/noFound.js +120 -140
- package/dist/result/serverError.js +132 -147
- package/dist/result/style/index.d.ts +5 -1
- package/dist/result/unauthorized.js +115 -129
- package/dist/segmented/index.js +1 -1
- package/dist/segmented/style/index.d.ts +5 -1
- package/dist/select/index.js +12 -5
- package/dist/select/style/dropdown.js +1 -1
- package/dist/select/style/index.d.ts +5 -1
- package/dist/select/style/index.js +2 -2
- package/dist/select/style/select-input-multiple.js +1 -1
- package/dist/select/usePopupRender.js +4 -1
- package/dist/skeleton/style/index.d.ts +5 -1
- package/dist/slider/index.d.ts +0 -3
- package/dist/slider/index.js +2 -2
- package/dist/slider/style/index.d.ts +5 -1
- package/dist/space/Compact.d.ts +1 -1
- package/dist/space/style/addon.d.ts +5 -1
- package/dist/space/style/compact.d.ts +5 -1
- package/dist/space/style/index.d.ts +5 -1
- package/dist/spin/style/index.d.ts +5 -1
- package/dist/splitter/SplitBar.js +9 -3
- package/dist/splitter/interface.d.ts +5 -1
- package/dist/splitter/style/index.d.ts +5 -1
- package/dist/statistic/style/index.d.ts +5 -1
- package/dist/steps/style/index.d.ts +5 -1
- package/dist/steps/style/index.js +1 -1
- package/dist/steps/style/inline.js +1 -1
- package/dist/style/motion/collapse.js +4 -10
- package/dist/switch/style/index.d.ts +5 -1
- package/dist/table/ExpandIcon.d.ts +9 -4
- package/dist/table/ExpandIcon.js +42 -20
- package/dist/table/InternalTable.js +72 -62
- package/dist/table/hooks/useLazyKVMap.js +1 -1
- package/dist/table/hooks/useSelection.js +73 -15
- package/dist/table/interface.d.ts +8 -0
- package/dist/table/style/index.d.ts +5 -1
- package/dist/table/style/index.js +1 -1
- package/dist/table/style/selection.js +1 -1
- package/dist/table/style/sorter.js +2 -2
- package/dist/table/util.d.ts +1 -1
- package/dist/tabs/index.js +9 -2
- package/dist/tabs/style/index.d.ts +5 -1
- package/dist/tabs/style/index.js +1 -1
- package/dist/tag/CheckableTagGroup.d.ts +2 -2
- package/dist/tag/hooks/useColor.d.ts +1 -1
- package/dist/tag/style/index.d.ts +5 -1
- package/dist/theme/context.js +2 -1
- package/dist/theme/useToken.d.ts +6 -2
- package/dist/theme/useToken.js +46 -14
- package/dist/theme/util/genStyleUtils.d.ts +13 -3
- package/dist/theme/util/genStyleUtils.js +42 -28
- package/dist/time-picker/index.js +34 -0
- package/dist/timeline/Timeline.js +1 -1
- package/dist/timeline/style/index.d.ts +5 -1
- package/dist/timeline/useItems.d.ts +2 -2
- package/dist/timeline/useItems.js +1 -1
- package/dist/tooltip/index.js +1 -1
- package/dist/tooltip/style/index.d.ts +2 -2
- package/dist/tooltip/style/index.js +1 -1
- package/dist/tour/panelRender.js +3 -2
- package/dist/tour/style/index.d.ts +5 -1
- package/dist/transfer/Section.js +2 -1
- package/dist/transfer/Transfer.js +3 -1
- package/dist/transfer/style/index.d.ts +5 -1
- package/dist/tree/DirectoryTree.js +1 -1
- package/dist/tree/style/index.d.ts +4 -1
- package/dist/tree/style/index.js +1 -1
- package/dist/tree-select/index.js +15 -9
- package/dist/tree-select/style/index.d.ts +2 -2
- package/dist/typography/Base/index.js +23 -2
- package/dist/typography/Link.js +5 -0
- package/dist/typography/Paragraph.js +5 -0
- package/dist/typography/Text.js +5 -0
- package/dist/typography/Title.js +5 -0
- package/dist/typography/hooks/useMergedConfig.js +1 -1
- package/dist/typography/interface.d.ts +8 -1
- package/dist/typography/style/index.d.ts +5 -1
- package/dist/typography/style/index.js +2 -1
- package/dist/typography/style/mixins.d.ts +2 -1
- package/dist/typography/style/mixins.js +26 -3
- package/dist/upload/Upload.d.ts +1 -0
- package/dist/upload/Upload.js +10 -3
- package/dist/upload/UploadList/ListItem.js +8 -3
- package/dist/upload/interface.d.ts +1 -0
- package/dist/upload/style/index.d.ts +5 -1
- package/dist/version/token-meta.json +1 -1
- package/dist/version/token.json +1 -1
- package/dist/watermark/index.js +1 -1
- package/global.d.ts +5 -0
- package/package.json +17 -17
- package/web-tags.json +5053 -3004
- package/web-types.json +13207 -7299
- package/dist/_util/getAllowClear.d.ts +0 -6
- package/dist/_util/getAllowClear.js +0 -11
|
@@ -3,7 +3,7 @@ import { useMultipleSelect } from "../../_util/hooks/useMultipleSelect.js";
|
|
|
3
3
|
import Dropdown from "../../dropdown/index.js";
|
|
4
4
|
import radio_default from "../../radio/index.js";
|
|
5
5
|
import checkbox_default from "../../checkbox/index.js";
|
|
6
|
-
import { computed, createVNode, mergeProps, shallowRef, unref, watch } from "vue";
|
|
6
|
+
import { computed, createVNode, defineComponent, mergeProps, shallowRef, unref, watch } from "vue";
|
|
7
7
|
import { clsx } from "@v-c/util";
|
|
8
8
|
import { DownOutlined } from "@antdv-next/icons";
|
|
9
9
|
import { INTERNAL_COL_DEFINE } from "@v-c/table";
|
|
@@ -14,6 +14,48 @@ const SELECTION_ALL = "SELECT_ALL";
|
|
|
14
14
|
const SELECTION_INVERT = "SELECT_INVERT";
|
|
15
15
|
const SELECTION_NONE = "SELECT_NONE";
|
|
16
16
|
const EMPTY_LIST = [];
|
|
17
|
+
const SelectionMenu = /* @__PURE__ */ defineComponent((props, { emit }) => {
|
|
18
|
+
const open = shallowRef(false);
|
|
19
|
+
const onKeydown = (event) => {
|
|
20
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
21
|
+
event.preventDefault();
|
|
22
|
+
event.currentTarget?.click();
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
return () => createVNode(Dropdown, {
|
|
26
|
+
"menu": props.menu,
|
|
27
|
+
"getPopupContainer": props.getPopupContainer,
|
|
28
|
+
"trigger": ["click", "hover"],
|
|
29
|
+
"onOpenChange": (nextOpen) => {
|
|
30
|
+
open.value = nextOpen;
|
|
31
|
+
},
|
|
32
|
+
"onMenuClick": (info) => emit("menuClick", info)
|
|
33
|
+
}, { default: () => [createVNode(DownOutlined, mergeProps({
|
|
34
|
+
"role": "button",
|
|
35
|
+
"aria-label": props.label,
|
|
36
|
+
"aria-haspopup": "menu",
|
|
37
|
+
"aria-expanded": open.value,
|
|
38
|
+
"onKeydown": onKeydown
|
|
39
|
+
}, { "tabIndex": 0 }), null)] });
|
|
40
|
+
}, {
|
|
41
|
+
props: {
|
|
42
|
+
menu: {
|
|
43
|
+
type: Object,
|
|
44
|
+
required: true
|
|
45
|
+
},
|
|
46
|
+
getPopupContainer: {
|
|
47
|
+
type: Function,
|
|
48
|
+
required: false
|
|
49
|
+
},
|
|
50
|
+
label: {
|
|
51
|
+
type: String,
|
|
52
|
+
required: true
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
emits: ["menuClick"],
|
|
56
|
+
name: "TableSelectionMenu",
|
|
57
|
+
inheritAttrs: false
|
|
58
|
+
});
|
|
17
59
|
function flattenData(childrenColumnName, data, list = []) {
|
|
18
60
|
(data || []).forEach((record) => {
|
|
19
61
|
list.push(record);
|
|
@@ -60,6 +102,16 @@ function useSelection(config, rowSelection) {
|
|
|
60
102
|
preserveRecordsRef.value = newCache;
|
|
61
103
|
}
|
|
62
104
|
};
|
|
105
|
+
let lastClickEvent;
|
|
106
|
+
const takeClickEvent = (event) => {
|
|
107
|
+
const clickEvent = lastClickEvent;
|
|
108
|
+
lastClickEvent = void 0;
|
|
109
|
+
return clickEvent ?? event?.nativeEvent;
|
|
110
|
+
};
|
|
111
|
+
const getSelectedRecord = (key) => {
|
|
112
|
+
const record = getRecordByKey(key);
|
|
113
|
+
return !record && preserveSelectedRowKeys.value ? preserveRecordsRef.value.get(key) : record;
|
|
114
|
+
};
|
|
63
115
|
watch([
|
|
64
116
|
mergedSelectedKeys,
|
|
65
117
|
data,
|
|
@@ -134,7 +186,7 @@ function useSelection(config, rowSelection) {
|
|
|
134
186
|
};
|
|
135
187
|
const triggerSingleSelection = (key, selected, keys, event) => {
|
|
136
188
|
if (selectionConfig.value.onSelect) {
|
|
137
|
-
const rows = keys.map((k) =>
|
|
189
|
+
const rows = keys.map((k) => getSelectedRecord(k));
|
|
138
190
|
selectionConfig.value.onSelect(getRecordByKey(key), selected, rows, event);
|
|
139
191
|
}
|
|
140
192
|
setSelectedKeys(keys, "single");
|
|
@@ -150,7 +202,7 @@ function useSelection(config, rowSelection) {
|
|
|
150
202
|
key: "all",
|
|
151
203
|
text: tableLocale.value.selectionAll,
|
|
152
204
|
onSelect() {
|
|
153
|
-
setSelectedKeys(data.value.reduce((keys, record, index) => {
|
|
205
|
+
setSelectedKeys(flattenData(childrenColumnName.value, data.value).reduce((keys, record, index) => {
|
|
154
206
|
const key = getRowKey.value(record, index);
|
|
155
207
|
if (!isCheckboxDisabled(record) || derivedSelectedKeySet.value.has(key)) keys.push(key);
|
|
156
208
|
return keys;
|
|
@@ -162,7 +214,7 @@ function useSelection(config, rowSelection) {
|
|
|
162
214
|
text: tableLocale.value.selectInvert,
|
|
163
215
|
onSelect() {
|
|
164
216
|
const keySet = new Set(derivedSelectedKeySet.value);
|
|
165
|
-
|
|
217
|
+
flattedData.value.forEach((record, index) => {
|
|
166
218
|
const key = getRowKey.value(record, index);
|
|
167
219
|
if (!checkboxPropsMap.value.get(key)?.disabled) if (keySet.has(key)) keySet.delete(key);
|
|
168
220
|
else keySet.add(key);
|
|
@@ -181,7 +233,8 @@ function useSelection(config, rowSelection) {
|
|
|
181
233
|
onSelect() {
|
|
182
234
|
selectionConfig.value.onSelectNone?.();
|
|
183
235
|
setSelectedKeys(Array.from(derivedSelectedKeySet.value).filter((key) => {
|
|
184
|
-
|
|
236
|
+
const record = getSelectedRecord(key);
|
|
237
|
+
return record !== void 0 && isCheckboxDisabled(record);
|
|
185
238
|
}), "none");
|
|
186
239
|
}
|
|
187
240
|
};
|
|
@@ -217,10 +270,11 @@ function useSelection(config, rowSelection) {
|
|
|
217
270
|
}
|
|
218
271
|
});
|
|
219
272
|
const keys = Array.from(keySet);
|
|
220
|
-
selectionConfig.value.onSelectAll?.(!checkedCurrentAll, keys.map((k) =>
|
|
273
|
+
selectionConfig.value.onSelectAll?.(!checkedCurrentAll, keys.map((k) => getSelectedRecord(k)), changeKeys.map((k) => getRecordByKey(k)));
|
|
221
274
|
setSelectedKeys(keys, "all");
|
|
222
275
|
updatePrevSelectedIndex(null);
|
|
223
276
|
};
|
|
277
|
+
const { selectAll, selectRow = "Select row", selectedRow = "Row selected", selectionMenu: selectionMenuLabel = "Selection menu" } = tableLocale.value;
|
|
224
278
|
let title;
|
|
225
279
|
let columnTitleCheckbox;
|
|
226
280
|
if (selectionType.value !== "radio") {
|
|
@@ -234,16 +288,17 @@ function useSelection(config, rowSelection) {
|
|
|
234
288
|
mergedSelections.value.forEach((selection, index) => {
|
|
235
289
|
selectionMap.set(selection.key ?? index, selection);
|
|
236
290
|
});
|
|
237
|
-
customizeSelections = createVNode("div", { "class": `${prefixCls.value}-selection-extra` }, [createVNode(
|
|
291
|
+
customizeSelections = createVNode("div", { "class": `${prefixCls.value}-selection-extra` }, [createVNode(SelectionMenu, {
|
|
238
292
|
"menu": {
|
|
239
293
|
getPopupContainer: getPopupContainer.value,
|
|
240
294
|
items: menuItems
|
|
241
295
|
},
|
|
242
296
|
"getPopupContainer": getPopupContainer.value,
|
|
297
|
+
"label": selectionMenuLabel,
|
|
243
298
|
"onMenuClick": (info) => {
|
|
244
299
|
selectionMap.get(info?.key)?.onSelect?.(recordKeys);
|
|
245
300
|
}
|
|
246
|
-
},
|
|
301
|
+
}, null)]);
|
|
247
302
|
}
|
|
248
303
|
const allDisabledData = flattedData.value.map((record, index) => {
|
|
249
304
|
const key = getRowKey.value(record, index);
|
|
@@ -258,7 +313,7 @@ function useSelection(config, rowSelection) {
|
|
|
258
313
|
const allDisabledSomeChecked = allDisabled && allDisabledData.some(({ checked }) => checked);
|
|
259
314
|
const customCheckboxProps = selectionConfig.value.getTitleCheckboxProps?.() || {};
|
|
260
315
|
const { onChange, disabled } = customCheckboxProps;
|
|
261
|
-
columnTitleCheckbox = createVNode(checkbox_default, mergeProps({ "aria-label":
|
|
316
|
+
columnTitleCheckbox = createVNode(checkbox_default, mergeProps({ "aria-label": typeof selectAll === "string" && selectAll ? selectAll : "Select all" }, customCheckboxProps, {
|
|
262
317
|
"checked": !allDisabled ? !!flattedData.value.length && checkedCurrentAll : allDisabledAndChecked,
|
|
263
318
|
"indeterminate": !allDisabled ? !checkedCurrentAll && checkedCurrentSome : !allDisabledAndChecked && allDisabledSomeChecked,
|
|
264
319
|
"onChange": (e) => {
|
|
@@ -276,14 +331,16 @@ function useSelection(config, rowSelection) {
|
|
|
276
331
|
const checked = keySet.has(key);
|
|
277
332
|
const checkboxProps = checkboxPropsMap.value.get(key);
|
|
278
333
|
return {
|
|
279
|
-
node: createVNode(radio_default, mergeProps({ "aria-label":
|
|
334
|
+
node: createVNode(radio_default, mergeProps({ "aria-label": selectRow }, checkboxProps, {
|
|
280
335
|
"checked": checked,
|
|
281
336
|
"onClick": (e) => {
|
|
337
|
+
lastClickEvent = e;
|
|
282
338
|
e.stopPropagation();
|
|
283
339
|
checkboxProps?.onClick?.(e);
|
|
284
340
|
},
|
|
285
341
|
"onChange": (event) => {
|
|
286
|
-
|
|
342
|
+
const nativeEvent = takeClickEvent(event);
|
|
343
|
+
if (!keySet.has(key)) triggerSingleSelection(key, true, [key], nativeEvent);
|
|
287
344
|
checkboxProps?.onChange?.(event);
|
|
288
345
|
}
|
|
289
346
|
}), null),
|
|
@@ -301,23 +358,24 @@ function useSelection(config, rowSelection) {
|
|
|
301
358
|
warning(typeof checkboxProps?.indeterminate !== "boolean", "usage", "set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.");
|
|
302
359
|
} else mergedIndeterminate = checkboxProps?.indeterminate ?? indeterminate;
|
|
303
360
|
return {
|
|
304
|
-
node: createVNode(checkbox_default, mergeProps({ "aria-label": checked ?
|
|
361
|
+
node: createVNode(checkbox_default, mergeProps({ "aria-label": checked ? selectedRow : selectRow }, checkboxProps, {
|
|
305
362
|
"indeterminate": mergedIndeterminate,
|
|
306
363
|
"checked": checked,
|
|
307
364
|
"skipGroup": true,
|
|
308
365
|
"onClick": (e) => {
|
|
366
|
+
lastClickEvent = e;
|
|
309
367
|
e.stopPropagation();
|
|
310
368
|
checkboxProps?.onClick?.(e);
|
|
311
369
|
},
|
|
312
370
|
"onChange": (event) => {
|
|
313
|
-
const nativeEvent = event
|
|
314
|
-
const
|
|
371
|
+
const nativeEvent = takeClickEvent(event);
|
|
372
|
+
const shiftKey = !!nativeEvent?.shiftKey;
|
|
315
373
|
const currentSelectedIndex = recordKeys.indexOf(key);
|
|
316
374
|
const isMultiple = derivedSelectedKeySet.value.size > 0 && recordKeys.some((key) => derivedSelectedKeySet.value.has(key));
|
|
317
375
|
if (shiftKey && checkStrictly.value && isMultiple) {
|
|
318
376
|
const changedKeys = multipleSelect(currentSelectedIndex, recordKeys, keySet);
|
|
319
377
|
const keys = Array.from(keySet);
|
|
320
|
-
selectionConfig.value.onSelectMultiple?.(!checked, keys.map((recordKey) =>
|
|
378
|
+
selectionConfig.value.onSelectMultiple?.(!checked, keys.map((recordKey) => getSelectedRecord(recordKey)), changedKeys.map((recordKey) => getRecordByKey(recordKey)));
|
|
321
379
|
setSelectedKeys(keys, "multiple");
|
|
322
380
|
} else {
|
|
323
381
|
const originCheckedKeys = derivedSelectedKeys.value[0];
|
|
@@ -31,9 +31,17 @@ interface TableLocale {
|
|
|
31
31
|
selectNone?: VueNode;
|
|
32
32
|
selectInvert?: VueNode;
|
|
33
33
|
selectionAll?: VueNode;
|
|
34
|
+
/** Accessible label for a selectable row. */
|
|
35
|
+
selectRow?: string;
|
|
36
|
+
/** Accessible label for a selected row. */
|
|
37
|
+
selectedRow?: string;
|
|
38
|
+
/** Accessible label for the custom selection menu trigger. */
|
|
39
|
+
selectionMenu?: string;
|
|
34
40
|
sortTitle?: string;
|
|
35
41
|
expand?: string;
|
|
36
42
|
collapse?: string;
|
|
43
|
+
expandAll?: string;
|
|
44
|
+
collapseAll?: string;
|
|
37
45
|
triggerDesc?: string;
|
|
38
46
|
triggerAsc?: string;
|
|
39
47
|
cancelSort?: string;
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
+
import { SeedToken } from "../../theme/interface/seeds.js";
|
|
2
|
+
import { AliasToken } from "../../theme/interface/alias.js";
|
|
3
|
+
import { ComponentTokenMap } from "../../theme/interface/components.js";
|
|
1
4
|
import { FullToken, GetDefaultToken } from "../../theme/interface/cssinjs-utils.js";
|
|
5
|
+
import "../../theme/interface/index.js";
|
|
2
6
|
import "../../theme/internal.js";
|
|
3
7
|
//#region src/table/style/index.d.ts
|
|
4
8
|
interface ComponentToken {
|
|
@@ -211,6 +215,6 @@ interface TableToken extends FullToken<'Table'> {
|
|
|
211
215
|
tableScrollBg: string;
|
|
212
216
|
}
|
|
213
217
|
declare const prepareComponentToken: GetDefaultToken<'Table'>;
|
|
214
|
-
declare const _default: (prefixCls: import("vue").Ref<string>, rootCls?: import("vue").Ref<string | undefined>) => readonly [import("vue").Ref<string, string>, import("vue").ComputedRef<string | undefined>];
|
|
218
|
+
declare const _default: (prefixCls: import("vue").Ref<string>, rootCls?: import("vue").Ref<string | undefined>, tokenResult?: import("@antdv-next/cssinjs").UseTokenReturn<ComponentTokenMap, AliasToken, SeedToken> | undefined) => readonly [import("vue").Ref<string, string>, import("vue").ComputedRef<string | undefined>];
|
|
215
219
|
//#endregion
|
|
216
220
|
export { ComponentToken, TableToken, _default as default, prepareComponentToken };
|
|
@@ -25,7 +25,7 @@ const genTableStyle = (token) => {
|
|
|
25
25
|
return { [`${componentCls}-wrapper`]: {
|
|
26
26
|
clear: "both",
|
|
27
27
|
maxWidth: "100%",
|
|
28
|
-
["--
|
|
28
|
+
["--vc-virtual-list-scrollbar-bg"]: token.tableScrollBg,
|
|
29
29
|
...clearFix(),
|
|
30
30
|
[componentCls]: {
|
|
31
31
|
...resetComponent(token),
|
|
@@ -21,7 +21,7 @@ const genSelectionStyle = (token) => {
|
|
|
21
21
|
textAlign: "center",
|
|
22
22
|
[`${antCls}-radio-wrapper`]: { marginInlineEnd: 0 }
|
|
23
23
|
},
|
|
24
|
-
[`table tr th${componentCls}-selection-column${componentCls}-cell-fix-
|
|
24
|
+
[`table tr th${componentCls}-selection-column${componentCls}-cell-fix-start`]: { zIndex: `calc(var(--z-offset, 0) + ${token.zIndexTableFixed})` },
|
|
25
25
|
[`table tr th${componentCls}-selection-column::after`]: { backgroundColor: "transparent !important" },
|
|
26
26
|
[`${componentCls}-selection`]: {
|
|
27
27
|
position: "relative",
|
|
@@ -12,8 +12,8 @@ const genSorterStyle = (token) => {
|
|
|
12
12
|
},
|
|
13
13
|
"&:focus-visible": { color: token.colorPrimary },
|
|
14
14
|
[`
|
|
15
|
-
&${componentCls}-cell-fix-
|
|
16
|
-
&${componentCls}-cell-fix-
|
|
15
|
+
&${componentCls}-cell-fix-start:hover,
|
|
16
|
+
&${componentCls}-cell-fix-end:hover
|
|
17
17
|
`]: { background: token.tableFixedHeaderSortActiveBg }
|
|
18
18
|
},
|
|
19
19
|
[`${componentCls}-thead th${componentCls}-column-sort`]: {
|
package/dist/table/util.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ declare function renderColumnTitle<RecordType extends AnyObject = AnyObject>(tit
|
|
|
11
11
|
* Should filter [object Object]
|
|
12
12
|
*/
|
|
13
13
|
declare function safeColumnTitle<RecordType extends AnyObject = AnyObject>(title: ColumnTitle<RecordType>, props: ColumnTitleProps<RecordType>): any;
|
|
14
|
-
declare function normalizePlacement(pos: TablePaginationPlacement | TablePaginationPosition): "
|
|
14
|
+
declare function normalizePlacement(pos: TablePaginationPlacement | TablePaginationPosition): "center" | "end" | "start";
|
|
15
15
|
declare function getPaginationSize(paginationSize: SizeType, mergedSize: SizeType): SizeType;
|
|
16
16
|
//#endregion
|
|
17
17
|
export { getColumnKey, getColumnPos, getPaginationSize, normalizePlacement, renderColumnTitle, safeColumnTitle };
|
package/dist/tabs/index.js
CHANGED
|
@@ -56,6 +56,9 @@ const InternalTabs = /* @__PURE__ */ defineComponent((props, { attrs, slots, emi
|
|
|
56
56
|
warning(!(attrs.onPrevClick || attrs.onNextClick), "breaking", "`onPrevClick` and `onNextClick` has been removed. Please use `onTabScroll` instead.");
|
|
57
57
|
warning.deprecated(!indicatorSize.value, "indicatorSize", "indicator");
|
|
58
58
|
warning.deprecated(!(props.destroyInactiveTabPane || props.items?.some((item) => "destroyInactiveTabPane" in item)), "destroyInactiveTabPane", "destroyOnHidden");
|
|
59
|
+
if (more.value) [["visible", "open"], ["onVisibleChange", "onOpenChange"]].forEach(([deprecatedName, newName]) => {
|
|
60
|
+
warning.deprecated(!(deprecatedName in more.value), `more.${deprecatedName}`, `more.${newName}`);
|
|
61
|
+
});
|
|
59
62
|
}
|
|
60
63
|
const rootCls = useCSSVarCls(prefixCls);
|
|
61
64
|
const [hashId, cssVarCls] = style_default(prefixCls, rootCls);
|
|
@@ -87,14 +90,18 @@ const InternalTabs = /* @__PURE__ */ defineComponent((props, { attrs, slots, emi
|
|
|
87
90
|
};
|
|
88
91
|
const mergedMoreFn = () => {
|
|
89
92
|
const rootPrefixCls = getPrefixCls();
|
|
93
|
+
const { visible: moreVisible, ...restMoreProps } = more.value ?? {};
|
|
94
|
+
const legacyMoreProps = more.value && !("open" in more.value) && "visible" in more.value ? { open: moreVisible } : {};
|
|
90
95
|
if (!rootPrefixCls) return {
|
|
91
96
|
icon: moreIcon,
|
|
92
|
-
...
|
|
97
|
+
...restMoreProps,
|
|
98
|
+
...legacyMoreProps
|
|
93
99
|
};
|
|
94
100
|
return {
|
|
95
101
|
icon: moreIcon,
|
|
96
102
|
transitionName: `${rootPrefixCls}-slide-up`,
|
|
97
|
-
...
|
|
103
|
+
...restMoreProps,
|
|
104
|
+
...legacyMoreProps
|
|
98
105
|
};
|
|
99
106
|
};
|
|
100
107
|
const mergedMore = mergedMoreFn();
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
+
import { SeedToken } from "../../theme/interface/seeds.js";
|
|
2
|
+
import { AliasToken } from "../../theme/interface/alias.js";
|
|
3
|
+
import { ComponentTokenMap } from "../../theme/interface/components.js";
|
|
1
4
|
import { FullToken, GetDefaultToken } from "../../theme/interface/cssinjs-utils.js";
|
|
5
|
+
import "../../theme/interface/index.js";
|
|
2
6
|
import "../../theme/internal.js";
|
|
3
7
|
//#region src/tabs/style/index.d.ts
|
|
4
8
|
interface ComponentToken {
|
|
@@ -143,6 +147,6 @@ interface TabsToken extends FullToken<'Tabs'> {
|
|
|
143
147
|
tabsHorizontalItemMarginRTL: string;
|
|
144
148
|
}
|
|
145
149
|
declare const prepareComponentToken: GetDefaultToken<'Tabs'>;
|
|
146
|
-
declare const _default: (prefixCls: import("vue").Ref<string>, rootCls?: import("vue").Ref<string | undefined>) => readonly [import("vue").Ref<string, string>, import("vue").ComputedRef<string | undefined>];
|
|
150
|
+
declare const _default: (prefixCls: import("vue").Ref<string>, rootCls?: import("vue").Ref<string | undefined>, tokenResult?: import("@antdv-next/cssinjs").UseTokenReturn<ComponentTokenMap, AliasToken, SeedToken> | undefined) => readonly [import("vue").Ref<string, string>, import("vue").ComputedRef<string | undefined>];
|
|
147
151
|
//#endregion
|
|
148
152
|
export { ComponentToken, TabsToken, _default as default, prepareComponentToken };
|
package/dist/tabs/style/index.js
CHANGED
|
@@ -114,7 +114,7 @@ const genDropdownStyle = (token) => {
|
|
|
114
114
|
margin: 0,
|
|
115
115
|
padding: `${unit(token.paddingXXS)} ${unit(token.paddingSM)}`,
|
|
116
116
|
color: token.colorText,
|
|
117
|
-
fontWeight:
|
|
117
|
+
fontWeight: 400,
|
|
118
118
|
fontSize: token.fontSize,
|
|
119
119
|
lineHeight: token.lineHeight,
|
|
120
120
|
cursor: "pointer",
|
|
@@ -43,7 +43,7 @@ interface CheckableTagGroupEmitsProps<CheckableTagValue = CheckableTagDefaultVal
|
|
|
43
43
|
onChange?: CheckableTagGroupEmits<CheckableTagValue>['change'];
|
|
44
44
|
'onUpdate:value'?: CheckableTagGroupEmits<CheckableTagValue>['update:value'];
|
|
45
45
|
}
|
|
46
|
-
|
|
47
|
-
declare const CheckableTagGroup: import("vue").DefineSetupFnComponent<InternalCheckableTagGroupProps, CheckableTagGroupEmits<CheckableTagDefaultValue>, {}, InternalCheckableTagGroupProps, import("vue").PublicProps>;
|
|
46
|
+
type InternalCheckableTagGroupProps = CheckableTagGroupProps & /* @vue-ignore */ CheckableTagGroupEmitsProps;
|
|
47
|
+
declare const CheckableTagGroup: import("vue").DefineSetupFnComponent<InternalCheckableTagGroupProps, CheckableTagGroupEmits<CheckableTagDefaultValue>, {}, InternalCheckableTagGroupProps & {}, import("vue").PublicProps>;
|
|
48
48
|
//#endregion
|
|
49
49
|
export { CheckableTagGroupEmits, CheckableTagGroupEmitsProps, CheckableTagGroupProps, CheckableTagGroupRef, CheckableTagOption, SemanticName, CheckableTagGroup as default };
|
|
@@ -9,6 +9,6 @@ declare function useColor(props: {
|
|
|
9
9
|
color: Ref<TagProps['color']>;
|
|
10
10
|
variant: Ref<TagProps['variant']>;
|
|
11
11
|
bordered: Ref<TagProps['bordered']>;
|
|
12
|
-
}, contextVariant?: Ref<TagProps['variant']>): readonly [import("vue").ComputedRef<"
|
|
12
|
+
}, contextVariant?: Ref<TagProps['variant']>): readonly [import("vue").ComputedRef<"outlined" | "solid" | "filled">, import("vue").ComputedRef<string | undefined>, import("vue").ComputedRef<boolean>, import("vue").ComputedRef<boolean>, import("vue").ComputedRef<CSSProperties>];
|
|
13
13
|
//#endregion
|
|
14
14
|
export { useColor as default };
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
+
import { SeedToken } from "../../theme/interface/seeds.js";
|
|
2
|
+
import { AliasToken } from "../../theme/interface/alias.js";
|
|
3
|
+
import { ComponentTokenMap } from "../../theme/interface/components.js";
|
|
1
4
|
import { FullToken, GenStyleFn, GetDefaultToken } from "../../theme/interface/cssinjs-utils.js";
|
|
5
|
+
import "../../theme/interface/index.js";
|
|
2
6
|
import "../../theme/internal.js";
|
|
3
7
|
import { CSSProperties } from "vue";
|
|
4
8
|
//#region src/tag/style/index.d.ts
|
|
@@ -28,6 +32,6 @@ interface TagToken extends FullToken<'Tag'> {
|
|
|
28
32
|
}
|
|
29
33
|
declare function prepareToken(token: Parameters<GenStyleFn<'Tag'>>[0]): TagToken;
|
|
30
34
|
declare const prepareComponentToken: GetDefaultToken<'Tag'>;
|
|
31
|
-
declare const _default: (prefixCls: import("vue").Ref<string>, rootCls?: import("vue").Ref<string | undefined>) => readonly [import("vue").Ref<string, string>, import("vue").ComputedRef<string | undefined>];
|
|
35
|
+
declare const _default: (prefixCls: import("vue").Ref<string>, rootCls?: import("vue").Ref<string | undefined>, tokenResult?: import("@antdv-next/cssinjs").UseTokenReturn<ComponentTokenMap, AliasToken, SeedToken> | undefined) => readonly [import("vue").Ref<string, string>, import("vue").ComputedRef<string | undefined>];
|
|
32
36
|
//#endregion
|
|
33
37
|
export { ComponentToken, TagToken, _default as default, prepareComponentToken, prepareToken };
|
package/dist/theme/context.js
CHANGED
|
@@ -17,8 +17,9 @@ const DesignTokenProvider = defineComponent((props, { slots }) => {
|
|
|
17
17
|
return slots?.default?.();
|
|
18
18
|
};
|
|
19
19
|
}, { props: ["value"] });
|
|
20
|
+
const defaultDesignTokenRef = computed(() => defaultConfig);
|
|
20
21
|
function useDesignToken() {
|
|
21
|
-
return inject(DesignTokenContextKey,
|
|
22
|
+
return inject(DesignTokenContextKey, defaultDesignTokenRef);
|
|
22
23
|
}
|
|
23
24
|
//#endregion
|
|
24
25
|
export { DesignTokenContextKey, DesignTokenProvider, defaultConfig, defaultTheme, useDesignToken, useDesignTokenProvide };
|
package/dist/theme/useToken.d.ts
CHANGED
|
@@ -11,6 +11,10 @@ declare const ignore: { [key in keyof AliasToken]?: boolean; };
|
|
|
11
11
|
declare function getComputedToken(originToken: SeedToken, overrideToken: DesignTokenProviderProps['components'] & {
|
|
12
12
|
override?: Partial<AliasToken>;
|
|
13
13
|
}, theme: Theme<any, any>): any;
|
|
14
|
-
|
|
14
|
+
type UseTokenResult = [theme: Ref<Theme<SeedToken, AliasToken>>, token: Ref<GlobalToken>, hashId: Ref<string>, realToken: Ref<GlobalToken>, cssVar: Ref<{
|
|
15
|
+
prefix: string;
|
|
16
|
+
key: string;
|
|
17
|
+
}>, zeroRuntime: Ref<boolean>];
|
|
18
|
+
declare function useToken(): UseTokenResult;
|
|
15
19
|
//#endregion
|
|
16
|
-
export { useToken as default, getComputedToken, ignore, unitless };
|
|
20
|
+
export { UseTokenResult, useToken as default, getComputedToken, ignore, unitless };
|
package/dist/theme/useToken.js
CHANGED
|
@@ -4,8 +4,8 @@ import { useDesignToken } from "./context.js";
|
|
|
4
4
|
import { useConfig } from "../config-provider/context.js";
|
|
5
5
|
import version_default from "../version/index.js";
|
|
6
6
|
import formatToken from "./util/alias.js";
|
|
7
|
-
import { computed } from "vue";
|
|
8
|
-
import {
|
|
7
|
+
import { computed, effectScope } from "vue";
|
|
8
|
+
import { createCacheToken, useGlobalCacheEntry, useStyleContext } from "@antdv-next/cssinjs";
|
|
9
9
|
//#region src/theme/useToken.ts
|
|
10
10
|
const unitless = {
|
|
11
11
|
lineHeight: true,
|
|
@@ -67,9 +67,13 @@ function getComputedToken(originToken, overrideToken, theme) {
|
|
|
67
67
|
});
|
|
68
68
|
return mergedDerivativeToken;
|
|
69
69
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
70
|
+
/**
|
|
71
|
+
* The derived token only depends on the three injected contexts, so compute it
|
|
72
|
+
* once per (design token, config, style context) triple and let every component
|
|
73
|
+
* instance under those providers reuse the same computeds. Each instance only
|
|
74
|
+
* holds a reference on the cache entry (`useGlobalCacheEntry`).
|
|
75
|
+
*/
|
|
76
|
+
function createSharedToken(designContext, config, styleContext) {
|
|
73
77
|
const salt = computed(() => `${version_default}-${designContext.value.hashed || ""}`);
|
|
74
78
|
const mergedTheme = computed(() => designContext.value?.theme || defaultTheme);
|
|
75
79
|
const cssVar = computed(() => {
|
|
@@ -79,7 +83,7 @@ function useToken() {
|
|
|
79
83
|
key: cssVar?.key ?? "css-var-root"
|
|
80
84
|
};
|
|
81
85
|
});
|
|
82
|
-
const
|
|
86
|
+
const entry = createCacheToken(styleContext, mergedTheme, computed(() => [seedToken, designContext.value.token]), computed(() => {
|
|
83
87
|
return {
|
|
84
88
|
salt: salt.value,
|
|
85
89
|
override: designContext.value.override,
|
|
@@ -93,14 +97,42 @@ function useToken() {
|
|
|
93
97
|
nonce: designContext.value.csp?.nonce ?? config.value?.csp?.nonce
|
|
94
98
|
};
|
|
95
99
|
}));
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
100
|
+
const cachedToken = entry.value;
|
|
101
|
+
return {
|
|
102
|
+
entry,
|
|
103
|
+
result: [
|
|
104
|
+
mergedTheme,
|
|
105
|
+
computed(() => cachedToken.value[2]),
|
|
106
|
+
computed(() => designContext.value.hashed ? cachedToken.value[1] : ""),
|
|
107
|
+
computed(() => cachedToken.value[0]),
|
|
108
|
+
cssVar,
|
|
109
|
+
computed(() => !!designContext.value?.zeroRuntime)
|
|
110
|
+
]
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
const sharedTokenMap = /* @__PURE__ */ new WeakMap();
|
|
114
|
+
function getSharedToken(designContext, config, styleContext) {
|
|
115
|
+
let byConfig = sharedTokenMap.get(designContext);
|
|
116
|
+
if (!byConfig) {
|
|
117
|
+
byConfig = /* @__PURE__ */ new WeakMap();
|
|
118
|
+
sharedTokenMap.set(designContext, byConfig);
|
|
119
|
+
}
|
|
120
|
+
let byStyle = byConfig.get(config);
|
|
121
|
+
if (!byStyle) {
|
|
122
|
+
byStyle = /* @__PURE__ */ new WeakMap();
|
|
123
|
+
byConfig.set(config, byStyle);
|
|
124
|
+
}
|
|
125
|
+
let shared = byStyle.get(styleContext);
|
|
126
|
+
if (!shared) {
|
|
127
|
+
shared = effectScope(true).run(() => createSharedToken(designContext, config, styleContext));
|
|
128
|
+
byStyle.set(styleContext, shared);
|
|
129
|
+
}
|
|
130
|
+
return shared;
|
|
131
|
+
}
|
|
132
|
+
function useToken() {
|
|
133
|
+
const shared = getSharedToken(useDesignToken(), useConfig(), useStyleContext());
|
|
134
|
+
useGlobalCacheEntry(shared.entry);
|
|
135
|
+
return shared.result;
|
|
104
136
|
}
|
|
105
137
|
//#endregion
|
|
106
138
|
export { useToken as default, getComputedToken, ignore, unitless };
|
|
@@ -1,7 +1,17 @@
|
|
|
1
|
+
import { SeedToken } from "../interface/seeds.js";
|
|
1
2
|
import { AliasToken } from "../interface/alias.js";
|
|
2
3
|
import { ComponentTokenMap } from "../interface/components.js";
|
|
3
4
|
import "../interface/index.js";
|
|
5
|
+
import { ComputedRef } from "vue";
|
|
6
|
+
import { UseTokenReturn } from "@antdv-next/cssinjs";
|
|
4
7
|
//#region src/theme/util/genStyleUtils.d.ts
|
|
8
|
+
type StyleTokenResult = UseTokenReturn<ComponentTokenMap, AliasToken, SeedToken>;
|
|
9
|
+
/**
|
|
10
|
+
* `useToken()` in the shape the cssinjs style hooks consume. Components that
|
|
11
|
+
* need the token themselves (e.g. Wave) call this once and pass the result to
|
|
12
|
+
* their style hook so the token is resolved a single time per instance.
|
|
13
|
+
*/
|
|
14
|
+
declare function useStyleToken(): StyleTokenResult;
|
|
5
15
|
declare const genComponentStyleHook: <C extends keyof ComponentTokenMap>(componentName: C | [C, string], styleFn: import("@antdv-next/cssinjs").GenStyleFn<ComponentTokenMap, AliasToken, C>, getDefaultToken?: import("@antdv-next/cssinjs").GetDefaultToken<ComponentTokenMap, AliasToken, C> | undefined, options?: {
|
|
6
16
|
resetStyle?: boolean;
|
|
7
17
|
resetFont?: boolean;
|
|
@@ -10,7 +20,7 @@ declare const genComponentStyleHook: <C extends keyof ComponentTokenMap>(compone
|
|
|
10
20
|
order?: number;
|
|
11
21
|
injectStyle?: boolean;
|
|
12
22
|
unitless?: Partial<Record<keyof Exclude<import("@antdv-next/cssinjs").OverrideTokenMap<ComponentTokenMap, AliasToken>[C], undefined>, boolean>> | undefined;
|
|
13
|
-
} | undefined) => (prefixCls: import("vue").Ref<string>, rootCls?: import("vue").Ref<string | undefined>) => import("vue").Ref<string, string>, genStyleHooks: <C extends keyof ComponentTokenMap>(component: C | [C, string], styleFn: import("@antdv-next/cssinjs").GenStyleFn<ComponentTokenMap, AliasToken, C>, getDefaultToken?: import("@antdv-next/cssinjs").GetDefaultToken<ComponentTokenMap, AliasToken, C> | undefined, options?: {
|
|
23
|
+
} | undefined) => (prefixCls: import("vue").Ref<string>, rootCls?: import("vue").Ref<string | undefined>, tokenResult?: UseTokenReturn<ComponentTokenMap, AliasToken, SeedToken> | undefined) => import("vue").Ref<string, string>, genStyleHooks: <C extends keyof ComponentTokenMap>(component: C | [C, string], styleFn: import("@antdv-next/cssinjs").GenStyleFn<ComponentTokenMap, AliasToken, C>, getDefaultToken?: import("@antdv-next/cssinjs").GetDefaultToken<ComponentTokenMap, AliasToken, C> | undefined, options?: {
|
|
14
24
|
resetStyle?: boolean;
|
|
15
25
|
resetFont?: boolean;
|
|
16
26
|
deprecatedTokens?: [keyof Exclude<import("@antdv-next/cssinjs").OverrideTokenMap<ComponentTokenMap, AliasToken>[C], undefined>, keyof Exclude<import("@antdv-next/cssinjs").OverrideTokenMap<ComponentTokenMap, AliasToken>[C], undefined>][] | undefined;
|
|
@@ -22,7 +32,7 @@ declare const genComponentStyleHook: <C extends keyof ComponentTokenMap>(compone
|
|
|
22
32
|
prefixCls: string;
|
|
23
33
|
rootCls: string;
|
|
24
34
|
}) => string[]);
|
|
25
|
-
} | undefined) => (prefixCls: import("vue").Ref<string>, rootCls?: import("vue").Ref<string | undefined>) => readonly [import("vue").Ref<string, string>,
|
|
35
|
+
} | undefined) => (prefixCls: import("vue").Ref<string>, rootCls?: import("vue").Ref<string | undefined>, tokenResult?: UseTokenReturn<ComponentTokenMap, AliasToken, SeedToken> | undefined) => readonly [import("vue").Ref<string, string>, ComputedRef<string | undefined>], genSubStyleComponent: <C extends keyof ComponentTokenMap>(componentName: C | [C, string], styleFn: import("@antdv-next/cssinjs").GenStyleFn<ComponentTokenMap, AliasToken, C>, getDefaultToken?: import("@antdv-next/cssinjs").GetDefaultToken<ComponentTokenMap, AliasToken, C> | undefined, options?: {
|
|
26
36
|
resetStyle?: boolean;
|
|
27
37
|
resetFont?: boolean;
|
|
28
38
|
deprecatedTokens?: [keyof Exclude<import("@antdv-next/cssinjs").OverrideTokenMap<ComponentTokenMap, AliasToken>[C], undefined>, keyof Exclude<import("@antdv-next/cssinjs").OverrideTokenMap<ComponentTokenMap, AliasToken>[C], undefined>][] | undefined;
|
|
@@ -41,4 +51,4 @@ type CssVarName = (name: string) => `--${string}`;
|
|
|
41
51
|
type CssVarRef = (name: string, fallback?: string | number) => `var(--${string})`;
|
|
42
52
|
declare function genCssVar(antCls: string, component: string): readonly [varName: CssVarName, varRef: CssVarRef];
|
|
43
53
|
//#endregion
|
|
44
|
-
export { genComponentStyleHook, genCssVar, genStyleHooks, genSubStyleComponent };
|
|
54
|
+
export { StyleTokenResult, genComponentStyleHook, genCssVar, genStyleHooks, genSubStyleComponent, useStyleToken };
|
|
@@ -1,38 +1,52 @@
|
|
|
1
1
|
import { useConfig } from "../../config-provider/context.js";
|
|
2
2
|
import useToken, { unitless } from "../useToken.js";
|
|
3
3
|
import { genCommonStyle, genIconStyle, genLinkStyle } from "../../style/index.js";
|
|
4
|
-
import { computed } from "vue";
|
|
4
|
+
import { computed, effectScope } from "vue";
|
|
5
5
|
import { genStyleUtils } from "@antdv-next/cssinjs/cssinjs-utils";
|
|
6
6
|
//#region src/theme/util/genStyleUtils.ts
|
|
7
|
+
/**
|
|
8
|
+
* Derive a computed from the injected config ref once per ref instead of once
|
|
9
|
+
* per component instance. The config ref is stable per ConfigProvider (and a
|
|
10
|
+
* module singleton without one), so the WeakMap entry lives exactly as long
|
|
11
|
+
* as the provider.
|
|
12
|
+
*/
|
|
13
|
+
function memoByConfig(cache, create) {
|
|
14
|
+
const config = useConfig();
|
|
15
|
+
let result = cache.get(config);
|
|
16
|
+
if (!result) {
|
|
17
|
+
result = effectScope(true).run(() => computed(() => create(config)));
|
|
18
|
+
cache.set(config, result);
|
|
19
|
+
}
|
|
20
|
+
return result;
|
|
21
|
+
}
|
|
22
|
+
const prefixCache = /* @__PURE__ */ new WeakMap();
|
|
23
|
+
const cspCache = /* @__PURE__ */ new WeakMap();
|
|
24
|
+
/**
|
|
25
|
+
* `useToken()` in the shape the cssinjs style hooks consume. Components that
|
|
26
|
+
* need the token themselves (e.g. Wave) call this once and pass the result to
|
|
27
|
+
* their style hook so the token is resolved a single time per instance.
|
|
28
|
+
*/
|
|
29
|
+
function useStyleToken() {
|
|
30
|
+
const [theme, realToken, hashId, token, cssVar, zeroRuntime] = useToken();
|
|
31
|
+
return {
|
|
32
|
+
theme,
|
|
33
|
+
realToken,
|
|
34
|
+
hashId,
|
|
35
|
+
token,
|
|
36
|
+
cssVar,
|
|
37
|
+
zeroRuntime
|
|
38
|
+
};
|
|
39
|
+
}
|
|
7
40
|
const { genComponentStyleHook, genStyleHooks, genSubStyleComponent } = genStyleUtils({
|
|
8
|
-
usePrefix: () => {
|
|
9
|
-
const
|
|
10
|
-
return computed(() => {
|
|
11
|
-
const { getPrefixCls, iconPrefixCls } = configCtx.value;
|
|
12
|
-
return {
|
|
13
|
-
rootPrefixCls: getPrefixCls(),
|
|
14
|
-
iconPrefixCls
|
|
15
|
-
};
|
|
16
|
-
});
|
|
17
|
-
},
|
|
18
|
-
useToken() {
|
|
19
|
-
const [theme, realToken, hashId, token, cssVar, zeroRuntime] = useToken();
|
|
41
|
+
usePrefix: () => memoByConfig(prefixCache, (configCtx) => {
|
|
42
|
+
const { getPrefixCls, iconPrefixCls } = configCtx.value;
|
|
20
43
|
return {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
hashId: computed(() => hashId.value ?? ""),
|
|
24
|
-
token,
|
|
25
|
-
cssVar: computed(() => cssVar?.value ?? {
|
|
26
|
-
prefix: "",
|
|
27
|
-
key: ""
|
|
28
|
-
}),
|
|
29
|
-
zeroRuntime
|
|
44
|
+
rootPrefixCls: getPrefixCls(),
|
|
45
|
+
iconPrefixCls
|
|
30
46
|
};
|
|
31
|
-
},
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
return computed(() => configCtx.value?.csp ?? {});
|
|
35
|
-
},
|
|
47
|
+
}),
|
|
48
|
+
useToken: useStyleToken,
|
|
49
|
+
useCSP: () => memoByConfig(cspCache, (configCtx) => configCtx.value?.csp ?? {}),
|
|
36
50
|
getResetStyles: (token, config) => {
|
|
37
51
|
const linkStyle = genLinkStyle(token);
|
|
38
52
|
const { prefix } = config ?? {};
|
|
@@ -56,4 +70,4 @@ function genCssVar(antCls, component) {
|
|
|
56
70
|
return [varName, varRef];
|
|
57
71
|
}
|
|
58
72
|
//#endregion
|
|
59
|
-
export { genComponentStyleHook, genCssVar, genStyleHooks, genSubStyleComponent };
|
|
73
|
+
export { genComponentStyleHook, genCssVar, genStyleHooks, genSubStyleComponent, useStyleToken };
|