in packages/react-components/src/components/styles/v8StyleShim.ts [14:40]
export function createStyleFromV8Style(
v8Style: IRawStyle | ComponentSlotStyle | undefined
): React.CSSProperties | undefined {
const result: { [key: string]: React.CSSProperties | undefined } = {};
if (v8Style === undefined || v8Style === null || typeof v8Style === 'boolean' || typeof v8Style === 'string') {
return undefined;
} else if (typeof v8Style === 'object') {
// v8Style is a style object
for (const record in v8Style) {
if (typeof v8Style[record] === 'string') {
// v8Style[record] is just a simple style
const msSuffix = 'MS';
if (record.startsWith(msSuffix)) {
// React.CSSProperties uses camelCase for MS properties but v8Style uses PascalCase
const newRecord = record.substring(0, msSuffix.length).toLowerCase + record.substring(msSuffix.length);
result[newRecord] = v8Style[record];
} else {
result[record] = v8Style[record];
}
} else {
result[record] = createStyleFromV8Style(v8Style[record]);
}
}
}
return result;
}