UNPKG

jmn-basic-elements

Version:

A collection of HMI elements representing P&ID entities made with JS-HMI.

122 lines (113 loc) 3.9 kB
import {hmiElement} from 'jahmin' import {html, LitElement,css} from 'jahmin' import './labelledIcon' export class pvrIcon extends LitElement { render() { return html` <style> :host{ display:block; } </style> <svg viewBox="251.36 1.721 53.863 51.142" xmlns="http://www.w3.org/2000/svg"> <g> <g> <polygon points="278.2,37.2 253,22.6 253,51.7" style="stroke-miterlimit: 10;"></polygon> <polygon points="278.8,37.2 304,51.7 304,22.6" style="stroke-miterlimit: 10;"></polygon> </g> <circle cx="278.8" cy="37.2" r="9.6" style="stroke-miterlimit: 10;"></circle> <rect x="266.8" y="3.2" class="st0" width="23.9" height="13.9" style="stroke-miterlimit: 10;"></rect> <rect x="271.8" y="3.2" class="st3" width="13.9" height="13.9" style="fill:none; stroke-miterlimit: 10;"></rect> <line x1="278.8" y1="27.6" x2="278.8" y2="10.1" style="stroke-miterlimit: 10;"></line> <line x1="271.8" y1="10.1" x2="285.7" y2="10.1" style="stroke-miterlimit: 10;"></line> </g> </svg> `; } } customElements.define("pvr-icon",pvrIcon); export class pvdIcon extends LitElement { render() { return html` <style> :host{ display:block; } </style> <svg viewBox="140.37 3.264 54.407 50.055" xmlns="http://www.w3.org/2000/svg" > <g> <g> <polygon points="167.1,37.2 141.9,22.6 141.9,51.7" style="stroke-miterlimit: 10;"></polygon> <polygon points="167.7,37.2 192.9,51.7 192.9,22.6" style="stroke-miterlimit: 10;"></polygon> </g> <circle cx="167.7" cy="37.2" r="9.6" style="stroke-miterlimit: 10;"></circle> <line x1="167.7" y1="27.6" x2="167.7" y2="12.3" style="stroke-miterlimit: 10;"></line> <path d="M175.4,12.3c0-4.2-3.4-7.7-7.7-7.7S160,8,160,12.3H175.4z" style="stroke-miterlimit: 10;"></path> </g> </svg> `; } } customElements.define("pvd-icon",pvdIcon); export class ValvePR extends hmiElement { orientation = "N"; constructor(){ super(); this.onclick = this.toggleme.bind(this) ; } static get properties() { let x = super.properties; x.orientation = {type:String}; return x; } render() { return html ` <labeled-icon name="${this.name}" engine="${this.engine}" system="${this.system}" orientation="${this.orientation}"> <slot slot="label">${this.name}</slot> <pvr-icon></pvr-icon> </labeled-icon> `; } toggleme(ev:Event){ let toggle = this.value ? false : true; this.Write(toggle); } } customElements.define("valve-pr", ValvePR); export class ValvePD extends hmiElement { orientation = "N"; labeltop = "0"; labelleft = "0"; constructor(){ super(); this.onclick = this.toggleme.bind(this) ; } static get properties() { let x = super.properties; x.orientation = {type:String}; x.labeltop = {type:String}; x.labelleft = {type:String}; return x; } render() { return html ` <labeled-icon name="${this.name}" engine="${this.engine}" system="${this.system}" orientation="${this.orientation}" top="${this.labeltop}" left="${this.labelleft}"> <slot slot="label">${this.name}</slot> <pvd-icon></pvd-icon> </labeled-icon> `; } toggleme(ev:Event){ let toggle = this.value ? false : true; this.Write(toggle); } } customElements.define("valve-pd", ValvePD);