/
vertical-renderer.ts
29 lines (22 loc) · 1.22 KB
/
vertical-renderer.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
///<reference path="../../../references.ts"/>
class VerticalRenderer implements JSONForms.IRenderer {
priority = 1;
constructor(private renderService: JSONForms.IRenderService) { }
render(element: ILayout, subSchema: SchemaElement, schemaPath: string, services: JSONForms.Services): JSONForms.IContainerRenderDescription {
var renderedElements = JSONForms.RenderDescriptionFactory.renderElements(
element.elements, this.renderService, services);
var template = `<div ng-show='element.elements.length'>
<jsonforms-layout class="jsf-vertical-layout">
<jsonforms-dynamic-widget ng-repeat="child in element.elements" element="child">
</jsonforms-dynamic-widget>
</jsonforms-layout>
</div>`;
return JSONForms.RenderDescriptionFactory.createContainerDescription(100, renderedElements, template, services, element);
}
isApplicable(uiElement: IUISchemaElement, jsonSchema: SchemaElement, schemaPath) :boolean {
return uiElement.type == "VerticalLayout";
}
}
angular.module('jsonforms.renderers.layouts.vertical').run(['RenderService', (RenderService) => {
RenderService.register(new VerticalRenderer(RenderService));
}]);