{"version":3,"file":"../../widgets/userSettingsTabWidget.js","sources":["widgets/userSettingsTabWidget.js"],"sourcesContent":["\"use strict\";\n\nvar userSettingsWidget = function () {\n var snListTemplate = '';\n var mask = null;\n var userSettingsWidgetParams = {\n model: {},\n url: {},\n template: {\n passTemplate: \"

\\u0412\\u044B \\u0443\\u0432\\u0435\\u0440\\u0435\\u043D\\u044B, \\u0447\\u0442\\u043E \\u0445\\u043E\\u0442\\u0438\\u0442\\u0435 \\u0438\\u0437\\u043C\\u0435\\u043D\\u0438\\u0442\\u044C \\u043F\\u0430\\u0440\\u043E\\u043B\\u044C?

\",\n socialsTemplate: \"

\\u0412\\u044B \\u0443\\u0432\\u0435\\u0440\\u0435\\u043D\\u044B, \\u0447\\u0442\\u043E \\u0445\\u043E\\u0442\\u0438\\u0442\\u0435 \\u043E\\u0442\\u0432\\u044F\\u0437\\u0430\\u0442\\u044C \\u0441\\u043E\\u0446\\u0438\\u0430\\u043B\\u044C\\u043D\\u0443\\u044E \\u0441\\u0435\\u0442\\u044C \\u043E\\u0442 \\u0432\\u0430\\u0448\\u0435\\u0439 \\u0443\\u0447\\u0435\\u0442\\u043D\\u043E\\u0439 \\u0437\\u0430\\u043F\\u0438\\u0441\\u0438?

\"\n }\n };\n\n function unbindHandlers() {\n // $(document).off('click', '#changePassBtn');\n $(document).off('click', '#changeLoginBtn');\n $(document).off('click', '#changePhoneNumberBtn');\n $(document).off('click', '.person-socials-remove');\n $(document).off('click', '.link -no-border social-link-item');\n }\n\n function initMask() {\n $(\".input-phone\").each(function (i, input) {\n window.intlTelInput(input, {\n autoPlaceholder: \"off\",\n initialCountry: \"ru\",\n preferredCountries: ['ru'],\n separateDialCode: true\n });\n var iti = window.intlTelInputGlobals.getInstance(input);\n var maskOptions = null;\n var cData = iti.getSelectedCountryData();\n\n if (cData.iso2 === \"ru\") {\n maskOptions = {\n mask: '000 0000000'\n };\n } else {\n maskOptions = {\n mask: '0000000000[00]'\n };\n }\n\n mask = new IMask(input, maskOptions);\n $(document).on(\"countrychange\", input, function () {\n var iti = window.intlTelInputGlobals.getInstance(input);\n var cData = iti.getSelectedCountryData();\n\n if (cData.iso2 === \"ru\") {\n maskOptions = {\n mask: '000 0000000'\n };\n } else {\n maskOptions = {\n mask: '0000000000[00]'\n };\n }\n\n mask.updateOptions(maskOptions);\n mask.value = \"\";\n });\n });\n }\n\n function reInitMask(input) {\n var iti = window.intlTelInputGlobals.getInstance(input[0]);\n var maskOptions = null;\n var cData = iti.getSelectedCountryData();\n\n if (cData.iso2 === \"ru\") {\n maskOptions = {\n mask: '000 0000000'\n };\n } else {\n maskOptions = {\n mask: '0000000000[00]'\n };\n }\n\n mask.updateOptions(maskOptions);\n }\n\n function resetPassword() {\n modalDialog.busyIndicator(true);\n $.ajax({\n type: 'POST',\n url: userSettingsWidgetParams.url.changePwg,\n data: {\n mail: userSettingsWidgetParams.model.EMail\n },\n success: function success(xhr) {\n modalDialog.busyIndicator(false);\n\n if (xhr.result === 'ok') {\n modalDialog.showBaseWnd({\n title: 'Внимание',\n buttons: [{\n title: 'Хорошо',\n big: true,\n primary: true\n }],\n onDrawContent: function onDrawContent() {\n return xhr.message;\n }\n });\n } else {\n modalDialog.showBaseWnd({\n title: 'Ошибка',\n buttons: [{\n title: 'Хорошо',\n big: true,\n primary: true\n }],\n onDrawContent: function onDrawContent() {\n return xhr.message;\n }\n });\n }\n }\n });\n }\n\n function delSnMapping(sn) {\n $.ajax({\n type: 'POST',\n url: userSettingsWidgetParams.url.delSnAuth,\n data: {\n socialNetwork: sn\n },\n success: function success(data) {\n if (data.Success) {\n // обновляем темплейт с социальными сетями\n $(\".social-link-\".concat(data.Result)).parent().removeClass('-binded');\n } else {\n modalDialog.showBaseWnd({\n title: 'Ошибка',\n buttons: [{\n title: 'Хорошо',\n big: true,\n primary: true\n }],\n onDrawContent: function onDrawContent() {\n return data.Result;\n }\n });\n }\n }\n });\n }\n\n function getSnMapping() {\n $.ajax({\n type: 'GET',\n url: userSettingsWidgetParams.url.getSnMapping,\n success: function success(data) {\n if (data.Success) {\n $('.user-list-body').remove();\n $('.user-list-content').html(snListTemplate.render({\n LoginProviders: data.Result\n }));\n } else {\n modalDialog.showBaseWnd({\n title: 'Ошибка',\n buttons: [{\n title: 'Хорошо',\n big: true,\n primary: true\n }],\n onDrawContent: function onDrawContent() {\n return data.message;\n }\n });\n }\n }\n });\n }\n\n function compileTemplate() {\n snListTemplate = Hogan.compile(userSettingsWidgetParams.template.snList);\n }\n\n function bindHandlers() {\n //$(document).on('click', '#changePassBtn', function () {\n // const $credentailsModal = $('#personCredentialsModal');\n // $credentailsModal.html(userSettingsWidgetParams.template.passTemplate);\n // $credentailsModal.showAsModal({\n // title: 'Внимание',\n // buttons: [\n // {\n // title: 'Да',\n // big: true,\n // primary: true,\n // onClick: () => {\n // resetPassword();\n // },\n // },\n // {\n // title: 'Нет',\n // big: true,\n // },\n // ],\n // });\n //});\n $(document).on('click', '#changeLoginBtn', function () {\n modalDialog.busyIndicator(true);\n modalCodeCountdown.timerOn = false;\n $('#check-confirmation-code').hide();\n $('#resend-check-param').show();\n $.ajax({\n type: 'POST',\n url: userSettingsWidgetParams.url.changeLogin,\n data: {\n mail: userSettingsWidgetParams.model.EMail\n },\n success: function success(xhr) {\n var $credentailsModal = $('#personCredentialsModal');\n $credentailsModal.html(xhr);\n modalDialog.busyIndicator(false);\n $credentailsModal.showAsModal({\n title: 'Смена адреса электронной почты',\n buttons: [{\n title: 'Проверить',\n big: true,\n primary: true,\n onClick: function onClick() {\n var isValid = true;\n var validations = ['validateValuesLength', 'validateRequiredValues', 'validatePattern'];\n var userId = changeLogin.getData().model.userId;\n var doChangeLoginPath = changeLogin.getData().url.doChangeLogin;\n var dataSet = {\n login: $('#NewLogin').val().trim()\n };\n validations.forEach(function (check) {\n var passedValidation = validation[check](dataSet);\n isValid = isValid && passedValidation;\n });\n\n if (isValid) {\n chekLogin('#main-phone-number-modal', dataSet.login, \"Email\").then(function (data) {\n if (data) {\n modalDialog.busyIndicator(true);\n $.ajax({\n type: 'POST',\n url: doChangeLoginPath,\n data: {\n UserId: userId,\n NewLogin: dataSet.login\n },\n success: function success(xhr) {\n if (xhr.Success) {\n modalDialog.showBaseWnd({\n title: 'Адрес электронной почты успешно изменен',\n buttons: [{\n title: 'Хорошо',\n big: true,\n primary: true\n }],\n onDrawContent: function onDrawContent() {\n return xhr.Result;\n }\n });\n $('#profile-email-field-wrapper input').val(dataSet.login);\n userSettingsWidgetParams.model.EMail = dataSet.login;\n modalDialog.busyIndicator(false);\n } else {\n modalDialog.showBaseWnd({\n title: 'Не удалось изменить адрес электронной почты',\n buttons: [{\n title: 'Хорошо',\n big: true,\n primary: true\n }],\n onDrawContent: function onDrawContent() {\n return xhr.Result;\n }\n });\n modalDialog.busyIndicator(false);\n }\n },\n error: function error(xhr) {\n modalDialog.showBaseWnd({\n title: 'Не удалось изменить адрес электронной почты',\n buttons: [{\n title: 'Хорошо',\n big: true,\n primary: true\n }],\n onDrawContent: function onDrawContent() {\n return xhr.Result;\n }\n });\n modalDialog.busyIndicator(false);\n }\n });\n } else {\n modalDialog.showBaseWnd({\n title: 'Не удалось изменить адрес электронной почты',\n buttons: [{\n title: 'Хорошо',\n big: true,\n primary: true\n }],\n onDrawContent: function onDrawContent() {\n return xhr.Result;\n }\n });\n }\n }); // modalDialog.busyIndicator(true);\n // $.ajax({\n // type: 'POST',\n // url: loginData.url.doChangeLogin,\n // data: {\n // userId: loginData.model.userId,\n // NewLogin: dataSet.login,\n // },\n // success: data => {\n // if (data.Success) {\n // location.href = data.Result;\n // } else {\n // modalDialog.busyIndicator(false);\n // modalDialog.showBaseWnd({\n // title: 'Ошибка',\n // buttons: [{\n // title: 'Хорошо',\n // big: true,\n // primary: true,\n // }],\n // onDrawContent: () => data.Result,\n // });\n // }\n // },\n // });\n }\n\n return isValid;\n }\n }, {\n title: 'Отмена',\n big: true\n }]\n });\n }\n });\n });\n $(document).on('click', '#changePhoneNumberBtn', function () {\n modalCodeCountdown.timerOn = false;\n $('#check-confirmation-code').hide();\n $('#resend-check-param').show();\n modalDialog.busyIndicator(true);\n $.ajax({\n type: 'POST',\n url: userSettingsWidgetParams.url.changePhone,\n data: {\n phone: userSettingsWidgetParams.model.Phone\n },\n success: function success(xhr) {\n var $credentailsModal = $('#personCredentialsModal');\n $credentailsModal.html(xhr);\n modalDialog.busyIndicator(false);\n $credentailsModal.showAsModal({\n title: 'Смена номера мобильного телефона',\n \"class\": \" _scroll-none\",\n buttons: [{\n title: 'Проверка номера',\n big: true,\n primary: true,\n onClick: function onClick() {\n var isValid = true;\n var validations = ['validateValuesLength', 'validateRequiredValues', 'validatePattern'];\n var userId = changePhone.getData().model.userId;\n var doChangePhonePath = changePhone.getData().url.doChangePhone;\n var iti = window.intlTelInputGlobals.getInstance($('#NewPhone')[0]);\n var dataSet = {\n phone: iti.getNumber(intlTelInputUtils.numberFormat.E164)\n };\n validations.forEach(function (check) {\n var passedValidation = validation[check](dataSet);\n isValid = isValid && passedValidation;\n });\n\n if (isValid) {\n chekLogin('#main-phone-number-modal', dataSet.phone, \"Phone\").then(function (data) {\n if (data) {\n modalDialog.busyIndicator(true);\n $.ajax({\n type: 'POST',\n url: doChangePhonePath,\n data: {\n UserId: userId,\n NewPhone: dataSet.phone\n },\n success: function success(xhr) {\n if (xhr.Success) {\n modalDialog.showBaseWnd({\n title: 'Номер телефона успешно изменен',\n buttons: [{\n title: 'Хорошо',\n big: true,\n primary: true\n }],\n onDrawContent: function onDrawContent() {\n return xhr.Result;\n }\n });\n $('#profile-phone-field-wrapper input').val(dataSet.phone);\n userSettingsWidgetParams.model.Phone = dataSet.phone;\n reInitMask($('#NewPhone'));\n modalDialog.busyIndicator(false);\n } else {\n modalDialog.showBaseWnd({\n title: 'Не удалось изменить номер телефона',\n buttons: [{\n title: 'Хорошо',\n big: true,\n primary: true\n }],\n onDrawContent: function onDrawContent() {\n return xhr.Result;\n }\n });\n modalDialog.busyIndicator(false);\n }\n },\n error: function error(xhr) {\n modalDialog.showBaseWnd({\n title: 'Не удалось изменить номер телефона',\n buttons: [{\n title: 'Хорошо',\n big: true,\n primary: true\n }],\n onDrawContent: function onDrawContent() {\n return xhr.Result;\n }\n });\n modalDialog.busyIndicator(false);\n }\n });\n } else {\n modalDialog.showBaseWnd({\n title: 'Не удалось изменить номер телефона',\n buttons: [{\n title: 'Хорошо',\n big: true,\n primary: true\n }],\n onDrawContent: function onDrawContent() {\n return xhr.Result;\n }\n });\n }\n }); // modalDialog.busyIndicator(true);\n // $.ajax({\n // type: 'POST',\n // url: phoneData.url.doChangePhone,\n // data: {\n // userId: phoneData.model.userId,\n // NewPhone: dataSet.phone,\n // },\n // success: data => {\n // if (data.Success) {\n // location.href = data.Result;\n // } else {\n // modalDialog.busyIndicator(false);\n // modalDialog.showBaseWnd({\n // title: 'Ошибка',\n // buttons: [{\n // title: 'Хорошо',\n // big: true,\n // primary: true,\n // }],\n // onDrawContent: () => data.Result,\n // });\n // }\n // },\n // });\n }\n\n return isValid;\n }\n }, {\n title: 'Отмена',\n big: true\n }],\n afterOpen: function afterOpen() {\n initMask();\n }\n });\n }\n });\n }); //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n var modalCodeCountdown = {\n timerOn: true,\n timer: function timer(remaining) {\n // $('#check-validate-error').text('');\n var m = Math.floor(remaining / 60);\n var s = remaining % 60;\n m = m < 10 ? '0' + m : m;\n s = s < 10 ? '0' + s : s;\n $('#check-time').html(\"\\u041A\\u043E\\u0434 \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0442\\u0435\\u043B\\u0435\\u043D \\u0435\\u0449\\u0435: \".concat(m, \":\").concat(s, \" \\u0441\\u0435\\u043A.\"));\n remaining -= 1;\n\n if (remaining >= 0 && modalCodeCountdown.timerOn) {\n setTimeout(function () {\n modalCodeCountdown.timer(remaining);\n }, 1000);\n return;\n } else {\n $('#check-confirmation-code').hide();\n $('#resend-check-param').show();\n $('#check-validate-error').text('Код больше не действителен или введен не верно');\n $('#check-time').html('');\n }\n\n if (!modalCodeCountdown.timerOn) {\n return;\n } // Do timeout stuff here\n\n }\n };\n\n function chekConfirmationCode(code) {\n return new Promise(function (resolve, reject) {\n $.ajax({\n type: 'POST',\n url: userSettingsWidgetParams.url.checkCode,\n data: {\n code: code\n },\n success: function success(xhr) {\n if (xhr.Success) {\n resolve(true);\n } else {\n resolve(false);\n }\n }\n });\n });\n }\n\n function maskLoginForDisplay(login, type) {\n if (type === 'Phone') {\n var numberForDisplay = login.split('');\n var countNum = login.length;\n\n if (numberForDisplay[0] === '+') {\n numberForDisplay.shift();\n }\n\n numberForDisplay.splice(0, countNum - 5, '*'.repeat(countNum - 5));\n return \"\\u0423\\u043A\\u0430\\u0436\\u0438\\u0442\\u0435 \\u043A\\u043E\\u0434, \\u0432\\u044B\\u0441\\u043B\\u0430\\u043D\\u043D\\u044B\\u0439 \\u043D\\u0430 \\u043D\\u043E\\u043C\\u0435\\u0440 \\u043C\\u043E\\u0431\\u0438\\u043B\\u044C\\u043D\\u043E\\u0433\\u043E \\u0442\\u0435\\u043B\\u0435\\u0444\\u043E\\u043D\\u0430 \".concat(numberForDisplay.join(''), \".\");\n } else {\n return \"\\u0423\\u043A\\u0430\\u0436\\u0438\\u0442\\u0435 \\u043A\\u043E\\u0434, \\u0432\\u044B\\u0441\\u043B\\u0430\\u043D\\u043D\\u044B\\u0439 \\u043D\\u0430 \\u0430\\u0434\\u0440\\u0435\\u0441 \\u044D\\u043B\\u0435\\u043A\\u0442\\u0440\\u043E\\u043D\\u043D\\u043E\\u0439 \\u043F\\u043E\\u0447\\u0442\\u044B \".concat(login, \".\");\n }\n }\n\n function chekLogin(modalSelector, login, type) {\n modalCodeCountdown.timerOn = false;\n $('#check-confirmation-code').hide();\n $('#resend-check-param').show();\n return new Promise(function (resolve, reject) {\n $.ajax({\n type: 'POST',\n url: userSettingsWidgetParams.url.checkData,\n data: {\n data: login,\n type: type\n },\n success: function success(xhr) {\n if (xhr.Success) {\n $('#check-param').show();\n $('#resend-check-param').hide();\n\n if (modalSelector) {\n $(modalSelector).closest('.modal').modalDlgClose();\n $('#check-code-modal').showAsModal({\n title: \"\\u041F\\u043E\\u0434\\u0442\\u0432\\u0435\\u0440\\u0436\\u0434\\u0435\\u043D\\u0438\\u0435 \".concat(type === 'Phone' ? 'номера телефона' : 'электронной почты'),\n isAutoClosing: false,\n inputs: [{\n id: 'check-confirmation-code',\n placeholder: 'Полученный код'\n }],\n buttons: [{\n title: 'Отправить повторно',\n id: 'resend-check-param',\n big: true,\n primary: false,\n onClick: function onClick() {\n $.ajax({\n type: 'POST',\n url: userSettingsWidgetParams.url.checkData,\n data: {\n data: login,\n type: type\n },\n success: function success(response) {\n if (response.Success) {\n $('#resend-check-param').hide();\n $('#check-confirmation-code').show();\n $('#check-confirmation-code').val('');\n $('#check-validate-error').text('');\n modalCodeCountdown.timerOn = true;\n modalCodeCountdown.timer(xhr.Result.LiveTime * 60);\n } else {\n $('#check-validate-error').text('Ошибка при запросе кода подтверждения');\n }\n }\n });\n }\n }, {\n title: 'Подтвердить',\n big: true,\n primary: true,\n role: 'none',\n onClick: function onClick() {\n var confirmCode = $('#check-confirmation-code').val();\n\n if (!confirmCode) {\n $('#check-validate-error').text('Введите код подтверждения');\n } else {\n chekConfirmationCode(confirmCode).then(function (res) {\n if (res) {\n // Код подтвержден, переходим к регистрации\n $('#check-code-modal').closest('.modal').forceModalDlgClose();\n resolve(res);\n } else {\n // Тут повторная отправка кода подтверждения\n modalCodeCountdown.timerOn = false;\n $('#check-confirmation-code').hide();\n $('#resend-check-param').show();\n }\n });\n }\n }\n }],\n afterOpen: function afterOpen() {\n modalCodeCountdown.timerOn = true;\n modalCodeCountdown.timer(xhr.Result.LiveTime * 60);\n $('#check-validate-error').text('');\n $('.modal-dialog').css('width', '450px'); // $('#resend-check-param').hide();\n\n $('#checked-phone-number').html(maskLoginForDisplay(login, type));\n $('[data-btnrole=close]').on('click', function () {\n $('#check-code-modal').closest('.modal').forceModalDlgClose();\n $('#check-validate-error').text('');\n modalCodeCountdown.timerOn = false;\n });\n }\n });\n }\n } else {\n modalDialog.showBaseWnd({\n title: 'Ошибка',\n buttons: [{\n title: 'Хорошо',\n big: true,\n primary: true\n }],\n onDrawContent: function onDrawContent() {\n return xhr.Result;\n }\n });\n }\n\n $('#check-validate-error').text('');\n }\n });\n });\n } //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n\n $(document).on('click', '.social-link-unbind', function () {\n var _this = this;\n\n var $credentailsModal = $('#personCredentialsModal');\n $credentailsModal.html(userSettingsWidgetParams.template.socialsTemplate);\n $credentailsModal.showAsModal({\n title: 'Внимание',\n buttons: [{\n title: 'Да',\n big: true,\n primary: true,\n onClick: function onClick() {\n var socialNetwork = $($(_this).siblings().first()).attr('data-social');\n delSnMapping(socialNetwork);\n }\n }, {\n title: 'Нет',\n big: true\n }]\n });\n });\n $(document).on('click', '.social-link-item', function () {\n var socialNetwork = $($(this).first()).attr('data-social');\n var url = userSettingsWidgetParams.url.snAuth + socialNetwork;\n window.location.href = url; // обновляем темплейт с социальными сетями\n\n getSnMapping();\n });\n }\n\n function setParams(profileParams) {\n userSettingsWidgetParams = $.extend(true, userSettingsWidgetParams, profileParams);\n }\n\n function init(profileParams) {\n unbindHandlers();\n setParams(profileParams);\n compileTemplate();\n bindHandlers();\n }\n\n return {\n init: init\n };\n}();"],"names":["userSettingsWidget","snListTemplate","mask","userSettingsWidgetParams","model","url","template","passTemplate","socialsTemplate","bindHandlers","$","document","on","modalDialog","busyIndicator","modalCodeCountdown","timerOn","hide","show","ajax","type","changeLogin","data","mail","EMail","success","xhr","$credentailsModal","html","showAsModal","title","buttons","big","primary","onClick","isValid","userId","getData","doChangeLoginPath","doChangeLogin","dataSet","login","val","trim","forEach","check","passedValidation","validation","chekLogin","then","UserId","NewLogin","Success","showBaseWnd","onDrawContent","Result","error","changePhone","phone","Phone","class","doChangePhonePath","doChangePhone","window","intlTelInputGlobals","getInstance","getNumber","intlTelInputUtils","numberFormat","E164","NewPhone","input","maskOptions","getSelectedCountryData","iso2","updateOptions","afterOpen","each","i","intlTelInput","autoPlaceholder","initialCountry","preferredCountries","separateDialCode","iti","IMask","cData","value","timer","remaining","m","Math","floor","s","concat","setTimeout","text","modalSelector","Promise","resolve","reject","checkData","closest","modalDlgClose","isAutoClosing","inputs","id","placeholder","response","LiveTime","role","code","confirmCode","checkCode","res","forceModalDlgClose","css","numberForDisplay","split","countNum","length","shift","splice","repeat","join","_this","this","socialNetwork","siblings","first","attr","sn","delSnAuth","parent","removeClass","snAuth","location","href","getSnMapping","remove","render","LoginProviders","message","init","profileParams","off","extend","Hogan","compile","snList"],"mappings":"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"}