tc-ui-toolkit
Version:
React components used to develop tools for the desktop app translationCore
87 lines (67 loc) • 9.23 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.punctuationWordSpacing = punctuationWordSpacing;
exports.isIsolatedLeftQuote = isIsolatedLeftQuote;
exports.textIsEmptyInVerseObject = textIsEmptyInVerseObject;
exports.isDeepNestedChild = exports.isNestedMilestone = exports.isWord = void 0;
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
var isWord = function isWord(word) {
return typeof word !== 'string' && (word.word || word.type === 'word');
};
exports.isWord = isWord;
var isNestedMilestone = function isNestedMilestone(word) {
var deepNestedChild = false;
if (word[0] && word[0][0]) {
deepNestedChild = isDeepNestedChild(word);
}
return Array.isArray(word) && word.length > 0 && word[0].type === 'word' || deepNestedChild;
};
exports.isNestedMilestone = isNestedMilestone;
var isDeepNestedChild = function isDeepNestedChild(words) {
var deepNestedChild = false;
for (var i = 0, len = words.length; i < len; i++) {
var wordItem = words[i];
if (wordItem.type === 'word') {
deepNestedChild = true;
return deepNestedChild;
} else {
deepNestedChild = isDeepNestedChild(wordItem);
}
}
return deepNestedChild;
};
/**
* checks to see if there should be space before next word. Returns space unless character
* is type of punctuation. In that case an empty string is returned
* @param {string} verseObject - to test
* @return {string} spacing to use before next word
*/
exports.isDeepNestedChild = isDeepNestedChild;
function punctuationWordSpacing(verseObject) {
var lastChar = verseObject.text.substr(verseObject.text.length - 1);
return ['"', '\'', '-', '“', // LEFT DOUBLE QUOTATION MARK
'‘' // LEFT SINGLE QUOTATION MARK
].includes(lastChar) ? '' : ' '; // check if punctuation and return spacing
}
/**
* see if we need spacing for case before isolated left quote
* @param text
* @return {string}
*/
function isIsolatedLeftQuote(text) {
return text === '“' || // LEFT DOUBLE QUOTATION MARK
text === '‘'; // LEFT SINGLE QUOTATION MARK
}
function textIsEmptyInVerseObject(verseText) {
var emptyVerse = !verseText.verseObjects.some(function (word) {
var condition1 = (word.type === 'word' || word.type === 'text') && word.text.length > 0;
var condition2 = word.text !== '↵↵' && word.text !== '↵' && word.text !== '↵↵↵' && word.text !== '\n\n' && word.text !== '\n' && word.text !== '\n\n\n'; // exclude empty verses that inlcude the return character.
var condition3 = word.type === 'milestone' || condition1;
return condition3 && condition2;
});
return (0, _typeof2["default"])(verseText) === 'object' && emptyVerse;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9TY3JpcHR1cmVQYW5lL2hlbHBlcnMvc3RyaW5nSGVscGVycy5qcyJdLCJuYW1lcyI6WyJpc1dvcmQiLCJ3b3JkIiwidHlwZSIsImlzTmVzdGVkTWlsZXN0b25lIiwiZGVlcE5lc3RlZENoaWxkIiwiaXNEZWVwTmVzdGVkQ2hpbGQiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJ3b3JkcyIsImkiLCJsZW4iLCJ3b3JkSXRlbSIsInB1bmN0dWF0aW9uV29yZFNwYWNpbmciLCJ2ZXJzZU9iamVjdCIsImxhc3RDaGFyIiwidGV4dCIsInN1YnN0ciIsImluY2x1ZGVzIiwiaXNJc29sYXRlZExlZnRRdW90ZSIsInRleHRJc0VtcHR5SW5WZXJzZU9iamVjdCIsInZlcnNlVGV4dCIsImVtcHR5VmVyc2UiLCJ2ZXJzZU9iamVjdHMiLCJzb21lIiwiY29uZGl0aW9uMSIsImNvbmRpdGlvbjIiLCJjb25kaXRpb24zIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUNPLElBQU1BLE1BQU0sR0FBRyxTQUFUQSxNQUFTLENBQUFDLElBQUk7QUFBQSxTQUFLLE9BQU9BLElBQVAsS0FBZ0IsUUFBakIsS0FBK0JBLElBQUksQ0FBQ0EsSUFBTCxJQUFjQSxJQUFJLENBQUNDLElBQUwsS0FBYyxNQUEzRCxDQUFKO0FBQUEsQ0FBbkI7Ozs7QUFFQSxJQUFNQyxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQW9CLENBQUFGLElBQUksRUFBSTtBQUN2QyxNQUFJRyxlQUFlLEdBQUcsS0FBdEI7O0FBRUEsTUFBSUgsSUFBSSxDQUFDLENBQUQsQ0FBSixJQUFXQSxJQUFJLENBQUMsQ0FBRCxDQUFKLENBQVEsQ0FBUixDQUFmLEVBQTJCO0FBQ3pCRyxJQUFBQSxlQUFlLEdBQUdDLGlCQUFpQixDQUFDSixJQUFELENBQW5DO0FBQ0Q7O0FBQ0QsU0FBT0ssS0FBSyxDQUFDQyxPQUFOLENBQWNOLElBQWQsS0FBdUJBLElBQUksQ0FBQ08sTUFBTCxHQUFjLENBQXJDLElBQTBDUCxJQUFJLENBQUMsQ0FBRCxDQUFKLENBQVFDLElBQVIsS0FBaUIsTUFBM0QsSUFBcUVFLGVBQTVFO0FBQ0QsQ0FQTTs7OztBQVNBLElBQU1DLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBb0IsQ0FBQUksS0FBSyxFQUFJO0FBQ3hDLE1BQUlMLGVBQWUsR0FBRyxLQUF0Qjs7QUFFQSxPQUFLLElBQUlNLENBQUMsR0FBRyxDQUFSLEVBQVdDLEdBQUcsR0FBR0YsS0FBSyxDQUFDRCxNQUE1QixFQUFvQ0UsQ0FBQyxHQUFHQyxHQUF4QyxFQUE2Q0QsQ0FBQyxFQUE5QyxFQUFrRDtBQUNoRCxRQUFNRSxRQUFRLEdBQUdILEtBQUssQ0FBQ0MsQ0FBRCxDQUF0Qjs7QUFFQSxRQUFJRSxRQUFRLENBQUNWLElBQVQsS0FBa0IsTUFBdEIsRUFBOEI7QUFDNUJFLE1BQUFBLGVBQWUsR0FBRyxJQUFsQjtBQUNBLGFBQU9BLGVBQVA7QUFDRCxLQUhELE1BR087QUFDTEEsTUFBQUEsZUFBZSxHQUFHQyxpQkFBaUIsQ0FBQ08sUUFBRCxDQUFuQztBQUNEO0FBQ0Y7O0FBRUQsU0FBT1IsZUFBUDtBQUNELENBZk07QUFpQlA7Ozs7Ozs7Ozs7QUFNTyxTQUFTUyxzQkFBVCxDQUFnQ0MsV0FBaEMsRUFBNkM7QUFDbEQsTUFBTUMsUUFBUSxHQUFHRCxXQUFXLENBQUNFLElBQVosQ0FBaUJDLE1BQWpCLENBQXdCSCxXQUFXLENBQUNFLElBQVosQ0FBaUJSLE1BQWpCLEdBQTBCLENBQWxELENBQWpCO0FBQ0EsU0FBUSxDQUFDLEdBQUQsRUFBTSxJQUFOLEVBQVksR0FBWixFQUNOLEdBRE0sRUFDRDtBQUNMLEtBRk0sQ0FFRDtBQUZDLElBR05VLFFBSE0sQ0FHR0gsUUFISCxDQUFELEdBR2lCLEVBSGpCLEdBR3NCLEdBSDdCLENBRmtELENBS2hCO0FBQ25DO0FBRUQ7Ozs7Ozs7QUFLTyxTQUFTSSxtQkFBVCxDQUE2QkgsSUFBN0IsRUFBbUM7QUFDeEMsU0FBUUEsSUFBSSxLQUFLLEdBQVYsSUFBa0I7QUFDakJBLEVBQUFBLElBQUksS0FBSyxHQURqQixDQUR3QyxDQUVqQjtBQUN4Qjs7QUFFTSxTQUFTSSx3QkFBVCxDQUFrQ0MsU0FBbEMsRUFBNkM7QUFDbEQsTUFBTUMsVUFBVSxHQUFHLENBQUNELFNBQVMsQ0FBQ0UsWUFBVixDQUF1QkMsSUFBdkIsQ0FBNEIsVUFBQ3ZCLElBQUQsRUFBVTtBQUN4RCxRQUFNd0IsVUFBVSxHQUFHLENBQUN4QixJQUFJLENBQUNDLElBQUwsS0FBYyxNQUFkLElBQXdCRCxJQUFJLENBQUNDLElBQUwsS0FBYyxNQUF2QyxLQUFrREQsSUFBSSxDQUFDZSxJQUFMLENBQVVSLE1BQVYsR0FBbUIsQ0FBeEY7QUFDQSxRQUFNa0IsVUFBVSxHQUFJekIsSUFBSSxDQUFDZSxJQUFMLEtBQWMsSUFBZCxJQUFzQmYsSUFBSSxDQUFDZSxJQUFMLEtBQWMsR0FBcEMsSUFBMkNmLElBQUksQ0FBQ2UsSUFBTCxLQUFjLEtBQTFELElBQXFFZixJQUFJLENBQUNlLElBQUwsS0FBYyxNQUFkLElBQXdCZixJQUFJLENBQUNlLElBQUwsS0FBYyxJQUF0QyxJQUE4Q2YsSUFBSSxDQUFDZSxJQUFMLEtBQWMsUUFBcEosQ0FGd0QsQ0FFdUc7O0FBQy9KLFFBQU1XLFVBQVUsR0FBRzFCLElBQUksQ0FBQ0MsSUFBTCxLQUFjLFdBQWQsSUFBNkJ1QixVQUFoRDtBQUVBLFdBQU9FLFVBQVUsSUFBSUQsVUFBckI7QUFDRCxHQU5tQixDQUFwQjtBQVFBLFNBQU8seUJBQU9MLFNBQVAsTUFBcUIsUUFBckIsSUFBaUNDLFVBQXhDO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCBjb25zdCBpc1dvcmQgPSB3b3JkID0+ICh0eXBlb2Ygd29yZCAhPT0gJ3N0cmluZycpICYmICh3b3JkLndvcmQgfHwgKHdvcmQudHlwZSA9PT0gJ3dvcmQnKSk7XG5cbmV4cG9ydCBjb25zdCBpc05lc3RlZE1pbGVzdG9uZSA9IHdvcmQgPT4ge1xuICBsZXQgZGVlcE5lc3RlZENoaWxkID0gZmFsc2U7XG5cbiAgaWYgKHdvcmRbMF0gJiYgd29yZFswXVswXSkge1xuICAgIGRlZXBOZXN0ZWRDaGlsZCA9IGlzRGVlcE5lc3RlZENoaWxkKHdvcmQpO1xuICB9XG4gIHJldHVybiBBcnJheS5pc0FycmF5KHdvcmQpICYmIHdvcmQubGVuZ3RoID4gMCAmJiB3b3JkWzBdLnR5cGUgPT09ICd3b3JkJyB8fCBkZWVwTmVzdGVkQ2hpbGQ7XG59O1xuXG5leHBvcnQgY29uc3QgaXNEZWVwTmVzdGVkQ2hpbGQgPSB3b3JkcyA9PiB7XG4gIGxldCBkZWVwTmVzdGVkQ2hpbGQgPSBmYWxzZTtcblxuICBmb3IgKGxldCBpID0gMCwgbGVuID0gd29yZHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBjb25zdCB3b3JkSXRlbSA9IHdvcmRzW2ldO1xuXG4gICAgaWYgKHdvcmRJdGVtLnR5cGUgPT09ICd3b3JkJykge1xuICAgICAgZGVlcE5lc3RlZENoaWxkID0gdHJ1ZTtcbiAgICAgIHJldHVybiBkZWVwTmVzdGVkQ2hpbGQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlZXBOZXN0ZWRDaGlsZCA9IGlzRGVlcE5lc3RlZENoaWxkKHdvcmRJdGVtKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGVlcE5lc3RlZENoaWxkO1xufTtcblxuLyoqXG4gKiBjaGVja3MgdG8gc2VlIGlmIHRoZXJlIHNob3VsZCBiZSBzcGFjZSBiZWZvcmUgbmV4dCB3b3JkLiAgUmV0dXJucyBzcGFjZSB1bmxlc3MgY2hhcmFjdGVyXG4gKiAgICBpcyB0eXBlIG9mIHB1bmN0dWF0aW9uLiAgSW4gdGhhdCBjYXNlIGFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZFxuICogQHBhcmFtIHtzdHJpbmd9IHZlcnNlT2JqZWN0IC0gdG8gdGVzdFxuICogQHJldHVybiB7c3RyaW5nfSBzcGFjaW5nIHRvIHVzZSBiZWZvcmUgbmV4dCB3b3JkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwdW5jdHVhdGlvbldvcmRTcGFjaW5nKHZlcnNlT2JqZWN0KSB7XG4gIGNvbnN0IGxhc3RDaGFyID0gdmVyc2VPYmplY3QudGV4dC5zdWJzdHIodmVyc2VPYmplY3QudGV4dC5sZW5ndGggLSAxKTtcbiAgcmV0dXJuIChbJ1wiJywgJ1xcJycsICctJyxcbiAgICAn4oCcJywgLy8gTEVGVCBET1VCTEUgUVVPVEFUSU9OIE1BUktcbiAgICAn4oCYJywgLy8gTEVGVCBTSU5HTEUgUVVPVEFUSU9OIE1BUktcbiAgXS5pbmNsdWRlcyhsYXN0Q2hhcikpID8gJycgOiAnICc7IC8vIGNoZWNrIGlmIHB1bmN0dWF0aW9uIGFuZCByZXR1cm4gc3BhY2luZ1xufVxuXG4vKipcbiAqIHNlZSBpZiB3ZSBuZWVkIHNwYWNpbmcgZm9yIGNhc2UgYmVmb3JlIGlzb2xhdGVkIGxlZnQgcXVvdGVcbiAqIEBwYXJhbSB0ZXh0XG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0lzb2xhdGVkTGVmdFF1b3RlKHRleHQpIHtcbiAgcmV0dXJuICh0ZXh0ID09PSAn4oCcJykgfHwgLy8gTEVGVCBET1VCTEUgUVVPVEFUSU9OIE1BUktcbiAgICAgICAgICh0ZXh0ID09PSAn4oCYJyk7IC8vIExFRlQgU0lOR0xFIFFVT1RBVElPTiBNQVJLXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZXh0SXNFbXB0eUluVmVyc2VPYmplY3QodmVyc2VUZXh0KSB7XG4gIGNvbnN0IGVtcHR5VmVyc2UgPSAhdmVyc2VUZXh0LnZlcnNlT2JqZWN0cy5zb21lKCh3b3JkKSA9PiB7XG4gICAgY29uc3QgY29uZGl0aW9uMSA9ICh3b3JkLnR5cGUgPT09ICd3b3JkJyB8fCB3b3JkLnR5cGUgPT09ICd0ZXh0JykgJiYgd29yZC50ZXh0Lmxlbmd0aCA+IDA7XG4gICAgY29uc3QgY29uZGl0aW9uMiA9ICh3b3JkLnRleHQgIT09ICfihrXihrUnICYmIHdvcmQudGV4dCAhPT0gJ+KGtScgJiYgd29yZC50ZXh0ICE9PSAn4oa14oa14oa1JykgJiYgKHdvcmQudGV4dCAhPT0gJ1xcblxcbicgJiYgd29yZC50ZXh0ICE9PSAnXFxuJyAmJiB3b3JkLnRleHQgIT09ICdcXG5cXG5cXG4nKTsgLy8gZXhjbHVkZSBlbXB0eSB2ZXJzZXMgdGhhdCBpbmxjdWRlIHRoZSByZXR1cm4gY2hhcmFjdGVyLlxuICAgIGNvbnN0IGNvbmRpdGlvbjMgPSB3b3JkLnR5cGUgPT09ICdtaWxlc3RvbmUnIHx8IGNvbmRpdGlvbjE7XG5cbiAgICByZXR1cm4gY29uZGl0aW9uMyAmJiBjb25kaXRpb24yO1xuICB9KTtcblxuICByZXR1cm4gdHlwZW9mIHZlcnNlVGV4dCA9PT0gJ29iamVjdCcgJiYgZW1wdHlWZXJzZTtcbn1cbiJdfQ==