{"version":3,"file":"VListChildren.mjs","names":["VDivider","filterListGroupProps","VListGroup","VListItem","VListSubheader","createList","genericComponent","VListChildren","name","props","items","Array","setup","slots","default","map","children","itemProps","type","raw","item","divider","subheader","slotsWithItem","subtitle","slotProps","undefined","prepend","append","title","listGroupProps","_1","value","activator","activatorProps","header"],"sources":["../../../src/components/VList/VListChildren.tsx"],"sourcesContent":["// Components\nimport { VDivider } from '../VDivider'\nimport { filterListGroupProps, VListGroup } from './VListGroup'\nimport { VListItem } from './VListItem'\nimport { VListSubheader } from './VListSubheader'\n\n// Utilities\nimport { createList } from './list'\nimport { genericComponent } from '@/util'\n\n// Types\nimport type { InternalListItem } from './VList'\nimport type { ListItemSubtitleSlot, ListItemTitleSlot } from './VListItem'\nimport type { SlotsToProps } from '@/util'\nimport type { Prop } from 'vue'\n\nexport const VListChildren = genericComponent<new <T extends InternalListItem>() => {\n  $props: {\n    items?: T[]\n  } & SlotsToProps<{\n    default: []\n    header: [{ props: Record<string, unknown> }]\n    item: [T]\n    title: [ListItemTitleSlot]\n    subtitle: [ListItemSubtitleSlot]\n  }>\n}>()({\n  name: 'VListChildren',\n\n  props: {\n    items: Array as Prop<InternalListItem[]>,\n  },\n\n  setup (props, { slots }) {\n    createList()\n\n    return () => slots.default?.() ?? props.items?.map(({ children, props: itemProps, type, raw: item }) => {\n      if (type === 'divider') {\n        return slots.divider?.({ props: itemProps }) ?? (\n          <VDivider { ...itemProps } />\n        )\n      }\n\n      if (type === 'subheader') {\n        return slots.subheader?.({ props: itemProps }) ?? (\n          <VListSubheader\n            { ...itemProps }\n            v-slots={{ default: slots.subheader }}\n          />\n        )\n      }\n\n      const slotsWithItem = {\n        subtitle: slots.subtitle ? (slotProps: any) => slots.subtitle?.({ ...slotProps, item }) : undefined,\n        prepend: slots.prepend ? (slotProps: any) => slots.prepend?.({ ...slotProps, item }) : undefined,\n        append: slots.append ? (slotProps: any) => slots.append?.({ ...slotProps, item }) : undefined,\n        default: slots.default ? (slotProps: any) => slots.default?.({ ...slotProps, item }) : undefined,\n        title: slots.title ? (slotProps: any) => slots.title?.({ ...slotProps, item }) : undefined,\n      }\n\n      const [listGroupProps, _1] = filterListGroupProps(itemProps as any)\n\n      return children ? (\n        <VListGroup\n          value={ itemProps?.value }\n          { ...listGroupProps }\n        >\n          {{\n            activator: ({ props: activatorProps }) => slots.header\n              ? slots.header({ props: { ...itemProps, ...activatorProps } })\n              : <VListItem { ...itemProps } { ...activatorProps } v-slots={ slotsWithItem } />,\n            default: () => (\n              <VListChildren items={ children } v-slots={ slots } />\n            ),\n          }}\n        </VListGroup>\n      ) : (\n        slots.item ? slots.item(itemProps) : (\n          <VListItem\n            { ...itemProps }\n            v-slots={ slotsWithItem }\n          />\n        )\n      )\n    })\n  },\n})\n"],"mappings":";AAAA;AAAA,SACSA,QAAQ;AAAA,SACRC,oBAAoB,EAAEC,UAAU;AAAA,SAChCC,SAAS;AAAA,SACTC,cAAc,gCAEvB;AAAA,SACSC,UAAU;AAAA,SACVC,gBAAgB,gCAEzB;AAMA,OAAO,MAAMC,aAAa,GAAGD,gBAAgB,EAUzC,CAAC;EACHE,IAAI,EAAE,eAAe;EAErBC,KAAK,EAAE;IACLC,KAAK,EAAEC;EACT,CAAC;EAEDC,KAAK,CAAEH,KAAK,QAAa;IAAA,IAAX;MAAEI;IAAM,CAAC;IACrBR,UAAU,EAAE;IAEZ,OAAO,MAAMQ,KAAK,CAACC,OAAO,IAAI,IAAIL,KAAK,CAACC,KAAK,EAAEK,GAAG,CAAC,SAAqD;MAAA,IAApD;QAAEC,QAAQ;QAAEP,KAAK,EAAEQ,SAAS;QAAEC,IAAI;QAAEC,GAAG,EAAEC;MAAK,CAAC;MACjG,IAAIF,IAAI,KAAK,SAAS,EAAE;QACtB,OAAOL,KAAK,CAACQ,OAAO,GAAG;UAAEZ,KAAK,EAAEQ;QAAU,CAAC,CAAC,2BAC3BA,SAAS,OACzB;MACH;MAEA,IAAIC,IAAI,KAAK,WAAW,EAAE;QACxB,OAAOL,KAAK,CAACS,SAAS,GAAG;UAAEb,KAAK,EAAEQ;QAAU,CAAC,CAAC,iCAErCA,SAAS,EACL;UAAEH,OAAO,EAAED,KAAK,CAACS;QAAU,CAAC,CAExC;MACH;MAEA,MAAMC,aAAa,GAAG;QACpBC,QAAQ,EAAEX,KAAK,CAACW,QAAQ,GAAIC,SAAc,IAAKZ,KAAK,CAACW,QAAQ,GAAG;UAAE,GAAGC,SAAS;UAAEL;QAAK,CAAC,CAAC,GAAGM,SAAS;QACnGC,OAAO,EAAEd,KAAK,CAACc,OAAO,GAAIF,SAAc,IAAKZ,KAAK,CAACc,OAAO,GAAG;UAAE,GAAGF,SAAS;UAAEL;QAAK,CAAC,CAAC,GAAGM,SAAS;QAChGE,MAAM,EAAEf,KAAK,CAACe,MAAM,GAAIH,SAAc,IAAKZ,KAAK,CAACe,MAAM,GAAG;UAAE,GAAGH,SAAS;UAAEL;QAAK,CAAC,CAAC,GAAGM,SAAS;QAC7FZ,OAAO,EAAED,KAAK,CAACC,OAAO,GAAIW,SAAc,IAAKZ,KAAK,CAACC,OAAO,GAAG;UAAE,GAAGW,SAAS;UAAEL;QAAK,CAAC,CAAC,GAAGM,SAAS;QAChGG,KAAK,EAAEhB,KAAK,CAACgB,KAAK,GAAIJ,SAAc,IAAKZ,KAAK,CAACgB,KAAK,GAAG;UAAE,GAAGJ,SAAS;UAAEL;QAAK,CAAC,CAAC,GAAGM;MACnF,CAAC;MAED,MAAM,CAACI,cAAc,EAAEC,EAAE,CAAC,GAAG9B,oBAAoB,CAACgB,SAAS,CAAQ;MAEnE,OAAOD,QAAQ;QAAA,SAEHC,SAAS,EAAEe;MAAK,GACnBF,cAAc;QAGjBG,SAAS,EAAE;UAAA,IAAC;YAAExB,KAAK,EAAEyB;UAAe,CAAC;UAAA,OAAKrB,KAAK,CAACsB,MAAM,GAClDtB,KAAK,CAACsB,MAAM,CAAC;YAAE1B,KAAK,EAAE;cAAE,GAAGQ,SAAS;cAAE,GAAGiB;YAAe;UAAE,CAAC,CAAC,uCAC5CjB,SAAS,EAAQiB,cAAc,GAAaX,aAAa,CAAK;QAAA;QAClFT,OAAO,EAAE;UAAA,SACgBE;QAAQ,GAAaH,KAAK;MAClD,KAILA,KAAK,CAACO,IAAI,GAAGP,KAAK,CAACO,IAAI,CAACH,SAAS,CAAC,2BAEzBA,SAAS,EACJM,aAAa,CAG5B;IACH,CAAC,CAAC;EACJ;AACF,CAAC,CAAC"}