element-plus
Version:
A Component Library for Vue 3
1 lines • 3.78 kB
Source Map (JSON)
{"version":3,"file":"utils.mjs","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"],"names":[],"mappings":";;AAcO,MAAM,eAAe,CAAC,IAAA,EAAc,GAAA,KACzC,IAAA,GAAO,MAAM,OAAA,GAAU;AAElB,MAAM,eAAe,CAAC,GAAA,KAC3B,QAAQ,GAAA,IAAO,GAAA,KAAQ,OAAO,GAAA,KAAQ;AAEjC,MAAM,KAAA,GAAQ,CAAC,GAAA,KAAmB,GAAA,KAAQ;AAEjD,IAAI,eAAA,GAAwC,IAAA;AAErC,SAAS,gBAAA,CAAiB,cAAc,KAAA,EAAsB;AACnE,EAAA,IAAI,eAAA,KAAoB,QAAQ,WAAA,EAAa;AAC3C,IAAA,MAAM,QAAA,GAAW,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AAC7C,IAAA,MAAM,aAAa,QAAA,CAAS,KAAA;AAC5B,IAAA,UAAA,CAAW,KAAA,GAAQ,MAAA;AACnB,IAAA,UAAA,CAAW,MAAA,GAAS,MAAA;AACpB,IAAA,UAAA,CAAW,QAAA,GAAW,QAAA;AACtB,IAAA,UAAA,CAAW,SAAA,GAAY,KAAA;AAEvB,IAAA,MAAM,QAAA,GAAW,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AAC7C,IAAA,MAAM,aAAa,QAAA,CAAS,KAAA;AAC5B,IAAA,UAAA,CAAW,KAAA,GAAQ,OAAA;AACnB,IAAA,UAAA,CAAW,MAAA,GAAS,OAAA;AAEpB,IAAA,QAAA,CAAS,YAAY,QAAQ,CAAA;AAE7B,IAAA,QAAA,CAAS,IAAA,CAAK,YAAY,QAAQ,CAAA;AAElC,IAAA,IAAI,QAAA,CAAS,aAAa,CAAA,EAAG;AAC3B,MAAA,eAAA,GAAkB,mBAAA;AAAA,IACpB,CAAA,MAAO;AACL,MAAA,QAAA,CAAS,UAAA,GAAa,CAAA;AACtB,MAAA,IAAI,QAAA,CAAS,eAAe,CAAA,EAAG;AAC7B,QAAA,eAAA,GAAkB,cAAA;AAAA,MACpB,CAAA,MAAO;AACL,QAAA,eAAA,GAAkB,kBAAA;AAAA,MACpB;AAAA,IACF;AAEA,IAAA,QAAA,CAAS,IAAA,CAAK,YAAY,QAAQ,CAAA;AAElC,IAAA,OAAO,eAAA;AAAA,EACT;AAEA,EAAA,OAAO,eAAA;AACT;AAWO,SAAS,iBACd,EAAE,IAAA,EAAM,IAAA,EAAM,GAAA,IACd,MAAA,EACA;AACA,EAAA,MAAM,QAAuB,EAAC;AAC9B,EAAA,MAAM,SAAA,GAAY,CAAA,SAAA,EAAY,GAAA,CAAI,IAAI,IAAI,IAAI,CAAA,GAAA,CAAA;AAE9C,EAAA,KAAA,CAAM,GAAA,CAAI,IAAI,CAAA,GAAI,IAAA;AAClB,EAAA,KAAA,CAAM,SAAA,GAAY,SAAA;AAElB,EAAA,IAAI,WAAW,YAAA,EAAc;AAC3B,IAAA,KAAA,CAAM,MAAA,GAAS,MAAA;AAAA,EACjB,CAAA,MAAO;AACL,IAAA,KAAA,CAAM,KAAA,GAAQ,MAAA;AAAA,EAChB;AAEA,EAAA,OAAO,KAAA;AACT;;;;"}