{"version":3,"file":"props.mjs","names":[],"sources":["../../../../../../packages/components/virtual-list/src/props.ts"],"sourcesContent":["import {\n  buildProp,\n  buildProps,\n  definePropType,\n  mutable,\n} from '@element-plus/utils'\nimport { VERTICAL } from './defaults'\n\nimport type { ExtractPropTypes, ExtractPublicPropTypes, StyleValue } from 'vue'\nimport type { GridItemKeyGetter, ItemSize } from './types'\n\nconst itemSize = buildProp({\n  type: definePropType<number | ItemSize>([Number, Function]),\n  required: true,\n} as const)\n\nconst estimatedItemSize = buildProp({\n  type: Number,\n} as const)\n\nconst cache = buildProp({\n  type: Number,\n  default: 2,\n} as const)\n\nconst direction = buildProp({\n  type: String,\n  values: ['ltr', 'rtl'],\n  default: 'ltr',\n} as const)\n\nconst initScrollOffset = buildProp({\n  type: Number,\n  default: 0,\n} as const)\n\nconst total = buildProp({\n  type: Number,\n  required: true,\n} as const)\n\nconst layout = buildProp({\n  type: String,\n  values: ['horizontal', 'vertical'],\n  default: VERTICAL,\n} as const)\n\nexport const virtualizedProps = buildProps({\n  className: {\n    type: String,\n    default: '',\n  },\n\n  containerElement: {\n    type: definePropType<string | Element>([String, Object]),\n    default: 'div',\n  },\n\n  data: {\n    type: definePropType<any[]>(Array),\n    default: () => mutable([] as const),\n  },\n\n  /**\n   * @description controls the horizontal direction.\n   */\n  direction,\n\n  height: {\n    type: [String, Number],\n    required: true,\n  },\n\n  innerElement: {\n    type: [String, Object],\n    default: 'div',\n  },\n\n  innerProps: {\n    type: definePropType<Record<string, unknown>>(Object),\n    default: () => ({}),\n  },\n\n  style: {\n    type: definePropType<StyleValue>([Object, String, Array]),\n  },\n\n  useIsScrolling: Boolean,\n\n  width: {\n    type: [Number, String],\n    required: false,\n  },\n\n  perfMode: {\n    type: Boolean,\n    default: true,\n  },\n  scrollbarAlwaysOn: Boolean,\n} as const)\n\nexport const virtualizedListProps = buildProps({\n  /**\n   * @description describes how many items should be pre rendered to the head\n   * and the tail of the window\n   */\n  cache,\n\n  estimatedItemSize,\n\n  /**\n   * @description controls the list's orientation\n   */\n  layout,\n\n  initScrollOffset,\n\n  /**\n   * @description describes the total number of the list.\n   */\n  total,\n\n  itemSize,\n  ...virtualizedProps,\n} as const)\n\nconst scrollbarSize = {\n  type: Number,\n  default: 6,\n} as const\n\nconst startGap = { type: Number, default: 0 } as const\nconst endGap = { type: Number, default: 2 } as const\n\nexport const virtualizedGridProps = buildProps({\n  columnCache: cache,\n  columnWidth: itemSize,\n  estimatedColumnWidth: estimatedItemSize,\n  estimatedRowHeight: estimatedItemSize,\n  initScrollLeft: initScrollOffset,\n  initScrollTop: initScrollOffset,\n  itemKey: {\n    type: definePropType<GridItemKeyGetter>(Function),\n    default: ({\n      columnIndex,\n      rowIndex,\n    }: {\n      columnIndex: number\n      rowIndex: number\n    }) => `${rowIndex}:${columnIndex}`,\n  },\n  rowCache: cache,\n  rowHeight: itemSize,\n  totalColumn: total,\n  totalRow: total,\n  hScrollbarSize: scrollbarSize,\n  vScrollbarSize: scrollbarSize,\n  scrollbarStartGap: startGap,\n  scrollbarEndGap: endGap,\n  role: String,\n  ...virtualizedProps,\n} as const)\n\nexport const virtualizedScrollbarProps = buildProps({\n  alwaysOn: Boolean,\n  class: String,\n  layout,\n  total,\n  ratio: {\n    type: Number,\n    required: true,\n  },\n  clientSize: {\n    type: Number,\n    required: true,\n  },\n  scrollFrom: {\n    type: Number,\n    required: true,\n  },\n  scrollbarSize,\n  startGap,\n  endGap,\n\n  visible: Boolean,\n} as const)\n\nexport type VirtualizedProps = ExtractPropTypes<typeof virtualizedProps>\nexport type VirtualizedPropsPublic = ExtractPublicPropTypes<\n  typeof virtualizedProps\n>\nexport type VirtualizedListProps = ExtractPropTypes<typeof virtualizedListProps>\nexport type VirtualizedListPropsPublic = ExtractPublicPropTypes<\n  typeof virtualizedListProps\n>\nexport type VirtualizedGridProps = ExtractPropTypes<typeof virtualizedGridProps>\nexport type VirtualizedGridPropsPublic = ExtractPublicPropTypes<\n  typeof virtualizedGridProps\n>\n\nexport type VirtualizedScrollbarProps = ExtractPropTypes<\n  typeof virtualizedScrollbarProps\n>\nexport type VirtualizedScrollbarPropsPublic = ExtractPublicPropTypes<\n  typeof virtualizedScrollbarProps\n>\n"],"mappings":";;;;;AAWA,MAAM,WAAW,UAAU;CACzB,MAAM,eAAkC,CAAC,QAAQ,SAAS,CAAC;CAC3D,UAAU;CACX,CAAU;AAEX,MAAM,oBAAoB,UAAU,EAClC,MAAM,QACP,CAAU;AAEX,MAAM,QAAQ,UAAU;CACtB,MAAM;CACN,SAAS;CACV,CAAU;AAEX,MAAM,YAAY,UAAU;CAC1B,MAAM;CACN,QAAQ,CAAC,OAAO,MAAM;CACtB,SAAS;CACV,CAAU;AAEX,MAAM,mBAAmB,UAAU;CACjC,MAAM;CACN,SAAS;CACV,CAAU;AAEX,MAAM,QAAQ,UAAU;CACtB,MAAM;CACN,UAAU;CACX,CAAU;AAEX,MAAM,SAAS,UAAU;CACvB,MAAM;CACN,QAAQ,CAAC,cAAc,WAAW;CAClC,SAAS;CACV,CAAU;AAEX,MAAa,mBAAmB,WAAW;CACzC,WAAW;EACT,MAAM;EACN,SAAS;EACV;CAED,kBAAkB;EAChB,MAAM,eAAiC,CAAC,QAAQ,OAAO,CAAC;EACxD,SAAS;EACV;CAED,MAAM;EACJ,MAAM,eAAsB,MAAM;EAClC,eAAe,QAAQ,EAAE,CAAU;EACpC;CAKD;CAEA,QAAQ;EACN,MAAM,CAAC,QAAQ,OAAO;EACtB,UAAU;EACX;CAED,cAAc;EACZ,MAAM,CAAC,QAAQ,OAAO;EACtB,SAAS;EACV;CAED,YAAY;EACV,MAAM,eAAwC,OAAO;EACrD,gBAAgB,EAAE;EACnB;CAED,OAAO,EACL,MAAM,eAA2B;EAAC;EAAQ;EAAQ;EAAM,CAAC,EAC1D;CAED,gBAAgB;CAEhB,OAAO;EACL,MAAM,CAAC,QAAQ,OAAO;EACtB,UAAU;EACX;CAED,UAAU;EACR,MAAM;EACN,SAAS;EACV;CACD,mBAAmB;CACpB,CAAU;AAEX,MAAa,uBAAuB,WAAW;CAK7C;CAEA;CAKA;CAEA;CAKA;CAEA;CACA,GAAG;CACJ,CAAU;AAEX,MAAM,gBAAgB;CACpB,MAAM;CACN,SAAS;CACV;AAED,MAAM,WAAW;CAAE,MAAM;CAAQ,SAAS;CAAG;AAC7C,MAAM,SAAS;CAAE,MAAM;CAAQ,SAAS;CAAG;AAE3C,MAAa,uBAAuB,WAAW;CAC7C,aAAa;CACb,aAAa;CACb,sBAAsB;CACtB,oBAAoB;CACpB,gBAAgB;CAChB,eAAe;CACf,SAAS;EACP,MAAM,eAAkC,SAAS;EACjD,UAAU,EACR,aACA,eAII,GAAG,SAAS,GAAG;EACtB;CACD,UAAU;CACV,WAAW;CACX,aAAa;CACb,UAAU;CACV,gBAAgB;CAChB,gBAAgB;CAChB,mBAAmB;CACnB,iBAAiB;CACjB,MAAM;CACN,GAAG;CACJ,CAAU;AAEX,MAAa,4BAA4B,WAAW;CAClD,UAAU;CACV,OAAO;CACP;CACA;CACA,OAAO;EACL,MAAM;EACN,UAAU;EACX;CACD,YAAY;EACV,MAAM;EACN,UAAU;EACX;CACD,YAAY;EACV,MAAM;EACN,UAAU;EACX;CACD;CACA;CACA;CAEA,SAAS;CACV,CAAU"}