Files
m.heisig 2d11c43579 Added minimal functionality for Robot teaching
- Added minimal HMI
- Added possibility to open and close all chamber doors
2026-01-17 09:20:39 +01:00

1 line
2.4 KiB
JavaScript

export class PermissionCheckbox extends HTMLElement{constructor(para){super(),this.__checkboxContainer=document.createElement("label"),this.__checkboxContainer.classList.add("checkbox-container"),this.__checkbox=document.createElement("input"),this.__checkbox.type="checkbox",this.__checkmark=document.createElement("span"),this.__checkmark.classList.add("checkmark"),this.__checkboxContainer.append(this.__checkbox,this.__checkmark),this.changeCallback=para.changeCallback,this.checked=para.initValue??!1,this.unset=para.unset??!1,this.colorCoded=para.colorCoded??!1,this.disabled=para.disabled??!1,this.readOnly=para.readOnly??!1,this.append(this.__checkboxContainer)}__loading=document.createElement("div");__checkboxContainer;__checkbox;__checkmark;connectedCallback(){this.changeCallback=this.__changeCallback}disconnectedCallback(){this.changeCallback=void 0}__changeCallback;set changeCallback(fn){let baseFn;this.__changeCallback&&this.__checkbox.removeEventListener("change",this.__changeCallback),fn&&(baseFn=()=>{this.loading(),this.unset=!1,fn(this)},this.__checkbox.addEventListener("change",baseFn)),this.__changeCallback=baseFn}get checked(){return this.__checkbox.checked}set checked(value){this.unset=!1,this.__checkbox.checked=value}loading(){this.__checkboxContainer.append(this.__loading),this.__loading.classList.add("loading")}__readOnly=!1;get readOnly(){return this.__readOnly}set readOnly(value){value?this.__checkboxContainer.setAttribute("readonly","true"):this.__checkboxContainer.removeAttribute("readonly"),this.__readOnly=value}__colorCoded=!1;get colorCoded(){return this.__colorCoded}set colorCoded(value){value?this.__checkboxContainer.setAttribute("color-coded","true"):this.__checkboxContainer.removeAttribute("color-coded"),this.__readOnly=value}__unset=!1;set unset(value){value?(this.__checkboxContainer.setAttribute("empty","true"),this.__checkboxContainer.setAttribute("disable","true")):(this.__checkboxContainer.removeAttribute("empty"),this.__checkboxContainer.removeAttribute("disable")),this.__unset=value}__disabled=!1;get disabled(){return this.__disabled}set disabled(value){value?this.__checkboxContainer.setAttribute("disabled","true"):this.__checkboxContainer.removeAttribute("disabled"),this.__disabled=value}get enabled(){return!this.__disabled}set enabled(value){this.disabled=!value}}customElements.define("tchmi-permission-checkbox",PermissionCheckbox);