ant-design-vue
Version:
An enterprise-class UI design language and Vue-based implementation
160 lines (133 loc) • 4.26 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray');
var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
exports.isEventFromHandle = isEventFromHandle;
exports.isValueOutOfRange = isValueOutOfRange;
exports.isNotTouchEvent = isNotTouchEvent;
exports.getClosestPoint = getClosestPoint;
exports.getPrecision = getPrecision;
exports.getMousePosition = getMousePosition;
exports.getTouchPosition = getTouchPosition;
exports.getHandleCenterPosition = getHandleCenterPosition;
exports.ensureValueInRange = ensureValueInRange;
exports.ensureValuePrecision = ensureValuePrecision;
exports.pauseEvent = pauseEvent;
exports.getKeyboardValueMutator = getKeyboardValueMutator;
exports.getComponentProps = getComponentProps;
var _KeyCode = require('../../_util/KeyCode');
var _KeyCode2 = _interopRequireDefault(_KeyCode);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function isEventFromHandle(e, handles) {
return Object.keys(handles).some(function (key) {
return e.target === handles[key].$el;
});
}
function isValueOutOfRange(value, _ref) {
var min = _ref.min,
max = _ref.max;
return value < min || value > max;
}
function isNotTouchEvent(e) {
return e.touches.length > 1 || e.type.toLowerCase() === 'touchend' && e.touches.length > 0;
}
function getClosestPoint(val, _ref2) {
var marks = _ref2.marks,
step = _ref2.step,
min = _ref2.min;
var points = Object.keys(marks).map(parseFloat);
if (step !== null) {
var closestStep = Math.round((val - min) / step) * step + min;
points.push(closestStep);
}
var diffs = points.map(function (point) {
return Math.abs(val - point);
});
return points[diffs.indexOf(Math.min.apply(Math, (0, _toConsumableArray3['default'])(diffs)))];
}
function getPrecision(step) {
var stepString = step.toString();
var precision = 0;
if (stepString.indexOf('.') >= 0) {
precision = stepString.length - stepString.indexOf('.') - 1;
}
return precision;
}
function getMousePosition(vertical, e) {
return vertical ? e.clientY : e.pageX;
}
function getTouchPosition(vertical, e) {
return vertical ? e.touches[0].clientY : e.touches[0].pageX;
}
function getHandleCenterPosition(vertical, handle) {
var coords = handle.getBoundingClientRect();
return vertical ? coords.top + coords.height * 0.5 : coords.left + coords.width * 0.5;
}
function ensureValueInRange(val, _ref3) {
var max = _ref3.max,
min = _ref3.min;
if (val <= min) {
return min;
}
if (val >= max) {
return max;
}
return val;
}
function ensureValuePrecision(val, props) {
var step = props.step;
var closestPoint = getClosestPoint(val, props);
return step === null ? closestPoint : parseFloat(closestPoint.toFixed(getPrecision(step)));
}
function pauseEvent(e) {
e.stopPropagation();
e.preventDefault();
}
function getKeyboardValueMutator(e) {
switch (e.keyCode) {
case _KeyCode2['default'].UP:
case _KeyCode2['default'].RIGHT:
return function (value, props) {
return value + props.step;
};
case _KeyCode2['default'].DOWN:
case _KeyCode2['default'].LEFT:
return function (value, props) {
return value - props.step;
};
case _KeyCode2['default'].END:
return function (value, props) {
return props.max;
};
case _KeyCode2['default'].HOME:
return function (value, props) {
return props.min;
};
case _KeyCode2['default'].PAGE_UP:
return function (value, props) {
return value + props.step * 2;
};
case _KeyCode2['default'].PAGE_DOWN:
return function (value, props) {
return value - props.step * 2;
};
default:
return undefined;
}
}
function getComponentProps(obj, prop) {
if (obj[prop]) {
return obj;
} else if (obj.$children.length) {
var len = obj.$children.length;
for (var i = 0; i < len; i++) {
if (obj.$children[i][prop]) {
return obj.$children[i];
} else if (obj.$children[i].$children.length) {
return getComponentProps(obj.$children[i], prop);
}
}
}
}
;