{"version":3,"sources":["../../../src/mixins/toggleable/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAP,MAAoC,KAApC;AAMA,OAAM,SAAU,OAAV,CAAmB,IAAI,GAAG,OAA1B,EAAmC,KAAK,GAAG,OAA3C,EAAkD;AACtD,SAAO,GAAG,CAAC,MAAJ,CAAW;AAChB,IAAA,IAAI,EAAE,YADU;AAGhB,IAAA,KAAK,EAAE;AAAE,MAAA,IAAF;AAAQ,MAAA;AAAR,KAHS;AAKhB,IAAA,KAAK,EAAE;AACL,OAAC,IAAD,GAAQ;AAAE,QAAA,QAAQ,EAAE;AAAZ;AADH,KALS;;AAShB,IAAA,IAAI,GAAA;AACF,aAAO;AACL,QAAA,QAAQ,EAAE,CAAC,CAAC,KAAK,IAAL;AADP,OAAP;AAGD,KAbe;;AAehB,IAAA,KAAK,EAAE;AACL,OAAC,IAAD,EAAQ,GAAR,EAAW;AACT,aAAK,QAAL,GAAgB,CAAC,CAAC,GAAlB;AACD,OAHI;;AAIL,MAAA,QAAQ,CAAE,GAAF,EAAK;AACX,SAAC,CAAC,GAAF,KAAU,KAAK,IAAL,CAAV,IAAwB,KAAK,KAAL,CAAW,KAAX,EAAkB,GAAlB,CAAxB;AACD;;AANI;AAfS,GAAX,CAAP;AAwBD;AAED;;AACA,MAAM,UAAU,GAAG,OAAO,EAA1B;AAEA,eAAe,UAAf","sourcesContent":["import Vue, { VueConstructor } from 'vue'\n\n/* eslint-disable-next-line no-use-before-define */\nexport type Toggleable = VueConstructor>\n\nexport function factory (prop?: T, event?: string): Toggleable\nexport function factory (prop = 'value', event = 'input') {\n return Vue.extend({\n name: 'toggleable',\n\n model: { prop, event },\n\n props: {\n [prop]: { required: false },\n },\n\n data () {\n return {\n isActive: !!this[prop],\n }\n },\n\n watch: {\n [prop] (val) {\n this.isActive = !!val\n },\n isActive (val) {\n !!val !== this[prop] && this.$emit(event, val)\n },\n },\n })\n}\n\n/* eslint-disable-next-line no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n"],"sourceRoot":"","file":"index.js"}