{"version":3,"file":"utils.mjs","sources":["../../../../../../packages/components/virtual-list/src/utils.ts"],"sourcesContent":["import { isObject } from '@vue/shared'\r\nimport {\r\n  FORWARD,\r\n  BACKWARD,\r\n  LTR,\r\n  RTL,\r\n  HORIZONTAL,\r\n  RTL_OFFSET_NAG,\r\n  RTL_OFFSET_POS_DESC,\r\n  RTL_OFFSET_POS_ASC,\r\n  PageKey,\r\n} from './defaults'\r\n\r\nimport type { CSSProperties } from 'vue'\r\nimport type { RTLOffsetType, Direction, LayoutDirection } from './types'\r\n\r\nexport const getScrollDir = (prev: number, cur: number) =>\r\n  prev < cur ? FORWARD : BACKWARD\r\n\r\nexport const isHorizontal = (dir: string) =>\r\n  dir === LTR || dir === RTL || dir === HORIZONTAL\r\n\r\nexport const isRTL = (dir: Direction) => dir === RTL\r\n\r\nlet cachedRTLResult: RTLOffsetType | null = null\r\n\r\nexport function getRTLOffsetType(recalculate = false): RTLOffsetType {\r\n  if (cachedRTLResult === null || recalculate) {\r\n    const outerDiv = document.createElement('div')\r\n    const outerStyle = outerDiv.style\r\n    outerStyle.width = '50px'\r\n    outerStyle.height = '50px'\r\n    outerStyle.overflow = 'scroll'\r\n    outerStyle.direction = 'rtl'\r\n\r\n    const innerDiv = document.createElement('div')\r\n    const innerStyle = innerDiv.style\r\n    innerStyle.width = '100px'\r\n    innerStyle.height = '100px'\r\n\r\n    outerDiv.appendChild(innerDiv)\r\n\r\n    document.body.appendChild(outerDiv)\r\n\r\n    if (outerDiv.scrollLeft > 0) {\r\n      cachedRTLResult = RTL_OFFSET_POS_DESC\r\n    } else {\r\n      outerDiv.scrollLeft = 1\r\n      if (outerDiv.scrollLeft === 0) {\r\n        cachedRTLResult = RTL_OFFSET_NAG\r\n      } else {\r\n        cachedRTLResult = RTL_OFFSET_POS_ASC\r\n      }\r\n    }\r\n\r\n    document.body.removeChild(outerDiv)\r\n\r\n    return cachedRTLResult\r\n  }\r\n\r\n  return cachedRTLResult\r\n}\r\n\r\nexport const getRelativePos = (\r\n  e: TouchEvent | MouseEvent,\r\n  layout: LayoutDirection\r\n) => {\r\n  return 'touches' in e ? e.touches[0][PageKey[layout]] : e[PageKey[layout]]\r\n}\r\n\r\nexport function renderThumbStyle({ move, size, bar }, layout: string) {\r\n  const style: CSSProperties = {}\r\n  const translate = `translate${bar.axis}(${move}px)`\r\n\r\n  style[bar.size] = size\r\n  style.transform = translate\r\n  style.msTransform = translate\r\n  // polyfill\r\n  ;(style as any).webkitTransform = translate\r\n\r\n  if (layout === 'horizontal') {\r\n    style.height = '100%'\r\n  } else {\r\n    style.width = '100%'\r\n  }\r\n\r\n  return style\r\n}\r\n\r\nexport const isFF =\r\n  typeof navigator !== 'undefined' &&\r\n  isObject(navigator) &&\r\n  /Firefox/i.test(navigator.userAgent)\r\n"],"names":[],"mappings":"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"}