{"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","emit","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, emit }) {\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,CAAC,CAAC;EACvB,GAAGC,gBAAgB,CAAC,CAAC;EACrB,GAAGE,YAAY,CAAC,CAAC;EACjB,GAAGC,cAAc,CAAC;AACpB,CAAC,EAAE,QAAQ,CAAC;AAEZ,OAAO,MAAMc,MAAM,GAAGX,gBAAgB,CAAc,CAAC,CAAC;EACpDY,IAAI,EAAE,QAAQ;EAEdC,KAAK,EAAEV,eAAe,CAAC,CAAC;EAExBW,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAmB;IAAA,IAAjB;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAAF,IAAA;IAC3B,MAAM;MAAEG;IAAa,CAAC,GAAGpB,YAAY,CAACe,KAAK,CAAC;IAC5C,MAAM;MAAEM;IAAe,CAAC,GAAGxB,UAAU,CAACkB,KAAK,CAAC;IAE5CX,SAAS,CAAC,MAAAkB,YAAA,CAAAP,KAAA,CAAAQ,GAAA;MAAA,SAEC,CACL,SAAS,EACT;QACE,uBAAuB,EAAE,CAAC,CAACR,KAAK,CAACN,MAAM;QACvC,uBAAuB,EAAEM,KAAK,CAACT,WAAW;QAC1C,uBAAuB,EAAES,KAAK,CAACP,WAAW;QAC1C,kBAAkB,EAAE,CAAC,CAACU,KAAK,CAACM,GAAG;QAC/B,qBAAqB,EAAE,CAAC,CAACN,KAAK,CAACO,MAAM;QACrC,gBAAgB,EAAEV,KAAK,CAACH;MAC1B,CAAC,EACDQ,YAAY,CAACM,KAAK,EAClBL,cAAc,CAACK,KAAK,EACpBX,KAAK,CAACY,KAAK,CACZ;MAAA,SACOZ,KAAK,CAACa;IAAK;MAAAC,OAAA,EAAAA,CAAA,MAEjBX,KAAK,CAACM,GAAG,GAAG,CAAC,EAEbN,KAAK,CAACW,OAAO,GAAAP,YAAA;QAAA;QAAA,SAGJ;UAAEb,MAAM,EAAER,aAAa,CAACc,KAAK,CAACN,MAAM;QAAE;MAAC,IAAAa,YAAA,iBAG1CJ,KAAK,CAACW,OAAO,CAAC,CAAC,OAGnBX,KAAK,CAACY,OAAO,GAAG,CAAC,EAEnBZ,KAAK,CAACO,MAAM,GAAG,CAAC;IAAA,EAErB,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}