element-plus
Version:
A Component Library for Vue 3
1 lines • 2.38 kB
Source Map (JSON)
{"version":3,"file":"useStops.mjs","sources":["../../../../../../packages/components/slider/src/useStops.ts"],"sourcesContent":["import { computed } from 'vue'\nimport { debugWarn } from '@element-plus/utils/error'\nimport type { ComputedRef, CSSProperties } from 'vue'\nimport type { ISliderInitData, ISliderProps, Stops } from './slider.type'\n\nexport const useStops = (\n props: ISliderProps,\n initData: ISliderInitData,\n minValue: ComputedRef<number>,\n maxValue: ComputedRef<number>\n): Stops => {\n const stops = computed(() => {\n if (!props.showStops || props.min > props.max) return []\n if (props.step === 0) {\n debugWarn('Slider', 'step should not be 0.')\n return []\n }\n\n const stopCount = (props.max - props.min) / props.step\n const stepWidth = (100 * props.step) / (props.max - props.min)\n const result = Array.from<number>({ length: stopCount - 1 }).map(\n (_, index) => (index + 1) * stepWidth\n )\n\n if (props.range) {\n return result.filter((step) => {\n return (\n step <\n (100 * (minValue.value - props.min)) / (props.max - props.min) ||\n step > (100 * (maxValue.value - props.min)) / (props.max - props.min)\n )\n })\n } else {\n return result.filter(\n (step) =>\n step >\n (100 * (initData.firstValue - props.min)) / (props.max - props.min)\n )\n }\n })\n\n const getStopStyle = (position: number) => {\n return (\n props.vertical ? { bottom: `${position}%` } : { left: `${position}%` }\n ) as CSSProperties\n }\n\n return {\n stops,\n getStopStyle,\n }\n}\n"],"names":[],"mappings":";;;MAKa,WAAW,CACtB,OACA,UACA,UACA,aACU;AACV,QAAM,QAAQ,SAAS,MAAM;AAC3B,QAAI,CAAC,MAAM,aAAa,MAAM,MAAM,MAAM;AAAK,aAAO;AACtD,QAAI,MAAM,SAAS,GAAG;AACpB,gBAAU,UAAU;AACpB,aAAO;AAAA;AAGT,UAAM,YAAa,OAAM,MAAM,MAAM,OAAO,MAAM;AAClD,UAAM,YAAa,MAAM,MAAM,cAAe,MAAM,MAAM;AAC1D,UAAM,SAAS,MAAM,KAAa,EAAE,QAAQ,YAAY,KAAK,IAC3D,CAAC,GAAG,UAAW,SAAQ,KAAK;AAG9B,QAAI,MAAM,OAAO;AACf,aAAO,OAAO,OAAO,CAAC,SAAS;AAC7B,eACE,OACG,gBAAgB,QAAQ,MAAM,cAAe,MAAM,MAAM,QAC5D,OAAQ,gBAAgB,QAAQ,MAAM,cAAe,MAAM,MAAM;AAAA;AAAA,WAGhE;AACL,aAAO,OAAO,OACZ,CAAC,SACC,OACC,gBAAgB,aAAa,MAAM,cAAe,MAAM,MAAM;AAAA;AAAA;AAKvE,QAAM,eAAe,CAAC,aAAqB;AACzC,WACE,MAAM,WAAW,EAAE,QAAQ,GAAG,gBAAgB,EAAE,MAAM,GAAG;AAAA;AAI7D,SAAO;AAAA,IACL;AAAA,IACA;AAAA;AAAA;;;;"}