UNPKG

zent

Version:

一套前端设计语言和基于React的实现

76 lines (67 loc) 2.03 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.getValue = getValue; exports.getDisplayName = getDisplayName; exports.silenceEvent = silenceEvent; exports.silenceEvents = silenceEvents; var getSelectedValues = function getSelectedValues(options) { var result = []; if (options) { for (var i = 0; i < options.length; i++) { var option = options[i]; if (option.selected) { result.push(option.value); } } } return result; }; var isEvent = function isEvent(candidate) { return !!(candidate && candidate.stopPropagation && candidate.preventDefault); }; function getValue(event) { // 简单判断是否是一个原生事件对象 if (isEvent(event)) { var _event$target = event.target, type = _event$target.type, value = _event$target.value, checked = _event$target.checked, files = _event$target.files, dataTransfer = event.dataTransfer; if (type === 'checkbox') { return checked; } if (type === 'file') { return files || dataTransfer && dataTransfer.files; } if (type === 'select-multiple') { return getSelectedValues(event.target.options); } if (value !== '' && (type === 'number' || type === 'range')) { return parseFloat(value); } return value; } // 自定义组件需要直接抛出value或者把value放在一个对象中 return event && event.value !== undefined ? event.value : event; } function getDisplayName(Component) { return Component.displayName || Component.name || 'Component'; } function silenceEvent(event) { var is = isEvent(event); if (is) { event.preventDefault(); } return is; } function silenceEvents(fn) { return function (event) { for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; } silenceEvent(event) ? fn.apply(undefined, args) : fn.apply(undefined, [event].concat(args)); }; }