Почему бы вам не попробовать библиотеку ngx-svg . Это позволяет легко создавать SVG-контейнеры и различные типы элементов SVG. Вы можете проверить svg-rect
, который содержит все необходимые элементы, которые вы перечислили.
Единственное изменение, которое вам нужно будет сделать, - это заменить element.class на массив element.classes (преобразовать строку в массив строк, что позволит добавить несколько элементов к элементу).
Пример кода, который вы можете использовать в HTML с этой библиотекой, который будет создавать контейнер и автоматически назначать элементы -
<svg-container containerId="rectangulars">
<svg-rect *ngFor="let element of spaceData" [height]="element.height" [width]="element.width" [classes]="element.classes" [x]="element.x" [y]="element.y"></svg-rect>
</svg-container>
У него есть и другие элементы, если вам нужно что-то еще, например, svg-circle
, svg-polygon
, svg-line
, e.t.c.