{"version":3,"file":"props.mjs","sources":["../../../../../packages/components/virtual-list/src/props.ts"],"sourcesContent":["import { VERTICAL } from './defaults'\n\nimport type { ExtractPropTypes, PropType, StyleValue } from 'vue'\nimport type { GridItemKeyGetter, ItemSize } from './types'\n\nconst itemSize = {\n  type: [Number, Function] as PropType<number | ItemSize>,\n  required: true\n}\n\nconst estimatedItemSize = {\n  type: Number\n}\n\nconst cache = {\n  type: Number,\n  default: 2\n}\n\nconst direction = {\n  type: String as PropType<'ltr' | 'rtl'>,\n\n  default: 'ltr'\n}\n\nconst initScrollOffset = {\n  type: Number,\n  default: 0\n}\n\nconst total = {\n  type: Number,\n  required: true\n}\n\nconst layout = {\n  type: String as PropType<'horizontal' | 'vertical'>,\n\n  default: VERTICAL\n}\n\nexport const virtualizedProps = {\n  className: {\n    type: String,\n    default: ''\n  },\n\n  containerElement: {\n    type: [String, Object] as PropType<string | Element>,\n    default: 'div'\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: {\n    type: [String, Number],\n    required: true\n  },\n\n  innerElement: {\n    type: [String, Object],\n    default: 'div'\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: {\n    type: [Number, String],\n    required: false\n  },\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}\n\nconst startGap = { type: Number, default: 0 }\nconst endGap = { type: Number, default: 2 }\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: ({ columnIndex, rowIndex }) => `${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  ...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\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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"}