UNPKG

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
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-BDWcebyD.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-cBKQc5Dd.js.map