element-plus
Version:
A Component Library for Vue 3
1 lines • 3.01 kB
Source Map (JSON)
{"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"}