antdv-next 1.5.6 → 1.6.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/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 +19 -0
- package/dist/_util/hooks/useAllowClear.js +16 -0
- 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/statusUtils.d.ts +1 -1
- package/dist/_util/vueNode.d.ts +2 -6
- 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 +131 -128
- package/dist/alert/style/index.d.ts +4 -1
- package/dist/alert/style/index.js +9 -6
- package/dist/anchor/style/index.d.ts +5 -1
- package/dist/antd-with-locales.esm.js +18709 -16277
- package/dist/antd-with-locales.js +80 -80
- package/dist/antd.css +1 -1
- package/dist/antd.esm.js +17119 -14687
- package/dist/antd.js +80 -80
- package/dist/app/style/index.d.ts +5 -1
- 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/style/index.d.ts +5 -1
- package/dist/breadcrumb/BreadcrumbItem.js +1 -1
- 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/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/index.js +3 -2
- package/dist/cascader/style/index.d.ts +5 -1
- package/dist/cascader/style/panel.d.ts +5 -1
- package/dist/checkbox/style/index.d.ts +4 -1
- package/dist/collapse/style/index.d.ts +4 -1
- package/dist/color-picker/ColorPicker.js +7 -11
- package/dist/color-picker/style/index.d.ts +5 -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 +10 -3
- package/dist/date-picker/generatePicker/generateSinglePicker.js +13 -5
- package/dist/date-picker/generatePicker/useComponents.d.ts +3 -3
- package/dist/date-picker/style/index.d.ts +5 -1
- package/dist/date-picker/util.d.ts +8 -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 +6 -6
- package/dist/descriptions/style/index.d.ts +5 -1
- package/dist/divider/style/index.d.ts +5 -1
- package/dist/drawer/DrawerPanel.js +6 -6
- 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.js +2 -1
- package/dist/dropdown/style/index.d.ts +5 -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/FormItem/index.js +36 -16
- package/dist/form/context.d.ts +1 -1
- package/dist/form/hooks/useVariant.d.ts +1 -1
- package/dist/form/style/index.d.ts +5 -1
- package/dist/grid/style/index.d.ts +5 -2
- package/dist/image/hooks/usePreviewConfig.d.ts +9 -9
- package/dist/image/style/index.d.ts +4 -1
- package/dist/input/style/index.d.ts +5 -2
- 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/style/index.d.ts +5 -1
- package/dist/layout/style/index.d.ts +5 -1
- package/dist/layout/style/sider.d.ts +5 -1
- package/dist/listy/style/index.d.ts +5 -1
- package/dist/locale/useLocale.d.ts +1 -1
- package/dist/masonry/style/index.d.ts +4 -1
- package/dist/mentions/index.js +1 -1
- package/dist/mentions/style/index.d.ts +5 -1
- package/dist/menu/MenuItem.js +2 -1
- package/dist/message/style/index.d.ts +5 -1
- package/dist/modal/style/index.d.ts +3 -1
- package/dist/notification/style/index.d.ts +4 -1
- package/dist/package.js +1 -1
- package/dist/pagination/style/index.d.ts +5 -1
- package/dist/popconfirm/style/index.d.ts +5 -1
- package/dist/popover/index.js +4 -3
- package/dist/popover/style/index.d.ts +5 -1
- package/dist/progress/style/index.d.ts +5 -1
- package/dist/qrcode/index.js +0 -21
- package/dist/qrcode/interface.d.ts +1 -1
- package/dist/qrcode/style/index.d.ts +5 -1
- package/dist/radio/style/index.d.ts +5 -1
- package/dist/rate/style/index.d.ts +5 -1
- package/dist/result/style/index.d.ts +5 -1
- package/dist/segmented/style/index.d.ts +5 -1
- package/dist/select/index.js +2 -2
- package/dist/select/style/index.d.ts +5 -1
- package/dist/skeleton/style/index.d.ts +5 -1
- 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/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/switch/style/index.d.ts +5 -1
- package/dist/table/InternalTable.js +52 -48
- package/dist/table/hooks/useSelection.js +19 -6
- package/dist/table/style/index.d.ts +5 -1
- package/dist/table/style/selection.js +1 -1
- package/dist/table/util.d.ts +1 -1
- package/dist/tabs/style/index.d.ts +5 -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/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/tour/style/index.d.ts +5 -1
- package/dist/transfer/Transfer.js +2 -0
- 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-select/index.js +1 -1
- package/dist/tree-select/style/index.d.ts +2 -2
- package/dist/typography/style/index.d.ts +5 -1
- package/dist/upload/style/index.d.ts +5 -1
- package/dist/version/token.json +1 -1
- package/global.d.ts +5 -0
- package/package.json +11 -11
- package/web-tags.json +5007 -3018
- package/web-types.json +12961 -7217
|
@@ -64,6 +64,7 @@ const InternalTable = /* @__PURE__ */ defineComponent((props, { slots, emit, att
|
|
|
64
64
|
"column"
|
|
65
65
|
]);
|
|
66
66
|
const configCtx = useConfig();
|
|
67
|
+
const mergedScroll = computed(() => props.scroll ?? contextScroll.value);
|
|
67
68
|
const ariaProps = computed(() => pickAttrs(attrs, { aria: true }));
|
|
68
69
|
const hasAriaProps = computed(() => Object.keys(ariaProps.value).length > 0);
|
|
69
70
|
provide(HeaderTableContextKey, computed(() => ({
|
|
@@ -113,8 +114,10 @@ const InternalTable = /* @__PURE__ */ defineComponent((props, { slots, emit, att
|
|
|
113
114
|
if (props.columns) return props.columns;
|
|
114
115
|
return convertColumnsToColumnProps(slots.default?.() ?? []);
|
|
115
116
|
}), computed(() => props.column ?? contextColumn.value));
|
|
116
|
-
const
|
|
117
|
+
const needResponsive = computed(() => baseColumns.value.some((col) => col.responsive));
|
|
118
|
+
const screens = useBreakpoint(needResponsive, null);
|
|
117
119
|
const mergedColumns = computed(() => {
|
|
120
|
+
if (!needResponsive.value) return baseColumns.value;
|
|
118
121
|
const matched = new Set(Object.keys(screens.value || {}).filter((m) => screens.value?.[m]));
|
|
119
122
|
return baseColumns.value.filter((c) => !c.responsive || c.responsive.some((r) => matched.has(r)));
|
|
120
123
|
});
|
|
@@ -167,7 +170,7 @@ const InternalTable = /* @__PURE__ */ defineComponent((props, { slots, emit, att
|
|
|
167
170
|
if (changeInfo.pagination?.current) changeInfo.pagination.current = 1;
|
|
168
171
|
if (props.pagination && typeof props.pagination === "object") props.pagination.onChange?.(1, changeInfo.pagination?.pageSize);
|
|
169
172
|
}
|
|
170
|
-
if (
|
|
173
|
+
if (mergedScroll.value && mergedScroll.value.scrollToFirstRowOnChange !== false && internalRefs.body?.value) scrollTo(0, { getContainer: () => internalRefs.body.value });
|
|
171
174
|
emit("change", changeInfo.pagination, changeInfo.filters, changeInfo.sorter, {
|
|
172
175
|
currentDataSource: getFilterData(getSortData(rawData.value, changeInfo.sorterStates, childrenColumnName.value), changeInfo.filterStates, childrenColumnName.value),
|
|
173
176
|
action
|
|
@@ -292,14 +295,47 @@ const InternalTable = /* @__PURE__ */ defineComponent((props, { slots, emit, att
|
|
|
292
295
|
return node;
|
|
293
296
|
};
|
|
294
297
|
const columnTitleProps = useColumnTitleProps(sorterTitleProps, filters);
|
|
298
|
+
const transformTitleColumns = computed(() => useTitleColumns(columnTitleProps.value)[0]);
|
|
299
|
+
const renderExpandedRow = slots.expandedRowRender ? (record, index, indent, expanded) => getSlotPropsFnRun(slots, props, "expandedRowRender", true, {
|
|
300
|
+
record,
|
|
301
|
+
index,
|
|
302
|
+
indent,
|
|
303
|
+
expanded
|
|
304
|
+
}) : void 0;
|
|
305
|
+
const renderFilterDropdown = slots.filterDropdown ? (ctx) => getSlotPropsFnRun(slots, props, "filterDropdown", false, ctx) : void 0;
|
|
306
|
+
const renderFilterIcon = slots.filterIcon ? (ctx) => getSlotPropsFnRun(slots, props, "filterIcon", false, ctx) : void 0;
|
|
307
|
+
const transformFilterColumns = computed(() => useFilter({
|
|
308
|
+
prefixCls: prefixCls.value,
|
|
309
|
+
dropdownPrefixCls: getPrefixCls("dropdown", props.dropdownPrefixCls),
|
|
310
|
+
mergedFilterStates: mergedFilterStates.value,
|
|
311
|
+
filterStates,
|
|
312
|
+
onFilterChange,
|
|
313
|
+
filterDropdown: renderFilterDropdown,
|
|
314
|
+
filterIcon: renderFilterIcon,
|
|
315
|
+
getPopupContainer: props.getPopupContainer || contextGetPopupContainer,
|
|
316
|
+
locale: mergedLocale.value,
|
|
317
|
+
rootClassName: clsx(props.rootClass, cssVarCls.value, rootCls.value, hashId.value)
|
|
318
|
+
})[0]);
|
|
319
|
+
const transformColumns = (innerColumns) => transformTitleColumns.value(transformSelectionColumns(transformFilterColumns.value(transformSorterColumns(innerColumns))));
|
|
320
|
+
const expandType = computed(() => {
|
|
321
|
+
if (rawData.value.some((item) => item?.[childrenColumnName.value])) return "nest";
|
|
322
|
+
if (renderExpandedRow || mergedExpandable.value.expandedRowRender) return "row";
|
|
323
|
+
return null;
|
|
324
|
+
});
|
|
325
|
+
const mergedExpandableConfig = computed(() => {
|
|
326
|
+
const expandable = { ...mergedExpandable.value };
|
|
327
|
+
expandable.__PARENT_RENDER_ICON__ = expandable.expandIcon;
|
|
328
|
+
if (renderExpandedRow) expandable.expandedRowRender = renderExpandedRow;
|
|
329
|
+
expandable.expandIcon = expandable.expandIcon || renderExpandIcon(mergedLocale.value);
|
|
330
|
+
if (expandType.value === "nest" && expandable.expandIconColumnIndex === void 0) expandable.expandIconColumnIndex = mergedRowSelection.value ? 1 : 0;
|
|
331
|
+
else if (expandType.value === "nest" && expandable.expandIconColumnIndex > 0 && mergedRowSelection.value) expandable.expandIconColumnIndex -= 1;
|
|
332
|
+
if (typeof expandable.indentSize !== "number") expandable.indentSize = typeof props.indentSize === "number" ? props.indentSize : 15;
|
|
333
|
+
return expandable;
|
|
334
|
+
});
|
|
335
|
+
const measureRowRender = (measureRow) => createVNode(TableMeasureRowContextProvider, { "value": true }, { default: () => [createVNode(ConfigProvider, { "getPopupContainer": (node) => node }, _isSlot(measureRow) ? measureRow : { default: () => [measureRow] })] });
|
|
336
|
+
const onInternalUpdateExpandedRowKeys = (keys) => emit("update:expandedRowKeys", keys);
|
|
337
|
+
const onInternalResizeColumn = (width, column, columnKey) => emit("resizeColumn", width, column, columnKey);
|
|
295
338
|
return () => {
|
|
296
|
-
const [transformTitleColumns] = useTitleColumns(columnTitleProps.value);
|
|
297
|
-
const renderExpandedRow = slots.expandedRowRender ? (record, index, indent, expanded) => getSlotPropsFnRun(slots, props, "expandedRowRender", true, {
|
|
298
|
-
record,
|
|
299
|
-
index,
|
|
300
|
-
indent,
|
|
301
|
-
expanded
|
|
302
|
-
}) : void 0;
|
|
303
339
|
const { locale } = props;
|
|
304
340
|
const mergedEmptyNodeFn = () => {
|
|
305
341
|
if (spinProps.value?.spinning && rawData.value === EMPTY_LIST) return null;
|
|
@@ -308,42 +344,11 @@ const InternalTable = /* @__PURE__ */ defineComponent((props, { slots, emit, att
|
|
|
308
344
|
return renderEmpty?.value?.("Table") || createVNode(DefaultRenderEmpty, { "componentName": "Table" }, null);
|
|
309
345
|
};
|
|
310
346
|
const mergedEmptyNode = mergedEmptyNodeFn();
|
|
311
|
-
const mergedGetPopupContainer = props.getPopupContainer || contextGetPopupContainer;
|
|
312
|
-
const renderFilterDropdown = slots.filterDropdown ? (ctx) => getSlotPropsFnRun(slots, props, "filterDropdown", false, ctx) : void 0;
|
|
313
|
-
const renderFilterIcon = slots.filterIcon ? (ctx) => getSlotPropsFnRun(slots, props, "filterIcon", false, ctx) : void 0;
|
|
314
|
-
const [transformFilterColumns] = useFilter({
|
|
315
|
-
prefixCls: prefixCls.value,
|
|
316
|
-
dropdownPrefixCls: getPrefixCls("dropdown", props.dropdownPrefixCls),
|
|
317
|
-
mergedFilterStates: mergedFilterStates.value,
|
|
318
|
-
filterStates,
|
|
319
|
-
onFilterChange,
|
|
320
|
-
filterDropdown: renderFilterDropdown,
|
|
321
|
-
filterIcon: renderFilterIcon,
|
|
322
|
-
getPopupContainer: mergedGetPopupContainer,
|
|
323
|
-
locale: mergedLocale.value,
|
|
324
|
-
rootClassName: clsx(props.rootClass, cssVarCls.value, rootCls.value, hashId.value)
|
|
325
|
-
});
|
|
326
|
-
const transformColumns = (innerColumns) => transformTitleColumns(transformSelectionColumns(transformFilterColumns(transformSorterColumns(innerColumns))));
|
|
327
|
-
const expandType = (() => {
|
|
328
|
-
if (rawData.value.some((item) => item?.[childrenColumnName.value])) return "nest";
|
|
329
|
-
if (renderExpandedRow || mergedExpandable.value.expandedRowRender) return "row";
|
|
330
|
-
return null;
|
|
331
|
-
})();
|
|
332
|
-
const mergedExpandableConfig = (() => {
|
|
333
|
-
const expandable = { ...mergedExpandable.value };
|
|
334
|
-
expandable.__PARENT_RENDER_ICON__ = expandable.expandIcon;
|
|
335
|
-
if (renderExpandedRow) expandable.expandedRowRender = renderExpandedRow;
|
|
336
|
-
expandable.expandIcon = expandable.expandIcon || renderExpandIcon(mergedLocale.value);
|
|
337
|
-
if (expandType === "nest" && expandable.expandIconColumnIndex === void 0) expandable.expandIconColumnIndex = mergedRowSelection.value ? 1 : 0;
|
|
338
|
-
else if (expandType === "nest" && expandable.expandIconColumnIndex > 0 && mergedRowSelection.value) expandable.expandIconColumnIndex -= 1;
|
|
339
|
-
if (typeof expandable.indentSize !== "number") expandable.indentSize = typeof props.indentSize === "number" ? props.indentSize : 15;
|
|
340
|
-
return expandable;
|
|
341
|
-
})();
|
|
342
347
|
const renderPagination = (placement = "end") => {
|
|
343
348
|
const paginationProps = mergedPagination.value;
|
|
344
349
|
const paginationSize = getPaginationSize(paginationProps.size, mergedSize.value);
|
|
345
|
-
const paginationClasses = (info) => mergeClassNames({}, mergedClassNames.value.pagination, resolveStyleOrClass(paginationProps.classes, info));
|
|
346
|
-
const paginationStyles = (info) => mergeStyles(resolveStyleOrClass(paginationProps.styles, info), mergedStyles.value.pagination);
|
|
350
|
+
const paginationClasses = (info) => mergeClassNames({}, mergedClassNames.value.pagination, resolveStyleOrClass(paginationProps.classes ?? {}, info));
|
|
351
|
+
const paginationStyles = (info) => mergeStyles(resolveStyleOrClass(paginationProps.styles ?? {}, info), mergedStyles.value.pagination);
|
|
347
352
|
return createVNode(pagination_default, mergeProps(paginationProps, {
|
|
348
353
|
"classes": paginationClasses,
|
|
349
354
|
"styles": paginationStyles,
|
|
@@ -391,7 +396,6 @@ const InternalTable = /* @__PURE__ */ defineComponent((props, { slots, emit, att
|
|
|
391
396
|
}, cssVarCls.value, rootCls.value, hashId.value);
|
|
392
397
|
const TableComp = TableComponent.value;
|
|
393
398
|
const virtualProps = mergedVirtual.value ? { listItemHeight: listItemHeight.value } : {};
|
|
394
|
-
const mergedScroll = props.scroll ?? contextScroll.value;
|
|
395
399
|
return createVNode("div", {
|
|
396
400
|
"ref": rootRef,
|
|
397
401
|
"class": wrapperCls,
|
|
@@ -409,7 +413,7 @@ const InternalTable = /* @__PURE__ */ defineComponent((props, { slots, emit, att
|
|
|
409
413
|
"emptyText": mergedEmptyNode,
|
|
410
414
|
"classNames": mergedClassNames.value,
|
|
411
415
|
"styles": mergedStyles.value,
|
|
412
|
-
"expandable": mergedExpandableConfig,
|
|
416
|
+
"expandable": mergedExpandableConfig.value,
|
|
413
417
|
"prefixCls": prefixCls.value,
|
|
414
418
|
"direction": direction.value,
|
|
415
419
|
"headerCell": slots.headerCell || contextHeaderCell.value || props.headerCell ? renderHeaderCell : void 0,
|
|
@@ -419,13 +423,13 @@ const InternalTable = /* @__PURE__ */ defineComponent((props, { slots, emit, att
|
|
|
419
423
|
"internalRefs": internalRefs,
|
|
420
424
|
"transformColumns": transformColumns,
|
|
421
425
|
"getContainerWidth": getContainerWidth,
|
|
422
|
-
"scroll": mergedScroll,
|
|
423
|
-
"measureRowRender":
|
|
426
|
+
"scroll": mergedScroll.value,
|
|
427
|
+
"measureRowRender": measureRowRender,
|
|
424
428
|
"title": title,
|
|
425
429
|
"footer": footer,
|
|
426
430
|
"summary": summary,
|
|
427
|
-
"onUpdate:expandedRowKeys":
|
|
428
|
-
"onResizeColumn":
|
|
431
|
+
"onUpdate:expandedRowKeys": onInternalUpdateExpandedRowKeys,
|
|
432
|
+
"onResizeColumn": onInternalResizeColumn
|
|
429
433
|
}), null),
|
|
430
434
|
paginationNodes.bottom
|
|
431
435
|
] })]);
|
|
@@ -60,6 +60,16 @@ function useSelection(config, rowSelection) {
|
|
|
60
60
|
preserveRecordsRef.value = newCache;
|
|
61
61
|
}
|
|
62
62
|
};
|
|
63
|
+
let lastClickEvent;
|
|
64
|
+
const takeClickEvent = (event) => {
|
|
65
|
+
const clickEvent = lastClickEvent;
|
|
66
|
+
lastClickEvent = void 0;
|
|
67
|
+
return clickEvent ?? event?.nativeEvent;
|
|
68
|
+
};
|
|
69
|
+
const getSelectedRecord = (key) => {
|
|
70
|
+
const record = getRecordByKey(key);
|
|
71
|
+
return !record && preserveSelectedRowKeys.value ? preserveRecordsRef.value.get(key) : record;
|
|
72
|
+
};
|
|
63
73
|
watch([
|
|
64
74
|
mergedSelectedKeys,
|
|
65
75
|
data,
|
|
@@ -134,7 +144,7 @@ function useSelection(config, rowSelection) {
|
|
|
134
144
|
};
|
|
135
145
|
const triggerSingleSelection = (key, selected, keys, event) => {
|
|
136
146
|
if (selectionConfig.value.onSelect) {
|
|
137
|
-
const rows = keys.map((k) =>
|
|
147
|
+
const rows = keys.map((k) => getSelectedRecord(k));
|
|
138
148
|
selectionConfig.value.onSelect(getRecordByKey(key), selected, rows, event);
|
|
139
149
|
}
|
|
140
150
|
setSelectedKeys(keys, "single");
|
|
@@ -217,7 +227,7 @@ function useSelection(config, rowSelection) {
|
|
|
217
227
|
}
|
|
218
228
|
});
|
|
219
229
|
const keys = Array.from(keySet);
|
|
220
|
-
selectionConfig.value.onSelectAll?.(!checkedCurrentAll, keys.map((k) =>
|
|
230
|
+
selectionConfig.value.onSelectAll?.(!checkedCurrentAll, keys.map((k) => getSelectedRecord(k)), changeKeys.map((k) => getRecordByKey(k)));
|
|
221
231
|
setSelectedKeys(keys, "all");
|
|
222
232
|
updatePrevSelectedIndex(null);
|
|
223
233
|
};
|
|
@@ -279,11 +289,13 @@ function useSelection(config, rowSelection) {
|
|
|
279
289
|
node: createVNode(radio_default, mergeProps({ "aria-label": `Select row ${index + 1}` }, checkboxProps, {
|
|
280
290
|
"checked": checked,
|
|
281
291
|
"onClick": (e) => {
|
|
292
|
+
lastClickEvent = e;
|
|
282
293
|
e.stopPropagation();
|
|
283
294
|
checkboxProps?.onClick?.(e);
|
|
284
295
|
},
|
|
285
296
|
"onChange": (event) => {
|
|
286
|
-
|
|
297
|
+
const nativeEvent = takeClickEvent(event);
|
|
298
|
+
if (!keySet.has(key)) triggerSingleSelection(key, true, [key], nativeEvent);
|
|
287
299
|
checkboxProps?.onChange?.(event);
|
|
288
300
|
}
|
|
289
301
|
}), null),
|
|
@@ -306,18 +318,19 @@ function useSelection(config, rowSelection) {
|
|
|
306
318
|
"checked": checked,
|
|
307
319
|
"skipGroup": true,
|
|
308
320
|
"onClick": (e) => {
|
|
321
|
+
lastClickEvent = e;
|
|
309
322
|
e.stopPropagation();
|
|
310
323
|
checkboxProps?.onClick?.(e);
|
|
311
324
|
},
|
|
312
325
|
"onChange": (event) => {
|
|
313
|
-
const nativeEvent = event
|
|
314
|
-
const
|
|
326
|
+
const nativeEvent = takeClickEvent(event);
|
|
327
|
+
const shiftKey = !!nativeEvent?.shiftKey;
|
|
315
328
|
const currentSelectedIndex = recordKeys.indexOf(key);
|
|
316
329
|
const isMultiple = derivedSelectedKeySet.value.size > 0 && recordKeys.some((key) => derivedSelectedKeySet.value.has(key));
|
|
317
330
|
if (shiftKey && checkStrictly.value && isMultiple) {
|
|
318
331
|
const changedKeys = multipleSelect(currentSelectedIndex, recordKeys, keySet);
|
|
319
332
|
const keys = Array.from(keySet);
|
|
320
|
-
selectionConfig.value.onSelectMultiple?.(!checked, keys.map((recordKey) =>
|
|
333
|
+
selectionConfig.value.onSelectMultiple?.(!checked, keys.map((recordKey) => getSelectedRecord(recordKey)), changedKeys.map((recordKey) => getRecordByKey(recordKey)));
|
|
321
334
|
setSelectedKeys(keys, "multiple");
|
|
322
335
|
} else {
|
|
323
336
|
const originCheckedKeys = derivedSelectedKeys.value[0];
|
|
@@ -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 };
|
|
@@ -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",
|
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 };
|
|
@@ -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 };
|
|
@@ -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 };
|
|
@@ -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/timeline/style/index.d.ts
|
|
4
8
|
interface ComponentToken {
|
|
@@ -39,6 +43,6 @@ interface TimelineToken extends FullToken<'Timeline'> {
|
|
|
39
43
|
paddingInlineEnd: number;
|
|
40
44
|
}
|
|
41
45
|
declare const prepareComponentToken: GetDefaultToken<'Timeline'>;
|
|
42
|
-
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>];
|
|
46
|
+
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>];
|
|
43
47
|
//#endregion
|
|
44
48
|
export { ComponentToken, TimelineToken, _default as default, prepareComponentToken };
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { TimelineItemType, TimelineMode, TimelineProps } from "./Timeline.js";
|
|
2
|
-
import { ComputedRef } from "vue";
|
|
2
|
+
import { ComputedRef, Ref } from "vue";
|
|
3
3
|
//#region src/timeline/useItems.d.ts
|
|
4
4
|
interface TimelineItemRenders {
|
|
5
5
|
dotRender?: TimelineProps['dotRender'];
|
|
6
6
|
labelRender?: TimelineProps['labelRender'];
|
|
7
7
|
contentRender?: TimelineProps['contentRender'];
|
|
8
8
|
}
|
|
9
|
-
declare function useItems(rootPrefixCls:
|
|
9
|
+
declare function useItems(rootPrefixCls: Ref<string>, prefixCls: Ref<string>, mode: ComputedRef<TimelineMode>, items?: ComputedRef<TimelineItemType[] | undefined>, pending?: ComputedRef<TimelineProps['pending']>, pendingDot?: ComputedRef<TimelineProps['pendingDot']>, renders?: ComputedRef<TimelineItemRenders>): ComputedRef<TimelineItemType[]>;
|
|
10
10
|
//#endregion
|
|
11
11
|
export { TimelineItemRenders, useItems as default };
|
|
@@ -24,7 +24,7 @@ function useItems(rootPrefixCls, prefixCls, mode, items, pending, pendingDot, re
|
|
|
24
24
|
].includes(color)) mergedClass = classNames(className, `${itemCls.value}-color-${color}`);
|
|
25
25
|
else mergedStyle = {
|
|
26
26
|
[varName("item-icon-dot-color")]: color,
|
|
27
|
-
...normalizeStyle$1(style)
|
|
27
|
+
...normalizeStyle$1(style)
|
|
28
28
|
};
|
|
29
29
|
const mergedPlacement = placement ?? position ?? (mode.value === "alternate" ? index % 2 === 0 ? "start" : "end" : mode.value);
|
|
30
30
|
mergedClass = classNames(mergedClass, `${itemCls.value}-placement-${mergedPlacement}`);
|
package/dist/tooltip/index.js
CHANGED
|
@@ -106,7 +106,7 @@ const InternalTooltip = /* @__PURE__ */ defineComponent((props, { slots, attrs,
|
|
|
106
106
|
"form": true
|
|
107
107
|
}, _isSlot(memoOverlay) ? memoOverlay : { default: () => [memoOverlay] });
|
|
108
108
|
let child = filterEmpty(slots.default?.())?.[0];
|
|
109
|
-
child = isVNode(child) ? child : createVNode("span", null, [child]);
|
|
109
|
+
child = isVNode(child) && typeof child.type !== "symbol" ? child : createVNode("span", null, [child]);
|
|
110
110
|
const childProps = child?.props ?? {};
|
|
111
111
|
const childCls = !childProps?.class || typeof childProps?.class === "string" ? clsx(childProps.class, openClass || `${prefixCls.value}-open`) : childProps.class;
|
|
112
112
|
const colorInfo = parseColor(rootPrefixCls.value, prefixCls.value, color);
|