(function () { "use strict"; angular.module('shared') .factory('NameUtil', [function () { var service = { nameConcat: nameConcat, formatName: formatName, formatUserName: formatUserName, formatStudentDisplayName: formatStudentDisplayName, hasName: hasName, }; return service; //Implementation function nameConcat(first, last, delimiter) { var result = ''; var trimFirst = angular.isString(first) ? first.trim() : ''; var trimLast = angular.isString(last) ? last.trim() : ''; if (trimFirst.length) { result += trimFirst; if (trimLast.length) { result += delimiter; } } if (trimLast.length) { result += trimLast; } return result; } function formatName(first, last, byLastName) { return byLastName ? nameConcat(last, first, ', ') : nameConcat(first, last, ' '); } function formatUserName(first, last, screenName, byLastName) { var name = formatName(first, last, byLastName); return name.length ? name : (angular.isString(screenName) ? screenName : ''); } function formatStudentDisplayName(first, last, screenName) { return first + " " + last + " " + (!first && !last ? screenName : "(" + screenName + ")"); } function hasNamePart(name) { return angular.isString(name) && name.trim().length; } function hasName(first, last) { return hasNamePart(first) || hasNamePart(last); } }]) })();