vuetify
Version:
Vue Material Component Framework
1 lines • 4.43 kB
Source Map (JSON)
{"version":3,"file":"VCheckboxBtn.mjs","names":["makeSelectionControlProps","VSelectionControl","IconValue","useProxiedModel","computed","genericComponent","pick","propsFactory","useRender","makeVCheckboxBtnProps","indeterminate","Boolean","indeterminateIcon","type","default","falseIcon","trueIcon","VCheckboxBtn","name","props","emits","value","val","setup","slots","model","onChange","v","undefined","filterCheckboxBtnProps","Object","keys"],"sources":["../../../src/components/VCheckbox/VCheckboxBtn.tsx"],"sourcesContent":["// Components\nimport type { VSelectionControlSlots } from '@/components/VSelectionControl/VSelectionControl'\nimport { makeSelectionControlProps, VSelectionControl } from '@/components/VSelectionControl/VSelectionControl'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ExtractPropTypes } from 'vue'\n\nexport const makeVCheckboxBtnProps = propsFactory({\n indeterminate: Boolean,\n indeterminateIcon: {\n type: IconValue,\n default: '$checkboxIndeterminate',\n },\n\n ...makeSelectionControlProps({\n falseIcon: '$checkboxOff',\n trueIcon: '$checkboxOn',\n }),\n}, 'v-checkbox-btn')\n\nexport const VCheckboxBtn = genericComponent<VSelectionControlSlots>()({\n name: 'VCheckboxBtn',\n\n props: makeVCheckboxBtnProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n 'update:indeterminate': (val: boolean) => true,\n },\n\n setup (props, { slots }) {\n const indeterminate = useProxiedModel(props, 'indeterminate')\n const model = useProxiedModel(props, 'modelValue')\n\n function onChange (v: any) {\n if (indeterminate.value) {\n indeterminate.value = false\n }\n }\n\n const falseIcon = computed(() => {\n return props.indeterminate\n ? props.indeterminateIcon\n : props.falseIcon\n })\n\n const trueIcon = computed(() => {\n return props.indeterminate\n ? props.indeterminateIcon\n : props.trueIcon\n })\n\n useRender(() => (\n <VSelectionControl\n { ...props }\n v-model={ model.value }\n class=\"v-checkbox-btn\"\n type=\"checkbox\"\n inline\n onUpdate:modelValue={ onChange }\n falseIcon={ falseIcon.value }\n trueIcon={ trueIcon.value }\n aria-checked={ props.indeterminate ? 'mixed' : undefined }\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VCheckboxBtn = InstanceType<typeof VCheckboxBtn>\n\nexport function filterCheckboxBtnProps (props: ExtractPropTypes<ReturnType<typeof makeVCheckboxBtnProps>>) {\n return pick(props, Object.keys(VCheckboxBtn.props) as any)\n}\n"],"mappings":";AAAA;AAAA,SAESA,yBAAyB,EAAEC,iBAAiB,sDAErD;AAAA,SACSC,SAAS;AAAA,SACTC,eAAe,8CAExB;AACA,SAASC,QAAQ,QAAQ,KAAK;AAAA,SACrBC,gBAAgB,EAAEC,IAAI,EAAEC,YAAY,EAAEC,SAAS,gCAExD;AAGA,OAAO,MAAMC,qBAAqB,GAAGF,YAAY,CAAC;EAChDG,aAAa,EAAEC,OAAO;EACtBC,iBAAiB,EAAE;IACjBC,IAAI,EAAEX,SAAS;IACfY,OAAO,EAAE;EACX,CAAC;EAED,GAAGd,yBAAyB,CAAC;IAC3Be,SAAS,EAAE,cAAc;IACzBC,QAAQ,EAAE;EACZ,CAAC;AACH,CAAC,EAAE,gBAAgB,CAAC;AAEpB,OAAO,MAAMC,YAAY,GAAGZ,gBAAgB,EAA0B,CAAC;EACrEa,IAAI,EAAE,cAAc;EAEpBC,KAAK,EAAEV,qBAAqB,EAAE;EAE9BW,KAAK,EAAE;IACL,mBAAmB,EAAGC,KAAU,IAAK,IAAI;IACzC,sBAAsB,EAAGC,GAAY,IAAK;EAC5C,CAAC;EAEDC,KAAK,CAAEJ,KAAK,QAAa;IAAA,IAAX;MAAEK;IAAM,CAAC;IACrB,MAAMd,aAAa,GAAGP,eAAe,CAACgB,KAAK,EAAE,eAAe,CAAC;IAC7D,MAAMM,KAAK,GAAGtB,eAAe,CAACgB,KAAK,EAAE,YAAY,CAAC;IAElD,SAASO,QAAQ,CAAEC,CAAM,EAAE;MACzB,IAAIjB,aAAa,CAACW,KAAK,EAAE;QACvBX,aAAa,CAACW,KAAK,GAAG,KAAK;MAC7B;IACF;IAEA,MAAMN,SAAS,GAAGX,QAAQ,CAAC,MAAM;MAC/B,OAAOe,KAAK,CAACT,aAAa,GACtBS,KAAK,CAACP,iBAAiB,GACvBO,KAAK,CAACJ,SAAS;IACrB,CAAC,CAAC;IAEF,MAAMC,QAAQ,GAAGZ,QAAQ,CAAC,MAAM;MAC9B,OAAOe,KAAK,CAACT,aAAa,GACtBS,KAAK,CAACP,iBAAiB,GACvBO,KAAK,CAACH,QAAQ;IACpB,CAAC,CAAC;IAEFR,SAAS,CAAC,kDAEDW,KAAK;MAAA,cACAM,KAAK,CAACJ,KAAK;MAAA,kCAAXI,KAAK,CAACJ,KAAK,WAICK,QAAQ;MAAA,SAHxB,gBAAgB;MAAA,QACjB,UAAU;MAAA;MAAA,aAGHX,SAAS,CAACM,KAAK;MAAA,YAChBL,QAAQ,CAACK,KAAK;MAAA,gBACVF,KAAK,CAACT,aAAa,GAAG,OAAO,GAAGkB;IAAS,IAC9CJ,KAAK,CAElB,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC;AAIF,OAAO,SAASK,sBAAsB,CAAEV,KAAiE,EAAE;EACzG,OAAOb,IAAI,CAACa,KAAK,EAAEW,MAAM,CAACC,IAAI,CAACd,YAAY,CAACE,KAAK,CAAC,CAAQ;AAC5D"}