ukelli-ui
Version:
ukelli-ui 是基于 React 的 UI 库,提供简约和功能齐全的组件,可高度定制的组件接口,灵活的配置,提供给开发者另一种开发思路,也致力于尝试不同的组件使用和开发方向。
155 lines (128 loc) • 3.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getIconMapper = getIconMapper;
exports.getIcon = getIcon;
exports.LoadStuff = LoadStuff;
exports.LoadLink = LoadLink;
exports.LoadScript = LoadScript;
exports.setUkeLang = setUkeLang;
exports.setUkeLangConfig = setUkeLangConfig;
exports.setUkelliConfig = setUkelliConfig;
exports.getUkelliConfig = getUkelliConfig;
var _basicHelper = require("basic-helper");
var _zhCN = _interopRequireDefault(require("../i18n/zh-CN"));
var _enUS = _interopRequireDefault(require("../i18n/en-US"));
var _iconMapper = _interopRequireDefault(require("./icon-mapper"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var langConfig = {
'zh-CN': _zhCN["default"],
'en-US': _enUS["default"]
};
var defaultLanguage = 'zh-CN';
var language = defaultLanguage;
var ukelliui = {
getImage: function getImage() {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return args.join('/');
},
getKeyMap: function getKeyMap(key) {
return key;
},
getUkeKeyMap: function getUkeKeyMap(key) {
var keyMapper = langConfig[language] || langConfig[defaultLanguage];
return keyMapper[key] || key;
},
queryCAPTCHAData: null,
queryQRCodeData: function queryQRCodeData() {},
avatarImgMap: '',
iconMapper: {},
iconPrefix: function iconPrefix(s) {
return "fa".concat(s, " fa-");
}
};
function getIconMapper() {
return Object.assign({}, _iconMapper["default"], ukelliui.iconMapper);
}
function getIcon(iconName, iconStyle, moreClassName, useIconConfig) {
var iconMapper = getIconMapper();
var iconPrefix = getUkelliConfig('iconPrefix');
if (!iconName) return iconMapper;
var moreClassNameArr = Array.isArray(moreClassName) ? moreClassName : [moreClassName];
var resultStr = (useIconConfig ? (0, _basicHelper.IsFunc)(iconPrefix) ? iconPrefix(iconStyle) : iconPrefix : '') + (iconMapper[iconName] || iconName) + ' ' + moreClassNameArr.join(' ');
return resultStr;
}
function LoadStuff(_ref) {
var src = _ref.src,
onload = _ref.onload,
type = _ref.type;
return new Promise(function (resolve, reject) {
var times = 0;
var loadUrl = src;
function load(element) {
if (times > 2) return 0;
times++;
element.onload = function () {
_basicHelper.Call.apply(void 0, [onload].concat(Array.prototype.slice.call(arguments)));
resolve.apply(void 0, arguments);
};
element.onerror = load;
document.body.appendChild(element);
}
switch (type) {
case 'css':
var link = document.createElement('link');
link.rel = 'stylesheet';
link.href = loadUrl;
load(link);
break;
case 'script':
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = loadUrl;
load(script);
break;
}
});
}
/**
* 加载 link
*
* @export
* @param {object} options { src: string, onload: func }
* @returns
*/
function LoadLink(options) {
options.type = 'css';
return LoadStuff(options);
}
/**
* 加载 script
*
* @export
* @param {object} options { src: string, onload: func }
* @returns
*/
function LoadScript(options) {
options.type = 'script';
return LoadStuff(options);
}
function setUkeLang(lang) {
language = lang;
}
function setUkeLangConfig(config) {
Object.assign(langConfig, config);
}
function setUkelliConfig(config) {
Object.assign(ukelliui, config);
window.$UKE && window.$UKE.registe(config);
return ukelliui;
}
function getUkelliConfig(name) {
var _ukelliui = Object.assign({}, ukelliui);
return name ? _ukelliui[name] || false : _ukelliui;
}
(0, _basicHelper.defineGlobalScope)('$UKE', ukelliui);