{"version":3,"file":"List.mjs","sources":["../../../../../../packages/components/list/src/List.tsx"],"sourcesContent":["import type { Breakpoint, CustomSlotsType, Key } from '@antdv/types';\nimport type { PaginationConfig } from '../../pagination';\n\nimport { responsiveArray } from '@antdv/constants';\nimport { useBreakpoint } from '@antdv/hooks';\nimport { classNames, eagerComputed, flattenChildren, initDefaultProps } from '@antdv/utils';\nimport {\n  computed,\n  defineComponent,\n  provide,\n  ref,\n  toRef,\n  watch,\n} from 'vue';\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\nimport { Row } from '../../grid';\n\nimport Pagination from '../../pagination';\nimport Spin from '../../spin';\nimport useStyle from '../style';\nimport { ListContextKey } from './contextKey';\nimport Item from './Item';\nimport { listProps } from './props';\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'AList',\n  inheritAttrs: false,\n  Item,\n  props: initDefaultProps(listProps(), {\n    dataSource: [],\n    bordered: false,\n    split: true,\n    loading: false,\n    pagination: false,\n  }),\n  slots: Object as CustomSlotsType<{\n    extra: any\n    loadMore: any\n    renderItem: { item: any, index: number }\n    header: any\n    footer: any\n    default: any\n  }>,\n  setup(props, { slots, attrs }) {\n    provide(ListContextKey, {\n      grid: toRef(props, 'grid'),\n      itemLayout: toRef(props, 'itemLayout'),\n    });\n    const defaultPaginationProps = {\n      current: 1,\n      total: 0,\n    };\n    const { prefixCls, direction, renderEmpty } = useConfigInject('list', props);\n\n    // Style\n    const [wrapSSR, hashId] = useStyle(prefixCls);\n\n    const paginationObj = computed(() =>\n      props.pagination && typeof props.pagination === 'object' ? props.pagination : {},\n    );\n    const paginationCurrent = ref(paginationObj.value.defaultCurrent ?? 1);\n    const paginationSize = ref(paginationObj.value.defaultPageSize ?? 10);\n    watch(paginationObj, () => {\n      if ('current' in paginationObj.value)\n        paginationCurrent.value = paginationObj.value.current;\n\n      if ('pageSize' in paginationObj.value)\n        paginationSize.value = paginationObj.value.pageSize;\n    });\n\n    const listItemsKeys: Key[] = [];\n\n    const triggerPaginationEvent = (eventName: string) => (page: number, pageSize: number) => {\n      paginationCurrent.value = page;\n      paginationSize.value = pageSize;\n      if (paginationObj.value[eventName])\n        paginationObj.value[eventName](page, pageSize);\n    };\n\n    const onPaginationChange = triggerPaginationEvent('onChange');\n\n    const onPaginationShowSizeChange = triggerPaginationEvent('onShowSizeChange');\n\n    const loadingProp = computed(() => {\n      if (typeof props.loading === 'boolean') {\n        return {\n          spinning: props.loading,\n        };\n      } else {\n        return props.loading;\n      }\n    });\n\n    const isLoading = computed(() => loadingProp.value && loadingProp.value.spinning);\n\n    const sizeCls = computed(() => {\n      let size = '';\n      switch (props.size) {\n        case 'large':\n          size = 'lg';\n          break;\n        case 'small':\n          size = 'sm';\n          break;\n        default:\n          break;\n      }\n      return size;\n    });\n\n    const classObj = computed(() => ({\n      [`${prefixCls.value}`]: true,\n      [`${prefixCls.value}-vertical`]: props.itemLayout === 'vertical',\n      [`${prefixCls.value}-${sizeCls.value}`]: sizeCls.value,\n      [`${prefixCls.value}-split`]: props.split,\n      [`${prefixCls.value}-bordered`]: props.bordered,\n      [`${prefixCls.value}-loading`]: isLoading.value,\n      [`${prefixCls.value}-grid`]: !!props.grid,\n      [`${prefixCls.value}-rtl`]: direction.value === 'rtl',\n    }));\n\n    const paginationProps = computed(() => {\n      const pp = {\n        ...defaultPaginationProps,\n        total: props.dataSource.length,\n        current: paginationCurrent.value,\n        pageSize: paginationSize.value,\n        ...((props.pagination as PaginationConfig) || {}),\n      };\n\n      const largestPage = Math.ceil(pp.total / pp.pageSize);\n      if (pp.current > largestPage)\n        pp.current = largestPage;\n\n      return pp;\n    });\n\n    const splitDataSource = computed(() => {\n      let dd = [...props.dataSource];\n      if (props.pagination) {\n        if (\n          props.dataSource.length\n          > (paginationProps.value.current - 1) * paginationProps.value.pageSize\n        ) {\n          dd = [...props.dataSource].splice(\n            (paginationProps.value.current - 1) * paginationProps.value.pageSize,\n            paginationProps.value.pageSize,\n          );\n        }\n      }\n      return dd;\n    });\n\n    const screens = useBreakpoint();\n\n    const currentBreakpoint = eagerComputed(() => {\n      for (let i = 0; i < responsiveArray.length; i += 1) {\n        const breakpoint: Breakpoint = responsiveArray[i];\n        if (screens.value[breakpoint])\n          return breakpoint;\n      }\n      return undefined;\n    });\n\n    const colStyle = computed(() => {\n      if (!props.grid)\n        return undefined;\n\n      const columnCount\n        = currentBreakpoint.value && props.grid[currentBreakpoint.value]\n          ? props.grid[currentBreakpoint.value]\n          : props.grid.column;\n      if (columnCount) {\n        return {\n          width: `${100 / columnCount}%`,\n          maxWidth: `${100 / columnCount}%`,\n        };\n      }\n      return undefined;\n    });\n\n    const renderInnerItem = (item: any, index: number) => {\n      const renderItem = props.renderItem ?? slots.renderItem;\n      if (!renderItem) return null;\n\n      let key;\n      const rowKeyType = typeof props.rowKey;\n      if (rowKeyType === 'function')\n        key = (props.rowKey as any)(item);\n      else if (rowKeyType === 'string' || rowKeyType === 'number')\n        key = item[props.rowKey as any];\n      else\n        key = item.key;\n\n      if (!key)\n        key = `list-item-${index}`;\n\n      listItemsKeys[index] = key;\n\n      return renderItem({ item, index });\n    };\n\n    return () => {\n      const loadMore = props.loadMore ?? slots.loadMore?.();\n      const footer = props.footer ?? slots.footer?.();\n      const header = props.header ?? slots.header?.();\n      const children = flattenChildren(slots.default?.());\n      const isSomethingAfterLastItem = !!(loadMore || props.pagination || footer);\n      const classString = classNames(\n        {\n          ...classObj.value,\n          [`${prefixCls.value}-something-after-last-item`]: isSomethingAfterLastItem,\n        },\n        attrs.class,\n        hashId.value,\n      );\n      const paginationContent = props.pagination\n        ? (\n            <div class={`${prefixCls.value}-pagination`}>\n              <Pagination\n                {...paginationProps.value}\n                onChange={onPaginationChange}\n                onShowSizeChange={onPaginationShowSizeChange}\n              />\n            </div>\n          )\n        : null;\n\n      let childrenContent = isLoading.value && <div style={{ minHeight: '53px' }} />;\n      if (splitDataSource.value.length > 0) {\n        listItemsKeys.length = 0;\n        const items = splitDataSource.value.map((item: any, index: number) => renderInnerItem(item, index),\n        );\n        const childrenList = items.map((child: any, index) => {\n          return (\n            <div key={listItemsKeys[index]} style={colStyle.value}>\n              {child}\n            </div>\n          );\n        });\n        childrenContent = props.grid\n          ? (\n              <Row gutter={props.grid.gutter}>{childrenList}</Row>\n            )\n          : (\n              <ul class={`${prefixCls.value}-items`}>{items}</ul>\n            );\n      } else if (!children.length && !isLoading.value) {\n        childrenContent = (\n          <div class={`${prefixCls.value}-empty-text`}>\n            {props.locale?.emptyText || renderEmpty('List')}\n          </div>\n        );\n      }\n\n      const paginationPosition = paginationProps.value.position || 'bottom';\n      return wrapSSR(\n        <div {...attrs} class={classString}>\n          {(paginationPosition === 'top' || paginationPosition === 'both') && paginationContent}\n          {header && <div class={`${prefixCls.value}-header`}>{header}</div>}\n          <Spin {...loadingProp.value}>\n            {childrenContent}\n            {children}\n          </Spin>\n          {footer && <div class={`${prefixCls.value}-footer`}>{footer}</div>}\n          {loadMore\n            || ((paginationPosition === 'bottom' || paginationPosition === 'both')\n              && paginationContent)}\n        </div>,\n      );\n    };\n  },\n});\n"],"names":["compatConfig","MODE","name","inheritAttrs","Item","props","initDefaultProps","listProps","dataSource","bordered","split","loading","pagination","slots","Object","setup","attrs","provide","ListContextKey","grid","toRef","itemLayout","defaultPaginationProps","current","total","prefixCls","direction","renderEmpty","useConfigInject","wrapSSR","hashId","useStyle","paginationObj","computed","paginationCurrent","ref","value","defaultCurrent","paginationSize","defaultPageSize","watch","pageSize","listItemsKeys","triggerPaginationEvent","eventName","page","onPaginationChange","onPaginationShowSizeChange","loadingProp","spinning","isLoading","sizeCls","size","classObj","paginationProps","pp","length","largestPage","Math","ceil","splitDataSource","dd","splice","screens","useBreakpoint","currentBreakpoint","eagerComputed","i","responsiveArray","breakpoint","undefined","colStyle","columnCount","column","width","maxWidth","renderInnerItem","item","index","renderItem","key","rowKeyType","rowKey","loadMore","footer","header","children","flattenChildren","default","isSomethingAfterLastItem","classString","classNames","class","paginationContent","_createVNode","Pagination","childrenContent","minHeight","items","map","childrenList","child","Row","gutter","locale","emptyText","paginationPosition","position","Spin"],"mappings":"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"}