tc-ui-toolkit
Version:
React components used to develop tools for the desktop app translationCore
124 lines (102 loc) • 9.64 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.delay = delay;
exports.getTranslation = getTranslation;
exports.getTitleWithId = getTitleWithId;
exports.getReferenceStr = getReferenceStr;
exports.getTitleStr = getTitleStr;
exports.isLTR = isLTR;
var defaultDirection = 'ltr';
/**
* Delays code execution for a number of ms given.
* @param {ms} ms
*/
function delay(ms) {
return new Promise(function (resolve) {
return setTimeout(resolve, ms);
});
}
/**
* lookup translation for text or key. First looks for a static translation and then tries a dynamic translation
* @param {Function} translate - translation function
* @param {String} text - string or key to translate
* @param {String} deflt - default string to use if no translation is found
* @param {Object} params - Params to use for printing
* @return {String} translated text
*/
function getTranslation(translate, text, deflt) {
var key = text.toLowerCase();
key = key.replace(' ', '_');
var translation;
translation = translate(key);
if (!translation || translation.indexOf('Missing translation key') >= 0) {
// if not translated, return original text
translation = deflt;
}
return translation;
}
/**
* get title with id arranged for language direction
* @param {string} languageName
* @param {string} identifier
* @param {boolean|string} direction
* @param {string} preRelease - pre-release string to add
* @return {string}
*/
function getTitleWithId(languageName, identifier) {
var direction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultDirection;
var preRelease = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
var title;
if (isLTR(direction)) {
title = "".concat(languageName, " (").concat(identifier.toUpperCase(), ")");
} else {
title = "(".concat(identifier.toUpperCase(), ") ").concat(languageName);
}
if (preRelease) {
title = "[".concat(title, "] - ").concat(preRelease);
}
return title;
}
/**
* get reference arranged for language direction
* @param {string} chapter
* @param {string|number} verse
* @param {boolean|string} direction
* @return {string}
*/
function getReferenceStr(chapter, verse) {
var direction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultDirection;
if (isLTR(direction)) {
return "".concat(chapter, ":").concat(verse);
}
return "".concat(verse, ":").concat(chapter);
}
/**
* get title arranged for language direction
* @param {string} first - initial text
* @param {string} second - following text
* @param {boolean|string} direction
* @return {string}
*/
function getTitleStr(first, second) {
var direction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultDirection;
if (isLTR(direction)) {
return "".concat(first, " ").concat(second);
}
return "".concat(second, " ").concat(first);
}
/**
* determine if language direction is ltr. If direction parameter is not
* string then treat as boolean (if true then LTR)
* @param {boolean|string} direction
* @return {boolean} true if LTR
*/
function isLTR(direction) {
if (typeof direction === 'string') {
return direction !== 'rtl';
}
return direction;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9TY3JpcHR1cmVQYW5lL2hlbHBlcnMvdXRpbHMuanMiXSwibmFtZXMiOlsiZGVmYXVsdERpcmVjdGlvbiIsImRlbGF5IiwibXMiLCJQcm9taXNlIiwicmVzb2x2ZSIsInNldFRpbWVvdXQiLCJnZXRUcmFuc2xhdGlvbiIsInRyYW5zbGF0ZSIsInRleHQiLCJkZWZsdCIsImtleSIsInRvTG93ZXJDYXNlIiwicmVwbGFjZSIsInRyYW5zbGF0aW9uIiwiaW5kZXhPZiIsImdldFRpdGxlV2l0aElkIiwibGFuZ3VhZ2VOYW1lIiwiaWRlbnRpZmllciIsImRpcmVjdGlvbiIsInByZVJlbGVhc2UiLCJ0aXRsZSIsImlzTFRSIiwidG9VcHBlckNhc2UiLCJnZXRSZWZlcmVuY2VTdHIiLCJjaGFwdGVyIiwidmVyc2UiLCJnZXRUaXRsZVN0ciIsImZpcnN0Iiwic2Vjb25kIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLElBQU1BLGdCQUFnQixHQUFHLEtBQXpCO0FBRUE7Ozs7O0FBSU8sU0FBU0MsS0FBVCxDQUFlQyxFQUFmLEVBQW1CO0FBQ3hCLFNBQU8sSUFBSUMsT0FBSixDQUFZLFVBQUNDLE9BQUQ7QUFBQSxXQUNqQkMsVUFBVSxDQUFDRCxPQUFELEVBQVVGLEVBQVYsQ0FETztBQUFBLEdBQVosQ0FBUDtBQUdEO0FBRUQ7Ozs7Ozs7Ozs7QUFRTyxTQUFTSSxjQUFULENBQXdCQyxTQUF4QixFQUFtQ0MsSUFBbkMsRUFBeUNDLEtBQXpDLEVBQWdEO0FBQ3JELE1BQUlDLEdBQUcsR0FBR0YsSUFBSSxDQUFDRyxXQUFMLEVBQVY7QUFDQUQsRUFBQUEsR0FBRyxHQUFHQSxHQUFHLENBQUNFLE9BQUosQ0FBWSxHQUFaLEVBQWlCLEdBQWpCLENBQU47QUFDQSxNQUFJQyxXQUFKO0FBQ0FBLEVBQUFBLFdBQVcsR0FBR04sU0FBUyxDQUFDRyxHQUFELENBQXZCOztBQUVBLE1BQUksQ0FBQ0csV0FBRCxJQUFpQkEsV0FBVyxDQUFDQyxPQUFaLENBQW9CLHlCQUFwQixLQUFrRCxDQUF2RSxFQUEyRTtBQUFFO0FBQzNFRCxJQUFBQSxXQUFXLEdBQUdKLEtBQWQ7QUFDRDs7QUFDRCxTQUFPSSxXQUFQO0FBQ0Q7QUFFRDs7Ozs7Ozs7OztBQVFPLFNBQVNFLGNBQVQsQ0FBd0JDLFlBQXhCLEVBQXNDQyxVQUF0QyxFQUFpRztBQUFBLE1BQS9DQyxTQUErQyx1RUFBbkNsQixnQkFBbUM7QUFBQSxNQUFqQm1CLFVBQWlCLHVFQUFKLEVBQUk7QUFDdEcsTUFBSUMsS0FBSjs7QUFFQSxNQUFJQyxLQUFLLENBQUNILFNBQUQsQ0FBVCxFQUFzQjtBQUNwQkUsSUFBQUEsS0FBSyxhQUFNSixZQUFOLGVBQXVCQyxVQUFVLENBQUNLLFdBQVgsRUFBdkIsTUFBTDtBQUNELEdBRkQsTUFFTztBQUNMRixJQUFBQSxLQUFLLGNBQU9ILFVBQVUsQ0FBQ0ssV0FBWCxFQUFQLGVBQW9DTixZQUFwQyxDQUFMO0FBQ0Q7O0FBRUQsTUFBSUcsVUFBSixFQUFnQjtBQUNkQyxJQUFBQSxLQUFLLGNBQU9BLEtBQVAsaUJBQW1CRCxVQUFuQixDQUFMO0FBQ0Q7O0FBRUQsU0FBT0MsS0FBUDtBQUNEO0FBRUQ7Ozs7Ozs7OztBQU9PLFNBQVNHLGVBQVQsQ0FBeUJDLE9BQXpCLEVBQWtDQyxLQUFsQyxFQUF1RTtBQUFBLE1BQTlCUCxTQUE4Qix1RUFBbEJsQixnQkFBa0I7O0FBQzVFLE1BQUlxQixLQUFLLENBQUNILFNBQUQsQ0FBVCxFQUFzQjtBQUNwQixxQkFBVU0sT0FBVixjQUFxQkMsS0FBckI7QUFDRDs7QUFDRCxtQkFBVUEsS0FBVixjQUFtQkQsT0FBbkI7QUFDRDtBQUVEOzs7Ozs7Ozs7QUFPTyxTQUFTRSxXQUFULENBQXFCQyxLQUFyQixFQUE0QkMsTUFBNUIsRUFBa0U7QUFBQSxNQUE5QlYsU0FBOEIsdUVBQWxCbEIsZ0JBQWtCOztBQUN2RSxNQUFJcUIsS0FBSyxDQUFDSCxTQUFELENBQVQsRUFBc0I7QUFDcEIscUJBQVVTLEtBQVYsY0FBbUJDLE1BQW5CO0FBQ0Q7O0FBQ0QsbUJBQVVBLE1BQVYsY0FBb0JELEtBQXBCO0FBQ0Q7QUFFRDs7Ozs7Ozs7QUFNTyxTQUFTTixLQUFULENBQWVILFNBQWYsRUFBMEI7QUFDL0IsTUFBSSxPQUFPQSxTQUFQLEtBQXFCLFFBQXpCLEVBQWtDO0FBQ2hDLFdBQVFBLFNBQVMsS0FBSyxLQUF0QjtBQUNEOztBQUNELFNBQU9BLFNBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGRlZmF1bHREaXJlY3Rpb24gPSAnbHRyJztcblxuLyoqXG4gKiBEZWxheXMgY29kZSBleGVjdXRpb24gZm9yIGEgbnVtYmVyIG9mIG1zIGdpdmVuLlxuICogQHBhcmFtIHttc30gbXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlbGF5KG1zKSB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT5cbiAgICBzZXRUaW1lb3V0KHJlc29sdmUsIG1zKSxcbiAgKTtcbn1cblxuLyoqXG4gKiBsb29rdXAgdHJhbnNsYXRpb24gZm9yIHRleHQgb3Iga2V5LiAgRmlyc3QgbG9va3MgZm9yIGEgc3RhdGljIHRyYW5zbGF0aW9uIGFuZCB0aGVuIHRyaWVzIGEgZHluYW1pYyB0cmFuc2xhdGlvblxuICogQHBhcmFtIHtGdW5jdGlvbn0gdHJhbnNsYXRlIC0gdHJhbnNsYXRpb24gZnVuY3Rpb25cbiAqIEBwYXJhbSB7U3RyaW5nfSB0ZXh0IC0gc3RyaW5nIG9yIGtleSB0byB0cmFuc2xhdGVcbiAqIEBwYXJhbSB7U3RyaW5nfSBkZWZsdCAtIGRlZmF1bHQgc3RyaW5nIHRvIHVzZSBpZiBubyB0cmFuc2xhdGlvbiBpcyBmb3VuZFxuICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyAtIFBhcmFtcyB0byB1c2UgZm9yIHByaW50aW5nXG4gKiBAcmV0dXJuIHtTdHJpbmd9IHRyYW5zbGF0ZWQgdGV4dFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNsYXRpb24odHJhbnNsYXRlLCB0ZXh0LCBkZWZsdCkge1xuICBsZXQga2V5ID0gdGV4dC50b0xvd2VyQ2FzZSgpO1xuICBrZXkgPSBrZXkucmVwbGFjZSgnICcsICdfJyk7XG4gIGxldCB0cmFuc2xhdGlvbjtcbiAgdHJhbnNsYXRpb24gPSB0cmFuc2xhdGUoa2V5KTtcblxuICBpZiAoIXRyYW5zbGF0aW9uIHx8ICh0cmFuc2xhdGlvbi5pbmRleE9mKCdNaXNzaW5nIHRyYW5zbGF0aW9uIGtleScpID49IDApKSB7IC8vIGlmIG5vdCB0cmFuc2xhdGVkLCByZXR1cm4gb3JpZ2luYWwgdGV4dFxuICAgIHRyYW5zbGF0aW9uID0gZGVmbHQ7XG4gIH1cbiAgcmV0dXJuIHRyYW5zbGF0aW9uO1xufVxuXG4vKipcbiAqIGdldCB0aXRsZSB3aXRoIGlkIGFycmFuZ2VkIGZvciBsYW5ndWFnZSBkaXJlY3Rpb25cbiAqIEBwYXJhbSB7c3RyaW5nfSBsYW5ndWFnZU5hbWVcbiAqIEBwYXJhbSB7c3RyaW5nfSBpZGVudGlmaWVyXG4gKiBAcGFyYW0ge2Jvb2xlYW58c3RyaW5nfSBkaXJlY3Rpb25cbiAqIEBwYXJhbSB7c3RyaW5nfSBwcmVSZWxlYXNlIC0gcHJlLXJlbGVhc2Ugc3RyaW5nIHRvIGFkZFxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGl0bGVXaXRoSWQobGFuZ3VhZ2VOYW1lLCBpZGVudGlmaWVyLCBkaXJlY3Rpb24gPSBkZWZhdWx0RGlyZWN0aW9uLCBwcmVSZWxlYXNlID0gJycpIHtcbiAgbGV0IHRpdGxlO1xuXG4gIGlmIChpc0xUUihkaXJlY3Rpb24pKSB7XG4gICAgdGl0bGUgPSBgJHtsYW5ndWFnZU5hbWV9ICgke2lkZW50aWZpZXIudG9VcHBlckNhc2UoKX0pYDtcbiAgfSBlbHNlIHtcbiAgICB0aXRsZSA9IGAoJHtpZGVudGlmaWVyLnRvVXBwZXJDYXNlKCl9KSAke2xhbmd1YWdlTmFtZX1gO1xuICB9XG5cbiAgaWYgKHByZVJlbGVhc2UpIHtcbiAgICB0aXRsZSA9IGBbJHt0aXRsZX1dIC0gJHtwcmVSZWxlYXNlfWA7XG4gIH1cblxuICByZXR1cm4gdGl0bGU7XG59XG5cbi8qKlxuICogZ2V0IHJlZmVyZW5jZSBhcnJhbmdlZCBmb3IgbGFuZ3VhZ2UgZGlyZWN0aW9uXG4gKiBAcGFyYW0ge3N0cmluZ30gY2hhcHRlclxuICogQHBhcmFtIHtzdHJpbmd8bnVtYmVyfSB2ZXJzZVxuICogQHBhcmFtIHtib29sZWFufHN0cmluZ30gZGlyZWN0aW9uXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZWZlcmVuY2VTdHIoY2hhcHRlciwgdmVyc2UsIGRpcmVjdGlvbiA9IGRlZmF1bHREaXJlY3Rpb24pIHtcbiAgaWYgKGlzTFRSKGRpcmVjdGlvbikpIHtcbiAgICByZXR1cm4gYCR7Y2hhcHRlcn06JHt2ZXJzZX1gO1xuICB9XG4gIHJldHVybiBgJHt2ZXJzZX06JHtjaGFwdGVyfWA7XG59XG5cbi8qKlxuICogZ2V0IHRpdGxlIGFycmFuZ2VkIGZvciBsYW5ndWFnZSBkaXJlY3Rpb25cbiAqIEBwYXJhbSB7c3RyaW5nfSBmaXJzdCAtIGluaXRpYWwgdGV4dFxuICogQHBhcmFtIHtzdHJpbmd9IHNlY29uZCAtIGZvbGxvd2luZyB0ZXh0XG4gKiBAcGFyYW0ge2Jvb2xlYW58c3RyaW5nfSBkaXJlY3Rpb25cbiAqIEByZXR1cm4ge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRpdGxlU3RyKGZpcnN0LCBzZWNvbmQsIGRpcmVjdGlvbiA9IGRlZmF1bHREaXJlY3Rpb24pIHtcbiAgaWYgKGlzTFRSKGRpcmVjdGlvbikpIHtcbiAgICByZXR1cm4gYCR7Zmlyc3R9ICR7c2Vjb25kfWA7XG4gIH1cbiAgcmV0dXJuIGAke3NlY29uZH0gJHtmaXJzdH1gO1xufVxuXG4vKipcbiAqIGRldGVybWluZSBpZiBsYW5ndWFnZSBkaXJlY3Rpb24gaXMgbHRyLiAgSWYgZGlyZWN0aW9uIHBhcmFtZXRlciBpcyBub3RcbiAqICAgc3RyaW5nIHRoZW4gdHJlYXQgYXMgYm9vbGVhbiAoaWYgdHJ1ZSB0aGVuIExUUilcbiAqIEBwYXJhbSB7Ym9vbGVhbnxzdHJpbmd9IGRpcmVjdGlvblxuICogQHJldHVybiB7Ym9vbGVhbn0gdHJ1ZSBpZiBMVFJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTFRSKGRpcmVjdGlvbikge1xuICBpZiAodHlwZW9mIGRpcmVjdGlvbiA9PT0gJ3N0cmluZycpe1xuICAgIHJldHVybiAoZGlyZWN0aW9uICE9PSAncnRsJyk7XG4gIH1cbiAgcmV0dXJuIGRpcmVjdGlvbjtcbn1cbiJdfQ==