UNPKG

tc-ui-toolkit

Version:

React components used to develop tools for the desktop app translationCore

87 lines (67 loc) 9.23 kB
"use strict"; 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==