element-plus
Version:
A Component Library for Vue 3
1 lines • 3.19 kB
Source Map (JSON)
{"version":3,"file":"use-stops.mjs","sources":["../../../../../../../packages/components/slider/src/composables/use-stops.ts"],"sourcesContent":["import { computed } from 'vue'\nimport { debugWarn } from '@element-plus/utils'\n\nimport type { CSSProperties, ComputedRef } from 'vue'\nimport type { SliderInitData, SliderProps } from '../slider'\n\ntype Stops = {\n stops: ComputedRef<number[]>\n getStopStyle: (position: number) => CSSProperties\n}\n\nexport const useStops = (\n props: SliderProps,\n initData: SliderInitData,\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('ElSlider', 'step should not be 0.')\n return []\n }\n\n const stopCount = Math.ceil((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): CSSProperties => {\n return props.vertical\n ? { bottom: `${position}%` }\n : { left: `${position}%` }\n }\n\n return {\n stops,\n getStopStyle,\n }\n}\n"],"names":[],"mappings":";;;AAWO,MAAM,QAAA,GAAW,CACtB,KAAA,EACA,QAAA,EACA,UACA,QAAA,KACU;AACV,EAAA,MAAM,KAAA,GAAQ,SAAS,MAAM;AAC3B,IAAA,IAAI,CAAC,MAAM,SAAA,IAAa,KAAA,CAAM,MAAM,KAAA,CAAM,GAAA,SAAY,EAAC;AACvD,IAAA,IAAI,KAAA,CAAM,SAAS,CAAA,EAAG;AACpB,MAAA,SAAA,CAAU,YAAY,uBAAuB,CAAA;AAC7C,MAAA,OAAO,EAAC;AAAA,IACV;AAEA,IAAA,MAAM,SAAA,GAAY,KAAK,IAAA,CAAA,CAAM,KAAA,CAAM,MAAM,KAAA,CAAM,GAAA,IAAO,MAAM,IAAI,CAAA;AAChE,IAAA,MAAM,YAAa,GAAA,GAAM,KAAA,CAAM,IAAA,IAAS,KAAA,CAAM,MAAM,KAAA,CAAM,GAAA,CAAA;AAC1D,IAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAa,EAAE,QAAQ,SAAA,GAAY,CAAA,EAAG,CAAA,CAAE,GAAA;AAAA,MAC3D,CAAC,CAAA,EAAG,KAAA,KAAA,CAAW,KAAA,GAAQ,CAAA,IAAK;AAAA,KAC9B;AAEA,IAAA,IAAI,MAAM,KAAA,EAAO;AACf,MAAA,OAAO,MAAA,CAAO,MAAA,CAAO,CAAC,IAAA,KAAS;AAC7B,QAAA,OACE,OACG,GAAA,IAAO,QAAA,CAAS,QAAQ,KAAA,CAAM,GAAA,CAAA,IAAS,MAAM,GAAA,GAAM,KAAA,CAAM,GAAA,CAAA,IAC5D,IAAA,GAAQ,OAAO,QAAA,CAAS,KAAA,GAAQ,MAAM,GAAA,CAAA,IAAS,KAAA,CAAM,MAAM,KAAA,CAAM,GAAA,CAAA;AAAA,MAErE,CAAC,CAAA;AAAA,IACH,CAAA,MAAO;AACL,MAAA,OAAO,MAAA,CAAO,MAAA;AAAA,QACZ,CAAC,IAAA,KACC,IAAA,GACC,GAAA,IAAO,QAAA,CAAS,aAAa,KAAA,CAAM,GAAA,CAAA,IAAS,KAAA,CAAM,GAAA,GAAM,KAAA,CAAM,GAAA;AAAA,OACnE;AAAA,IACF;AAAA,EACF,CAAC,CAAA;AAED,EAAA,MAAM,YAAA,GAAe,CAAC,QAAA,KAAoC;AACxD,IAAA,OAAO,KAAA,CAAM,QAAA,GACT,EAAE,MAAA,EAAQ,CAAA,EAAG,QAAQ,CAAA,CAAA,CAAA,EAAI,GACzB,EAAE,IAAA,EAAM,CAAA,EAAG,QAAQ,CAAA,CAAA,CAAA,EAAI;AAAA,EAC7B,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,KAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}