@nent/core
Version:
4 lines • 1.58 kB
JavaScript
/*!
* NENT 2022
*/
import{r as t,h as s,H as i}from"./index-916ca544.js";import{g as a}from"./factory-acbf0d3d.js";import{s as e,o}from"./state-627a24e0.js";import{a as r,o as n}from"./state-27a8a5bc.js";import"./index-f7016b94.js";import"./interfaces-8c5cd1b8.js";import"./index-4bfabbbd.js";import"./values-ddfac998.js";import"./promises-584c4ece.js";import"./logging-5a93c8af.js";const c=class{constructor(s){t(this,s),this.storage=null,this.setting="enabled",this.dataProvider="storage"}get stateKey(){return`audio-${this.setting}`}setValue(t){switch(this.setting){case"enabled":r.audioEnabled=t;break;case"muted":e.muted=t}}getValue(){switch(this.setting){case"enabled":return r.audioEnabled;case"muted":return e.muted}}async componentWillLoad(){var t;if(this.storage=await a(this.dataProvider),this.storage){const s=await(null===(t=this.storage)||void 0===t?void 0:t.get(this.stateKey));null!=s&&this.setValue("true"==s)}this.subscription="muted"==this.setting?o("muted",(async t=>{var s;await(null===(s=this.storage)||void 0===s?void 0:s.set(this.stateKey,t.toString()))})):n("audioEnabled",(async t=>{var s;await(null===(s=this.storage)||void 0===s?void 0:s.set(this.stateKey,t.toString()))}))}toggle(){var t;this.setValue((null===(t=this.checkbox)||void 0===t?void 0:t.checked)||!1)}disconnectedCallback(){var t;null===(t=this.subscription)||void 0===t||t.call(this)}render(){return s(i,null,s("input",{type:"checkbox",class:this.inputClass,id:this.inputId,ref:t=>{this.checkbox=t},onChange:()=>this.toggle(),checked:this.getValue()}))}};export{c as n_audio_switch}