{"version":3,"sources":["ToggleSwitch.tsx"],"sourcesContent":["import { template } from \"uix/html/template.ts\";\nimport { Component } from \"uix/components/Component.ts\";\n\nexport type ToggleEvent = CustomEventInit<{checked: boolean, originalEvent: Event}>;\n\n@template(function(this: ToggleSwitch) {\n\treturn <>\n\t\t{this.options?.label ? <label class=\"label\" for=\"toggle-switch\">\n\t\t\t{this.options?.label}\n\t\t</label> : undefined}\n\t\t<label class=\"toggle-switch\" for=\"toggle-switch\" style={`--size: ${this.options?.size ?? 50}px`}>\n\t\t\t<input\n\t\t\t\tid=\"toggle-switch\"\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\tchecked={this.options?.checked ?? false}/>\n\t\t\t<span class=\"slider\"/>\n\t\t</label>\n\t</>\n})\n@standalone({inheritedFields: [\"options\"]})\nexport class ToggleSwitch extends Component<{\n\tchecked?: boolean,\n\tsize?: number,\n\tlabel?: string | HTMLElement,\n\tontoggle?: (value: boolean) => void\n}> {\n\t@standalone @id(\"toggle-switch\") switch!: HTMLInputElement;\n\t\n\tpublic setChecked(val: boolean) {\n\t\tif (this.switch)\n\t\t\tthis.switch.checked = val;\n\t}\n\n\tpublic getChecked(): boolean {\n\t\treturn this.switch?.checked;\n\t}\n\n\tpublic onToggle(callback: (value: boolean)=>void) {\n\t\tthis.addEventListener(\"toggle\", (e: ToggleEvent) => callback(this.getChecked()));\n\t}\n\n\tprotected override onDisplay(): void|Promise<void> {\n\t\tif (this.options.ontoggle)\n\t\t\tthis.onToggle((e) => this.options.ontoggle!(e));\n\t\tthis.switch.addEventListener(\"input\", (e) => {\n\t\t\te.stopImmediatePropagation();\n\t\t\tthis.dispatchEvent(new CustomEvent(\"toggle\", {\n\t\t\t\tdetail: {\n\t\t\t\t\tchecked: this.getChecked(),\n\t\t\t\t\toriginalEvent: e\n\t\t\t\t}\n\t\t\t}));\n\t\t});\n\t}\n\n\t\n}\n\nexport default ToggleSwitch;"],"names":["Component","switch","template","options","label","class","for","undefined","style","size","input","id","type","checked","span","standalone","inheritedFields","ToggleSwitch","setChecked","val","getChecked","onToggle","callback","addEventListener","e","onDisplay","ontoggle","stopImmediatePropagation","dispatchEvent","CustomEvent","detail","originalEvent"],"mappings":"6BAoBkCA,mBAMjC,AAAiCC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA1BlC,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASF,SAAS,QAAQ,8BAA8B;OAIvDE,SAAS;IACT,qBAAO;;YACL,IAAI,CAACC,OAAO,EAAEC,sBAAQ,KAACA;gBAAMC,OAAM;gBAAQC,KAAI;0BAC9C,IAAI,CAACH,OAAO,EAAEC;iBACLG,KAAAA;0BACX,MAACH;gBAAMC,OAAM;gBAAgBC,KAAI;gBAAgBE,OAAO,CAAC,QAAQ,EAAE,IAAI,CAACL,OAAO,EAAEM,QAAQ,GAAG,EAAE,CAAC;;kCAC9F,KAACC;wBACAC,IAAG;wBACHC,MAAK;wBACLC,SAAS,IAAI,CAACV,OAAO,EAAEU,WAAW,CAAA;;kCACnC,KAACC;wBAAKT,OAAM;;;;;;AAGf,YACCU,WAAW;IAACC,iBAAiB;QAAC;KAAU;AAAA,YAO3BL,GAAG;AANV,IAAA,AAAMM,eAAN,MAAMA,sBAAqBjB,aAAAA;;eAMAC;;;oBAAhCc;;;;gBAAgCd;;;;;WANAD;;IAMAC,SAAAA,mBAA0B;IAEpDiB,WAAWC,GAAY,EAAE;QAC3B,IAAI,CAAClB,MAAM,IACd,CAAA,IAAI,CAACA,MAAM,CAACY,OAAO,GAAGM,GAAE;IAC1B;IAEOC,aAAsB;QAC5B,OAAO,IAAI,CAACnB,MAAM,EAAEY;IACrB;IAEOQ,SAASC,QAAgC,EAAE;QACjD,IAAI,CAACC,gBAAgB,CAAC,UAAU,CAACC,IAAmBF,SAAS,IAAI,CAACF,UAAU;IAC7E;IAEmBK,YAAgC;QAC9C,IAAI,CAACtB,OAAO,CAACuB,QAAQ,IACxB,IAAI,CAACL,QAAQ,CAAC,CAACG,IAAM,IAAI,CAACrB,OAAO,CAACuB,QAAQ,CAAEF,KAC7C,IAAI,CAACvB,MAAM,CAACsB,gBAAgB,CAAC,SAAS,CAACC;YACtCA,EAAEG,wBAAwB,IAC1B,IAAI,CAACC,aAAa,CAAC,IAAIC,YAAY,UAAU;gBAC5CC,QAAQ;oBACPjB,SAAS,IAAI,CAACO,UAAU;oBACxBW,eAAeP;gBAChB;YACD;QACD;IACD;;;;AAGD;AAEA,eAAeP,cAAa;SAtC5B,AAAaA,iBAAAA,YAoCZ","sourceRoot":"/core-lib/uix-components-new/Defaults/","file":"ToggleSwitch.tsx"}