naive-ui 2.23.2 → 2.24.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/README.md +1 -1
- package/README.zh-CN.md +1 -1
- package/es/_internal/icons/Switcher.js +2 -3
- package/es/_internal/selection/src/styles/index.cssr.js +1 -1
- package/es/_internal/selection/styles/_common.js +1 -1
- package/es/auto-complete/src/AutoComplete.d.ts +12 -12
- package/es/auto-complete/src/AutoComplete.js +13 -15
- package/es/back-top/src/BackTop.d.ts +3 -3
- package/es/calendar/src/Calendar.d.ts +5 -1
- package/es/calendar/src/Calendar.js +16 -4
- package/es/calendar/src/interface.d.ts +4 -0
- package/es/carousel/index.d.ts +1 -0
- package/es/carousel/index.js +1 -0
- package/es/carousel/src/Carousel.d.ts +235 -19
- package/es/carousel/src/Carousel.js +683 -229
- package/es/carousel/src/CarouselArrow.d.ts +9 -0
- package/es/carousel/src/CarouselArrow.js +43 -0
- package/es/carousel/src/CarouselDots.d.ts +66 -0
- package/es/carousel/src/CarouselDots.js +118 -0
- package/es/carousel/src/CarouselItem.d.ts +11 -0
- package/es/carousel/src/CarouselItem.js +72 -0
- package/es/carousel/src/interface.d.ts +28 -0
- package/es/carousel/src/interface.js +2 -0
- package/es/carousel/src/styles/index.cssr.js +141 -38
- package/es/carousel/src/utils.d.ts +12 -0
- package/es/carousel/src/utils.js +58 -0
- package/es/carousel/styles/light.d.ts +3 -0
- package/es/carousel/styles/light.js +5 -2
- package/es/cascader/src/Cascader.d.ts +6 -2
- package/es/cascader/src/Cascader.js +2 -1
- package/es/cascader/src/CascaderOption.d.ts +1 -0
- package/es/cascader/src/CascaderOption.js +7 -4
- package/es/cascader/src/interface.d.ts +2 -1
- package/es/checkbox/src/styles/index.cssr.js +1 -1
- package/es/code/src/Code.d.ts +5 -0
- package/es/code/src/Code.js +6 -3
- package/es/code/src/styles/index.cssr.js +2 -2
- package/es/color-picker/src/ColorInputUnit.js +2 -2
- package/es/color-picker/src/ColorPicker.d.ts +13 -5
- package/es/color-picker/src/ColorPicker.js +19 -10
- package/es/color-picker/src/ColorPickerTrigger.d.ts +1 -1
- package/es/color-picker/src/ColorPickerTrigger.js +23 -17
- package/es/color-picker/src/interface.d.ts +2 -0
- package/es/color-picker/src/styles/index.cssr.js +1 -0
- package/es/config-provider/src/ConfigProvider.d.ts +27 -0
- package/es/data-table/src/DataTable.d.ts +10 -55
- package/es/data-table/src/DataTable.js +23 -49
- package/es/data-table/src/interface.d.ts +1 -1
- package/es/data-table/src/styles/index.cssr.js +4 -1
- package/es/data-table/src/utils.js +4 -1
- package/es/date-picker/src/DatePicker.d.ts +26 -22
- package/es/date-picker/src/DatePicker.js +99 -49
- package/es/date-picker/src/interface.d.ts +17 -2
- package/es/date-picker/src/panel/use-calendar.js +2 -2
- package/es/drawer/src/Drawer.d.ts +18 -58
- package/es/drawer/src/Drawer.js +32 -49
- package/es/drawer/src/DrawerBodyWrapper.js +21 -13
- package/es/drawer/src/DrawerContent.js +6 -6
- package/es/dropdown/src/Dropdown.d.ts +5 -0
- package/es/form/src/Feedbacks.js +4 -1
- package/es/form/src/Form.d.ts +7 -7
- package/es/form/src/Form.js +17 -8
- package/es/form/src/FormItem.d.ts +12 -7
- package/es/form/src/FormItem.js +24 -12
- package/es/form/src/FormItemCol.d.ts +8 -4
- package/es/form/src/FormItemGridItem.d.ts +8 -4
- package/es/form/src/FormItemRow.d.ts +7 -3
- package/es/form/src/interface.d.ts +6 -2
- package/es/form/src/styles/form-item.cssr.js +2 -0
- package/es/form/src/utils.d.ts +2 -2
- package/es/form/src/utils.js +29 -18
- package/es/image/src/Image.d.ts +279 -10
- package/es/image/src/Image.js +4 -17
- package/es/image/src/ImageGroup.d.ts +272 -2
- package/es/image/src/ImageGroup.js +5 -8
- package/es/image/src/ImagePreview.d.ts +195 -7
- package/es/image/src/ImagePreview.js +50 -31
- package/es/image/src/interface.d.ts +94 -0
- package/es/image/src/interface.js +2 -1
- package/es/image/src/styles/index.cssr.js +8 -4
- package/es/image/styles/dark.js +8 -1
- package/es/image/styles/light.d.ts +32 -3
- package/es/image/styles/light.js +8 -1
- package/es/input-number/src/utils.js +2 -2
- package/es/locales/common/deDE.js +10 -0
- package/es/locales/common/enUS.d.ts +9 -0
- package/es/locales/common/enUS.js +10 -0
- package/es/locales/common/frFR.js +10 -0
- package/es/locales/common/idID.js +10 -0
- package/es/locales/common/jaJP.js +10 -0
- package/es/locales/common/nbNO.js +10 -0
- package/es/locales/common/ruRU.js +10 -0
- package/es/locales/common/ukUA.js +10 -0
- package/es/locales/common/zhCN.js +9 -0
- package/es/locales/common/zhTW.js +10 -0
- package/es/mention/src/utils.js +0 -1
- package/es/message/index.d.ts +2 -1
- package/es/message/src/Message.d.ts +191 -19
- package/es/message/src/Message.js +13 -11
- package/es/message/src/MessageEnvironment.d.ts +3 -3
- package/es/message/src/MessageProvider.d.ts +5 -10
- package/es/message/src/MessageProvider.js +1 -1
- package/es/message/src/message-props.d.ts +5 -2
- package/es/message/src/types.d.ts +15 -0
- package/es/message/src/types.js +1 -0
- package/es/modal/src/Modal.d.ts +5 -0
- package/es/modal/src/Modal.js +2 -1
- package/es/page-header/index.d.ts +1 -1
- package/es/page-header/src/PageHeader.d.ts +1 -1
- package/es/pagination/index.d.ts +1 -1
- package/es/pagination/src/Pagination.d.ts +8 -4
- package/es/pagination/src/Pagination.js +66 -19
- package/es/pagination/src/interface.d.ts +10 -1
- package/es/pagination/src/utils.d.ts +2 -2
- package/es/pagination/src/utils.js +2 -4
- package/es/popconfirm/src/Popconfirm.d.ts +5 -0
- package/es/popover/src/Popover.d.ts +7 -0
- package/es/popover/src/Popover.js +24 -1
- package/es/popover/src/PopoverBody.d.ts +5 -0
- package/es/popover/src/PopoverBody.js +28 -46
- package/es/popover/src/styles/index.cssr.js +9 -8
- package/es/popselect/src/Popselect.d.ts +62 -73
- package/es/popselect/src/Popselect.js +2 -2
- package/es/progress/src/Circle.d.ts +7 -0
- package/es/progress/src/Circle.js +8 -1
- package/es/progress/src/Line.d.ts +2 -2
- package/es/progress/src/Line.js +4 -1
- package/es/progress/src/Progress.d.ts +6 -2
- package/es/progress/src/Progress.js +2 -2
- package/es/progress/src/styles/index.cssr.js +16 -16
- package/es/radio/src/styles/radio.cssr.js +4 -1
- package/es/result/src/Result.js +9 -10
- package/es/result/src/styles/index.cssr.js +7 -7
- package/es/select/src/Select.d.ts +8 -27
- package/es/select/src/Select.js +16 -24
- package/es/slider/src/Slider.d.ts +2 -4
- package/es/tabs/index.d.ts +1 -0
- package/es/tabs/src/Tabs.d.ts +2 -2
- package/es/tabs/src/Tabs.js +25 -22
- package/es/tabs/src/interface.d.ts +3 -0
- package/es/time-picker/src/TimePicker.d.ts +22 -2
- package/es/time-picker/src/TimePicker.js +59 -29
- package/es/time-picker/src/interface.d.ts +4 -2
- package/es/tooltip/src/Tooltip.d.ts +5 -0
- package/es/tree/src/Tree.d.ts +5 -1
- package/es/tree/src/Tree.js +4 -2
- package/es/tree/src/TreeNodeSwitcher.d.ts +1 -1
- package/es/tree/src/TreeNodeSwitcher.js +25 -14
- package/es/tree/src/interface.d.ts +2 -0
- package/es/tree/src/styles/index.cssr.js +4 -2
- package/es/upload/src/Upload.d.ts +15 -6
- package/es/upload/src/Upload.js +18 -9
- package/es/upload/src/UploadFile.d.ts +5 -5
- package/es/upload/src/UploadFileList.js +2 -2
- package/es/upload/src/interface.d.ts +11 -4
- package/es/version.d.ts +1 -1
- package/es/version.js +1 -1
- package/lib/_internal/icons/Switcher.js +2 -3
- package/lib/_internal/selection/src/styles/index.cssr.js +1 -1
- package/lib/_internal/selection/styles/_common.js +1 -1
- package/lib/auto-complete/src/AutoComplete.d.ts +12 -12
- package/lib/auto-complete/src/AutoComplete.js +14 -16
- package/lib/back-top/src/BackTop.d.ts +3 -3
- package/lib/calendar/src/Calendar.d.ts +5 -1
- package/lib/calendar/src/Calendar.js +15 -3
- package/lib/calendar/src/interface.d.ts +4 -0
- package/lib/carousel/index.d.ts +1 -0
- package/lib/carousel/index.js +3 -1
- package/lib/carousel/src/Carousel.d.ts +235 -19
- package/lib/carousel/src/Carousel.js +681 -227
- package/lib/carousel/src/CarouselArrow.d.ts +9 -0
- package/lib/carousel/src/CarouselArrow.js +45 -0
- package/lib/carousel/src/CarouselDots.d.ts +66 -0
- package/lib/carousel/src/CarouselDots.js +120 -0
- package/lib/carousel/src/CarouselItem.d.ts +11 -0
- package/lib/carousel/src/CarouselItem.js +74 -0
- package/lib/carousel/src/interface.d.ts +28 -0
- package/lib/carousel/src/interface.js +6 -0
- package/lib/carousel/src/styles/index.cssr.js +141 -38
- package/lib/carousel/src/utils.d.ts +12 -0
- package/lib/carousel/src/utils.js +69 -0
- package/lib/carousel/styles/light.d.ts +3 -0
- package/lib/carousel/styles/light.js +5 -2
- package/lib/cascader/src/Cascader.d.ts +6 -2
- package/lib/cascader/src/Cascader.js +2 -1
- package/lib/cascader/src/CascaderOption.d.ts +1 -0
- package/lib/cascader/src/CascaderOption.js +7 -4
- package/lib/cascader/src/interface.d.ts +2 -1
- package/lib/checkbox/src/styles/index.cssr.js +1 -1
- package/lib/code/src/Code.d.ts +5 -0
- package/lib/code/src/Code.js +6 -3
- package/lib/code/src/styles/index.cssr.js +1 -1
- package/lib/color-picker/src/ColorInputUnit.js +1 -1
- package/lib/color-picker/src/ColorPicker.d.ts +13 -5
- package/lib/color-picker/src/ColorPicker.js +19 -10
- package/lib/color-picker/src/ColorPickerTrigger.d.ts +1 -1
- package/lib/color-picker/src/ColorPickerTrigger.js +22 -16
- package/lib/color-picker/src/interface.d.ts +2 -0
- package/lib/color-picker/src/styles/index.cssr.js +1 -0
- package/lib/config-provider/src/ConfigProvider.d.ts +27 -0
- package/lib/data-table/src/DataTable.d.ts +10 -55
- package/lib/data-table/src/DataTable.js +21 -47
- package/lib/data-table/src/interface.d.ts +1 -1
- package/lib/data-table/src/styles/index.cssr.js +4 -1
- package/lib/data-table/src/utils.js +3 -0
- package/lib/date-picker/src/DatePicker.d.ts +26 -22
- package/lib/date-picker/src/DatePicker.js +98 -48
- package/lib/date-picker/src/interface.d.ts +17 -2
- package/lib/date-picker/src/panel/use-calendar.js +2 -2
- package/lib/drawer/src/Drawer.d.ts +18 -58
- package/lib/drawer/src/Drawer.js +30 -47
- package/lib/drawer/src/DrawerBodyWrapper.js +21 -13
- package/lib/drawer/src/DrawerContent.js +6 -6
- package/lib/dropdown/src/Dropdown.d.ts +5 -0
- package/lib/form/src/Feedbacks.js +4 -1
- package/lib/form/src/Form.d.ts +7 -7
- package/lib/form/src/Form.js +16 -7
- package/lib/form/src/FormItem.d.ts +12 -7
- package/lib/form/src/FormItem.js +23 -11
- package/lib/form/src/FormItemCol.d.ts +8 -4
- package/lib/form/src/FormItemGridItem.d.ts +8 -4
- package/lib/form/src/FormItemRow.d.ts +7 -3
- package/lib/form/src/interface.d.ts +6 -2
- package/lib/form/src/styles/form-item.cssr.js +2 -0
- package/lib/form/src/utils.d.ts +2 -2
- package/lib/form/src/utils.js +29 -18
- package/lib/image/src/Image.d.ts +279 -10
- package/lib/image/src/Image.js +4 -17
- package/lib/image/src/ImageGroup.d.ts +272 -2
- package/lib/image/src/ImageGroup.js +4 -7
- package/lib/image/src/ImagePreview.d.ts +195 -7
- package/lib/image/src/ImagePreview.js +49 -30
- package/lib/image/src/interface.d.ts +94 -0
- package/lib/image/src/interface.js +3 -0
- package/lib/image/src/styles/index.cssr.js +8 -4
- package/lib/image/styles/dark.js +8 -1
- package/lib/image/styles/light.d.ts +32 -3
- package/lib/image/styles/light.js +8 -1
- package/lib/input-number/src/utils.js +2 -2
- package/lib/locales/common/deDE.js +10 -0
- package/lib/locales/common/enUS.d.ts +9 -0
- package/lib/locales/common/enUS.js +10 -0
- package/lib/locales/common/frFR.js +10 -0
- package/lib/locales/common/idID.js +10 -0
- package/lib/locales/common/jaJP.js +10 -0
- package/lib/locales/common/nbNO.js +10 -0
- package/lib/locales/common/ruRU.js +10 -0
- package/lib/locales/common/ukUA.js +10 -0
- package/lib/locales/common/zhCN.js +9 -0
- package/lib/locales/common/zhTW.js +10 -0
- package/lib/mention/src/utils.js +0 -1
- package/lib/message/index.d.ts +2 -1
- package/lib/message/src/Message.d.ts +191 -19
- package/lib/message/src/Message.js +13 -11
- package/lib/message/src/MessageEnvironment.d.ts +3 -3
- package/lib/message/src/MessageProvider.d.ts +5 -10
- package/lib/message/src/MessageProvider.js +1 -1
- package/lib/message/src/message-props.d.ts +5 -2
- package/lib/message/src/types.d.ts +15 -0
- package/lib/message/src/types.js +2 -0
- package/lib/modal/src/Modal.d.ts +5 -0
- package/lib/modal/src/Modal.js +2 -1
- package/lib/page-header/index.d.ts +1 -1
- package/lib/page-header/src/PageHeader.d.ts +1 -1
- package/lib/pagination/index.d.ts +1 -1
- package/lib/pagination/src/Pagination.d.ts +8 -4
- package/lib/pagination/src/Pagination.js +65 -18
- package/lib/pagination/src/interface.d.ts +10 -1
- package/lib/pagination/src/utils.d.ts +2 -2
- package/lib/pagination/src/utils.js +2 -4
- package/lib/popconfirm/src/Popconfirm.d.ts +5 -0
- package/lib/popover/src/Popover.d.ts +7 -0
- package/lib/popover/src/Popover.js +23 -0
- package/lib/popover/src/PopoverBody.d.ts +5 -0
- package/lib/popover/src/PopoverBody.js +27 -45
- package/lib/popover/src/styles/index.cssr.js +9 -8
- package/lib/popselect/src/Popselect.d.ts +62 -73
- package/lib/popselect/src/Popselect.js +2 -2
- package/lib/progress/src/Circle.d.ts +7 -0
- package/lib/progress/src/Circle.js +8 -1
- package/lib/progress/src/Line.d.ts +2 -2
- package/lib/progress/src/Line.js +4 -1
- package/lib/progress/src/Progress.d.ts +6 -2
- package/lib/progress/src/Progress.js +2 -2
- package/lib/progress/src/styles/index.cssr.js +16 -16
- package/lib/radio/src/styles/radio.cssr.js +4 -1
- package/lib/result/src/Result.js +8 -9
- package/lib/result/src/styles/index.cssr.js +6 -6
- package/lib/select/src/Select.d.ts +8 -27
- package/lib/select/src/Select.js +14 -22
- package/lib/slider/src/Slider.d.ts +2 -4
- package/lib/tabs/index.d.ts +1 -0
- package/lib/tabs/src/Tabs.d.ts +2 -2
- package/lib/tabs/src/Tabs.js +25 -22
- package/lib/tabs/src/interface.d.ts +3 -0
- package/lib/time-picker/src/TimePicker.d.ts +22 -2
- package/lib/time-picker/src/TimePicker.js +59 -29
- package/lib/time-picker/src/interface.d.ts +4 -2
- package/lib/tooltip/src/Tooltip.d.ts +5 -0
- package/lib/tree/src/Tree.d.ts +5 -1
- package/lib/tree/src/Tree.js +4 -2
- package/lib/tree/src/TreeNodeSwitcher.d.ts +1 -1
- package/lib/tree/src/TreeNodeSwitcher.js +24 -13
- package/lib/tree/src/interface.d.ts +2 -0
- package/lib/tree/src/styles/index.cssr.js +4 -2
- package/lib/upload/src/Upload.d.ts +15 -6
- package/lib/upload/src/Upload.js +18 -9
- package/lib/upload/src/UploadFile.d.ts +5 -5
- package/lib/upload/src/UploadFileList.js +2 -2
- package/lib/upload/src/interface.d.ts +11 -4
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +21 -13
- package/web-types.json +413 -31
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { PropType } from 'vue';
|
|
2
2
|
import type { PageItem } from './utils';
|
|
3
|
-
import { ExtractPublicPropTypes, MaybeArray } from '../../_utils';
|
|
3
|
+
import type { ExtractPublicPropTypes, MaybeArray } from '../../_utils';
|
|
4
4
|
import type { Size as InputSize } from '../../input/src/interface';
|
|
5
5
|
import type { Size as SelectSize } from '../../select/src/interface';
|
|
6
|
-
import { RenderPrefix, PaginationSizeOption } from './interface';
|
|
6
|
+
import { RenderPrefix, PaginationRenderLabel, PaginationSizeOption } from './interface';
|
|
7
7
|
declare const paginationProps: {
|
|
8
8
|
readonly page: NumberConstructor;
|
|
9
9
|
readonly defaultPage: {
|
|
@@ -17,7 +17,7 @@ declare const paginationProps: {
|
|
|
17
17
|
readonly default: 1;
|
|
18
18
|
};
|
|
19
19
|
readonly showSizePicker: BooleanConstructor;
|
|
20
|
-
readonly pageSize:
|
|
20
|
+
readonly pageSize: NumberConstructor;
|
|
21
21
|
readonly defaultPageSize: {
|
|
22
22
|
readonly type: NumberConstructor;
|
|
23
23
|
readonly default: 10;
|
|
@@ -36,6 +36,7 @@ declare const paginationProps: {
|
|
|
36
36
|
readonly next: PropType<RenderPrefix>;
|
|
37
37
|
readonly prefix: PropType<RenderPrefix>;
|
|
38
38
|
readonly suffix: PropType<RenderPrefix>;
|
|
39
|
+
readonly label: PropType<PaginationRenderLabel>;
|
|
39
40
|
readonly 'onUpdate:page': PropType<MaybeArray<(page: number) => void>>;
|
|
40
41
|
readonly onUpdatePage: PropType<MaybeArray<(page: number) => void>>;
|
|
41
42
|
readonly 'onUpdate:pageSize': PropType<MaybeArray<(pageSize: number) => void>>;
|
|
@@ -740,7 +741,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
740
741
|
readonly default: 1;
|
|
741
742
|
};
|
|
742
743
|
readonly showSizePicker: BooleanConstructor;
|
|
743
|
-
readonly pageSize:
|
|
744
|
+
readonly pageSize: NumberConstructor;
|
|
744
745
|
readonly defaultPageSize: {
|
|
745
746
|
readonly type: NumberConstructor;
|
|
746
747
|
readonly default: 10;
|
|
@@ -759,6 +760,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
759
760
|
readonly next: PropType<RenderPrefix>;
|
|
760
761
|
readonly prefix: PropType<RenderPrefix>;
|
|
761
762
|
readonly suffix: PropType<RenderPrefix>;
|
|
763
|
+
readonly label: PropType<PaginationRenderLabel>;
|
|
762
764
|
readonly 'onUpdate:page': PropType<MaybeArray<(page: number) => void>>;
|
|
763
765
|
readonly onUpdatePage: PropType<MaybeArray<(page: number) => void>>;
|
|
764
766
|
readonly 'onUpdate:pageSize': PropType<MaybeArray<(pageSize: number) => void>>;
|
|
@@ -2011,6 +2013,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
2011
2013
|
readonly next?: unknown;
|
|
2012
2014
|
readonly prefix?: unknown;
|
|
2013
2015
|
readonly suffix?: unknown;
|
|
2016
|
+
readonly label?: unknown;
|
|
2014
2017
|
readonly 'onUpdate:page'?: unknown;
|
|
2015
2018
|
readonly onUpdatePage?: unknown;
|
|
2016
2019
|
readonly 'onUpdate:pageSize'?: unknown;
|
|
@@ -2030,6 +2033,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
2030
2033
|
showQuickJumper: boolean;
|
|
2031
2034
|
pageSlot: number;
|
|
2032
2035
|
} & {
|
|
2036
|
+
label?: PaginationRenderLabel | undefined;
|
|
2033
2037
|
prefix?: RenderPrefix | undefined;
|
|
2034
2038
|
page?: number | undefined;
|
|
2035
2039
|
onChange?: MaybeArray<(page: number) => void> | undefined;
|
|
@@ -9,7 +9,7 @@ import { useConfig, useLocale, useTheme } from '../../_mixins';
|
|
|
9
9
|
import { paginationLight } from '../styles';
|
|
10
10
|
import { pageItems } from './utils';
|
|
11
11
|
import style from './styles/index.cssr';
|
|
12
|
-
import { call, warn } from '../../_utils';
|
|
12
|
+
import { call, warn, warnOnce } from '../../_utils';
|
|
13
13
|
const paginationProps = Object.assign(Object.assign({}, useTheme.props), { page: Number, defaultPage: {
|
|
14
14
|
type: Number,
|
|
15
15
|
default: 1
|
|
@@ -27,7 +27,7 @@ const paginationProps = Object.assign(Object.assign({}, useTheme.props), { page:
|
|
|
27
27
|
}, showQuickJumper: Boolean, disabled: Boolean, pageSlot: {
|
|
28
28
|
type: Number,
|
|
29
29
|
default: 9
|
|
30
|
-
}, prev: Function, next: Function, prefix: Function, suffix: Function, 'onUpdate:page': [Function, Array], onUpdatePage: [Function, Array], 'onUpdate:pageSize': [Function, Array], onUpdatePageSize: [Function, Array],
|
|
30
|
+
}, prev: Function, next: Function, prefix: Function, suffix: Function, label: Function, 'onUpdate:page': [Function, Array], onUpdatePage: [Function, Array], 'onUpdate:pageSize': [Function, Array], onUpdatePageSize: [Function, Array],
|
|
31
31
|
/** @deprecated */
|
|
32
32
|
onPageSizeChange: [Function, Array],
|
|
33
33
|
/** @deprecated */
|
|
@@ -41,6 +41,12 @@ export default defineComponent({
|
|
|
41
41
|
if (props.pageCount !== undefined && props.itemCount !== undefined) {
|
|
42
42
|
warn('pagination', "`page-count` and `item-count` should't be specified together. Only `item-count` will take effect.");
|
|
43
43
|
}
|
|
44
|
+
if (props.onPageSizeChange) {
|
|
45
|
+
warnOnce('pagination', '`on-page-size-change` is deprecated, please use `on-update:page-size` instead.');
|
|
46
|
+
}
|
|
47
|
+
if (props.onChange) {
|
|
48
|
+
warnOnce('pagination', '`on-change` is deprecated, please use `on-update:page` instead.');
|
|
49
|
+
}
|
|
44
50
|
});
|
|
45
51
|
}
|
|
46
52
|
const { NConfigProvider, mergedClsPrefixRef } = useConfig(props);
|
|
@@ -195,10 +201,10 @@ export default defineComponent({
|
|
|
195
201
|
case 'page':
|
|
196
202
|
doUpdatePage(pageItem.label);
|
|
197
203
|
break;
|
|
198
|
-
case '
|
|
204
|
+
case 'fast-backward':
|
|
199
205
|
fastBackward();
|
|
200
206
|
break;
|
|
201
|
-
case '
|
|
207
|
+
case 'fast-forward':
|
|
202
208
|
fastForward();
|
|
203
209
|
break;
|
|
204
210
|
}
|
|
@@ -207,10 +213,10 @@ export default defineComponent({
|
|
|
207
213
|
if (props.disabled)
|
|
208
214
|
return;
|
|
209
215
|
switch (pageItem.type) {
|
|
210
|
-
case '
|
|
216
|
+
case 'fast-backward':
|
|
211
217
|
showFastBackwardRef.value = true;
|
|
212
218
|
break;
|
|
213
|
-
case '
|
|
219
|
+
case 'fast-forward':
|
|
214
220
|
showFastForwardRef.value = true;
|
|
215
221
|
break;
|
|
216
222
|
default:
|
|
@@ -222,10 +228,10 @@ export default defineComponent({
|
|
|
222
228
|
if (props.disabled)
|
|
223
229
|
return;
|
|
224
230
|
switch (pageItem.type) {
|
|
225
|
-
case '
|
|
231
|
+
case 'fast-backward':
|
|
226
232
|
showFastBackwardRef.value = false;
|
|
227
233
|
break;
|
|
228
|
-
case '
|
|
234
|
+
case 'fast-forward':
|
|
229
235
|
showFastForwardRef.value = false;
|
|
230
236
|
break;
|
|
231
237
|
default:
|
|
@@ -318,16 +324,17 @@ export default defineComponent({
|
|
|
318
324
|
},
|
|
319
325
|
render() {
|
|
320
326
|
// it's ok to expand all prop here since no slots' deps
|
|
321
|
-
const { $slots, mergedClsPrefix, disabled, cssVars, mergedPage, mergedPageCount, pageItems, showFastBackward, showFastForward, showSizePicker, showQuickJumper, mergedTheme, locale, inputSize, selectSize, mergedPageSize, pageSizeOptions, jumperValue, prev, next, prefix, suffix, handleJumperInput, handleSizePickerChange, handleBackwardClick, handlePageItemClick, handlePageItemMouseEnter, handlePageItemMouseLeave, handleForwardClick, handleQuickJumperKeyUp } = this;
|
|
327
|
+
const { $slots, mergedClsPrefix, disabled, cssVars, mergedPage, mergedPageCount, pageItems, showFastBackward, showFastForward, showSizePicker, showQuickJumper, mergedTheme, locale, inputSize, selectSize, mergedPageSize, pageSizeOptions, jumperValue, prev, next, prefix, suffix, label, handleJumperInput, handleSizePickerChange, handleBackwardClick, handlePageItemClick, handlePageItemMouseEnter, handlePageItemMouseLeave, handleForwardClick, handleQuickJumperKeyUp } = this;
|
|
328
|
+
const renderPrefix = $slots.prefix || prefix;
|
|
329
|
+
const renderSuffix = $slots.suffix || suffix;
|
|
322
330
|
const renderPrev = prev || $slots.prev;
|
|
323
331
|
const renderNext = next || $slots.next;
|
|
332
|
+
const renderLabel = label || $slots.label;
|
|
324
333
|
return (h("div", { ref: "selfRef", class: [
|
|
325
334
|
`${mergedClsPrefix}-pagination`,
|
|
326
335
|
disabled && `${mergedClsPrefix}-pagination--disabled`
|
|
327
336
|
], style: cssVars },
|
|
328
|
-
|
|
329
|
-
? $slots.prefix
|
|
330
|
-
: prefix)({
|
|
337
|
+
renderPrefix ? (h("div", { class: `${mergedClsPrefix}-pagination-prefix` }, renderPrefix({
|
|
331
338
|
page: mergedPage,
|
|
332
339
|
pageSize: mergedPageSize,
|
|
333
340
|
pageCount: mergedPageCount,
|
|
@@ -349,16 +356,58 @@ export default defineComponent({
|
|
|
349
356
|
itemCount: this.mergedItemCount
|
|
350
357
|
})) : (h(NBaseIcon, { clsPrefix: mergedClsPrefix }, { default: () => h(BackwardIcon, null) }))),
|
|
351
358
|
pageItems.map((pageItem, index) => {
|
|
359
|
+
let contentNode;
|
|
360
|
+
switch (pageItem.type) {
|
|
361
|
+
case 'page':
|
|
362
|
+
// eslint-disable-next-line no-case-declarations
|
|
363
|
+
const pageNode = pageItem.label;
|
|
364
|
+
if (renderLabel) {
|
|
365
|
+
contentNode = renderLabel({
|
|
366
|
+
type: 'page',
|
|
367
|
+
node: pageNode,
|
|
368
|
+
active: pageItem.active
|
|
369
|
+
});
|
|
370
|
+
}
|
|
371
|
+
else {
|
|
372
|
+
contentNode = pageNode;
|
|
373
|
+
}
|
|
374
|
+
break;
|
|
375
|
+
case 'fast-forward':
|
|
376
|
+
// eslint-disable-next-line no-case-declarations
|
|
377
|
+
const fastForwardNode = showFastForward ? (h(NBaseIcon, { clsPrefix: mergedClsPrefix }, { default: () => h(FastForwardIcon, null) })) : (h(NBaseIcon, { clsPrefix: mergedClsPrefix }, { default: () => h(MoreIcon, null) }));
|
|
378
|
+
if (renderLabel) {
|
|
379
|
+
contentNode = renderLabel({
|
|
380
|
+
type: 'fast-forward',
|
|
381
|
+
node: fastForwardNode,
|
|
382
|
+
active: showFastForward
|
|
383
|
+
});
|
|
384
|
+
}
|
|
385
|
+
else {
|
|
386
|
+
contentNode = fastForwardNode;
|
|
387
|
+
}
|
|
388
|
+
break;
|
|
389
|
+
case 'fast-backward':
|
|
390
|
+
// eslint-disable-next-line no-case-declarations
|
|
391
|
+
const fastBackwardNode = showFastBackward ? (h(NBaseIcon, { clsPrefix: mergedClsPrefix }, { default: () => h(FastBackwardIcon, null) })) : (h(NBaseIcon, { clsPrefix: mergedClsPrefix }, { default: () => h(MoreIcon, null) }));
|
|
392
|
+
if (renderLabel) {
|
|
393
|
+
contentNode = renderLabel({
|
|
394
|
+
type: 'fast-backward',
|
|
395
|
+
node: fastBackwardNode,
|
|
396
|
+
active: showFastBackward
|
|
397
|
+
});
|
|
398
|
+
}
|
|
399
|
+
else {
|
|
400
|
+
contentNode = fastBackwardNode;
|
|
401
|
+
}
|
|
402
|
+
break;
|
|
403
|
+
}
|
|
352
404
|
return (h("div", { key: index, class: [
|
|
353
405
|
`${mergedClsPrefix}-pagination-item`,
|
|
354
406
|
{
|
|
355
407
|
[`${mergedClsPrefix}-pagination-item--active`]: pageItem.active,
|
|
356
408
|
[`${mergedClsPrefix}-pagination-item--disabled`]: disabled
|
|
357
409
|
}
|
|
358
|
-
], onClick: () => handlePageItemClick(pageItem), onMouseenter: () => handlePageItemMouseEnter(pageItem), onMouseleave: () => handlePageItemMouseLeave(pageItem) },
|
|
359
|
-
pageItem.type === 'page' ? pageItem.label : null,
|
|
360
|
-
pageItem.type === 'fastBackward' ? (showFastBackward ? (h(NBaseIcon, { clsPrefix: mergedClsPrefix }, { default: () => h(FastBackwardIcon, null) })) : (h(NBaseIcon, { clsPrefix: mergedClsPrefix }, { default: () => h(MoreIcon, null) }))) : null,
|
|
361
|
-
pageItem.type === 'fastForward' ? (showFastForward ? (h(NBaseIcon, { clsPrefix: mergedClsPrefix }, { default: () => h(FastForwardIcon, null) })) : (h(NBaseIcon, { clsPrefix: mergedClsPrefix }, { default: () => h(MoreIcon, null) }))) : null));
|
|
410
|
+
], onClick: () => handlePageItemClick(pageItem), onMouseenter: () => handlePageItemMouseEnter(pageItem), onMouseleave: () => handlePageItemMouseLeave(pageItem) }, contentNode));
|
|
362
411
|
}),
|
|
363
412
|
h("div", { class: [
|
|
364
413
|
`${mergedClsPrefix}-pagination-item`,
|
|
@@ -378,9 +427,7 @@ export default defineComponent({
|
|
|
378
427
|
showQuickJumper ? (h("div", { class: `${mergedClsPrefix}-pagination-quick-jumper` },
|
|
379
428
|
locale.goto,
|
|
380
429
|
h(NInput, { ref: "jumperRef", value: jumperValue, onUpdateValue: handleJumperInput, size: inputSize, placeholder: "", disabled: disabled, theme: mergedTheme.peers.Input, themeOverrides: mergedTheme.peerOverrides.Input, onKeyup: handleQuickJumperKeyUp }))) : null,
|
|
381
|
-
|
|
382
|
-
? $slots.suffix
|
|
383
|
-
: suffix)({
|
|
430
|
+
renderSuffix ? (h("div", { class: `${mergedClsPrefix}-pagination-suffix` }, renderSuffix({
|
|
384
431
|
page: mergedPage,
|
|
385
432
|
pageSize: mergedPageSize,
|
|
386
433
|
pageCount: mergedPageCount,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { VNodeChild } from 'vue';
|
|
1
|
+
import { VNode, VNodeChild } from 'vue';
|
|
2
2
|
import { SelectBaseOption } from '../../select/src/interface';
|
|
3
3
|
export declare type PaginationInfo = Parameters<RenderPrefix>[0];
|
|
4
4
|
export declare type RenderPrefix = (info: {
|
|
@@ -13,3 +13,12 @@ export declare type PaginationSizeOption = SelectBaseOption<number, string>;
|
|
|
13
13
|
export declare type RenderSuffix = RenderPrefix;
|
|
14
14
|
export declare type RenderNext = RenderPrefix;
|
|
15
15
|
export declare type RenderPrev = RenderPrefix;
|
|
16
|
+
export declare type PaginationRenderLabel = (info: {
|
|
17
|
+
type: 'fast-backward' | 'fast-forward';
|
|
18
|
+
node: VNode;
|
|
19
|
+
active: boolean;
|
|
20
|
+
} | {
|
|
21
|
+
type: 'page';
|
|
22
|
+
node: number;
|
|
23
|
+
active: boolean;
|
|
24
|
+
}) => VNodeChild;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
declare function pagesToShow(currentPage: number, pageCount: number, pageSlot?: number): number[];
|
|
2
2
|
export declare type PageItem = {
|
|
3
|
-
type: '
|
|
4
|
-
label
|
|
3
|
+
type: 'fast-backward' | 'fast-forward';
|
|
4
|
+
label?: undefined;
|
|
5
5
|
active: false;
|
|
6
6
|
} | {
|
|
7
7
|
type: 'page';
|
|
@@ -45,14 +45,12 @@ function mapPagesToPageItems(pages, currentPage) {
|
|
|
45
45
|
switch (page) {
|
|
46
46
|
case -2:
|
|
47
47
|
return {
|
|
48
|
-
type: '
|
|
49
|
-
label: 'fastBackward',
|
|
48
|
+
type: 'fast-backward',
|
|
50
49
|
active: false
|
|
51
50
|
};
|
|
52
51
|
case -1:
|
|
53
52
|
return {
|
|
54
|
-
type: '
|
|
55
|
-
label: 'fastForward',
|
|
53
|
+
type: 'fast-forward',
|
|
56
54
|
active: false
|
|
57
55
|
};
|
|
58
56
|
default:
|
|
@@ -75,6 +75,7 @@ declare const popconfirmProps: {
|
|
|
75
75
|
type: PropType<import("../../popover/src/Popover").TriggerEventHandlers[]>;
|
|
76
76
|
default: () => never[];
|
|
77
77
|
};
|
|
78
|
+
internalTrapFocus: BooleanConstructor;
|
|
78
79
|
onShow: PropType<import("../../_utils").MaybeArray<(value: boolean) => void> | undefined>;
|
|
79
80
|
onHide: PropType<import("../../_utils").MaybeArray<(value: boolean) => void> | undefined>;
|
|
80
81
|
arrow: {
|
|
@@ -831,6 +832,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
831
832
|
type: PropType<import("../../popover/src/Popover").TriggerEventHandlers[]>;
|
|
832
833
|
default: () => never[];
|
|
833
834
|
};
|
|
835
|
+
internalTrapFocus: BooleanConstructor;
|
|
834
836
|
onShow: PropType<import("../../_utils").MaybeArray<(value: boolean) => void> | undefined>;
|
|
835
837
|
onHide: PropType<import("../../_utils").MaybeArray<(value: boolean) => void> | undefined>;
|
|
836
838
|
arrow: {
|
|
@@ -1892,6 +1894,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
1892
1894
|
to?: unknown;
|
|
1893
1895
|
internalSyncTargetWithParent?: unknown;
|
|
1894
1896
|
internalInheritedEventHandlers?: unknown;
|
|
1897
|
+
internalTrapFocus?: unknown;
|
|
1895
1898
|
onShow?: unknown;
|
|
1896
1899
|
onHide?: unknown;
|
|
1897
1900
|
arrow?: unknown;
|
|
@@ -1912,6 +1915,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
1912
1915
|
showArrow: boolean;
|
|
1913
1916
|
delay: number;
|
|
1914
1917
|
displayDirective: "show" | "if";
|
|
1918
|
+
internalTrapFocus: boolean;
|
|
1915
1919
|
animated: boolean;
|
|
1916
1920
|
defaultShow: boolean;
|
|
1917
1921
|
internalExtraClass: string[];
|
|
@@ -2625,6 +2629,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
2625
2629
|
showArrow: boolean;
|
|
2626
2630
|
delay: number;
|
|
2627
2631
|
displayDirective: "show" | "if";
|
|
2632
|
+
internalTrapFocus: boolean;
|
|
2628
2633
|
animated: boolean;
|
|
2629
2634
|
defaultShow: boolean;
|
|
2630
2635
|
internalExtraClass: string[];
|
|
@@ -18,6 +18,7 @@ export interface PopoverInjection {
|
|
|
18
18
|
handleMouseEnter: (e: MouseEvent) => void;
|
|
19
19
|
handleMouseMoveOutside: (e: MouseEvent) => void;
|
|
20
20
|
handleClickOutside: (e: MouseEvent) => void;
|
|
21
|
+
handleKeydown: (e: KeyboardEvent) => void;
|
|
21
22
|
getTriggerElement: () => HTMLElement;
|
|
22
23
|
setBodyInstance: (value: BodyInstance | null) => void;
|
|
23
24
|
zIndexRef: Ref<number | undefined>;
|
|
@@ -92,6 +93,7 @@ export declare const popoverBaseProps: {
|
|
|
92
93
|
type: PropType<TriggerEventHandlers[]>;
|
|
93
94
|
default: () => never[];
|
|
94
95
|
};
|
|
96
|
+
internalTrapFocus: BooleanConstructor;
|
|
95
97
|
/** @deprecated */
|
|
96
98
|
onShow: PropType<MaybeArray<(value: boolean) => void> | undefined>;
|
|
97
99
|
/** @deprecated */
|
|
@@ -173,6 +175,7 @@ declare const popoverProps: {
|
|
|
173
175
|
type: PropType<TriggerEventHandlers[]>;
|
|
174
176
|
default: () => never[];
|
|
175
177
|
};
|
|
178
|
+
internalTrapFocus: BooleanConstructor;
|
|
176
179
|
/** @deprecated */
|
|
177
180
|
onShow: PropType<MaybeArray<(value: boolean) => void> | undefined>;
|
|
178
181
|
/** @deprecated */
|
|
@@ -298,6 +301,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
298
301
|
type: PropType<TriggerEventHandlers[]>;
|
|
299
302
|
default: () => never[];
|
|
300
303
|
};
|
|
304
|
+
internalTrapFocus: BooleanConstructor;
|
|
301
305
|
/** @deprecated */
|
|
302
306
|
onShow: PropType<MaybeArray<(value: boolean) => void> | undefined>;
|
|
303
307
|
/** @deprecated */
|
|
@@ -397,6 +401,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
397
401
|
to?: unknown;
|
|
398
402
|
internalSyncTargetWithParent?: unknown;
|
|
399
403
|
internalInheritedEventHandlers?: unknown;
|
|
404
|
+
internalTrapFocus?: unknown;
|
|
400
405
|
onShow?: unknown;
|
|
401
406
|
onHide?: unknown;
|
|
402
407
|
arrow?: unknown;
|
|
@@ -416,6 +421,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
416
421
|
showArrow: boolean;
|
|
417
422
|
delay: number;
|
|
418
423
|
displayDirective: "show" | "if";
|
|
424
|
+
internalTrapFocus: boolean;
|
|
419
425
|
animated: boolean;
|
|
420
426
|
defaultShow: boolean;
|
|
421
427
|
internalExtraClass: string[];
|
|
@@ -495,6 +501,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
495
501
|
showArrow: boolean;
|
|
496
502
|
delay: number;
|
|
497
503
|
displayDirective: "show" | "if";
|
|
504
|
+
internalTrapFocus: boolean;
|
|
498
505
|
animated: boolean;
|
|
499
506
|
defaultShow: boolean;
|
|
500
507
|
internalExtraClass: string[];
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { h, ref, computed, createTextVNode, defineComponent, provide, toRef, cloneVNode, watchEffect } from 'vue';
|
|
1
|
+
import { h, ref, computed, createTextVNode, defineComponent, provide, toRef, cloneVNode, watchEffect, withDirectives } from 'vue';
|
|
2
2
|
import { VBinder, VTarget } from 'vueuc';
|
|
3
3
|
import { useMergedState, useCompitable, useIsMounted, useMemo } from 'vooks';
|
|
4
4
|
import { call, keep, getFirstSlotVNode, warnOnce, useAdjustedTo } from '../../_utils';
|
|
5
5
|
import { useTheme } from '../../_mixins';
|
|
6
6
|
import NPopoverBody, { popoverBodyProps } from './PopoverBody';
|
|
7
|
+
import { zindexable } from 'vdirs';
|
|
7
8
|
const bodyPropKeys = Object.keys(popoverBodyProps);
|
|
8
9
|
const triggerEventMap = {
|
|
9
10
|
focus: ['onFocus', 'onBlur'],
|
|
@@ -96,6 +97,7 @@ export const popoverBaseProps = {
|
|
|
96
97
|
type: Array,
|
|
97
98
|
default: () => []
|
|
98
99
|
},
|
|
100
|
+
internalTrapFocus: Boolean,
|
|
99
101
|
/** @deprecated */
|
|
100
102
|
onShow: [Function, Array],
|
|
101
103
|
/** @deprecated */
|
|
@@ -292,6 +294,15 @@ export default defineComponent({
|
|
|
292
294
|
doUpdateShow(nextShow);
|
|
293
295
|
}
|
|
294
296
|
}
|
|
297
|
+
function handleKeydown(e) {
|
|
298
|
+
if (!props.internalTrapFocus)
|
|
299
|
+
return;
|
|
300
|
+
if (e.code === 'Escape') {
|
|
301
|
+
clearShowTimer();
|
|
302
|
+
clearHideTimer();
|
|
303
|
+
doUpdateShow(false);
|
|
304
|
+
}
|
|
305
|
+
}
|
|
295
306
|
function setShow(value) {
|
|
296
307
|
uncontrolledShowRef.value = value;
|
|
297
308
|
}
|
|
@@ -304,6 +315,7 @@ export default defineComponent({
|
|
|
304
315
|
}
|
|
305
316
|
provide('NPopover', {
|
|
306
317
|
getTriggerElement,
|
|
318
|
+
handleKeydown,
|
|
307
319
|
handleMouseEnter,
|
|
308
320
|
handleMouseLeave,
|
|
309
321
|
handleClickOutside,
|
|
@@ -426,6 +438,17 @@ export default defineComponent({
|
|
|
426
438
|
void this.mergedShowConsideringDisabledProp;
|
|
427
439
|
const mergedShow = this.getMergedShow();
|
|
428
440
|
return [
|
|
441
|
+
this.internalTrapFocus && mergedShow
|
|
442
|
+
? withDirectives(h("div", { style: { position: 'fixed', inset: 0 } }), [
|
|
443
|
+
[
|
|
444
|
+
zindexable,
|
|
445
|
+
{
|
|
446
|
+
enabled: mergedShow,
|
|
447
|
+
zIndex: this.zIndex
|
|
448
|
+
}
|
|
449
|
+
]
|
|
450
|
+
])
|
|
451
|
+
: null,
|
|
429
452
|
positionManually
|
|
430
453
|
? null
|
|
431
454
|
: h(VTarget, null, {
|
|
@@ -20,6 +20,7 @@ export declare const popoverBodyProps: {
|
|
|
20
20
|
overlap: BooleanConstructor;
|
|
21
21
|
placement: PropType<FollowerPlacement>;
|
|
22
22
|
width: PropType<number | "trigger">;
|
|
23
|
+
internalTrapFocus: BooleanConstructor;
|
|
23
24
|
animated: BooleanConstructor;
|
|
24
25
|
onClickoutside: PropType<(e: MouseEvent) => void>;
|
|
25
26
|
/** @deprecated */
|
|
@@ -92,6 +93,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
92
93
|
overlap: BooleanConstructor;
|
|
93
94
|
placement: PropType<FollowerPlacement>;
|
|
94
95
|
width: PropType<number | "trigger">;
|
|
96
|
+
internalTrapFocus: BooleanConstructor;
|
|
95
97
|
animated: BooleanConstructor;
|
|
96
98
|
onClickoutside: PropType<(e: MouseEvent) => void>;
|
|
97
99
|
/** @deprecated */
|
|
@@ -165,6 +167,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
165
167
|
overlap?: unknown;
|
|
166
168
|
placement?: unknown;
|
|
167
169
|
width?: unknown;
|
|
170
|
+
internalTrapFocus?: unknown;
|
|
168
171
|
animated?: unknown;
|
|
169
172
|
onClickoutside?: unknown;
|
|
170
173
|
minWidth?: unknown;
|
|
@@ -178,6 +181,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
178
181
|
raw: boolean;
|
|
179
182
|
overlap: boolean;
|
|
180
183
|
showArrow: boolean;
|
|
184
|
+
internalTrapFocus: boolean;
|
|
181
185
|
animated: boolean;
|
|
182
186
|
} & {
|
|
183
187
|
x?: number | undefined;
|
|
@@ -242,6 +246,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
242
246
|
raw: boolean;
|
|
243
247
|
overlap: boolean;
|
|
244
248
|
showArrow: boolean;
|
|
249
|
+
internalTrapFocus: boolean;
|
|
245
250
|
animated: boolean;
|
|
246
251
|
}>;
|
|
247
252
|
export default _default;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { h, vShow, withDirectives, Transition, ref, defineComponent, computed, mergeProps, inject, onBeforeUnmount, watch, toRef, provide, renderSlot, Fragment } from 'vue';
|
|
2
|
-
import { VFollower } from 'vueuc';
|
|
2
|
+
import { VFollower, VFocusTrap } from 'vueuc';
|
|
3
3
|
import { clickoutside, mousemoveoutside } from 'vdirs';
|
|
4
4
|
import { useTheme, useConfig } from '../../_mixins';
|
|
5
5
|
import { formatLength, useAdjustedTo } from '../../_utils';
|
|
@@ -8,7 +8,7 @@ import style from './styles/index.cssr';
|
|
|
8
8
|
import { popoverBodyInjectionKey } from './interface';
|
|
9
9
|
import { drawerBodyInjectionKey } from '../../drawer/src/interface';
|
|
10
10
|
import { modalBodyInjectionKey } from '../../modal/src/interface';
|
|
11
|
-
export const popoverBodyProps = Object.assign(Object.assign({}, useTheme.props), { to: useAdjustedTo.propTo, show: Boolean, trigger: String, showArrow: Boolean, delay: Number, duration: Number, raw: Boolean, arrowStyle: [String, Object], displayDirective: String, x: Number, y: Number, flip: Boolean, overlap: Boolean, placement: String, width: [Number, String],
|
|
11
|
+
export const popoverBodyProps = Object.assign(Object.assign({}, useTheme.props), { to: useAdjustedTo.propTo, show: Boolean, trigger: String, showArrow: Boolean, delay: Number, duration: Number, raw: Boolean, arrowStyle: [String, Object], displayDirective: String, x: Number, y: Number, flip: Boolean, overlap: Boolean, placement: String, width: [Number, String], internalTrapFocus: Boolean,
|
|
12
12
|
// private
|
|
13
13
|
animated: Boolean, onClickoutside: Function,
|
|
14
14
|
/** @deprecated */
|
|
@@ -98,7 +98,6 @@ export default defineComponent({
|
|
|
98
98
|
});
|
|
99
99
|
function syncPosition() {
|
|
100
100
|
var _a;
|
|
101
|
-
// eslint-disable-next-line no-unused-expressions
|
|
102
101
|
(_a = followerRef.value) === null || _a === void 0 ? void 0 : _a.syncPosition();
|
|
103
102
|
}
|
|
104
103
|
function handleMouseEnter(e) {
|
|
@@ -136,6 +135,18 @@ export default defineComponent({
|
|
|
136
135
|
const { value: mergedClsPrefix } = mergedClsPrefixRef;
|
|
137
136
|
if (!renderBody) {
|
|
138
137
|
const { value: extraClass } = NPopover.extraClassRef;
|
|
138
|
+
const { internalTrapFocus } = props;
|
|
139
|
+
const renderContentInnerNode = () => [
|
|
140
|
+
slots.header ? (h(Fragment, null,
|
|
141
|
+
h("div", { class: `${mergedClsPrefix}-popover__header` }, slots.header()),
|
|
142
|
+
h("div", { class: `${mergedClsPrefix}-popover__content` }, slots))) : (renderSlot(slots, 'default')),
|
|
143
|
+
props.showArrow
|
|
144
|
+
? renderArrow({
|
|
145
|
+
arrowStyle: props.arrowStyle,
|
|
146
|
+
clsPrefix: mergedClsPrefix
|
|
147
|
+
})
|
|
148
|
+
: null
|
|
149
|
+
];
|
|
139
150
|
contentNode = h('div', mergeProps({
|
|
140
151
|
class: [
|
|
141
152
|
`${mergedClsPrefix}-popover`,
|
|
@@ -149,19 +160,10 @@ export default defineComponent({
|
|
|
149
160
|
],
|
|
150
161
|
ref: bodyRef,
|
|
151
162
|
style: styleRef.value,
|
|
163
|
+
onKeydown: NPopover.handleKeydown,
|
|
152
164
|
onMouseenter: handleMouseEnter,
|
|
153
165
|
onMouseleave: handleMouseLeave
|
|
154
|
-
}, attrs),
|
|
155
|
-
slots.header ? (h(Fragment, null,
|
|
156
|
-
h("div", { class: `${mergedClsPrefix}-popover__header` }, slots.header()),
|
|
157
|
-
h("div", { class: `${mergedClsPrefix}-popover__content` }, slots))) : (renderSlot(slots, 'default')),
|
|
158
|
-
props.showArrow
|
|
159
|
-
? renderArrow({
|
|
160
|
-
arrowStyle: props.arrowStyle,
|
|
161
|
-
clsPrefix: mergedClsPrefix
|
|
162
|
-
})
|
|
163
|
-
: null
|
|
164
|
-
]);
|
|
166
|
+
}, attrs), internalTrapFocus ? (h(VFocusTrap, { active: props.show, focusFirstDescendant: true }, { default: renderContentInnerNode })) : (renderContentInnerNode()));
|
|
165
167
|
}
|
|
166
168
|
else {
|
|
167
169
|
contentNode = renderBody(
|
|
@@ -188,39 +190,19 @@ export default defineComponent({
|
|
|
188
190
|
};
|
|
189
191
|
},
|
|
190
192
|
render() {
|
|
191
|
-
return h(VFollower, {
|
|
192
|
-
zIndex: this.zIndex,
|
|
193
|
-
show: this.show,
|
|
194
|
-
enabled: this.followerEnabled,
|
|
195
|
-
to: this.adjustedTo,
|
|
196
|
-
x: this.x,
|
|
197
|
-
y: this.y,
|
|
198
|
-
flip: this.flip,
|
|
199
|
-
placement: this.placement,
|
|
200
|
-
containerClass: this.namespace,
|
|
201
|
-
ref: 'followerRef',
|
|
202
|
-
overlap: this.overlap,
|
|
203
|
-
width: this.width === 'trigger' ? 'target' : undefined,
|
|
204
|
-
teleportDisabled: this.adjustedTo === useAdjustedTo.tdkey
|
|
205
|
-
}, {
|
|
193
|
+
return (h(VFollower, { zIndex: this.zIndex, show: this.show, enabled: this.followerEnabled, to: this.adjustedTo, x: this.x, y: this.y, flip: this.flip, placement: this.placement, containerClass: this.namespace, ref: "followerRef", overlap: this.overlap, width: this.width === 'trigger' ? 'target' : undefined, teleportDisabled: this.adjustedTo === useAdjustedTo.tdkey }, {
|
|
206
194
|
default: () => {
|
|
207
|
-
return this.animated
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
this.followerEnabled = false;
|
|
218
|
-
}
|
|
219
|
-
}, {
|
|
220
|
-
default: this.renderContentNode
|
|
221
|
-
})
|
|
222
|
-
: this.renderContentNode();
|
|
195
|
+
return this.animated ? (h(Transition, { name: "popover-transition", appear: this.isMounted,
|
|
196
|
+
// Don't use watch to enable follower, since the transition may
|
|
197
|
+
// make position sync timing very subtle and buggy.
|
|
198
|
+
onEnter: () => {
|
|
199
|
+
this.followerEnabled = true;
|
|
200
|
+
}, onAfterLeave: () => {
|
|
201
|
+
this.followerEnabled = false;
|
|
202
|
+
} }, {
|
|
203
|
+
default: this.renderContentNode
|
|
204
|
+
})) : (this.renderContentNode());
|
|
223
205
|
}
|
|
224
|
-
});
|
|
206
|
+
}));
|
|
225
207
|
}
|
|
226
208
|
});
|
|
@@ -70,44 +70,45 @@ c('&.popover-transition-enter-from, &.popover-transition-leave-to', `
|
|
|
70
70
|
pointer-events: all;
|
|
71
71
|
`)])]), placementStyle('top-start', `
|
|
72
72
|
top: calc(-0.707 * var(--n-arrow-height));
|
|
73
|
-
left: var(--n-arrow-offset);
|
|
73
|
+
left: calc(var(--n-arrow-offset) - var(--v-offset-left));
|
|
74
74
|
`), placementStyle('top', `
|
|
75
75
|
top: calc(-0.707 * var(--n-arrow-height));
|
|
76
76
|
transform: translateX(calc(-0.707 * var(--n-arrow-height))) rotate(45deg);
|
|
77
77
|
left: 50%;
|
|
78
78
|
`), placementStyle('top-end', `
|
|
79
79
|
top: calc(-0.707 * var(--n-arrow-height));
|
|
80
|
-
right: var(--n-arrow-offset);
|
|
80
|
+
right: calc(var(--n-arrow-offset) + var(--v-offset-left));
|
|
81
81
|
`), placementStyle('bottom-start', `
|
|
82
82
|
bottom: calc(-0.707 * var(--n-arrow-height));
|
|
83
|
-
left: var(--n-arrow-offset);
|
|
83
|
+
left: calc(var(--n-arrow-offset) - var(--v-offset-left));
|
|
84
84
|
`), placementStyle('bottom', `
|
|
85
85
|
bottom: calc(-0.707 * var(--n-arrow-height));
|
|
86
86
|
transform: translateX(calc(-0.707 * var(--n-arrow-height))) rotate(45deg);
|
|
87
87
|
left: 50%;
|
|
88
88
|
`), placementStyle('bottom-end', `
|
|
89
89
|
bottom: calc(-0.707 * var(--n-arrow-height));
|
|
90
|
-
right: var(--n-arrow-offset);
|
|
90
|
+
right: calc(var(--n-arrow-offset) + var(--v-offset-left));
|
|
91
91
|
`), placementStyle('left-start', `
|
|
92
92
|
left: calc(-0.707 * var(--n-arrow-height));
|
|
93
|
-
top: var(--n-arrow-offset-vertical);
|
|
93
|
+
top: calc(var(--n-arrow-offset-vertical) - var(--v-offset-top));
|
|
94
94
|
`), placementStyle('left', `
|
|
95
95
|
left: calc(-0.707 * var(--n-arrow-height));
|
|
96
96
|
transform: translateY(calc(-0.707 * var(--n-arrow-height))) rotate(45deg);
|
|
97
97
|
top: 50%;
|
|
98
98
|
`), placementStyle('left-end', `
|
|
99
99
|
left: calc(-0.707 * var(--n-arrow-height));
|
|
100
|
-
bottom: var(--n-arrow-offset-vertical);
|
|
100
|
+
bottom: calc(var(--n-arrow-offset-vertical) + var(--v-offset-top));
|
|
101
|
+
|
|
101
102
|
`), placementStyle('right-start', `
|
|
102
103
|
right: calc(-0.707 * var(--n-arrow-height));
|
|
103
|
-
top: var(--n-arrow-offset-vertical);
|
|
104
|
+
top: calc(var(--n-arrow-offset-vertical) - var(--v-offset-top));
|
|
104
105
|
`), placementStyle('right', `
|
|
105
106
|
right: calc(-0.707 * var(--n-arrow-height));
|
|
106
107
|
transform: translateY(calc(-0.707 * var(--n-arrow-height))) rotate(45deg);
|
|
107
108
|
top: 50%;
|
|
108
109
|
`), placementStyle('right-end', `
|
|
109
110
|
right: calc(-0.707 * var(--n-arrow-height));
|
|
110
|
-
bottom: var(--n-arrow-offset-vertical);
|
|
111
|
+
bottom: calc(var(--n-arrow-offset-vertical) + var(--v-offset-top));
|
|
111
112
|
`)]);
|
|
112
113
|
|
|
113
114
|
function placementStyle(placement, arrowStyleLiteral) {
|