{"version":3,"file":"props.mjs","sources":["../../../../../../packages/components/virtual-list/src/props.ts"],"sourcesContent":["import { buildProp } from '@hongluan-ui/utils'\nimport { LTR, RTL, VERTICAL } from './defaults'\n\nimport type { ExtractPropTypes, PropType } from 'vue'\nimport type { Indexable, StyleValue } from '@hongluan-ui/utils'\nimport type { Direction, LayoutDirection, ItemSize, GridItemKeyGetter } from './types'\n\nconst itemSize = {\n  type: [Number, Function] as PropType<number | ItemSize>,\n  required: true,\n}\n\nconst estimatedItemSize = {\n  type: [Number] as PropType<number>,\n}\n\nconst cache = {\n  type: Number as PropType<number>,\n  default: 2,\n}\n\nconst direction = {\n  type: String as PropType<Direction>,\n  default: 'ltr',\n  validator: (val: Direction) => {\n    return val === LTR || val === RTL\n  },\n}\n\nconst initScrollOffset = {\n  type: Number,\n  default: 0,\n}\n\nconst total = buildProp({\n  type: Number,\n  required: true,\n})\n\nconst layout = {\n  type: String as PropType<LayoutDirection>,\n  default: VERTICAL,\n}\n\nexport const virtualizedProps = {\n  className: {\n    type: [String, Object, Array],\n    default: '',\n  },\n\n  containerElement: {\n    type: [String, Object],\n    default: 'div',\n  },\n  containerProps: {\n    type: Object as PropType<Indexable<any>>,\n    default: () => ({}),\n  },\n\n  data: {\n    type: [Array] as PropType<any[]>,\n    default: () => [],\n  },\n\n  /**\n   * @description controls the horizontal direction.\n   */\n  direction,\n\n  height: buildProp({\n    type: [String, Number],\n    required: true,\n  }),\n\n  innerElement: {\n    type: [String, Object],\n    default: 'div',\n  },\n  innerElementProps: {\n    type: Object as PropType<Indexable<any>>,\n    default: () => ({}),\n  },\n\n  style: {\n    type: [Object, String, Array] as PropType<StyleValue>,\n  },\n\n  useIsScrolling: {\n    type: Boolean,\n    default: false,\n  },\n\n  width: buildProp({\n    type: [Number, String],\n    required: false,\n  }),\n  perfMode: {\n    type: Boolean,\n    default: true,\n  },\n  scrollbarAlwaysOn: {\n    type: Boolean,\n    default: false,\n  },\n}\n\nexport const virtualizedListProps = {\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}\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 = {\n  columnCache: cache,\n  columnWidth: itemSize,\n  estimatedColumnWidth: estimatedItemSize,\n  estimatedRowHeight: estimatedItemSize,\n  initScrollLeft: initScrollOffset,\n  initScrollTop: initScrollOffset,\n  itemKey: {\n    type: Function as PropType<GridItemKeyGetter>,\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}\n\nexport const virtualizedScrollbarProps = {\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  visible: Boolean,\n}\n\nexport type VirtualizedProps = ExtractPropTypes<typeof virtualizedProps>\nexport type VirtualizedListProps = ExtractPropTypes<typeof virtualizedListProps>\nexport type VirtualizedGridProps = ExtractPropTypes<typeof virtualizedGridProps>\n\nexport type VirtualizedScrollbarProps = ExtractPropTypes<\n  typeof virtualizedScrollbarProps\n>\n"],"names":[],"mappings":"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"}