UNPKG

tdesign-vue-next

Version:
124 lines (116 loc) 4.65 kB
/** * tdesign v1.11.5 * (c) 2025 tdesign * @license MIT */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray'); var Vue = require('vue'); var log = require('../../_chunks/dep-cef23b69.js'); var slider_utils_index = require('../utils/index.js'); var slider_sliderMark = require('../slider-mark.js'); var isArray = require('../../_chunks/dep-5ad8a2ab.js'); var cloneDeep = require('../../_chunks/dep-61a7e281.js'); require('../../_chunks/dep-b8b9c2a3.js'); require('../../_chunks/dep-bbe343d7.js'); require('@babel/runtime/helpers/typeof'); require('../../_chunks/dep-0c2ad01b.js'); require('../../hooks/useConfig.js'); require('../../config-provider/hooks/useConfig.js'); require('../../_chunks/dep-b4c4a54b.js'); require('../../_chunks/dep-f8ff548f.js'); require('../../_chunks/dep-30fb1b25.js'); require('dayjs'); require('../../_chunks/dep-b6c192db.js'); require('../../_chunks/dep-ba2090c8.js'); require('../../_chunks/dep-b27d3215.js'); require('../../_chunks/dep-ed572eb3.js'); require('../../_chunks/dep-047617bf.js'); require('../../_chunks/dep-0a510359.js'); require('../../_chunks/dep-50a41d31.js'); require('../../_chunks/dep-be3c3d53.js'); require('../../_chunks/dep-8b98fa07.js'); require('../../_chunks/dep-b0b4fff1.js'); require('../../_chunks/dep-7a21da5b.js'); require('../../_chunks/dep-49fa220e.js'); require('../../_chunks/dep-02ebb419.js'); require('../../_chunks/dep-feae46a3.js'); require('../../_chunks/dep-abf21389.js'); require('../../_chunks/dep-7f32423d.js'); require('../../_chunks/dep-7c9e3d93.js'); require('../../_chunks/dep-ecbaedee.js'); require('../../_chunks/dep-9de7d250.js'); require('../../_chunks/dep-6f8a66a3.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray); var useSliderMark = function useSliderMark(config) { var name = config.value.prefixName; var markList = Vue.computed(function () { var markProps = config.value; if (!markProps.marks) { return []; } var legalMarks = []; if (isArray.isArray(markProps.marks)) { var marksList = cloneDeep.cloneDeep(markProps.marks).sort(function (a, b) { return a - b; }); var maxLimit = Math.max.apply(Math, _toConsumableArray__default["default"](marksList).concat([markProps.max])); var minLimit = Math.min.apply(Math, _toConsumableArray__default["default"](marksList).concat([markProps.min])); if (minLimit < markProps.min) { log.log.errorOnce("TSlider", "marks min value should >= props min"); } if (maxLimit > markProps.max) { log.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 Vue.createVNode("div", null, [Vue.createVNode("div", { "class": "".concat(name, "__stops") }, [markList.value.map(function (item, index) { if (item.position === 0 || item.position === 100) return null; return Vue.createVNode("div", { "class": "".concat(name, "__stop ").concat(name, "__mark-stop"), "style": slider_utils_index.getStopStyle(item.position, config.value.vertical), "key": index }, null); })]), Vue.createVNode("div", { "class": "".concat(name, "__mark") }, [markList.value.map(function (item, key) { return Vue.createVNode(slider_sliderMark["default"], { "mark": item.mark, "point": item.point, "key": key, "style": slider_utils_index.getStopStyle(item.position, config.value.vertical), "onClickMarkPoint": onChangeFn }, null); })])]); }; return renderMask; }; exports.useSliderMark = useSliderMark; //# sourceMappingURL=useSliderMark.js.map