mt-ui-components-vue3
Version:
玛果添实UI组件库(Vue3)
158 lines (157 loc) • 5.9 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.provideGlobalConfig = exports.defaultNamespace = void 0;
exports.useGlobalConfig = useGlobalConfig;
exports.useNamespace = void 0;
var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _vue = require("vue");
var _tokens = require("./tokens");
var _scrollbar = require("../util/scrollbar");
//use-global-config
var globalConfig = (0, _vue.ref)();
function useGlobalConfig(key) {
var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
var config = (0, _vue.getCurrentInstance)() ? (0, _vue.inject)(_tokens.configProviderContextKey, globalConfig) : globalConfig;
if (key) {
return (0, _vue.computed)(function () {
var _config$value$key, _config$value;
return (_config$value$key = (_config$value = config.value) === null || _config$value === void 0 ? void 0 : _config$value[key]) !== null && _config$value$key !== void 0 ? _config$value$key : defaultValue;
});
} else {
return config;
}
}
var provideGlobalConfig = function provideGlobalConfig(config, app) {
var _app$provide;
var global = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
var inSetup = !!(0, _vue.getCurrentInstance)();
var oldConfig = inSetup ? useGlobalConfig() : undefined;
var provideFn = (_app$provide = app === null || app === void 0 ? void 0 : app.provide) !== null && _app$provide !== void 0 ? _app$provide : inSetup ? _vue.provide : undefined;
if (!provideFn) {
(0, _scrollbar.debugWarn)('provideGlobalConfig', 'provideGlobalConfig() can only be used inside setup().');
return;
}
var context = (0, _vue.computed)(function () {
var cfg = (0, _vue.unref)(config);
if (!(oldConfig !== null && oldConfig !== void 0 && oldConfig.value)) return cfg;
return mergeConfig(oldConfig.value, cfg);
});
provideFn(_tokens.configProviderContextKey, context);
if (global || !globalConfig.value) {
globalConfig.value = context.value;
}
return context;
};
exports.provideGlobalConfig = provideGlobalConfig;
var mergeConfig = function mergeConfig(a, b) {
var keys = (0, _toConsumableArray2.default)(new Set([].concat((0, _toConsumableArray2.default)((0, _scrollbar.keysOf)(a)), (0, _toConsumableArray2.default)((0, _scrollbar.keysOf)(b)))));
var obj = {};
var _iterator = (0, _createForOfIteratorHelper2.default)(keys),
_step;
try {
for (_iterator.s(); !(_step = _iterator.n()).done;) {
var _b$key;
var key = _step.value;
obj[key] = (_b$key = b[key]) !== null && _b$key !== void 0 ? _b$key : a[key];
}
} catch (err) {
_iterator.e(err);
} finally {
_iterator.f();
}
return obj;
};
//use-namespace
var defaultNamespace = 'el';
exports.defaultNamespace = defaultNamespace;
var statePrefix = 'is-';
var _bem = function _bem(namespace, block, blockSuffix, element, modifier) {
var cls = "".concat(namespace, "-").concat(block);
if (blockSuffix) {
cls += "-".concat(blockSuffix);
}
if (element) {
cls += "__".concat(element);
}
if (modifier) {
cls += "--".concat(modifier);
}
return cls;
};
var useNamespace = function useNamespace(block) {
var namespace = useGlobalConfig('namespace', defaultNamespace);
var b = function b() {
var blockSuffix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
return _bem(namespace.value, block, blockSuffix, '', '');
};
var e = function e(element) {
return element ? _bem(namespace.value, block, '', element, '') : '';
};
var m = function m(modifier) {
return modifier ? _bem(namespace.value, block, '', '', modifier) : '';
};
var be = function be(blockSuffix, element) {
return blockSuffix && element ? _bem(namespace.value, block, blockSuffix, element, '') : '';
};
var em = function em(element, modifier) {
return element && modifier ? _bem(namespace.value, block, '', element, modifier) : '';
};
var bm = function bm(blockSuffix, modifier) {
return blockSuffix && modifier ? _bem(namespace.value, block, blockSuffix, '', modifier) : '';
};
var bem = function bem(blockSuffix, element, modifier) {
return blockSuffix && element && modifier ? _bem(namespace.value, block, blockSuffix, element, modifier) : '';
};
var is = function is(name) {
var state = (arguments.length <= 1 ? 0 : arguments.length - 1) >= 1 ? arguments.length <= 1 ? undefined : arguments[1] : true;
return name && state ? "".concat(statePrefix).concat(name) : '';
};
// for css var
// --el-xxx: value;
var cssVar = function cssVar(object) {
var styles = {};
for (var key in object) {
if (object[key]) {
styles["--".concat(namespace.value, "-").concat(key)] = object[key];
}
}
return styles;
};
// with block
var cssVarBlock = function cssVarBlock(object) {
var styles = {};
for (var key in object) {
if (object[key]) {
styles["--".concat(namespace.value, "-").concat(block, "-").concat(key)] = object[key];
}
}
return styles;
};
var cssVarName = function cssVarName(name) {
return "--".concat(namespace.value, "-").concat(name);
};
var cssVarBlockName = function cssVarBlockName(name) {
return "--".concat(namespace.value, "-").concat(block, "-").concat(name);
};
return {
namespace: namespace,
b: b,
e: e,
m: m,
be: be,
em: em,
bm: bm,
bem: bem,
is: is,
// css
cssVar: cssVar,
cssVarName: cssVarName,
cssVarBlock: cssVarBlock,
cssVarBlockName: cssVarBlockName
};
};
exports.useNamespace = useNamespace;