UNPKG

zent

Version:

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

119 lines (100 loc) 3.2 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.getValue = getValue; exports.getCurrentValue = getCurrentValue; exports.getDisplayName = getDisplayName; exports.silenceEvent = silenceEvent; exports.silenceEvents = silenceEvents; exports.prefixName = prefixName; exports.isFunctional = isFunctional; var _isPlainObject = require('lodash/isPlainObject'); var _isPlainObject2 = _interopRequireDefault(_isPlainObject); var _assign = require('lodash/assign'); var _assign2 = _interopRequireDefault(_assign); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } 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 getCurrentValue(changedValue, prevValue) { var currentValue = void 0; if (prevValue && (0, _isPlainObject2['default'])(prevValue)) { currentValue = (0, _assign2['default'])({}, prevValue, changedValue); } else { currentValue = changedValue; } return currentValue; } 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)); }; } function prefixName(zentForm, name) { var prefix = zentForm.prefix; var newName = void 0; if (!prefix) { newName = name; } else if (/^\[\d+\]/.test(name)) { newName = '' + prefix + name; } else { newName = prefix + '.' + name; } return newName; } function isFunctional(Component) { return typeof Component !== 'string' && typeof Component.prototype.render !== 'function'; }