in packages/codegen-ui-react/lib/react-component-render-helper.ts [227:257]
export function buildConcatExpression(prop: ConcatenatedStudioComponentProperty): Expression {
const expressions: Expression[] = [];
prop.concat.forEach((propItem) => {
if (isFixedPropertyWithValue(propItem)) {
expressions.push(buildFixedJsxExpression(propItem));
} else if (isBoundProperty(propItem)) {
const expr =
propItem.defaultValue === undefined
? buildBindingExpression(propItem)
: buildBindingWithDefaultExpression(propItem, propItem.defaultValue);
expressions.push(expr);
} else if (isCollectionItemBoundProperty(propItem)) {
const expr =
propItem.defaultValue === undefined
? buildCollectionBindingExpression(propItem)
: buildCollectionBindingWithDefaultExpression(propItem, propItem.defaultValue);
expressions.push(expr);
} else if (isConcatenatedProperty(propItem)) {
expressions.push(buildConcatExpression(propItem));
}
});
const templateSpans: TemplateSpan[] = [];
expressions.forEach((expr, index) => {
const span =
index === expressions.length - 1
? factory.createTemplateSpan(expr, factory.createTemplateTail('', ''))
: factory.createTemplateSpan(expr, factory.createTemplateMiddle('', ''));
templateSpans.push(span);
});
return factory.createTemplateExpression(factory.createTemplateHead('', ''), templateSpans);
}