{"version":3,"file":"use-stops.mjs","sources":["../../../../../../../packages/components/slider/src/composables/use-stops.ts"],"sourcesContent":["import { computed } from 'vue'\nimport { debugWarn } from '@bigin/utils'\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('BSlider', '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): CSSProperties => {\n    return props.vertical\n      ? { bottom: `${position}%` }\n      : { left: `${position}%` }\n  }\n\n  return {\n    stops,\n    getStopStyle,\n  }\n}\n"],"names":[],"mappings":";;;;AAUO,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,WAAW,uBAAuB,CAAA,CAAA;AAC5C,MAAA,OAAO,EAAC,CAAA;AAAA,KACV;AAEA,IAAA,MAAM,SAAa,GAAA,CAAA,KAAA,CAAM,GAAM,GAAA,KAAA,CAAM,OAAO,KAAM,CAAA,IAAA,CAAA;AAClD,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;;;;"}