shineout
Version:
A components library for React
67 lines • 2.25 kB
JavaScript
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
import { util } from "@sheinx/hooks";
var devUseWarning = util.devUseWarning;
export function capitalize(str) {
if (typeof str !== 'string') {
devUseWarning.error('str should be a string');
}
return str && str[0].toUpperCase() + str.slice(1);
}
export function substitute(str, obj) {
if (typeof str === 'string') {
if (str.indexOf('{') < 0) {
return str;
}
return str.replace(/\\?\{([^{}]+)\}/g, function (match, name) {
if (match.charAt(0) === '\\') {
return match.slice(1);
}
return obj[name] === null || obj[name] === undefined ? '' : obj[name];
});
}
if (typeof str === 'function') {
var val = str(obj);
if (val === obj && _typeof(val) === 'object') {
val = Object.assign({}, obj);
}
return val;
}
return '';
}
export function removeProtocol(url) {
if (url.indexOf('http') !== 0) return url;
try {
var _URL = new URL(url),
href = _URL.href,
protocol = _URL.protocol;
return href.slice(protocol.length);
} catch (error) {
return url;
}
}
export function getRTLPosition(position) {
if (!position) return position;
// position.replace('left', 'right').replace('right', 'left')
if (position.indexOf('left') !== -1) {
return position.replace('left', 'right');
}
if (position.indexOf('right') !== -1) {
return position.replace('right', 'left');
}
return position;
}
export function getDirectionIconName() {
var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'left';
var double = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
var rtl = true;
if (mode === 'left') {
if (rtl) {
return double ? 'ArrowRightDouble' : 'AngleRight';
}
return double ? 'ArrowLeftDouble' : 'AngleLeft';
}
if (rtl) {
return double ? 'ArrowLeftDouble' : 'AngleLeft';
}
return double ? 'ArrowRightDouble' : 'AngleRight';
}