{"version":3,"file":"VTreeviewItem.mjs","names":["VBtn","VListItemAction","makeVListItemProps","VListItem","VProgressCircular","IconValue","useLink","computed","inject","ref","EventProp","genericComponent","omit","propsFactory","useRender","VTreeviewSymbol","makeVTreeviewItemProps","loading","Boolean","onToggleExpand","toggleIcon","slim","VTreeviewItem","name","props","setup","_ref","attrs","slots","emit","link","vListItemRef","isActivatableGroupActivator","value","root","activatable","isGroupActivator","isClickable","disabled","list","activateGroupActivator","e","activate","isActivated","visibleIds","listItemProps","filterProps","hasPrepend","prepend","_createVNode","_mergeProps","has","id","class","onClick","slotProps","_Fragment","default","loader","undefined"],"sources":["../../../src/labs/VTreeview/VTreeviewItem.tsx"],"sourcesContent":["// Styles\nimport './VTreeviewItem.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VListItemAction } from '@/components/VList'\nimport { makeVListItemProps, VListItem } from '@/components/VList/VListItem'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { useLink } from '@/composables/router'\n\n// Utilities\nimport { computed, inject, ref } from 'vue'\nimport { EventProp, genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport { VTreeviewSymbol } from './shared'\nimport type { VListItemSlots } from '@/components/VList/VListItem'\n\nexport const makeVTreeviewItemProps = propsFactory({\n loading: Boolean,\n onToggleExpand: EventProp<[MouseEvent]>(),\n toggleIcon: IconValue,\n\n ...makeVListItemProps({ slim: true }),\n}, 'VTreeviewItem')\n\nexport const VTreeviewItem = genericComponent()({\n name: 'VTreeviewItem',\n\n props: makeVTreeviewItemProps(),\n\n setup (props, { attrs, slots, emit }) {\n const link = useLink(props, attrs)\n const vListItemRef = ref()\n\n const isActivatableGroupActivator = computed(() =>\n (vListItemRef.value?.root.activatable.value) &&\n vListItemRef.value?.isGroupActivator\n )\n\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (props.link || link.isClickable.value || (props.value != null && !!vListItemRef.value?.list) || isActivatableGroupActivator.value)\n )\n\n function activateGroupActivator (e: MouseEvent | KeyboardEvent) {\n if (isClickable.value && isActivatableGroupActivator.value) {\n vListItemRef.value?.activate(!vListItemRef.value?.isActivated, e)\n }\n }\n\n const visibleIds = inject(VTreeviewSymbol, { visibleIds: ref() }).visibleIds\n\n useRender(() => {\n const listItemProps = omit(VListItem.filterProps(props), ['onClick'])\n const hasPrepend = slots.prepend || props.toggleIcon\n\n return (\n \n {{\n ...slots,\n prepend: hasPrepend ? slotProps => {\n return (\n <>\n { props.toggleIcon && (\n \n \n {{\n loader () {\n return (\n \n )\n },\n }}\n \n \n )}\n\n { slots.prepend?.(slotProps) }\n \n )\n } : undefined,\n }}\n \n )\n })\n\n return {}\n },\n})\n\nexport type VTreeviewItem = InstanceType\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,IAAI;AAAA,SACJC,eAAe;AAAA,SACfC,kBAAkB,EAAEC,SAAS;AAAA,SAC7BC,iBAAiB,wDAE1B;AAAA,SACSC,SAAS;AAAA,SACTC,OAAO,wCAEhB;AACA,SAASC,QAAQ,EAAEC,MAAM,EAAEC,GAAG,QAAQ,KAAK;AAAA,SAClCC,SAAS,EAAEC,gBAAgB,EAAEC,IAAI,EAAEC,YAAY,EAAEC,SAAS,gCAEnE;AAAA,SACSC,eAAe;AAGxB,OAAO,MAAMC,sBAAsB,GAAGH,YAAY,CAAC;EACjDI,OAAO,EAAEC,OAAO;EAChBC,cAAc,EAAET,SAAS,CAAe,CAAC;EACzCU,UAAU,EAAEf,SAAS;EAErB,GAAGH,kBAAkB,CAAC;IAAEmB,IAAI,EAAE;EAAK,CAAC;AACtC,CAAC,EAAE,eAAe,CAAC;AAEnB,OAAO,MAAMC,aAAa,GAAGX,gBAAgB,CAAiB,CAAC,CAAC;EAC9DY,IAAI,EAAE,eAAe;EAErBC,KAAK,EAAER,sBAAsB,CAAC,CAAC;EAE/BS,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAA0B;IAAA,IAAxB;MAAEC,KAAK;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAAH,IAAA;IAClC,MAAMI,IAAI,GAAGxB,OAAO,CAACkB,KAAK,EAAEG,KAAK,CAAC;IAClC,MAAMI,YAAY,GAAGtB,GAAG,CAAY,CAAC;IAErC,MAAMuB,2BAA2B,GAAGzB,QAAQ,CAAC,MAC1CwB,YAAY,CAACE,KAAK,EAAEC,IAAI,CAACC,WAAW,CAACF,KAAK,IAC3CF,YAAY,CAACE,KAAK,EAAEG,gBACtB,CAAC;IAED,MAAMC,WAAW,GAAG9B,QAAQ,CAAC,MAC3B,CAACiB,KAAK,CAACc,QAAQ,IACfd,KAAK,CAACM,IAAI,KAAK,KAAK,KACnBN,KAAK,CAACM,IAAI,IAAIA,IAAI,CAACO,WAAW,CAACJ,KAAK,IAAKT,KAAK,CAACS,KAAK,IAAI,IAAI,IAAI,CAAC,CAACF,YAAY,CAACE,KAAK,EAAEM,IAAK,IAAIP,2BAA2B,CAACC,KAAK,CACnI,CAAC;IAED,SAASO,sBAAsBA,CAAEC,CAA6B,EAAE;MAC9D,IAAIJ,WAAW,CAACJ,KAAK,IAAID,2BAA2B,CAACC,KAAK,EAAE;QAC1DF,YAAY,CAACE,KAAK,EAAES,QAAQ,CAAC,CAACX,YAAY,CAACE,KAAK,EAAEU,WAAW,EAAEF,CAAC,CAAC;MACnE;IACF;IAEA,MAAMG,UAAU,GAAGpC,MAAM,CAACO,eAAe,EAAE;MAAE6B,UAAU,EAAEnC,GAAG,CAAC;IAAE,CAAC,CAAC,CAACmC,UAAU;IAE5E9B,SAAS,CAAC,MAAM;MACd,MAAM+B,aAAa,GAAGjC,IAAI,CAACT,SAAS,CAAC2C,WAAW,CAACtB,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;MACrE,MAAMuB,UAAU,GAAGnB,KAAK,CAACoB,OAAO,IAAIxB,KAAK,CAACJ,UAAU;MAEpD,OAAA6B,YAAA,CAAA9C,SAAA,EAAA+C,WAAA;QAAA,OAEUnB;MAAY,GACbc,aAAa;QAAA,UACTd,YAAY,CAACE,KAAK,EAAEU,WAAW;QAAA,SACjC,CACL,iBAAiB,EACjB;UACE,8CAA8C,EAAEX,2BAA2B,CAACC,KAAK;UACjF,2BAA2B,EAAEW,UAAU,CAACX,KAAK,IAAI,CAACW,UAAU,CAACX,KAAK,CAACkB,GAAG,CAACpB,YAAY,CAACE,KAAK,EAAEmB,EAAE;QAC/F,CAAC,EACD5B,KAAK,CAAC6B,KAAK,CACZ;QAAA,UACQ,KAAK;QAAA,WACJ7B,KAAK,CAAC8B,OAAO,IAAId;MAAsB;QAG/C,GAAGZ,KAAK;QACRoB,OAAO,EAAED,UAAU,GAAGQ,SAAS,IAAI;UACjC,OAAAN,YAAA,CAAAO,SAAA,SAEMhC,KAAK,CAACJ,UAAU,IAAA6B,YAAA,CAAAhD,eAAA;YAAA,SACS;UAAK;YAAAwD,OAAA,EAAAA,CAAA,MAAAR,YAAA,CAAAjD,IAAA;cAAA;cAAA,QAGnBwB,KAAK,CAACJ,UAAU;cAAA,WACbI,KAAK,CAACP,OAAO;cAAA;cAAA,WAEbO,KAAK,CAACL;YAAc;cAG5BuC,MAAMA,CAAA,EAAI;gBACR,OAAAT,YAAA,CAAA7C,iBAAA;kBAAA;kBAAA;kBAAA;gBAAA;cAOF;YAAC;UAAA,EAIR,EAECwB,KAAK,CAACoB,OAAO,GAAGO,SAAS,CAAC;QAGlC,CAAC,GAAGI;MAAS;IAIrB,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}