{"version":3,"sources":["osulogin-complete.js"],"names":["rememberText","idType","maskNationalID","value","length","checkShowLoginButton","code","currentClass","val","prop","$","loginUri","URLSearchParams","systemId","detailMessage","redirectUri","get","showInfoAlert","newPinMessage","window","then","location","href","changePwdAlert","storedItem","branchID","switchTo","type","setVal","find","user","focus","isFocus","removeClass","html","encodeURIComponent","click","this","attr","tabName","slice","Swal","fire","title","text","icon","allowOutsideClick","showDenyButton","confirmButtonColor","reverseButtons","result","isDenied","fetch","method","body","JSON","acct","headers","toString","stringify","Content-Type","e","isRememberLogin","storedObj","localStorage","setItem","KEY","toUpperCase","removeItem","keyCode","on","preventDefault","confirmButtonText"],"mappings":"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","file":"osulogin-complete.js","sourcesContent":["/* global storedItem, currentClass, code */\r\n'use strict';\r\nvar rememberText = {\r\n idType: '記住我的身分證',\r\n acctType: '記住我的帳號',\r\n};\r\n\r\nfunction maskNationalID(value) {\r\n return value.slice(0, value.length - 4) + '****';\r\n}\r\n\r\nfunction checkShowLoginButton() {\r\n if (code == '-1001' || $('.' + currentClass + '-login .password').val().length < 6) {\r\n $('.' + currentClass + '-login [name=button]').prop('disabled', true);\r\n } else {\r\n $('.' + currentClass + '-login [name=button]').prop('disabled', false);\r\n }\r\n}\r\n\r\n$(function () {\r\n //show SweetAlert\r\n if (\r\n $('#NewPinInfo_Message').val() ||\r\n $('#NewPinInfo_RedirectUri').val() ||\r\n $('#NewPinInfo_DetailMessage').val()\r\n ) {\r\n const newPinMessage = $('#NewPinInfo_Message').val();\r\n const redirectUri = $('#NewPinInfo_RedirectUri').val();\r\n const detailMessage = $('#NewPinInfo_DetailMessage').val();\r\n const loginUri = new URLSearchParams(redirectUri).get('redirectUrl');\r\n const systemId = $('#SystemId').val();\r\n\r\n if (detailMessage && !newPinMessage) {\r\n showInfoAlert(detailMessage).then(() => {\r\n if (loginUri) {\r\n //redirect to complete login\r\n window.location.href = loginUri;\r\n } else {\r\n //redirect to reset pwd\r\n window.location.href = redirectUri;\r\n }\r\n });\r\n } else if (!detailMessage && newPinMessage) {\r\n changePwdAlert(newPinMessage, redirectUri, systemId, loginUri);\r\n } else if (detailMessage && newPinMessage) {\r\n showInfoAlert(detailMessage).then(() =>\r\n changePwdAlert(newPinMessage, redirectUri, systemId, loginUri),\r\n );\r\n }\r\n }\r\n\r\n let branchID = null;\r\n const systemId = encodeURIComponent($('#SystemId').val());\r\n if (storedItem) {\r\n storedItem = JSON.parse(storedItem);\r\n currentClass = storedItem.type;\r\n branchID = storedItem.branchID;\r\n switchTo(currentClass, false);\r\n\r\n if (currentClass === 'account') {\r\n $('.' + currentClass + '-login')\r\n .find('.fakeUserName')\r\n .val(storedItem.user);\r\n $('#id-rememberLogin').prop('checked', false);\r\n $('#account-rememberLogin').prop('checked', true);\r\n let setVal = branchID + storedItem.user;\r\n $('.account-login #UserName').val(setVal);\r\n $('.account-password').focus();\r\n } else if (currentClass === 'id') {\r\n $('.id-login').find('.fakeUserName').val(maskNationalID(storedItem.user));\r\n $('.id-login').find('.NationalId').val(storedItem.user);\r\n $('#id-rememberLogin').prop('checked', true);\r\n $('#account-rememberLogin').prop('checked', false);\r\n $('.id-login').find('.password').focus();\r\n }\r\n } else {\r\n $('.id-login .fakeUserName').focus();\r\n }\r\n\r\n function switchTo(type, isFocus) {\r\n let tabName = '.' + type + '-login';\r\n $('.id-login, .account-login').removeClass('active');\r\n $('.tab-section .tab').removeClass('active');\r\n $(tabName).addClass('active');\r\n $(\"div[data-tab='.\" + type + \"-login']\").addClass('active');\r\n if (isFocus) {\r\n $(`.${type}-login .fakeUserName`).focus();\r\n }\r\n currentClass = type;\r\n $('.remember-text').html(rememberText[type == 'account' ? 'acctType' : 'idType']);\r\n checkShowLoginButton();\r\n }\r\n\r\n $('.tab-section .tab').click(function () {\r\n let tabName = encodeURIComponent($(this).attr('data-tab'));\r\n currentClass = tabName.split('-')[0].slice(1);\r\n switchTo(currentClass, true);\r\n });\r\n\r\n var html = '';\r\n $('.account-login select').html(html);\r\n\r\n $('.id-login,.account-login').on('submit', function (e) {\r\n $('.loading-box').removeClass('d-none');\r\n // setTimeout(function () {\r\n // $('.loading-box').addClass('d-none');\r\n // }, 10000);\r\n var isRememberLogin = $(`#${currentClass}-rememberLogin`).prop('checked');\r\n if (isRememberLogin) {\r\n var user =\r\n currentClass === 'id'\r\n ? $('.id-login .NationalId').val()\r\n : $(this).find('.fakeUserName').val();\r\n var storedObj = {\r\n type: currentClass,\r\n user: user,\r\n };\r\n\r\n if (currentClass === 'account') {\r\n storedObj.branchID = $('.account-login select').val();\r\n }\r\n\r\n localStorage.setItem(KEY, JSON.stringify(storedObj));\r\n } else {\r\n localStorage.removeItem(KEY);\r\n }\r\n return true;\r\n });\r\n\r\n $('.id-login .fakeUserName')\r\n .on('keyup keypress', function (e) {\r\n $(this).val($(this).val().toUpperCase());\r\n var nationalID = $(this).val();\r\n $('.invalid-feedback').html('').removeClass('d-block');\r\n\r\n if (e.keyCode == 13) {\r\n e.preventDefault();\r\n $('.id-login select').focus();\r\n return;\r\n }\r\n })\r\n .on('focus', function (e) {\r\n var value = $('.id-login .NationalId').val();\r\n if (value) {\r\n $(this).val(value);\r\n }\r\n })\r\n .on('blur', function (e) {\r\n var value = $(this).val().toUpperCase();\r\n if (value) {\r\n $('.id-login .NationalId').val(value);\r\n $(this).val(value.slice(0, value.length - 4) + '****');\r\n }\r\n });\r\n\r\n // account part\r\n $('.account-login #fakeUserName, .account-login select').on('change', function () {\r\n let setVal = $('.account-login select').val() + $('.account-login #fakeUserName').val();\r\n $('.account-login #UserName').val(setVal);\r\n });\r\n\r\n // account login\r\n $('.fakeUserName').on('keyup change', function (e) {\r\n $(this).val($(this).val().toUpperCase());\r\n });\r\n\r\n $('select').on('change', function (e) {\r\n checkShowLoginButton();\r\n });\r\n\r\n // disable/active submit button\r\n $('.id-login .password').on('keyup change', function (e) {\r\n checkShowLoginButton();\r\n });\r\n\r\n // disable/active submit button\r\n $('.account-login .password').on('keyup change', function (e) {\r\n checkShowLoginButton();\r\n });\r\n\r\n function showInfoAlert(detailMessage) {\r\n return Swal.fire({\r\n title: '',\r\n text: detailMessage,\r\n icon: 'info',\r\n allowOutsideClick: false,\r\n confirmButtonColor: '#00a99d',\r\n confirmButtonText: '確定',\r\n });\r\n }\r\n\r\n function changePwdAlert(newPinMessage, redirectUri, systemId, loginUri) {\r\n Swal.fire({\r\n title: '',\r\n text: newPinMessage,\r\n icon: 'warning',\r\n allowOutsideClick: false,\r\n showDenyButton: true,\r\n confirmButtonColor: '#00a99d',\r\n confirmButtonText: '變更新密碼',\r\n denyButtonColor: '#e5e5e5',\r\n denyButtonText: '沿用原密碼',\r\n reverseButtons: true,\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n //redirect to reset pwd\r\n window.location.href = redirectUri.toString();\r\n } else if (result.isDenied) {\r\n //call extend warning api\r\n fetch('ExtendResetPwdWarning', {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n acct: '',\r\n systemId: systemId,\r\n }),\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n });\r\n window.location.href = loginUri;\r\n }\r\n });\r\n }\r\n});\r\n"]}