UNPKG

@retriever-ui/system

Version:
42 lines (41 loc) 1.84 kB
"use strict"; /** * Copied from isValidProps '@emotion/is-prop-valid' * Thank you very much for this lines. */ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var memoize_1 = __importDefault(require("@emotion/memoize")); var props_1 = require("./props"); var tags_1 = require("./tags"); var htmlPropsRegex = new RegExp("^((" + Object.keys(props_1.htmlValidProps).join('|') + ")|data-.*|on.*|aria-.*)$"); var svgPropsRegex = new RegExp("^((" + Object.keys(props_1.svgValidProps).join('|') + ")|data-.*|on.*|aria-.*)$"); var svgTagsRegex = new RegExp("^((" + tags_1.svgTags.join('|') + "))$"); var isSvgTag = (0, memoize_1.default)(function (prop) { return svgTagsRegex.test(prop); }); var isSvgPropsValid = (0, memoize_1.default)(function (prop) { return svgPropsRegex.test(prop); }); var isHtmlPropValid = (0, memoize_1.default)(function (prop) { return htmlPropsRegex.test(prop); }); var getDomProps = function (element, props) { var stylesProps = {}; var domProps = {}; var keyProps = Object.keys(props); var getValidProps = function (isValid, prop) { if (!isValid) return (stylesProps[prop] = props[prop]); return (domProps[prop] = props[prop]); }; if (isSvgTag(element)) { keyProps.forEach(function (prop) { var isValid = isSvgPropsValid(prop); return getValidProps(isValid, prop); }); return { stylesProps: stylesProps, domProps: domProps }; } keyProps.forEach(function (prop) { var isValid = isHtmlPropValid(prop); return getValidProps(isValid, prop); }); return { stylesProps: stylesProps, domProps: domProps }; }; exports.default = getDomProps;