UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 3.24 kB
{"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,QAAW,GAAA,CACtB,KACA,EAAA,QAAA,EACA,UACA,QACU,KAAA;AACV,EAAM,MAAA,KAAA,GAAQ,SAAS,MAAM;AAC3B,IAAA,IAAI,CAAC,KAAA,CAAM,SAAa,IAAA,KAAA,CAAM,MAAM,KAAM,CAAA,GAAA;AAAK,MAAA,OAAO,EAAC,CAAA;AACvD,IAAI,IAAA,KAAA,CAAM,SAAS,CAAG,EAAA;AACpB,MAAA,SAAA,CAAU,YAAY,uBAAuB,CAAA,CAAA;AAC7C,MAAA,OAAO,EAAC,CAAA;AAAA,KACV;AAEA,IAAM,MAAA,SAAA,GAAY,KAAK,IAAM,CAAA,CAAA,KAAA,CAAM,MAAM,KAAM,CAAA,GAAA,IAAO,MAAM,IAAI,CAAA,CAAA;AAChE,IAAA,MAAM,YAAa,GAAM,GAAA,KAAA,CAAM,IAAS,IAAA,KAAA,CAAM,MAAM,KAAM,CAAA,GAAA,CAAA,CAAA;AAC1D,IAAM,MAAA,MAAA,GAAS,MAAM,IAAa,CAAA,EAAE,QAAQ,SAAY,GAAA,CAAA,EAAG,CAAE,CAAA,GAAA;AAAA,MAC3D,CAAC,CAAA,EAAG,KAAW,KAAA,CAAA,KAAA,GAAQ,CAAK,IAAA,SAAA;AAAA,KAC9B,CAAA;AAEA,IAAA,IAAI,MAAM,KAAO,EAAA;AACf,MAAO,OAAA,MAAA,CAAO,MAAO,CAAA,CAAC,IAAS,KAAA;AAC7B,QAAA,OACE,OACG,GAAO,IAAA,QAAA,CAAS,QAAQ,KAAM,CAAA,GAAA,CAAA,IAAS,MAAM,GAAM,GAAA,KAAA,CAAM,GAC5D,CAAA,IAAA,IAAA,GAAQ,OAAO,QAAS,CAAA,KAAA,GAAQ,MAAM,GAAS,CAAA,IAAA,KAAA,CAAM,MAAM,KAAM,CAAA,GAAA,CAAA,CAAA;AAAA,OAEpE,CAAA,CAAA;AAAA,KACI,MAAA;AACL,MAAA,OAAO,MAAO,CAAA,MAAA;AAAA,QACZ,CAAC,IACC,KAAA,IAAA,GACC,GAAO,IAAA,QAAA,CAAS,aAAa,KAAM,CAAA,GAAA,CAAA,IAAS,KAAM,CAAA,GAAA,GAAM,KAAM,CAAA,GAAA,CAAA;AAAA,OACnE,CAAA;AAAA,KACF;AAAA,GACD,CAAA,CAAA;AAED,EAAM,MAAA,YAAA,GAAe,CAAC,QAAoC,KAAA;AACxD,IAAO,OAAA,KAAA,CAAM,QACT,GAAA,EAAE,MAAQ,EAAA,CAAA,EAAG,aACb,GAAA,EAAE,IAAM,EAAA,CAAA,EAAG,QAAY,CAAA,CAAA,CAAA,EAAA,CAAA;AAAA,GAC7B,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,KAAA;AAAA,IACA,YAAA;AAAA,GACF,CAAA;AACF;;;;"}