0
Fork 0
mirror of https://github.com/penpot/penpot-exporter-figma-plugin.git synced 2024-12-22 21:53:27 -05:00
penpot-exporter-figma-plugin/plugin-src/transformers/partials/transformText.ts
Jordi Sala Morales 5d7263bdbf
Allow rotation for Ellipses and Rectangles (#122)
* Allow rotation for Ellipses, Rectangles and Texts

* undo rotations for texts

* Translate rotations for ellipses and rectangles
2024-05-29 10:30:56 +02:00

45 lines
1.3 KiB
TypeScript

import { transformFills } from '@plugin/transformers/partials';
import { transformTextStyle, translateStyleTextSegments } from '@plugin/translators/text';
import { translateGrowType, translateVerticalAlign } from '@plugin/translators/text/properties';
import { TextAttributes, TextShape } from '@ui/lib/types/shapes/textShape';
export const transformText = async (
node: TextNode
): Promise<TextAttributes & Pick<TextShape, 'growType'>> => {
const styledTextSegments = node.getStyledTextSegments([
'fontName',
'fontSize',
'fontWeight',
'lineHeight',
'letterSpacing',
'textCase',
'textDecoration',
'indentation',
'listOptions',
'fills'
]);
return {
content: {
type: 'root',
verticalAlign: translateVerticalAlign(node.textAlignVertical),
children: styledTextSegments.length
? [
{
type: 'paragraph-set',
children: [
{
type: 'paragraph',
children: await translateStyleTextSegments(node, styledTextSegments),
...transformTextStyle(node, styledTextSegments[0]),
...(await transformFills(node))
}
]
}
]
: undefined
},
growType: translateGrowType(node)
};
};