{"version":3,"file":"VTable.mjs","names":["makeComponentProps","makeDensityProps","useDensity","makeTagProps","makeThemeProps","provideTheme","convertToUnit","genericComponent","propsFactory","useRender","makeVTableProps","fixedHeader","Boolean","fixedFooter","height","Number","String","hover","VTable","name","props","setup","_ref","slots","themeClasses","densityClasses","_createVNode","tag","top","bottom","value","class","style","default","wrapper"],"sources":["../../../src/components/VTable/VTable.tsx"],"sourcesContent":["// Styles\nimport './VTable.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\nexport type VTableSlots = {\n  default: never\n  top: never\n  bottom: never\n  wrapper: never\n}\n\nexport const makeVTableProps = propsFactory({\n  fixedHeader: Boolean,\n  fixedFooter: Boolean,\n  height: [Number, String],\n  hover: Boolean,\n\n  ...makeComponentProps(),\n  ...makeDensityProps(),\n  ...makeTagProps(),\n  ...makeThemeProps(),\n}, 'VTable')\n\nexport const VTable = genericComponent<VTableSlots>()({\n  name: 'VTable',\n\n  props: makeVTableProps(),\n\n  setup (props, { slots }) {\n    const { themeClasses } = provideTheme(props)\n    const { densityClasses } = useDensity(props)\n\n    useRender(() => (\n      <props.tag\n        class={[\n          'v-table',\n          {\n            'v-table--fixed-height': !!props.height,\n            'v-table--fixed-header': props.fixedHeader,\n            'v-table--fixed-footer': props.fixedFooter,\n            'v-table--has-top': !!slots.top,\n            'v-table--has-bottom': !!slots.bottom,\n            'v-table--hover': props.hover,\n          },\n          themeClasses.value,\n          densityClasses.value,\n          props.class,\n        ]}\n        style={ props.style }\n      >\n        { slots.top?.() }\n\n        { slots.default ? (\n          <div\n            class=\"v-table__wrapper\"\n            style={{ height: convertToUnit(props.height) }}\n          >\n            <table>\n              { slots.default() }\n            </table>\n          </div>\n        ) : slots.wrapper?.()}\n\n        { slots.bottom?.() }\n      </props.tag>\n    ))\n\n    return {}\n  },\n})\n\nexport type VTable = InstanceType<typeof VTable>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,kBAAkB;AAAA,SAClBC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,YAAY;AAAA,SACZC,cAAc,EAAEC,YAAY,uCAErC;AAAA,SACSC,aAAa,EAAEC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;AASjE,OAAO,MAAMC,eAAe,GAAGF,YAAY,CAAC;EAC1CG,WAAW,EAAEC,OAAO;EACpBC,WAAW,EAAED,OAAO;EACpBE,MAAM,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;EACxBC,KAAK,EAAEL,OAAO;EAEd,GAAGZ,kBAAkB,EAAE;EACvB,GAAGC,gBAAgB,EAAE;EACrB,GAAGE,YAAY,EAAE;EACjB,GAAGC,cAAc;AACnB,CAAC,EAAE,QAAQ,CAAC;AAEZ,OAAO,MAAMc,MAAM,GAAGX,gBAAgB,EAAe,CAAC;EACpDY,IAAI,EAAE,QAAQ;EAEdC,KAAK,EAAEV,eAAe,EAAE;EAExBW,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAM;MAAEE;IAAa,CAAC,GAAGnB,YAAY,CAACe,KAAK,CAAC;IAC5C,MAAM;MAAEK;IAAe,CAAC,GAAGvB,UAAU,CAACkB,KAAK,CAAC;IAE5CX,SAAS,CAAC,MAAAiB,YAAA,CAAAN,KAAA,CAAAO,GAAA;MAAA,SAEC,CACL,SAAS,EACT;QACE,uBAAuB,EAAE,CAAC,CAACP,KAAK,CAACN,MAAM;QACvC,uBAAuB,EAAEM,KAAK,CAACT,WAAW;QAC1C,uBAAuB,EAAES,KAAK,CAACP,WAAW;QAC1C,kBAAkB,EAAE,CAAC,CAACU,KAAK,CAACK,GAAG;QAC/B,qBAAqB,EAAE,CAAC,CAACL,KAAK,CAACM,MAAM;QACrC,gBAAgB,EAAET,KAAK,CAACH;MAC1B,CAAC,EACDO,YAAY,CAACM,KAAK,EAClBL,cAAc,CAACK,KAAK,EACpBV,KAAK,CAACW,KAAK,CACZ;MAAA,SACOX,KAAK,CAACY;IAAK;MAAAC,OAAA,EAAAA,CAAA,MAEjBV,KAAK,CAACK,GAAG,IAAI,EAEbL,KAAK,CAACU,OAAO,GAAAP,YAAA;QAAA,SAEL,kBAAkB;QAAA,SACjB;UAAEZ,MAAM,EAAER,aAAa,CAACc,KAAK,CAACN,MAAM;QAAE;MAAC,IAAAY,YAAA,iBAG1CH,KAAK,CAACU,OAAO,EAAE,OAGnBV,KAAK,CAACW,OAAO,IAAI,EAEnBX,KAAK,CAACM,MAAM,IAAI;IAAA,EAErB,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}