UNPKG

@ray-js/components

Version:

Ray basic components

64 lines (63 loc) 2.3 kB
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;