"use strict"; var ErrorCodes; (function (ErrorCodes) { ErrorCodes[ErrorCodes["SUCCESS"] = 1] = "SUCCESS"; ErrorCodes[ErrorCodes["PasswordPlaceholder"] = 2] = "PasswordPlaceholder"; ErrorCodes[ErrorCodes["ReenterPlaceholder"] = 3] = "ReenterPlaceholder"; ErrorCodes[ErrorCodes["HintPlaceholder"] = 4] = "HintPlaceholder"; ErrorCodes[ErrorCodes["LocalUser_NoUsername_Error"] = 5] = "LocalUser_NoUsername_Error"; ErrorCodes[ErrorCodes["Username_Too_Long"] = 6] = "Username_Too_Long"; ErrorCodes[ErrorCodes["UserEmpty_Error_Title"] = 7] = "UserEmpty_Error_Title"; ErrorCodes[ErrorCodes["Username_Error"] = 8] = "Username_Error"; ErrorCodes[ErrorCodes["UsernameContainsAt_Error"] = 9] = "UsernameContainsAt_Error"; ErrorCodes[ErrorCodes["UserExists_Error"] = 10] = "UserExists_Error"; ErrorCodes[ErrorCodes["UserReserved_Error"] = 11] = "UserReserved_Error"; ErrorCodes[ErrorCodes["UserIsComputer_Error_Title"] = 12] = "UserIsComputer_Error_Title"; ErrorCodes[ErrorCodes["PasswordHint_Empty_Error"] = 13] = "PasswordHint_Empty_Error"; ErrorCodes[ErrorCodes["PasswordHint_Invalid_Error"] = 14] = "PasswordHint_Invalid_Error"; ErrorCodes[ErrorCodes["PasswordConfirm_Error"] = 15] = "PasswordConfirm_Error"; ErrorCodes[ErrorCodes["PasswordPolicy_Error"] = 16] = "PasswordPolicy_Error"; ErrorCodes[ErrorCodes["Error_Creating_Account_Warning"] = 17] = "Error_Creating_Account_Warning"; ErrorCodes[ErrorCodes["PasswordEmpty_Error"] = 18] = "PasswordEmpty_Error"; ErrorCodes[ErrorCodes["UsernameFormat_Error"] = 19] = "UsernameFormat_Error"; })(ErrorCodes || (ErrorCodes = {})); var uiHelpers; (function (uiHelpers) { var Validator = (function () { function Validator() { } Validator.prototype.validateUsername = function (userName) { var result = null; if ((userName.value.length) < 1) { result = ErrorCodes.LocalUser_NoUsername_Error; } else if (userName.value.length > 20) { result = ErrorCodes.Username_Too_Long; } else if (userName.value.match(/^\s*$/)) { result = ErrorCodes.UserEmpty_Error_Title; } else if (userName.value.indexOf('@') > -1) { result = ErrorCodes.UsernameContainsAt_Error; } else if (userName.value.match(/^[.*]*[^\"\\\/\[\]\:\|\<\>\+\=\;\,\?\*\%]*$/) === null) { result = ErrorCodes.Username_Error; } else if (userName.value.trim().lastIndexOf(".") === (userName.value.trim().length - 1)) { result = ErrorCodes.Username_Error; } else { result = ErrorCodes.SUCCESS; } return result; }; Validator.prototype.preCheckPassword = function (password, passwordValidate) { var result = null; if (password.value === passwordValidate.value) { result = ErrorCodes.SUCCESS; } else if (password.value.length < 1) { result = ErrorCodes.PasswordPlaceholder; } else if (passwordValidate.value.length < 1) { result = ErrorCodes.ReenterPlaceholder; } else { result = ErrorCodes.PasswordConfirm_Error; } return result; }; Validator.prototype.validateHint = function (password, passwordHint) { var result = null; if ((password.value.length > 0) && (passwordHint.value.length < 1)) { result = ErrorCodes.PasswordHint_Empty_Error; } else if ((password.value.length > 0) && (passwordHint.value.indexOf(password.value) > -1)) { result = ErrorCodes.PasswordHint_Invalid_Error; } else { result = ErrorCodes.SUCCESS; } return result; }; Validator.prototype.validateAll = function (userName, password, passwordValidate, passwordHint) { var result = this.validateUsername(userName); if (result === ErrorCodes.SUCCESS) { result = this.preCheckPassword(password, passwordValidate); if (result === ErrorCodes.SUCCESS) { result = this.validateHint(password, passwordHint); } } return result; }; Validator.prototype.validateUpn = function (upn) { var result = null; if ((upn.value.length) < 1) { result = ErrorCodes.LocalUser_NoUsername_Error; } else if (upn.value.indexOf('@') == -1) { result = ErrorCodes.UsernameFormat_Error; } else if (upn.value.lastIndexOf('@') >= upn.value.lastIndexOf('.')) { result = ErrorCodes.UsernameFormat_Error; } else if (upn.value.match(/^[.*]*[^\"\\\/\[\]\:\|\<\>\+\=\;\,\?\*\%]*$/) === null) { result = ErrorCodes.Username_Error; } else if (upn.value.trim().lastIndexOf(".") === (upn.value.trim().length - 1)) { result = ErrorCodes.Username_Error; } else { result = ErrorCodes.SUCCESS; } return result; }; return Validator; })(); uiHelpers.Validator = Validator; var ErrorUI = (function () { function ErrorUI() { } ErrorUI.prototype.ShowError = function (inputField, errorDiv, error) { if (errorDiv.childNodes.length < 1) { inputField.classList.add('inputState_error'); errorDiv.classList.add('template-tooltip'); var errorParagraph = document.createElement('p'); errorParagraph.setAttribute("aria-hidden", "true"); errorDiv.appendChild(errorParagraph); } errorDiv.setAttribute("aria-label", error); errorDiv.firstChild.textContent = error; errorDiv.parentElement.style.display = 'inline'; }; ErrorUI.prototype.HideError = function (inputField, errorDiv) { errorDiv.parentElement.style.display = 'none'; errorDiv.setAttribute("aria-label", null); if (errorDiv.childNodes.length > 0) { inputField.classList.remove('inputState_error'); errorDiv.classList.remove('template-tooltip'); while (errorDiv.firstChild) { errorDiv.removeChild(errorDiv.firstChild); } } }; return ErrorUI; })(); uiHelpers.ErrorUI = ErrorUI; function SetElementVisibility(container, shouldShow) { container.style.visibility = (shouldShow) ? 'inline' : 'hidden'; } uiHelpers.SetElementVisibility = SetElementVisibility; function LoadCssPromise(head, appRoot, bridge) { return new WinJS.Promise(function (completeDispatch, errorDispatch) { bridge.invoke("CloudExperienceHost.getContext").done(function (context) { var cssList = CloudExperienceHost.GetCssList(appRoot, context); for (var i = 0; i < cssList.length; i++) { CloudExperienceHost.AddCssToHead(head, cssList[i]); } completeDispatch(); }, errorDispatch); }); } uiHelpers.LoadCssPromise = LoadCssPromise; function InvokeEaseOfAccess(element, bridge) { var rect = element.getBoundingClientRect(); return bridge.invoke("CloudExperienceHost.showEaseOfAccessFlyout", new CloudExperienceHost.ShowEaseOfAccessArgs(rect)); } uiHelpers.InvokeEaseOfAccess = InvokeEaseOfAccess; function InvokeInputSwitcher(element, bridge) { var rect = element.getBoundingClientRect(); return bridge.invoke("CloudExperienceHost.showInputSwitchFlyout", rect.left, rect.top, rect.right, rect.bottom); } uiHelpers.InvokeInputSwitcher = InvokeInputSwitcher; function RegisterEaseOfAccess(easeOfAccessElement, bridge) { bridge.invoke("CloudExperienceHost.shouldShowEaseOfAccessControl").done(function (show) { SetElementVisibility(easeOfAccessElement, show); }); bridge.invoke("CloudExperienceHost.Resources.getString", "oobecommon", "EaseOfAccessAccName").done(function (label) { easeOfAccessElement.setAttribute("aria-label", label); easeOfAccessElement.setAttribute("title", label); }); easeOfAccessElement.addEventListener("click", function () { InvokeEaseOfAccess(easeOfAccessElement, bridge); }); } uiHelpers.RegisterEaseOfAccess = RegisterEaseOfAccess; function RegisterInputSwitcher(inputSwitcherElement, bridge) { bridge.invoke("CloudExperienceHost.shouldShowInputSwitchButton").done(function (show) { SetElementVisibility(inputSwitcherElement, show); }); bridge.invoke("CloudExperienceHost.Resources.getString", "oobecommon", "InputSwitchAccName").done(function (label) { inputSwitcherElement.setAttribute("aria-label", label); inputSwitcherElement.setAttribute("title", label); }); inputSwitcherElement.addEventListener("click", function () { InvokeInputSwitcher(inputSwitcherElement, bridge); }); } uiHelpers.RegisterInputSwitcher = RegisterInputSwitcher; })(uiHelpers || (uiHelpers = {}));