{"version":3,"file":"slider.mjs","sources":["../../../../../../packages/components/slider/src/slider.ts"],"sourcesContent":["import { placements } from '@bigin/popperjs-es'\nimport { buildProps, definePropType, isArray, isNumber } from '@bigin/utils'\nimport { CHANGE_EVENT, INPUT_EVENT, UPDATE_MODEL_EVENT } from '@bigin/constants'\nimport { useSizeProp } from '@bigin/hooks'\nimport type { Arrayable } from '@bigin/utils'\nimport type { ExtractPropTypes } from 'vue'\nimport type { SliderMarkerProps } from './marker'\nimport type Slider from './slider.vue'\n\ntype SliderMarks = Record<number, string | SliderMarkerProps['mark']>\n\nexport interface SliderInitData {\n  firstValue: number\n  secondValue: number\n  oldValue?: Arrayable<number>\n  dragging: boolean\n  sliderSize: number\n}\n\nexport const sliderProps = buildProps({\n  modelValue: {\n    type: definePropType<Arrayable<number>>([Number, Array]),\n    default: 0,\n  },\n  id: {\n    type: String,\n    default: undefined,\n  },\n  min: {\n    type: Number,\n    default: 0,\n  },\n  max: {\n    type: Number,\n    default: 100,\n  },\n  step: {\n    type: Number,\n    default: 1,\n  },\n  showInput: Boolean,\n  showInputControls: {\n    type: Boolean,\n    default: true,\n  },\n  size: useSizeProp,\n  inputSize: useSizeProp,\n  showStops: Boolean,\n  showTooltip: {\n    type: Boolean,\n    default: true,\n  },\n  formatTooltip: {\n    type: definePropType<(val: number) => number | string>(Function),\n    default: undefined,\n  },\n  disabled: Boolean,\n  range: Boolean,\n  vertical: Boolean,\n  height: String,\n  debounce: {\n    type: Number,\n    default: 300,\n  },\n  label: {\n    type: String,\n    default: undefined,\n  },\n  rangeStartLabel: {\n    type: String,\n    default: undefined,\n  },\n  rangeEndLabel: {\n    type: String,\n    default: undefined,\n  },\n  formatValueText: {\n    type: definePropType<(val: number) => string>(Function),\n    default: undefined,\n  },\n  tooltipClass: {\n    type: String,\n    default: undefined,\n  },\n  placement: {\n    type: String,\n    values: placements,\n    default: 'top',\n  },\n  marks: {\n    type: definePropType<SliderMarks>(Object),\n  },\n  validateEvent: {\n    type: Boolean,\n    default: true,\n  },\n  large: {\n    type: Boolean,\n    default: false,\n  },\n  small: {\n    type: Boolean,\n    default: false,\n  },\n} as const)\nexport type SliderProps = ExtractPropTypes<typeof sliderProps>\n\nconst isValidValue = (value: Arrayable<number>) =>\n  isNumber(value) || (isArray(value) && value.every(isNumber))\nexport const sliderEmits = {\n  [UPDATE_MODEL_EVENT]: isValidValue,\n  [INPUT_EVENT]: isValidValue,\n  [CHANGE_EVENT]: isValidValue,\n}\nexport type SliderEmits = typeof sliderEmits\n\nexport type SliderInstance = InstanceType<typeof Slider>\n"],"names":[],"mappings":"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"}