Web Components
Este documento descreve todo o funcionamento dos web componments na plataforma Elevation 4.
Conceitos
Os Web Components pretendem dar resposta a componentes não desenvolvidos como padrões pela plataforma, desta forma, os produtos conseguem criar componentes cliente e utilizar os mesmos no produto.
Modelação
Quando se pretende utilizar um Web Component é necessário a sua modelação no modelo de apresentação. Este pode ser modelado no master como nos detalhes.

O nome do Web Component deve estar na lista de Web Components disponíveis para o produto.
A configuração deve cumprir o contrato que o web component que se escolher disponibiliza.
Web Components disponíveis no produto
É da responsabilidade do produto dizer que web components estão disponíveis, para isso é necessário adicionar a lista no produto.
No ficheiro webcomponents.ts
import { DimensionsSelectorComponent } from '@primavera/ngcore';
export const supportedWebComponents: any = {
dimensionComponent: DimensionsSelectorComponent
}
Neste exemplo suportamos apenas o DimensionsSelectorComponent e na modelação no nome do web component devemos por 'dimensionComponent' e a configuração necessária para o funcionamento do DimensionsSelectorComponent.
Implementar um Web Component
É necessário estender a class PriWebComponentField, esta class é a responsável para dar suporte aos eventos necessários.
Os eventos acessíveis são:
-
onViewLoaded: EventEmitter
Quando a view é carregada é notificado o componente. -
onModelLoaded: EventEmitter
Quando o model é carregado é notificado o componente. -
onModelChanged: EventEmitter
Quando o model é alterado é notificado o componente. -
onValueChanged: EventEmitter
Quando se pretende alterar o valor de um atributo da resource. Neste caso a plataforma está a escutar este evento e é feito o put para um atributo da resource.