UNPKG

bootstrap-vue-next

Version:

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

42 lines (41 loc) 1.7 kB
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); require("../../../chunk-CoQrYLCe.js"); const require_keys = require("../../../keys-durSVUrO.js"); let vue = require("vue"); //#region src/composables/useProvideDefaults/index.ts var useProvideDefaults = (defaults, mergeDefaults) => { const injectedDefaults = (0, vue.inject)(require_keys.defaultsKey, null); (0, vue.provide)(require_keys.defaultsKey, (0, vue.computed)(() => { const _defaults = (0, vue.unref)(defaults); if (!injectedDefaults) return _defaults ?? {}; const merged = { ...injectedDefaults.value }; if (_defaults) { if (mergeDefaults) { if (typeof mergeDefaults === "function") return mergeDefaults(merged, _defaults); else if (mergeDefaults === true) return deepMerge(merged, _defaults); return Object.assign(merged, _defaults); } return _defaults; } return merged; })); }; function isPlainObject(value) { return value !== null && typeof value === "object" && value.constructor === Object && Object.prototype.toString.call(value) === "[object Object]"; } function deepMerge(target, source, visited = /* @__PURE__ */ new WeakSet()) { if (visited.has(source)) return target; visited.add(source); const result = { ...target }; for (const key in source) { const sourceValue = source[key]; const targetValue = target[key]; if (isPlainObject(sourceValue) && isPlainObject(targetValue)) result[key] = deepMerge(targetValue, sourceValue, visited); else if (Array.isArray(sourceValue)) result[key] = [...sourceValue]; else result[key] = sourceValue; } return result; } //#endregion exports.useProvideDefaults = useProvideDefaults; //# sourceMappingURL=index.umd.js.map