bootstrap-vue-next
Version:
Seamless integration of Vue 3, Bootstrap 5, and TypeScript for modern, type-safe UI development
181 lines (180 loc) • 7.33 kB
JavaScript
require("./chunk-CoQrYLCe.js");
const require_keys = require("./keys-durSVUrO.js");
const require_src_composables_orchestratorShared_index = require("./src/composables/orchestratorShared/index.umd.js");
const require_ConditionalTeleport = require("./ConditionalTeleport-BJZk6HAx.js");
const require_src_composables_useProvideDefaults_index = require("./src/composables/useProvideDefaults/index.umd.js");
const require_src_composables_useRegistry_index = require("./src/composables/useRegistry/index.umd.js");
let vue = require("vue");
//#region src/utils/positionClasses.ts
var positionClasses = {
"top-start": "top-0 start-0",
"top-center": "top-0 start-50 translate-middle-x",
"top-end": "top-0 end-0",
"middle-start": "top-50 start-0 translate-middle-y",
"middle-center": "top-50 start-50 translate-middle",
"middle-end": "top-50 end-0 translate-middle-y",
"bottom-start": "bottom-0 start-0",
"bottom-center": "bottom-0 start-50 translate-middle-x",
"bottom-end": "bottom-0 end-0"
};
//#endregion
//#region src/components/BApp/BOrchestrator.vue
var BOrchestrator_default = /* @__PURE__ */ (0, vue.defineComponent)({
__name: "BOrchestrator",
props: {
noPopovers: {
type: Boolean,
default: false
},
noToasts: {
type: Boolean,
default: false
},
noModals: {
type: Boolean,
default: false
},
appendToast: {
type: Boolean,
default: false
},
teleportTo: {},
filter: {
type: Function,
default: () => true
}
},
setup(__props) {
function setEventOk(event) {
event.ok = event.trigger === "ok" ? true : event.trigger === "cancel" ? false : null;
}
const props = __props;
const orchestratorRegistry = (0, vue.inject)(require_keys.orchestratorRegistryKey, null);
if (orchestratorRegistry) {
if (!orchestratorRegistry._isOrchestratorInstalled.value) orchestratorRegistry._isOrchestratorInstalled.value = true;
} else if (process.env.NODE_ENV === "development") console.warn("[BOrchestrator] The orchestrator registry not found. Please use BApp, useRegistry or provide the plugin.");
(0, vue.watch)(() => props.appendToast, (value) => {
if (orchestratorRegistry && value !== void 0) orchestratorRegistry._isToastAppend.value = value;
}, { immediate: true });
const ComputedPositionClasses = (0, vue.computed)(() => {
const positionsActive = items.value?.reduce((acc, item) => {
if (item.position) acc[item.position] = true;
return acc;
}, {});
const classes = {};
for (const position in positionClasses) if (positionsActive?.[position]) classes[position] = {
class: `${positionClasses[position]} toast-container position-fixed p-3`,
style: "width: calc(var(--bs-toast-max-width, 350px) + var(--bs-toast-padding-x, 1rem) * 2)"
};
if (positionsActive?.["modal"]) classes["modal"] = {
class: "",
style: ""
};
if (positionsActive?.["popover"]) classes["popover"] = {
class: "",
style: ""
};
return classes;
});
const items = (0, vue.computed)(() => {
return (orchestratorRegistry?.store.value ?? []).filter((el) => !props.noPopovers || el.type !== "popover").filter((el) => !props.noToasts || el.type !== "toast").filter((el) => !props.noModals || el.type !== "modal").filter(props.filter);
});
return (_ctx, _cache) => {
return (0, vue.openBlock)(), (0, vue.createBlock)(require_ConditionalTeleport.ConditionalTeleport_default, {
to: __props.teleportTo,
disabled: !__props.teleportTo
}, {
default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", (0, vue.mergeProps)({ class: "orchestrator-container" }, _ctx.$attrs), [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(ComputedPositionClasses.value, (value, key) => {
return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
key,
class: (0, vue.normalizeClass)(value.class),
style: (0, vue.normalizeStyle)(value.style)
}, [(0, vue.createVNode)(vue.TransitionGroup, { name: items.value?.filter((el) => el.position === key)?.some((el) => el.type === "toast") ? "b-list" : void 0 }, {
default: (0, vue.withCtx)(() => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(items.value?.filter((el) => el.position === key) || [], ({ _self, type, position, slots, promise, options, _component, ...val }) => {
return (0, vue.openBlock)(), (0, vue.createElementBlock)("span", { key: _self }, [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_component), (0, vue.mergeProps)({ ref_for: true }, val, {
ref_for: true,
ref: (ref) => promise.value.ref = ref,
"initial-animation": "",
"teleport-disabled": true,
onHide: (e) => {
setEventOk(e);
val.onHide?.(e);
if (e.defaultPrevented) return;
promise.stop?.();
if (options?.resolveOnHide) promise.resolve(e);
},
onHidden: (e) => {
setEventOk(e);
val.onHidden?.(e);
if (e.defaultPrevented) return;
if (!options?.resolveOnHide) promise.resolve(e);
if (!options?.keep) promise.value.destroy?.();
}
}), (0, vue.createSlots)({ _: 2 }, [(0, vue.renderList)(slots, (comp, slot) => {
return {
name: slot,
fn: (0, vue.withCtx)((scope) => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(comp), (0, vue.mergeProps)({ ref_for: true }, scope), null, 16))])
};
})]), 1040, ["onHide", "onHidden"]))]);
}), 128))]),
_: 2
}, 1032, ["name"])], 6);
}), 128))], 16)]),
_: 1
}, 8, ["to", "disabled"]);
};
}
});
//#endregion
//#region src/components/BApp/BApp.vue
var BApp_default = /* @__PURE__ */ (0, vue.defineComponent)({
inheritAttrs: false,
__name: "BApp",
props: {
defaults: { default: void 0 },
mergeDefaults: {
type: [Boolean, Function],
default: false
},
teleportTo: { default: void 0 },
noOrchestrator: {
type: Boolean,
default: false
},
appendToast: {
type: Boolean,
default: false
},
rtl: {
type: [Boolean, Object],
default: false
}
},
setup(__props) {
const props = __props;
require_src_composables_useProvideDefaults_index.useProvideDefaults((0, vue.toRef)(() => props.defaults), props.mergeDefaults);
require_src_composables_useRegistry_index.useRegistry(props.rtl);
if (!props.noOrchestrator) require_src_composables_orchestratorShared_index.useOrchestratorRegistry();
return (_ctx, _cache) => {
return (0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, null, [!__props.noOrchestrator ? ((0, vue.openBlock)(), (0, vue.createBlock)(BOrchestrator_default, {
key: 0,
"append-toast": __props.appendToast,
"teleport-to": __props.teleportTo
}, null, 8, ["append-toast", "teleport-to"])) : (0, vue.createCommentVNode)("", true), (0, vue.renderSlot)(_ctx.$slots, "default", (0, vue.normalizeProps)((0, vue.guardReactiveProps)(_ctx.$attrs)))], 64);
};
}
});
//#endregion
Object.defineProperty(exports, "BApp_default", {
enumerable: true,
get: function() {
return BApp_default;
}
});
Object.defineProperty(exports, "BOrchestrator_default", {
enumerable: true,
get: function() {
return BOrchestrator_default;
}
});
//# sourceMappingURL=BApp-DaM0UKIg.js.map