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. Selector de dimensões

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.