UNPKG

bootstrap-vue-next

Version:

Seamless integration of Vue 3, Bootstrap 5, and TypeScript for modern, type-safe UI development

131 lines (130 loc) 4.12 kB
import { t as useId$1 } from "./useId-CCwnEmGh.mjs"; import { t as useDefaults } from "./useDefaults-CCWS15M8.mjs"; import { t as useColorVariantClasses } from "./useColorVariantClasses-GuDw8a_O.mjs"; import { t as useNumberishToStyle } from "./useNumberishToStyle-uj-NwKpF.mjs"; import { computed, createElementBlock, createElementVNode, defineComponent, guardReactiveProps, mergeProps, normalizeClass, normalizeProps, normalizeStyle, openBlock, renderSlot } from "vue"; //#region src/components/BTable/BTableSimple.vue?vue&type=script&setup=true&lang.ts var defaultStickyHeaderHeight = "300px"; //#endregion //#region src/components/BTable/BTableSimple.vue var BTableSimple_default = /* @__PURE__ */ defineComponent({ __name: "BTableSimple", props: { bordered: { type: Boolean, default: false }, borderless: { type: Boolean, default: false }, borderVariant: { default: null }, captionTop: { type: Boolean, default: false }, dark: { type: Boolean, default: false }, fixed: { type: Boolean, default: false }, hover: { type: Boolean, default: false }, id: { default: void 0 }, noBorderCollapse: { type: Boolean, default: false }, outlined: { type: Boolean, default: false }, responsive: { type: [Boolean, String], default: false }, small: { type: Boolean, default: false }, stacked: { type: [Boolean, String], default: false }, stickyHeader: { type: [ Boolean, String, Number ], default: false }, striped: { type: Boolean, default: false }, stripedColumns: { type: Boolean, default: false }, variant: { default: null }, tableAttrs: { default: void 0 }, tableClass: { default: void 0 } }, setup(__props) { const props = useDefaults(__props, "BTableSimple"); const computedId = useId$1(() => props.id); const colorClasses = useColorVariantClasses(computed(() => ({ borderVariant: props.borderVariant }))); const computedClasses = computed(() => [ props.tableClass, "table", "b-table", colorClasses.value, { "border": props.outlined, "table-bordered": props.bordered, "table-borderless": props.borderless, "caption-top": props.captionTop, "table-dark": props.dark, "table-hover": props.hover, "b-table-stacked": props.stacked === true, [`b-table-stacked-${props.stacked}`]: typeof props.stacked === "string", "table-striped": props.striped, "table-sm": props.small, [`table-${props.variant}`]: props.variant !== null, "table-striped-columns": props.stripedColumns, "b-table-fixed": props.fixed, "b-table-no-border-collapse": props.noBorderCollapse } ]); const computedTableAttrs = computed(() => ({ id: computedId.value, class: computedClasses.value, ...props.tableAttrs })); const computedSticky = useNumberishToStyle(computed(() => (props.stickyHeader === true ? defaultStickyHeaderHeight : props.stickyHeader) || NaN)); const stickyIsValid = computed(() => props.stickyHeader !== false); const isResponsive = computed(() => props.responsive !== false || stickyIsValid.value); const responsiveStyles = computed(() => stickyIsValid.value ? { maxHeight: computedSticky.value } : void 0); const responsiveClasses = computed(() => ({ "table-responsive": props.responsive === true, [`table-responsive-${props.responsive}`]: typeof props.responsive === "string", "b-table-sticky-header": stickyIsValid.value })); return (_ctx, _cache) => { return isResponsive.value ? (openBlock(), createElementBlock("div", { key: 0, class: normalizeClass(responsiveClasses.value), style: normalizeStyle(responsiveStyles.value) }, [createElementVNode("table", normalizeProps(guardReactiveProps(computedTableAttrs.value)), [renderSlot(_ctx.$slots, "default")], 16)], 6)) : (openBlock(), createElementBlock("table", normalizeProps(mergeProps({ key: 1 }, computedTableAttrs.value)), [renderSlot(_ctx.$slots, "default")], 16)); }; } }); //#endregion export { BTableSimple_default as t }; //# sourceMappingURL=BTableSimple-eebTf2L5.mjs.map