@gravity-ui/uikit
Version:
Gravity UI base styling and components
25 lines (24 loc) • 767 B
JavaScript
const DOMPropNames = new Set(['id']);
const labelablePropNames = new Set([
'aria-label',
'aria-labelledby',
'aria-describedby',
'aria-details',
]);
const propRe = /^(data-.*)$/;
export function filterDOMProps(props, options = {}) {
const { labelable, propNames } = options;
const filteredProps = {};
for (const prop in props) {
if (Object.prototype.hasOwnProperty.call(props, prop) &&
(DOMPropNames.has(prop) ||
(labelable && labelablePropNames.has(prop)) ||
propNames?.has(prop) ||
propRe.test(prop))) {
// @ts-expect-error
filteredProps[prop] = props[prop];
}
}
return filteredProps;
}
//# sourceMappingURL=filterDOMProps.js.map