UNPKG

xdesign-vue-next

Version:

XDesign Component for vue-next

123 lines (119 loc) 4.54 kB
/** * xdesign v1.0.6 * (c) 2023 xdesign * @license MIT */ import { _ as _toConsumableArray } from '../../_chunks/dep-5bec687c.mjs'; import { computed, createVNode } from 'vue'; import { c as cloneDeep_1 } from '../../_chunks/dep-91ac8f71.mjs'; import log from '../../_common/js/log/log.mjs'; import { getStopStyle } from '../util/common.mjs'; import TSliderMark from '../slider-mark.mjs'; import { i as isArray_1 } from '../../_chunks/dep-a95026f2.mjs'; import '../../_chunks/dep-89b966f4.mjs'; import '../../_chunks/dep-10a947a6.mjs'; import '../../_chunks/dep-c4737535.mjs'; import '../../_chunks/dep-81c83986.mjs'; import '../../_chunks/dep-6aa0223b.mjs'; import '../../_chunks/dep-db381ece.mjs'; import '../../_chunks/dep-1cc1c24f.mjs'; import '../../_chunks/dep-b75d8d74.mjs'; import '../../_chunks/dep-82805301.mjs'; import '../../_chunks/dep-6ad18815.mjs'; import '../../_chunks/dep-5755c21c.mjs'; import '../../_chunks/dep-7f239c43.mjs'; import '../../_chunks/dep-6f04869e.mjs'; import '../../_chunks/dep-d32fbbb3.mjs'; import '../../_chunks/dep-dafada74.mjs'; import '../../_chunks/dep-addc2a84.mjs'; import '../../_chunks/dep-068e912d.mjs'; import '../../_chunks/dep-6e7b37b8.mjs'; import '../../_chunks/dep-e1ab85c5.mjs'; import '../../_chunks/dep-5f0e0453.mjs'; import '../../_chunks/dep-71f84cf2.mjs'; import '../../_chunks/dep-0e832fc7.mjs'; import '../../_chunks/dep-69963a8c.mjs'; import '../../_chunks/dep-8d1c9a23.mjs'; import '../../_chunks/dep-03412fab.mjs'; import '../../_chunks/dep-205ff58d.mjs'; import '../../_chunks/dep-11fa9c2c.mjs'; import '../../hooks/useConfig.mjs'; import '../../config-provider/useConfig.mjs'; import '../../_chunks/dep-b09f48fa.mjs'; import '../../_chunks/dep-26bf361a.mjs'; import '../../_chunks/dep-3ec3335a.mjs'; import '../../_chunks/dep-ed4e7c50.mjs'; import '../../_chunks/dep-a666b9ad.mjs'; import '../../_common/js/global-config/default-config.mjs'; import '../../_common/js/global-config/locale/en_US.mjs'; import '../../config-provider/type.mjs'; var useSliderMark = function useSliderMark(config) { var name = config.value.prefixName; var markList = computed(function () { var markProps = config.value; if (!markProps.marks) { return []; } var legalMarks = []; if (isArray_1(markProps.marks)) { var marksList = cloneDeep_1(markProps.marks).sort(function (a, b) { return a - b; }); var maxLimit = Math.max.apply(Math, _toConsumableArray(marksList).concat([markProps.max])); var minLimit = Math.min.apply(Math, _toConsumableArray(marksList).concat([markProps.min])); if (minLimit < markProps.min) { log.errorOnce("TSlider", "marks min value should >= props min"); } if (maxLimit > markProps.max) { log.errorOnce("TSlider", "marks max value should <= props max"); } marksList.forEach(function (item) { legalMarks.push({ point: item, position: (item - minLimit) / (maxLimit - minLimit) * 100, mark: item }); }); } else { Object.keys(markProps.marks).map(parseFloat).sort(function (a, b) { return a - b; }).filter(function (point) { return point <= markProps.max && point >= markProps.min; }).forEach(function (point) { var item = { point: point, position: (point - markProps.min) * 100 / (markProps.max - markProps.min), mark: markProps.marks[point] }; legalMarks.push(item); }); } return legalMarks; }); var renderMask = function renderMask(onChangeFn) { if (!markList.value.length) return null; return createVNode("div", null, [createVNode("div", { "class": "".concat(name, "__stops") }, [markList.value.map(function (item, index) { if (item.position === 0 || item.position === 100) return null; return createVNode("div", { "class": "".concat(name, "__stop ").concat(name, "__mark-stop"), "style": getStopStyle(item.position, config.value.vertical), "key": index }, null); })]), createVNode("div", { "class": "".concat(name, "__mark") }, [markList.value.map(function (item, key) { return createVNode(TSliderMark, { "mark": item.mark, "point": item.point, "key": key, "style": getStopStyle(item.position, config.value.vertical), "onClickMarkPoint": onChangeFn }, null); })])]); }; return renderMask; }; export { useSliderMark }; //# sourceMappingURL=useSliderMark.mjs.map