{"version":3,"file":"pagination.mjs","sources":["../../../../../../packages/components/pagination/src/pagination.tsx"],"sourcesContent":["import { computed, defineComponent, h, toRefs } from 'vue'\nimport type { VNode } from 'vue'\nimport { getComponentNamespace, getNamespace } from '../../../utils/global-config'\nimport { paginationProps } from './props'\n\nimport LayoutComponentTotal from './layout/total.vue'\nimport LayoutComponentPager from './layout/pager.vue'\nimport LayoutComponentNext from './layout/next.vue'\nimport LayoutComponentPrev from './layout/prev.vue'\nimport LayoutComponentSizes from './layout/sizes.vue'\nimport LayoutComponentJumper from './layout/jumper.vue'\n\nimport type { LayoutKey } from './types'\n\nexport default defineComponent({\n  name: getComponentNamespace('Pagination'),\n  props: paginationProps,\n  emits: ['page-change', 'page-size-change', 'prev', 'next'],\n  setup(props, { emit }) {\n    const ns = getNamespace('pagination')\n    const cls = computed(() => [ns])\n\n    const { pageConfig } = toRefs(props)\n\n    // page\n    const currentPageBridge = computed<number>({\n      get() {\n        return props.pageConfig.page as number\n      },\n      set(v) {\n        let newCurrentPage = v\n        if (v < 1) {\n          newCurrentPage = 1\n        } else if (v > pageCountBridge.value) {\n          newCurrentPage = pageCountBridge.value\n        }\n        pageConfig.value.page = newCurrentPage\n      }\n    })\n\n    // pageSize\n    const pageSizeBridge = computed({\n      get() {\n        return props.pageConfig.pageSize\n      },\n      set(v: number) {\n        pageConfig.value.pageSize = v\n      }\n    })\n\n    // 一共多少页\n    const pageCountBridge = computed<number>(() => {\n      const pageCount = Math.max(\n        1,\n        Math.ceil((props.pageConfig.total as number) / pageSizeBridge.value!)\n      )\n      return pageCount\n    })\n\n    const handleSizeChange = (val: number) => {\n      pageSizeBridge.value = val\n      const newPageCount = pageCountBridge.value\n      if (currentPageBridge.value > newPageCount) {\n        // pageSize发生变化了 将page直接设为1\n        currentPageBridge.value = 1\n      }\n      emit('page-size-change', pageSizeBridge.value)\n    }\n\n    // event\n    const handleCurrentChange = (val: number) => {\n      currentPageBridge.value = val\n      emit('page-change', currentPageBridge.value)\n    }\n\n    const prev = () => {\n      if (props.disabled) return\n      currentPageBridge.value -= 1\n      emit('prev', currentPageBridge.value)\n      emit('page-change', currentPageBridge.value)\n    }\n\n    const next = () => {\n      if (props.disabled) return\n      currentPageBridge.value += 1\n      emit('next', currentPageBridge.value)\n      emit('page-change', currentPageBridge.value)\n    }\n\n    return () => {\n      if (!props.layout) return null\n\n      const renderChildren: Array<VNode | VNode[] | null> = []\n      const layoutRenderMap: Record<string, VNode> = {\n        jumper: h(LayoutComponentJumper, {\n          onChange: handleCurrentChange,\n          currentPage: currentPageBridge.value,\n          pageCount: pageCountBridge.value,\n          disabled: props.disabled,\n          pageSize: pageSizeBridge.value\n        }),\n        sizes: h(LayoutComponentSizes, {\n          pageSize: pageSizeBridge.value,\n          pageSizes: props.pageSizes,\n          disabled: props.disabled,\n          onChange: handleSizeChange\n        }),\n        prev: h(LayoutComponentPrev, {\n          disabled: props.disabled,\n          currentPage: currentPageBridge.value,\n          onClick: prev\n        }),\n        next: h(LayoutComponentNext, {\n          disabled: props.disabled,\n          currentPage: currentPageBridge.value,\n          pageCount: pageCountBridge.value,\n          onClick: next\n        }),\n        pager: h(LayoutComponentPager, {\n          currentPage: currentPageBridge.value,\n          pageCount: pageCountBridge.value,\n          pagerCount: 7,\n          onChange: handleCurrentChange,\n          disabled: props.disabled\n        }),\n        total: h(LayoutComponentTotal, { total: props.pageConfig.total || 0 })\n      }\n\n      const needRenderComponents = props.layout\n        .split(',')\n        .map((item: string) => item.trim()) as LayoutKey[]\n\n      needRenderComponents.forEach((layoutName: LayoutKey) => {\n        if (layoutRenderMap[layoutName]) {\n          renderChildren.push(layoutRenderMap[layoutName])\n        }\n      })\n\n      return <div class={cls.value}>{renderChildren}</div>\n    }\n  }\n})\n"],"names":["name","getComponentNamespace","props","paginationProps","emits","setup","emit","ns","getNamespace","cls","computed","pageConfig","toRefs","currentPageBridge","get","page","set","v","newCurrentPage","pageCountBridge","value","pageSizeBridge","pageSize","pageCount","Math","max","ceil","total","handleSizeChange","val","newPageCount","handleCurrentChange","prev","disabled","next","layout","renderChildren","layoutRenderMap","jumper","h","LayoutComponentJumper","onChange","currentPage","sizes","LayoutComponentSizes","pageSizes","LayoutComponentPrev","onClick","LayoutComponentNext","pager","LayoutComponentPager","pagerCount","LayoutComponentTotal","needRenderComponents","split","map","item","trim","forEach","layoutName","push","_createVNode"],"mappings":"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"}