{"version":3,"file":"light-switch-field.umd.cjs","sources":["../src/LightSwitchField.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { FormControl } from '@vue-interface/form-control';\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({\n\n    name: 'LightSwitchField',\n\n    extends: FormControl,\n\n    props: {\n\n        /**\n         * The class assigned to the control element when the switch is on.\n         *\n         * @property String\n         */\n        activeClass: {\n            type: String,\n            default: undefined\n        },\n\n        /**\n         * The class name assigned to the control element\n         *\n         * @property String\n         */\n        formControlClass: {\n            type: String,\n            default: 'form-switch'\n        },\n\n        /**\n         * The class assigned to the control element when the switch is off.\n         *\n         * @property String\n         */\n        inactiveClass: {\n            type: String,\n            default: undefined\n        },\n\n        /**\n         * The class name assigned to the control element\n         *\n         * @property String\n         */\n        onValue: {\n            type: [String, Number, Boolean, Object, Array],\n            default: 1\n        },\n\n        /**\n         * The class name assigned to the control element\n         *\n         * @property String\n         */\n        offValue: {\n            type: [String, Number, Boolean, Object, Array],\n            default: 0\n        }\n\n    },\n\n    // data() {\n    //     return {\n    //         currentValue: this.modelValue === this.onValue\n    //             ? this.onValue\n    //             : this.offValue\n    //     };\n    // },\n\n    computed: {\n        \n        model: {\n            get() {\n                return this.getModelValue() === this.onValue;\n            },\n            set(value: any) {\n                this.setModelValue(\n                    value === true ? this.onValue : this.offValue\n                );\n            }\n        },\n\n        isActive: function () {\n            return this.model === this.onValue;\n        },\n\n        controlSizeClass() {\n            if(this.size === 'md') {\n                return 'form-control';\n            }\n\n            return this.size && `form-control-${this.size}`;\n        }\n\n    },\n\n    // methods: {\n\n    //     toggle(value?: any) {\n    //         console.log('toggle', value);\n    //         // if (value === undefined) {\n    //         //     value = this.isActive ? this.offValue : this.onValue;\n    //         // }\n\n    //         // this.currentValue = value;\n    //     }\n\n    // }\n\n});\n</script>\n\n\n<template>\n    <div :class=\"formGroupClasses\">\n        <div\n            ref=\"input\"\n            class=\"border-2 border-red-500\"\n            :class=\"{\n                ...controlClasses,\n                ['is-valid']: isValid,\n                ['is-invalid']: isInvalid,\n                ['is-active']: isActive,\n                [String(activeClass)]: isActive,\n                [String(inactiveClass)]: !isActive,\n            }\">\n            <input\n                :id=\"id\"\n                ref=\"input\"\n                v-model=\"model\"\n                :disabled=\"controlAttributes.disabled\"\n                type=\"checkbox\"\n                class=\"form-check-input\">\n            <slot name=\"label\">\n                <label\n                    v-if=\"label\"\n                    :for=\"id\"\n                    style=\"padding-left: .5em\">\n                    <slot>{{ label }}</slot>\n                </label>\n            </slot>\n        </div>\n\n        <slot\n            name=\"errors\"\n            v-bind=\"{ error, errors, id: $attrs.id, name: $attrs.name }\">        \n            <FormControlErrors\n                v-if=\"!!(error || errors)\"\n                :id=\"$attrs.id\"\n                v-slot=\"{ error }\"\n                :name=\"$attrs.name\"\n                :error=\"error\"\n                :errors=\"errors\">\n                <div\n                    invalid\n                    class=\"invalid-feedback\">\n                    {{ error }}<br>\n                </div>\n            </FormControlErrors>\n        </slot>\n        \n        <slot\n            name=\"feedback\"\n            v-bind=\"{ feedback }\">\n            <FormControlFeedback\n                v-slot=\"{ feedback }\"\n                :feedback=\"feedback\">\n                <div\n                    valid\n                    class=\"valid-feedback\">\n                    {{ feedback }}\n                </div>\n            </FormControlFeedback>\n        </slot>\n\n        <slot name=\"help\">\n            <small\n                v-if=\"helpText\"\n                ref=\"help\">\n                {{ helpText }}\n            </small>\n        </slot>\n    </div>\n</template>\n"],"names":["_sfc_main","defineComponent","FormControl","value","_hoisted_2","_hoisted_3","_hoisted_4","_createElementVNode","_hoisted_5","_resolveComponent","_normalizeClass","_ctx","_withDirectives","_cache","$event","_vModelCheckbox","_openBlock","_createElementBlock","_normalizeProps","_guardReactiveProps","_createBlock","_component_FormControlErrors","_createTextVNode","_toDisplayString","error","_createCommentVNode","_createVNode","_component_FormControlFeedback","_withCtx","feedback"],"mappings":"sWAIA,MAAAA,EAAeC,kBAAgB,CAE3B,KAAM,mBAEN,QAASC,EAAA,YAET,MAAO,CAOH,YAAa,CACT,KAAM,OACN,QAAS,MACb,EAOA,iBAAkB,CACd,KAAM,OACN,QAAS,aACb,EAOA,cAAe,CACX,KAAM,OACN,QAAS,MACb,EAOA,QAAS,CACL,KAAM,CAAC,OAAQ,OAAQ,QAAS,OAAQ,KAAK,EAC7C,QAAS,CACb,EAOA,SAAU,CACN,KAAM,CAAC,OAAQ,OAAQ,QAAS,OAAQ,KAAK,EAC7C,QAAS,CACb,CAEJ,EAUA,SAAU,CAEN,MAAO,CACH,KAAM,CACK,OAAA,KAAK,kBAAoB,KAAK,OACzC,EACA,IAAIC,EAAY,CACP,KAAA,cACDA,IAAU,GAAO,KAAK,QAAU,KAAK,QAAA,CAE7C,CACJ,EAEA,SAAU,UAAY,CACX,OAAA,KAAK,QAAU,KAAK,OAC/B,EAEA,kBAAmB,CACZ,OAAA,KAAK,OAAS,KACN,eAGJ,KAAK,MAAQ,gBAAgB,KAAK,MAC7C,CAEJ,CAeJ,CAAC,2FA6CmBC,EAAO,CAAA,KAAA,EACPC,EAAM,CAAA,QAAA,6BAaNC,EAAKC,EAAA,mBAAA,KAAA,KAAA,KAAA,EAAA,EACLC,EAAM,CAAA,MAAA,qGAvDtBC,mBAoEM,qBAAA,mDAnEF,MA0BMC,EAAAA,eAAAC,EAAA,gBAAA,CAAA,EAAA,sBAxBG,MAAC,CAAA,IAAA,gCACqE,0BAAO,CAAA,GAAAA,EAAA,eAA4E,CAAA,UAAA,EAAAA,EAAA,QAAA,CAA2B,YAAO,EAAAA,EAAA,UAAA,CAA0C,WAAO,EAAAA,EAAA,SAAA,CAAA,OAAAA,EAAA,WAAA,CAAA,EAAAA,EAAA,oDAUlOC,EAAA,eAAAL,EAAA,mBAAA,QAAA,CAAA,GAAAI,EAAA,GAEV,IAAA,QACD,sBAAeE,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAAH,EAAA,MAAAG,GACf,SAAMH,EAAkB,kBAAA,SAAA,KAAA,gDAC5B,CAOOI,EAAA,eAAAJ,EAAA,KAAA,CAAA,CAAA,wBANH,QAKQ,CAAA,EAAA,IAAA,CAAAA,EAAA,OAAAK,EAAAA,YAHIC,EAAAA,mBAAA,QAAA,CACR,IAA0B,EAAA,IAAAN,EAAA,GAC1B,MAAwB,CAAA,eAAA,MAAA,CAAA,EAAA,6HAKpC,CAAA,CAAA,EAAA,CAAA,wBAGI,SAYoBO,EAAA,eAAAC,qBAAA,CAAA,MAAAR,EAAA,MAAA,OAAAA,EAAA,OAAA,GAAAA,EAAA,OAAA,GAAA,KAAAA,EAAA,OAAA,KAAA,CAAA,EAAA,IAAA,CAAAA,EAAA,OAAAA,EAAA,QAAAK,EAAA,UAAA,EAVFI,EAAA,YAAAC,EAAA,CAEb,IAAI,EACJ,GAAOV,EAAA,OAAA,GACP,KAAMA,EAAE,OAAA,KAAA,MAAAA,EAAA,wDAIUJ,EAAA,mBAAA,MAAAF,EAAA,CAAAiB,EAAAA,gBAAAC,EAAA,gBAAAC,CAAA,EAAA,CAAA,gDAK3BC,EAAAA,mBAYO,GAAA,EAAA,CAAA,CAAA,wBARW,WAAQP,EAAAA,eAAAC,EAAAA,mBAAA,CAAA,SAAAR,EAAA,QAAA,CAAA,CAAA,EAAA,IAAA,CAElBe,EAAAA,YAAAC,EAIM,YADC,QAAQ,EAAA,CAAA,QAAAC,EAAA,QAAA,CAAA,CAAA,SAAAC,KAAA,6DAWhB,EAAA,CAAA,UAAA,CAAA,CAAA,CAAA,wBALH,OAIQ,CAAA,EAAA,IAAA,CAAAlB,EAAA,UAAAK,EAAAA,YAFMC,EAAAA,mBAAA,QAAA,CAAA,IAAA"}