@fluentui/react-northstar
Version:
A themable React component library.
49 lines (48 loc) • 2.12 kB
JavaScript
import _includes from "lodash/includes";
import _forEach from "lodash/forEach";
export var htmlImageProps = ['alt', 'height', 'src', 'srcSet', 'width'];
export var htmlInputAttrs = [
// REACT
'selected', 'defaultValue', 'defaultChecked',
// LIMITED HTML PROPS
'accept', 'autoCapitalize', 'autoComplete', 'autoCorrect', 'autoFocus', 'checked', 'disabled', 'form', 'id', 'list', 'max', 'maxLength', 'min', 'minLength', 'multiple', 'name', 'pattern', 'placeholder', 'readOnly', 'required', 'step', 'type', 'value'];
export var htmlInputEvents = [
// EVENTS
// keyboard
'onKeyDown', 'onKeyPress', 'onKeyUp',
// focus
'onFocus', 'onBlur',
// form
'onChange', 'onInput',
// mouse
'onClick', 'onContextMenu', 'onDrag', 'onDragEnd', 'onDragEnter', 'onDragExit', 'onDragLeave', 'onDragOver', 'onDragStart', 'onDrop', 'onMouseDown', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseOut', 'onMouseOver', 'onMouseUp',
// selection
'onSelect',
// touch
'onTouchCancel', 'onTouchEnd', 'onTouchMove', 'onTouchStart'];
export var htmlInputProps = [].concat(htmlInputAttrs, htmlInputEvents);
/**
* Returns props of html input element and restProps.
* @param props - A ReactElement props object
* @param options - Options for
* @returns - 2-element array. First element is props of HTML input element and second element is the other props.
*/
export var partitionHTMLProps = function partitionHTMLProps(props, options) {
if (options === void 0) {
options = {};
}
var _options = options,
_options$htmlProps = _options.htmlProps,
htmlProps = _options$htmlProps === void 0 ? htmlInputProps : _options$htmlProps,
_options$includeAria = _options.includeAria,
includeAria = _options$includeAria === void 0 ? true : _options$includeAria;
var inputProps = {};
var restProps = {};
_forEach(props, function (val, prop) {
var possibleAria = includeAria && (/^aria-.*$/.test(prop) || prop === 'role');
var target = _includes(htmlProps, prop) || possibleAria ? inputProps : restProps;
target[prop] = val;
});
return [inputProps, restProps];
};
//# sourceMappingURL=htmlPropsUtils.js.map