| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ifHorizontal = exports.getSafetySelections = exports.ifH = exports.horizontalHandle = exports.verticalHandle = exports.hiddenHandle = exports.getStepValueByValue = void 0;
- var tslib_1 = require("tslib");
- var marker_1 = require("../marker");
- var util_1 = require("../../util");
- /**
- * 将值转换至步长tick上
- */
- function getStepValueByValue(value, step, min) {
- var count = Math.round((value - min) / step);
- return min + count * step;
- }
- exports.getStepValueByValue = getStepValueByValue;
- function hiddenHandle(x, y, r) {
- // 长宽比
- var ratio = 1.4;
- var diffY = ratio * r;
- return [['M', x - r, y - diffY], ['L', x + r, y - diffY], ['L', x + r, y + diffY], ['L', x - r, y + diffY], ['Z']];
- }
- exports.hiddenHandle = hiddenHandle;
- // 控制手柄
- var HANDLE_HEIGHT_RATIO = 1.4;
- var HANDLE_TRIANGLE_RATIO = 0.4;
- // 纵向手柄
- function verticalHandle(x, y, r) {
- var width = r;
- var height = width * HANDLE_HEIGHT_RATIO;
- var halfWidth = width / 2;
- var oneSixthWidth = width / 6;
- var triangleX = x + height * HANDLE_TRIANGLE_RATIO;
- return [
- ['M', x, y],
- ['L', triangleX, y + halfWidth],
- ['L', x + height, y + halfWidth],
- ['L', x + height, y - halfWidth],
- ['L', triangleX, y - halfWidth],
- ['Z'],
- // 绘制两条横线
- ['M', triangleX, y + oneSixthWidth],
- ['L', x + height - 2, y + oneSixthWidth],
- ['M', triangleX, y - oneSixthWidth],
- ['L', x + height - 2, y - oneSixthWidth],
- ];
- }
- exports.verticalHandle = verticalHandle;
- // 横向手柄
- function horizontalHandle(x, y, r) {
- var width = r;
- var height = width * HANDLE_HEIGHT_RATIO;
- var halfWidth = width / 2;
- var oneSixthWidth = width / 6;
- var triangleY = y + height * HANDLE_TRIANGLE_RATIO;
- return [
- ['M', x, y],
- ['L', x - halfWidth, triangleY],
- ['L', x - halfWidth, y + height],
- ['L', x + halfWidth, y + height],
- ['L', x + halfWidth, triangleY],
- ['Z'],
- // 绘制两条竖线
- ['M', x - oneSixthWidth, triangleY],
- ['L', x - oneSixthWidth, y + height - 2],
- ['M', x + oneSixthWidth, triangleY],
- ['L', x + oneSixthWidth, y + height - 2],
- ];
- }
- exports.horizontalHandle = horizontalHandle;
- marker_1.Marker.registerSymbol('hiddenHandle', hiddenHandle);
- marker_1.Marker.registerSymbol('verticalHandle', verticalHandle);
- marker_1.Marker.registerSymbol('horizontalHandle', horizontalHandle);
- var ifH = function (orientation, a, b) {
- if (orientation === void 0) { orientation = 'horizontal'; }
- return (orientation === 'horizontal' ? a : b);
- };
- exports.ifH = ifH;
- // 具体逻辑还没看,@chushen
- function getSafetySelections(domain, newSelection, oldSelection, precision) {
- var _a;
- if (precision === void 0) { precision = 4; }
- var _b = tslib_1.__read(domain, 2), min = _b[0], max = _b[1];
- var _c = tslib_1.__read(newSelection, 2), start = _c[0], end = _c[1];
- var _d = tslib_1.__read(oldSelection, 2), prevStart = _d[0], prevEnd = _d[1];
- var _e = tslib_1.__read([start, end], 2), startVal = _e[0], endVal = _e[1];
- var range = endVal - startVal;
- // 交换startVal endVal
- if (startVal > endVal) {
- _a = tslib_1.__read([endVal, startVal], 2), startVal = _a[0], endVal = _a[1];
- }
- // 超出范围就全选
- if (range > max - min) {
- return [min, max];
- }
- if (startVal < min) {
- if (prevStart === min && prevEnd === endVal) {
- return [min, endVal];
- }
- return [min, range + min];
- }
- if (endVal > max) {
- if (prevEnd === max && prevStart === startVal) {
- return [startVal, max];
- }
- return [max - range, max];
- }
- // 保留小数
- return [(0, util_1.toPrecision)(startVal, precision), (0, util_1.toPrecision)(endVal, precision)];
- }
- exports.getSafetySelections = getSafetySelections;
- function ifHorizontal(orientation, a, b) {
- if (orientation === void 0) { orientation = 'horizontal'; }
- return orientation === 'horizontal' ? a : b;
- }
- exports.ifHorizontal = ifHorizontal;
- //# sourceMappingURL=utils.js.map
|