{"version":3,"sources":["webpack:///../../../src/components/VSwitch/VSwitch.ts"],"names":["Selectable","extend","name","directives","Touch","props","inset","Boolean","loading","type","String","default","flat","computed","classes","VInput","options","call","this","attrs","isActive","isDisabled","role","validationState","hasError","shouldValidate","hasSuccess","hasColor","computedColor","switchData","setTextColor","undefined","class","themeClasses","methods","genDefaultSlot","genSwitch","genLabel","attrs$","switchAttrs","title","$createElement","staticClass","genInput","genRipple","value","left","onSwipeLeft","right","onSwipeRight","genProgress","VFabTransition","$slots","progress","VProgressCircular","color","size","width","indeterminate","onChange","onKeydown","e","keyCode","keyCodes"],"mappings":"6RAsBeA,cAAWC,OAAO,CAC/BC,KAAM,WAENC,WAAY,CAAEC,cAEdC,MAAO,CACLC,MAAOC,QACPC,QAAS,CACPC,KAAM,CAACF,QAASG,QAChBC,SAAS,GAEXC,KAAM,CACJH,KAAMF,QACNI,SAAS,IAIbE,SAAU,CACRC,QADQ,WAEN,wCACKC,OAAOC,QAAQH,SAASC,QAAQG,KAAKC,OAD1C,IAEE,+CAA+C,EAC/C,wBAAyBA,KAAKN,KAC9B,yBAA0BM,KAAKZ,SAGnCa,MATQ,WAUN,MAAO,CACL,eAAgBT,OAAOQ,KAAKE,UAC5B,gBAAiBV,OAAOQ,KAAKG,YAC7BC,KAAM,WAMVC,gBAnBQ,WAoBN,OAAIL,KAAKM,UAAYN,KAAKO,eAAuB,QAC7CP,KAAKQ,WAAmB,UACN,OAAlBR,KAAKS,SAA0BT,KAAKU,mBAAxC,GAGFC,WAzBQ,WA0BN,OAAOX,KAAKY,aAAaZ,KAAKV,aAAUuB,EAAYb,KAAKK,gBAAiB,CACxES,MAAOd,KAAKe,iBAKlBC,QAAS,CACPC,eADO,WAEL,MAAO,CACLjB,KAAKkB,YACLlB,KAAKmB,aAGTD,UAPO,WAQL,MAAkClB,KAAKoB,OAArBC,GAAlB,EAAQC,MAAR,qBAEA,OAAOtB,KAAKuB,eAAe,MAAO,CAChCC,YAAa,sCACZ,CACDxB,KAAKyB,SAAS,WAAd,iCACKzB,KAAKC,OACLoB,IAELrB,KAAK0B,UAAU1B,KAAKY,aAAaZ,KAAKK,gBAAiB,CACrDpB,WAAY,CAAC,CACXD,KAAM,QACN2C,MAAO,CACLC,KAAM5B,KAAK6B,YACXC,MAAO9B,KAAK+B,mBAIlB/B,KAAKuB,eAAe,MAApB,gBACEC,YAAa,0BACVxB,KAAKW,aAEVX,KAAKuB,eAAe,MAApB,gBACEC,YAAa,0BACVxB,KAAKW,YACP,CAACX,KAAKgC,mBAGbA,YApCO,WAqCL,OAAOhC,KAAKuB,eAAeU,OAAgB,GAAI,EAC5B,IAAjBjC,KAAKV,QACD,KACAU,KAAKkC,OAAOC,UAAYnC,KAAKuB,eAAea,OAAmB,CAC/DjD,MAAO,CACLkD,OAAyB,IAAjBrC,KAAKV,SAAqC,KAAjBU,KAAKV,QACjCU,KAAKqC,OAAS,UACfrC,KAAKV,QACTgD,KAAM,GACNC,MAAO,EACPC,eAAe,QAKzBX,YApDO,WAqDD7B,KAAKE,UAAUF,KAAKyC,YAE1BV,aAvDO,WAwDA/B,KAAKE,UAAUF,KAAKyC,YAE3BC,UA1DO,SA0DIC,IAENA,EAAEC,UAAYC,OAASjB,MAAQ5B,KAAKE,UACpCyC,EAAEC,UAAYC,OAASf,QAAU9B,KAAKE,WACvCF,KAAKyC","file":"js/home1248.fd180dd5.js","sourcesContent":["// Styles\nimport '../../styles/components/_selection-controls.sass'\nimport './VSwitch.sass'\n\n// Mixins\nimport Selectable from '../../mixins/selectable'\nimport VInput from '../VInput'\n\n// Directives\nimport Touch from '../../directives/touch'\n\n// Components\nimport { VFabTransition } from '../transitions'\nimport VProgressCircular from '../VProgressCircular/VProgressCircular'\n\n// Helpers\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\n/* @vue/component */\nexport default Selectable.extend({\n name: 'v-switch',\n\n directives: { Touch },\n\n props: {\n inset: Boolean,\n loading: {\n type: [Boolean, String],\n default: false,\n },\n flat: {\n type: Boolean,\n default: false,\n },\n },\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input--selection-controls v-input--switch': true,\n 'v-input--switch--flat': this.flat,\n 'v-input--switch--inset': this.inset,\n }\n },\n attrs (): object {\n return {\n 'aria-checked': String(this.isActive),\n 'aria-disabled': String(this.isDisabled),\n role: 'switch',\n }\n },\n // Do not return undefined if disabled,\n // according to spec, should still show\n // a color when disabled and active\n validationState (): string | undefined {\n if (this.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor !== null) return this.computedColor\n return undefined\n },\n switchData (): VNodeData {\n return this.setTextColor(this.loading ? undefined : this.validationState, {\n class: this.themeClasses,\n })\n },\n },\n\n methods: {\n genDefaultSlot (): (VNode | null)[] {\n return [\n this.genSwitch(),\n this.genLabel(),\n ]\n },\n genSwitch (): VNode {\n const { title, ...switchAttrs } = this.attrs$\n\n return this.$createElement('div', {\n staticClass: 'v-input--selection-controls__input',\n }, [\n this.genInput('checkbox', {\n ...this.attrs,\n ...switchAttrs,\n }),\n this.genRipple(this.setTextColor(this.validationState, {\n directives: [{\n name: 'touch',\n value: {\n left: this.onSwipeLeft,\n right: this.onSwipeRight,\n },\n }],\n })),\n this.$createElement('div', {\n staticClass: 'v-input--switch__track',\n ...this.switchData,\n }),\n this.$createElement('div', {\n staticClass: 'v-input--switch__thumb',\n ...this.switchData,\n }, [this.genProgress()]),\n ])\n },\n genProgress (): VNode {\n return this.$createElement(VFabTransition, {}, [\n this.loading === false\n ? null\n : this.$slots.progress || this.$createElement(VProgressCircular, {\n props: {\n color: (this.loading === true || this.loading === '')\n ? (this.color || 'primary')\n : this.loading,\n size: 16,\n width: 2,\n indeterminate: true,\n },\n }),\n ])\n },\n onSwipeLeft () {\n if (this.isActive) this.onChange()\n },\n onSwipeRight () {\n if (!this.isActive) this.onChange()\n },\n onKeydown (e: KeyboardEvent) {\n if (\n (e.keyCode === keyCodes.left && this.isActive) ||\n (e.keyCode === keyCodes.right && !this.isActive)\n ) this.onChange()\n },\n },\n})\n"],"sourceRoot":""}