@ray-js/components
Version:
Ray basic components
64 lines (63 loc) • 2.3 kB
JavaScript
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
const _excluded = ["className", "hoverClassName", "hoverStyle", "refresherDefaultStyle", "overlayStyle", "customStyle", "indicatorStyle", "maskStyle", "placeholderStyle", "borderStyle", "style", "children"];
import "core-js/modules/esnext.iterator.constructor.js";
import "core-js/modules/esnext.iterator.map.js";
import { inlineStyle } from '@ray-js/framework-shared';
import { paramCase } from 'param-case';
import s2o from 'style-to-object';
const transformStyle = originStyle => {
let tempStyle;
if (typeof originStyle === 'string') {
tempStyle = s2o(originStyle);
} else {
tempStyle = originStyle;
}
return Object.entries(inlineStyle(tempStyle)).map(_ref => {
let [k, v] = _ref;
return `${k}:${v}`;
}).join(';');
};
/**
* 处理 web 端 props
*/
const handleProps = props => {
const {
className,
hoverClassName,
hoverStyle,
refresherDefaultStyle,
overlayStyle,
customStyle,
indicatorStyle,
maskStyle,
placeholderStyle,
borderStyle,
style,
children
} = props,
tempProps = _objectWithoutProperties(props, _excluded);
for (const key in tempProps) {
if (tempProps[key] === false) {
delete tempProps[key];
} else if (typeof tempProps[key] === 'object') {
tempProps[key] = JSON.stringify(tempProps[key]);
}
tempProps[paramCase(key)] = tempProps[key];
}
return _objectSpread({
class: className,
style: style && inlineStyle(style),
'hover-class': hoverClassName,
'hover-style': hoverStyle && transformStyle(hoverStyle),
'refresher-default-style': refresherDefaultStyle && transformStyle(refresherDefaultStyle),
'overlay-style': overlayStyle && transformStyle(overlayStyle),
'custom-style': customStyle && transformStyle(customStyle),
'indicator-style': indicatorStyle && transformStyle(indicatorStyle),
'mask-style': maskStyle && transformStyle(maskStyle),
'placeholder-style': placeholderStyle && transformStyle(placeholderStyle),
'border-style': borderStyle && transformStyle(borderStyle),
children
}, tempProps);
};
export default handleProps;