{"version":3,"file":"utils.mjs","names":[],"sources":["../../../../../../packages/components/virtual-list/src/utils.ts"],"sourcesContent":["import {\n  BACKWARD,\n  FORWARD,\n  HORIZONTAL,\n  LTR,\n  RTL,\n  RTL_OFFSET_NAG,\n  RTL_OFFSET_POS_ASC,\n  RTL_OFFSET_POS_DESC,\n} from './defaults'\n\nimport type { CSSProperties } from 'vue'\nimport type { Direction, RTLOffsetType } from './types'\n\nexport const getScrollDir = (prev: number, cur: number) =>\n  prev < cur ? FORWARD : BACKWARD\n\nexport const isHorizontal = (dir: string) =>\n  dir === LTR || dir === RTL || dir === HORIZONTAL\n\nexport const isRTL = (dir: Direction) => dir === RTL\n\nlet cachedRTLResult: RTLOffsetType | null = null\n\nexport function getRTLOffsetType(recalculate = false): RTLOffsetType {\n  if (cachedRTLResult === null || recalculate) {\n    const outerDiv = document.createElement('div')\n    const outerStyle = outerDiv.style\n    outerStyle.width = '50px'\n    outerStyle.height = '50px'\n    outerStyle.overflow = 'scroll'\n    outerStyle.direction = 'rtl'\n\n    const innerDiv = document.createElement('div')\n    const innerStyle = innerDiv.style\n    innerStyle.width = '100px'\n    innerStyle.height = '100px'\n\n    outerDiv.appendChild(innerDiv)\n\n    document.body.appendChild(outerDiv)\n\n    if (outerDiv.scrollLeft > 0) {\n      cachedRTLResult = RTL_OFFSET_POS_DESC\n    } else {\n      outerDiv.scrollLeft = 1\n      if (outerDiv.scrollLeft === 0) {\n        cachedRTLResult = RTL_OFFSET_NAG\n      } else {\n        cachedRTLResult = RTL_OFFSET_POS_ASC\n      }\n    }\n\n    document.body.removeChild(outerDiv)\n\n    return cachedRTLResult\n  }\n\n  return cachedRTLResult\n}\n\ntype RenderThumbStyleParams = {\n  bar: {\n    size: 'height' | 'width'\n    axis: 'X' | 'Y'\n  }\n  size: string\n  move: number\n}\n\nexport function renderThumbStyle(\n  { move, size, bar }: RenderThumbStyleParams,\n  layout: string\n) {\n  const style: CSSProperties = {}\n  const translate = `translate${bar.axis}(${move}px)`\n\n  style[bar.size] = size\n  style.transform = translate\n\n  if (layout === 'horizontal') {\n    style.height = '100%'\n  } else {\n    style.width = '100%'\n  }\n\n  return style\n}\n"],"mappings":";;;AAcA,MAAa,gBAAgB,MAAc,QACzC,OAAO,MAAM,UAAU;AAEzB,MAAa,gBAAgB,QAC3B,QAAQ,OAAO,QAAQ,OAAO,QAAQ;AAExC,MAAa,SAAS,QAAmB,QAAQ;AAEjD,IAAI,kBAAwC;AAE5C,SAAgB,iBAAiB,cAAc,OAAsB;AACnE,KAAI,oBAAoB,QAAQ,aAAa;EAC3C,MAAM,WAAW,SAAS,cAAc,MAAM;EAC9C,MAAM,aAAa,SAAS;AAC5B,aAAW,QAAQ;AACnB,aAAW,SAAS;AACpB,aAAW,WAAW;AACtB,aAAW,YAAY;EAEvB,MAAM,WAAW,SAAS,cAAc,MAAM;EAC9C,MAAM,aAAa,SAAS;AAC5B,aAAW,QAAQ;AACnB,aAAW,SAAS;AAEpB,WAAS,YAAY,SAAS;AAE9B,WAAS,KAAK,YAAY,SAAS;AAEnC,MAAI,SAAS,aAAa,EACxB,mBAAkB;OACb;AACL,YAAS,aAAa;AACtB,OAAI,SAAS,eAAe,EAC1B,mBAAkB;OAElB,mBAAkB;;AAItB,WAAS,KAAK,YAAY,SAAS;AAEnC,SAAO;;AAGT,QAAO;;AAYT,SAAgB,iBACd,EAAE,MAAM,MAAM,OACd,QACA;CACA,MAAM,QAAuB,EAAE;CAC/B,MAAM,YAAY,YAAY,IAAI,KAAK,GAAG,KAAK;AAE/C,OAAM,IAAI,QAAQ;AAClB,OAAM,YAAY;AAElB,KAAI,WAAW,aACb,OAAM,SAAS;KAEf,OAAM,QAAQ;AAGhB,QAAO"}