You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

0 lines
34 KiB

1 month ago
  1. {"ast":null,"code":"import { defineComponent, getCurrentInstance, computed, ref, watch, provide, h } from 'vue';\nimport { ArrowLeft, ArrowRight } from '@element-plus/icons-vue';\nimport { elPaginationKey } from './constants.mjs';\nimport Prev from './components/prev2.mjs';\nimport Next from './components/next2.mjs';\nimport Sizes from './components/sizes2.mjs';\nimport Jumper from './components/jumper2.mjs';\nimport Total from './components/total2.mjs';\nimport Pager from './components/pager.mjs';\nimport { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';\nimport { isNumber } from '../../../utils/types.mjs';\nimport { mutable } from '../../../utils/typescript.mjs';\nimport { iconPropType } from '../../../utils/vue/icon.mjs';\nimport { useSizeProp, useGlobalSize } from '../../../hooks/use-size/index.mjs';\nimport { useLocale } from '../../../hooks/use-locale/index.mjs';\nimport { useNamespace } from '../../../hooks/use-namespace/index.mjs';\nimport { useDeprecated } from '../../../hooks/use-deprecated/index.mjs';\nimport { debugWarn } from '../../../utils/error.mjs';\nconst isAbsent = v => typeof v !== \"number\";\nconst paginationProps = buildProps({\n pageSize: Number,\n defaultPageSize: Number,\n total: Number,\n pageCount: Number,\n pagerCount: {\n type: Number,\n validator: value => {\n return isNumber(value) && Math.trunc(value) === value && value > 4 && value < 22 && value % 2 === 1;\n },\n default: 7\n },\n currentPage: Number,\n defaultCurrentPage: Number,\n layout: {\n type: String,\n default: [\"prev\", \"pager\", \"next\", \"jumper\", \"->\", \"total\"].join(\", \")\n },\n pageSizes: {\n type: definePropType(Array),\n default: () => mutable([10, 20, 30, 40, 50, 100])\n },\n popperClass: {\n type: String,\n default: \"\"\n },\n prevText: {\n type: String,\n default: \"\"\n },\n prevIcon: {\n type: iconPropType,\n default: () => ArrowLeft\n },\n nextText: {\n type: String,\n default: \"\"\n },\n nextIcon: {\n type: iconPropType,\n default: () => ArrowRight\n },\n teleported: {\n type: Boolean,\n default: true\n },\n small: Boolean,\n size: useSizeProp,\n background: Boolean,\n disabled: Boolean,\n hideOnSinglePage: Boolean,\n appendSizeTo: String\n});\nconst paginationEmits = {\n \"update:current-page\": val => isNumber(val),\n \"update:page-size\": val => isNumber(val),\n \"size-change\": val => isNumber(val),\n change: (currentPage, pageSize) => isNumber(currentPage) && isNumber(pageSize),\n \"current-change\": val => isNumber(val),\n \"prev-click\": val => isNumber(val),\n \"next-click\": val => isNumber(val)\n};\nconst componentName = \"ElPagination\";\nvar Pagination = defineComponent({\n name: componentName,\n props: paginationProps,\n emits: paginationEmits,\n setup(props, {\n emit,\n slots\n }) {\n const {\n t\n } = useLocale();\n const ns = useNamespace(\"pagination\");\n const vnodeProps = getCurrentInstance().vnode.props || {};\n const _globalSize = useGlobalSize();\n const _size = computed(() => {\n var _a;\n return props.small ? \"small\" : (_a = props.size) != null ? _a : _globalSize.value;\n });\n useDeprecated({\n from: \"small\",\n replacement: \"size\",\n version: \"3.0.0\",\n scope: \"el-pagination\",\n ref: \"https://element-plus.org/zh-CN/component/pagination.html\"\n }, computed(() => !!props.small));\n const hasCurrentPageListener = \"onUpdate:currentPage\" in vnodeProps || \"onUpdate:current-page\" in vnodeProps || \"onCurrentChange\" in vnodeProps;\n const hasPageSizeListener = \"onUpdate:pageSize\" in vnodeProps || \"onUpdate:page-size\" in vnodeProps || \"onSizeChange\" in vnodeProps;\n const assertValidUsage = computed(() => {\n if (isAbsent(props.total) && isAbsent(props.pageCount)) return false;\n if (!isAbsent(props.currentPage) && !hasCurrentPageListener) return false;\n if (props.layout.includes(\"sizes\")) {\n if (!isAbsent(props.pageCount)) {\n