bootstrap-vue-next
Version:
Seamless integration of Vue 3, Bootstrap 5, and TypeScript for modern, type-safe UI development
137 lines (136 loc) • 4.38 kB
JavaScript
require("./chunk-CoQrYLCe.js");
const require_useDefaults = require("./useDefaults-DsLf4iRY.js");
const require_useId = require("./useId-DHrBgM7P.js");
const require_useColorVariantClasses = require("./useColorVariantClasses-CEfOwjPv.js");
const require_useNumberishToStyle = require("./useNumberishToStyle-DMGqQGfo.js");
let vue = require("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__ */ (0, vue.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 = require_useDefaults.useDefaults(__props, "BTableSimple");
const computedId = require_useId.useId(() => props.id);
const colorClasses = require_useColorVariantClasses.useColorVariantClasses((0, vue.computed)(() => ({ borderVariant: props.borderVariant })));
const computedClasses = (0, vue.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 = (0, vue.computed)(() => ({
id: computedId.value,
class: computedClasses.value,
...props.tableAttrs
}));
const computedSticky = require_useNumberishToStyle.useNumberishToStyle((0, vue.computed)(() => (props.stickyHeader === true ? defaultStickyHeaderHeight : props.stickyHeader) || NaN));
const stickyIsValid = (0, vue.computed)(() => props.stickyHeader !== false);
const isResponsive = (0, vue.computed)(() => props.responsive !== false || stickyIsValid.value);
const responsiveStyles = (0, vue.computed)(() => stickyIsValid.value ? { maxHeight: computedSticky.value } : void 0);
const responsiveClasses = (0, vue.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 ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
key: 0,
class: (0, vue.normalizeClass)(responsiveClasses.value),
style: (0, vue.normalizeStyle)(responsiveStyles.value)
}, [(0, vue.createElementVNode)("table", (0, vue.normalizeProps)((0, vue.guardReactiveProps)(computedTableAttrs.value)), [(0, vue.renderSlot)(_ctx.$slots, "default")], 16)], 6)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("table", (0, vue.normalizeProps)((0, vue.mergeProps)({ key: 1 }, computedTableAttrs.value)), [(0, vue.renderSlot)(_ctx.$slots, "default")], 16));
};
}
});
//#endregion
Object.defineProperty(exports, "BTableSimple_default", {
enumerable: true,
get: function() {
return BTableSimple_default;
}
});
//# sourceMappingURL=BTableSimple-Bq8PToKM.js.map