{"version":3,"sources":["webpack:///./packages/jquery-fancy-placeholder/index.js","webpack:///./ui/shared/loading-image/jquery/index.js","webpack:///./ui/features/login/jquery/LoginFormSwitcher.js","webpack:///./public/javascripts/translations/pseudonyms.login.js","webpack:///./ui/shims/dummyI18nResource.js?191f","webpack:///./ui/features/login/jquery/index.js","webpack:///./ui/features/login/index.js"],"names":["fn","fancyPlaceholder","pollingInterval","foundInputsAndLables","hideOrShowLabels","each","i","inputAndLable","val","this","$input","$label","attr","addClass","wrapInner","css","focus","blur","removeClass","bind","get","triggerHandler","e","push","window","setInterval","$","loadingImg","options","length","dir","getComputedStyle","direction","$obj","filter","list","children","remove","data","forEach","item","img","pop","arguments","image_files","extend","defaults","image","normal","image_size","paddingTop","vertical","outerHeight","height","parseInt","isNaN","paddingLeft","horizontal","outerWidth","width","zIndex","$imageHolder","document","createElement","$image","url","append","position","top","left","offset","small","loadingImage","LoginFormSwitcher","constructor","$loginForm","$forgotPasswordForm","switchToLogin","hide","show","find","switchToForgotPassword","mergeI18nTranslations","JSON","parse","scoped","click","event","preventDefault","template","path","signupDialog","I18n","t","formSubmit","object_name","required","beforeSubmit","_data","success","flashMessage","htmlEscape","wrappers","email_address","error","submit","_event","getFormData","unique_id","formErrors","password","ready","switcher"],"mappings":"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","file":"login-c-d597d949bc.js","sourcesContent":["/*\n * Copyright (C) 2011 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see .\n */\n\n// markup required:\n// \n//\n// css required:\n// span.field-with-fancyplaceholder{display:block;display:inline-block;position:relative;vertical-align:top;}\n// span.field-with-fancyplaceholder label.placeholder{color:#999;cursor:text;pointer-events:none;}\n// span.field-with-fancyplaceholder label.placeholder span{position:absolute;z-index:2;-webkit-user-select:none;padding:3px 6px;}\n// span.field-with-fancyplaceholder label.focus{color:#ccc;}\n// span.field-with-fancyplaceholder label.hidden{color:#fff;}\n// span.field-with-fancyplaceholder input.invalid{background:#ffffc5;color:#F30;}\n// span.field-with-fancyplaceholder input.editing{color:#000;background:none repeat scroll 0 0 transparent;overflow:hidden;}\n//\n// then: $(\".field-with-fancyplaceholder input\").fancyPlaceholder();\n\nimport $ from 'jquery'\n\n$.fn.fancyPlaceholder = function() {\n let pollingInterval,\n foundInputsAndLables = []\n\n function hideOrShowLabels() {\n $.each(foundInputsAndLables, (i, inputAndLable) => {\n inputAndLable[1][inputAndLable[0].val() ? 'hide' : 'show']()\n })\n }\n\n return this.each(function() {\n const $input = $(this),\n $label = $('label[for=' + $input.attr('id') + ']')\n\n $label\n .addClass('placeholder')\n .wrapInner('')\n .css({\n 'font-family': $input.css('font-family'),\n 'font-size': $input.css('font-size')\n })\n\n $input\n .focus(() => {\n $label.addClass('focus', 300)\n })\n .blur(() => {\n $label.removeClass('focus', 300)\n })\n .bind('keyup', hideOrShowLabels)\n\n // if this was already focused before we got here, make it light gray now. sorry, ie7 cant do :focus selector, it doesn't get this.\n try {\n if ($('input:focus').get(0) == this) {\n $input.triggerHandler('focus')\n }\n } catch (e) {}\n\n foundInputsAndLables.push([$input, $label])\n\n if (!pollingInterval) {\n window.setInterval(hideOrShowLabels, 100)\n }\n })\n}\n","/*\n * Copyright (C) 2011 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see .\n */\n\nimport $ from 'jquery'\n\n// Shows an ajax-loading image on the given object.\n$.fn.loadingImg = function (options) {\n if (!this || this.length === 0) {\n return this\n }\n const dir = window.getComputedStyle(this[0]).direction || 'ltr'\n\n const $obj = this.filter(':first')\n let list\n if (options === 'hide' || options === 'remove') {\n $obj.children('.loading_image').remove()\n list = $obj.data('loading_images') || []\n list.forEach(item => {\n if (item) {\n item.remove()\n }\n })\n $obj.data('loading_images', null)\n this.css('margin-inline-end', '')\n return this\n } else if (options === 'remove_once') {\n $obj.children('.loading_image').remove()\n list = $obj.data('loading_images') || []\n const img = list.pop()\n if (img) {\n img.remove()\n }\n $obj.data('loading_images', list)\n return this\n } else if (options === 'register_image' && arguments.length === 3) {\n $.fn.loadingImg.image_files[arguments[1]] = arguments[2]\n return this\n }\n options = $.extend({}, $.fn.loadingImg.defaults, options)\n let image = $.fn.loadingImg.image_files.normal\n if (options.image_size && $.fn.loadingImg.image_files[options.image_size]) {\n image = $.fn.loadingImg.image_files[options.image_size]\n }\n if (options.paddingTop) {\n options.vertical = options.paddingTop\n }\n let paddingTop = 0\n if (options.vertical) {\n if (options.vertical === 'top') {\n // nothing to do\n } else if (options.vertical === 'bottom') {\n paddingTop = $obj.outerHeight()\n } else if (options.vertical === 'middle') {\n paddingTop = $obj.outerHeight() / 2 - image.height / 2\n } else {\n paddingTop = parseInt(options.vertical, 10)\n // eslint-disable-next-line no-restricted-globals\n if (isNaN(paddingTop)) {\n paddingTop = 0\n }\n }\n }\n let paddingLeft = 0\n if (options.horizontal) {\n if (options.horizontal === 'left') {\n // nothing to do\n } else if (options.horizontal === 'right') {\n paddingLeft = $obj.outerWidth() - image.width\n } else if (options.horizontal === 'right!') {\n paddingLeft = dir === 'ltr' ? $obj.outerWidth() + 5 : -5 - (image.width || 16)\n this.css({'margin-inline-end': '16px'})\n } else if (options.horizontal === 'middle') {\n paddingLeft = $obj.outerWidth() / 2 - image.width / 2\n } else {\n paddingLeft = parseInt(options.horizontal, 10)\n // eslint-disable-next-line no-restricted-globals\n if (isNaN(paddingLeft)) {\n paddingLeft = 0\n }\n }\n }\n const zIndex = $obj.zIndex() + 1\n const $imageHolder = $(document.createElement('div')).addClass('loading_image_holder')\n const $image = $(document.createElement('img')).attr('src', image.url)\n $imageHolder.append($image)\n list = $obj.data('loading_images') || []\n list.push($imageHolder)\n $obj.data('loading_images', list)\n\n if (!$obj.css('position') || $obj.css('position') === 'static') {\n const offset = $obj.offset()\n let top = offset.top,\n left = offset.left\n if (options.vertical) {\n top += paddingTop\n }\n if (options.horizontal) {\n left += paddingLeft\n }\n $imageHolder.css({\n zIndex,\n position: 'absolute',\n top,\n left\n })\n $('body').append($imageHolder)\n } else {\n $imageHolder.css({\n zIndex,\n position: 'absolute',\n top: paddingTop,\n left: paddingLeft\n })\n $obj.append($imageHolder)\n }\n return $(this)\n}\n$.fn.loadingImg.defaults = {paddingTop: 0, image_size: 'normal', vertical: 0, horizontal: 0}\n$.fn.loadingImg.image_files = {\n normal: {url: '/images/ajax-loader.gif', width: 32, height: 32},\n small: {url: '/images/ajax-loader-small.gif', width: 16, height: 16}\n}\n$.fn.loadingImage = $.fn.loadingImg\n","/*\n * Copyright (C) 2016 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see .\n */\n\nclass LoginFormSwitcher {\n constructor($loginForm, $forgotPasswordForm) {\n this.$loginForm = $loginForm\n this.$forgotPasswordForm = $forgotPasswordForm\n }\n\n switchToLogin() {\n this.$forgotPasswordForm.hide()\n this.$loginForm.show()\n this.$loginForm.find('input:visible:first').focus()\n }\n\n switchToForgotPassword() {\n this.$loginForm.hide()\n this.$forgotPasswordForm.show()\n this.$forgotPasswordForm.find('input:visible:first').focus()\n }\n}\n\nexport default LoginFormSwitcher\n","// this file was auto-generated by rake i18n:generate_js.\n// you probably shouldn't edit it directly\nimport mergeI18nTranslations from '@canvas/i18n/mergeI18nTranslations.js';\n\n// we use JSON.parse here instead of just loading it as a javascript object literal\n// because according to https://v8.dev/blog/cost-of-javascript-2019#json that is faster\nmergeI18nTranslations(JSON.parse(\"{\\\"ar\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"تسجيل دخول غير صالح\\\",\\\"invalid_password\\\":\\\"كلمة مرور غير صالحة\\\",\\\"parent_signup\\\":\\\"تسجيل ولي الأمر\\\"}},\\\"your_password_recovery_instructions_will_be_sent_t_1b7991f5\\\":\\\"سيتم إرسال إرشادات استعادة كلمة المرور إلى *%{email_address}*. قد يستغرق هذا حتى 30 دقيقة. تأكد من التحقق من صندوق البريد العشوائي.\\\"},\\\"ca\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Inici de sessió no vàlid\\\",\\\"invalid_password\\\":\\\"Contrasenya no vàlida\\\",\\\"parent_signup\\\":\\\"Registre principal\\\"}},\\\"your_password_recovery_instructions_will_be_sent_t_1b7991f5\\\":\\\"Les instruccions per recuperar la vostra contrasenya s'enviaran a *%{email_address}*. Pot ser que trigui fins a 30 minuts. Assegureu-vos de comprovar la bústia de correu brossa.\\\"},\\\"cy\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Mewngofnodi annilys\\\",\\\"invalid_password\\\":\\\"Cyfrinair annilys\\\",\\\"parent_signup\\\":\\\"Cofrestru Rhieni\\\"}},\\\"your_password_recovery_instructions_will_be_sent_t_1b7991f5\\\":\\\"Bydd eich cyfarwyddiadau adfer cyfrinair yn cael ei anfon at *%{email_address}*. Gall hyn gymryd hyd at 30munud. Cofiwch edrych yn eich blwch sbam.\\\"},\\\"da\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Ugyldigt login\\\",\\\"invalid_password\\\":\\\"Ugyldig adgangskode\\\",\\\"parent_signup\\\":\\\"Forældretilmelding\\\"}},\\\"your_password_recovery_instructions_will_be_sent_t_1b7991f5\\\":\\\"Dine instruktioner til gendannelse af adgangskode sendes til *%{email_address}*. Dette kan tage op til 30 minutter. Sørg for at tjekke i din uønskede post.\\\"},\\\"da-x-k12\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Ugyldigt login\\\",\\\"invalid_password\\\":\\\"Ugyldig adgangskode\\\",\\\"parent_signup\\\":\\\"Forældretilmelding\\\"}},\\\"your_password_recovery_instructions_will_be_sent_t_1b7991f5\\\":\\\"Dine instruktioner til gendannelse af adgangskode sendes til *%{email_address}*. Dette kan tage op til 30 minutter. Sørg for at tjekke i din uønskede post.\\\"},\\\"de\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Ungültige Zugangskennung\\\",\\\"invalid_password\\\":\\\"Ungültiges Kennwort\\\",\\\"parent_signup\\\":\\\"Elternanmeldung\\\"}},\\\"your_password_recovery_instructions_will_be_sent_t_1b7991f5\\\":\\\"Die Anweisung zur Wiederherstellung Ihres Kennworts werden an *%{email_address}* gesendet. Das kann bis zu 30 Minuten in Anspruch nehmen. Bitte überprüfen Sie auch Ihren Spam-Ordner.\\\"},\\\"el\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Μη έγκυρη σύνδεση\\\",\\\"invalid_password\\\":\\\"Μη έγκυρος κωδικός πρόσβασης\\\",\\\"parent_signup\\\":\\\"Εγγραφή Γονέα\\\"}}},\\\"en\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Invalid login\\\",\\\"invalid_password\\\":\\\"Invalid password\\\",\\\"parent_signup\\\":\\\"Parent Signup\\\"}},\\\"your_password_recovery_instructions_will_be_sent_t_1b7991f5\\\":\\\"Your password recovery instructions will be sent to *%{email_address}*. This may take up to 30 minutes. Make sure to check your spam box.\\\"},\\\"en-AU\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Invalid login\\\",\\\"invalid_password\\\":\\\"Invalid password\\\",\\\"parent_signup\\\":\\\"Parent Signup\\\"}},\\\"your_password_recovery_instructions_will_be_sent_t_1b7991f5\\\":\\\"Your password recovery instructions will be sent to *%{email_address}*. This may take up to 30 minutes. Make sure to check your spam box.\\\"},\\\"en-CA\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Invalid login\\\",\\\"invalid_password\\\":\\\"Invalid password\\\",\\\"parent_signup\\\":\\\"Parent Signup\\\"}},\\\"your_password_recovery_instructions_will_be_sent_t_1b7991f5\\\":\\\"Your password recovery instructions will be sent to *%{email_address}*. This may take up to 30 minutes. Make sure to check your spam box.\\\"},\\\"en-GB\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Invalid login\\\",\\\"invalid_password\\\":\\\"Invalid password\\\",\\\"parent_signup\\\":\\\"Parent Signup\\\"}},\\\"your_password_recovery_instructions_will_be_sent_t_1b7991f5\\\":\\\"Your password recovery instructions will be sent to *%{email_address}*. This may take up to 30 minutes. Make sure to check your spam box.\\\"},\\\"es\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Inicio de Sesión Inválida\\\",\\\"invalid_password\\\":\\\"Contraseña inválida\\\",\\\"parent_signup\\\":\\\"Registro para padres\\\"}},\\\"your_password_recovery_instructions_will_be_sent_t_1b7991f5\\\":\\\"Las instrucciones para que recupere su contraseña se enviarán a *%{email_address}*. Esto podría tardar hasta 30 minutos. Asegúrese de verificar su casilla de correo no deseado.\\\"},\\\"fa\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"ورود معتبر نیست\\\",\\\"invalid_password\\\":\\\"رمز عبور معتبر نیست\\\",\\\"parent_signup\\\":\\\"ثبت نام والدین\\\"}}},\\\"fi\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Virheellinen sisäänkirjautumistunnus\\\",\\\"invalid_password\\\":\\\"Virheellinen salasana\\\",\\\"parent_signup\\\":\\\"Vanhempien rekisteröityminen\\\"}},\\\"your_password_recovery_instructions_will_be_sent_t_1b7991f5\\\":\\\"Salasanasi palautusohjeet lähetetään kohteeseen *%{email_address}*. Tämä saattaa kestää 30 minuuttia. Varmista, että tarkistat roskapostilaatikon.\\\"},\\\"fr\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Nom de connexion incorrect\\\",\\\"invalid_password\\\":\\\"Mot de passe non valide\\\",\\\"parent_signup\\\":\\\"Inscription des parents\\\"}},\\\"your_password_recovery_instructions_will_be_sent_t_1b7991f5\\\":\\\"Les instructions de récupération de votre mot de passe seront envoyées à *%{email_address}*. Cela peut prendre jusqu’à 30 minutes. Pensez à bien vérifier votre dossier de spams.\\\"},\\\"fr-CA\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Nom de connexion incorrect\\\",\\\"invalid_password\\\":\\\"Mot de passe non valide\\\",\\\"parent_signup\\\":\\\"Inscription parentale\\\"}},\\\"your_password_recovery_instructions_will_be_sent_t_1b7991f5\\\":\\\"Vos instructions de récupération de mot de passe seront envoyées à *%{email_address}*. Ceci peut prendre jusqu’à 30 minutes. Assurez-vous de vérifier votre boîte de pourriels.\\\"},\\\"he\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"לוג-אין שגוי\\\",\\\"invalid_password\\\":\\\"סיסמה שגויה\\\",\\\"parent_signup\\\":\\\"הזדהות הורה\\\"}}},\\\"ht\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Koneksyon envalid\\\",\\\"invalid_password\\\":\\\"Modpas envalid\\\",\\\"parent_signup\\\":\\\"Enskripsyon Paran\\\"}},\\\"your_password_recovery_instructions_will_be_sent_t_1b7991f5\\\":\\\"Y ap voye enstriksyon pou ka rekipere modpas ou sou *%{email_address}*. Sa kapab pran jiska 30 minit. Asire w ou gade nan imèl endezirab yo.\\\"},\\\"hu\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Sikertelen bejelentkezés\\\",\\\"invalid_password\\\":\\\"Helytelen jelszó\\\",\\\"parent_signup\\\":\\\"Szülői regisztráció\\\"}}},\\\"hy\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Սխալ մուտքային անուն\\\",\\\"invalid_password\\\":\\\"Սխալ գաղտնաբառ\\\",\\\"parent_signup\\\":\\\"Ծնողի գրանցում\\\"}}},\\\"is\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Ógild innskráning\\\",\\\"invalid_password\\\":\\\"Ógilt lykilorð\\\",\\\"parent_signup\\\":\\\"Skráning foreldris\\\"}},\\\"your_password_recovery_instructions_will_be_sent_t_1b7991f5\\\":\\\"Leiðbeiningar um endurstillingu aðgangsorðs verða sendar í *%{email_address}*. Það gæti tekið allt að 30 mínútur. Passaðu að athuga í amapósthólfið þitt.\\\"},\\\"it\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Accesso non valido\\\",\\\"invalid_password\\\":\\\"Password non valido\\\",\\\"parent_signup\\\":\\\"Registrazione genitore\\\"}},\\\"your_password_recovery_instructions_will_be_sent_t_1b7991f5\\\":\\\"Le istruzioni per il recupero della tua password saranno inviate a *%{email_address}*. Questo processo potrebbe richiedere fino a 30 minuti. Assicurati di controllare la cartella dello spam.\\\"},\\\"ja\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"無効なログインです\\\",\\\"invalid_password\\\":\\\"無効なパスワードです\\\",\\\"parent_signup\\\":\\\"親のサインアップ\\\"}},\\\"your_password_recovery_instructions_will_be_sent_t_1b7991f5\\\":\\\"パスワードリカバリ手順が *%{email_address}* に送信されます。これには最大 30 分かかる場合があります。迷惑メールをチェックするようにしてください。\\\"},\\\"ko\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"유효하지 않은 로그인\\\",\\\"invalid_password\\\":\\\"유효하지 않은 암호\\\",\\\"parent_signup\\\":\\\"부모 등록\\\"}}},\\\"mi\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Ehara tēnei i te takiurutanga tika\\\",\\\"invalid_password\\\":\\\"kupuhipa muhu\\\",\\\"parent_signup\\\":\\\"mātua haina\\\"}},\\\"your_password_recovery_instructions_will_be_sent_t_1b7991f5\\\":\\\"Tō kupuhuna whakaora tohutohu ka tukuna atu kī *%{email_address}*. Ka mahi pea tēnei i roto i te 30 meneti. Kia mau me tīpako tō poaka mokumahu.\\\"},\\\"nb\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Ugyldig logg inn\\\",\\\"invalid_password\\\":\\\"Ugyldig passord\\\",\\\"parent_signup\\\":\\\"Påmelding for foreldre\\\"}},\\\"your_password_recovery_instructions_will_be_sent_t_1b7991f5\\\":\\\"Instruksjoner for gjenoppretting av passord blir sendt til *%{email_address}*. Dette kan ta opptil 30 minutter. Sørg for å sjekke spaminnboksen.\\\"},\\\"nb-x-k12\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Ugyldig logg inn\\\",\\\"invalid_password\\\":\\\"Ugyldig passord\\\",\\\"parent_signup\\\":\\\"Påmelding for foreldre\\\"}},\\\"your_password_recovery_instructions_will_be_sent_t_1b7991f5\\\":\\\"Instruksjoner for gjenoppretting av passord blir sendt til *%{email_address}*. Dette kan ta opptil 30 minutter. Sørg for å sjekke spaminnboksen.\\\"},\\\"nl\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Ongeldige aanmelding\\\",\\\"invalid_password\\\":\\\"Ongeldig wachtwoord\\\",\\\"parent_signup\\\":\\\"Ouderlijke aanmelding\\\"}},\\\"your_password_recovery_instructions_will_be_sent_t_1b7991f5\\\":\\\"De instructies voor wachtwoordherstel worden verzonden naar *%{email_address}*. Dat kan 30 minuten duren. Vergeet niet je map met spam te controleren.\\\"},\\\"nn\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Ugyldig pålogging\\\",\\\"invalid_password\\\":\\\"Ugyldig passord\\\",\\\"parent_signup\\\":\\\"Registrering for foreldre\\\"}}},\\\"pl\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Nieprawidłowa nazwa logowania\\\",\\\"invalid_password\\\":\\\"Niepoprawne hasło\\\",\\\"parent_signup\\\":\\\"Rejestracja rodziców\\\"}},\\\"your_password_recovery_instructions_will_be_sent_t_1b7991f5\\\":\\\"Instrukcję odzyskiwania hasła otrzymasz pod adresem *%{email_address}*. Może to potrwać maksymalnie 30 minut. Sprawdź skrzynkę ze spamem.\\\"},\\\"pt\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Login inválido\\\",\\\"invalid_password\\\":\\\"Senha inválida\\\",\\\"parent_signup\\\":\\\"Inscrição de pais\\\"}},\\\"your_password_recovery_instructions_will_be_sent_t_1b7991f5\\\":\\\"As instruções de recuperação da sua palavra-passe serão enviadas para *%{email_address}*. Isto pode demorar até 30 minutos. Certifique-se de verificar a sua caixa de spam.\\\"},\\\"pt-BR\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Login inválido\\\",\\\"invalid_password\\\":\\\"Senha inválida\\\",\\\"parent_signup\\\":\\\"Registro matriz\\\"}},\\\"your_password_recovery_instructions_will_be_sent_t_1b7991f5\\\":\\\"Suas instruções de recuperação de senha serão enviadas para *%{email_address}*. Isso pode levar até 30 minutos. Certifique-se de verificar sua caixa de spam.\\\"},\\\"ru\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Неверные данные входа\\\",\\\"invalid_password\\\":\\\"Неверный пароль\\\",\\\"parent_signup\\\":\\\"Регистрация на родительском уровне\\\"}},\\\"your_password_recovery_instructions_will_be_sent_t_1b7991f5\\\":\\\"Инструкции по восстановлению вашего пароля будут отправлены на *%{email_address}*. Это может занять до 30 минут. Не забудьте проверить папку для спама.\\\"},\\\"sl\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Neveljavna prijava\\\",\\\"invalid_password\\\":\\\"Neveljavno geslo\\\",\\\"parent_signup\\\":\\\"Včlanitev starša\\\"}}},\\\"sv\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Ogiltig inloggning\\\",\\\"invalid_password\\\":\\\"Ogiltigt lösenord\\\",\\\"parent_signup\\\":\\\"Registrering för förälder\\\"}},\\\"your_password_recovery_instructions_will_be_sent_t_1b7991f5\\\":\\\"Återställningsinstruktioner för ditt lösenord kommer att skickas till *%{email_address}*. Detta kan ta upp till 30 minuter. Se till att kontrollera din skräppostmapp.\\\"},\\\"sv-x-k12\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Ogiltig inloggning\\\",\\\"invalid_password\\\":\\\"Ogiltigt lösenord\\\",\\\"parent_signup\\\":\\\"Registrering för förälder\\\"}},\\\"your_password_recovery_instructions_will_be_sent_t_1b7991f5\\\":\\\"Återställningsinstruktioner för ditt lösenord kommer att skickas till *%{email_address}*. Detta kan ta upp till 30 minuter. Se till att kontrollera din skräppostmapp.\\\"},\\\"tr\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Oturum açma işlemi geçersiz\\\",\\\"invalid_password\\\":\\\"Geçersiz şifre\\\",\\\"parent_signup\\\":\\\"Ebeveyn Kayıt olma\\\"}}},\\\"uk\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"Невірний логін\\\",\\\"invalid_password\\\":\\\"Невірний пароль\\\",\\\"parent_signup\\\":\\\"реєстрація батьків\\\"}}},\\\"zh-Hans\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"登录信息无效\\\",\\\"invalid_password\\\":\\\"密码无效\\\",\\\"parent_signup\\\":\\\"父级注册\\\"}},\\\"your_password_recovery_instructions_will_be_sent_t_1b7991f5\\\":\\\"您的密码找回说明将发送到 *%{email_address}*。可能需要最多 30 分钟。请务必查看您的垃圾邮件文件夹。\\\"},\\\"zh-Hant\\\":{\\\"pseudonyms\\\":{\\\"login\\\":{\\\"invalid_login\\\":\\\"無效的登入\\\",\\\"invalid_password\\\":\\\"無效的密碼\\\",\\\"parent_signup\\\":\\\"家長註冊\\\"}},\\\"your_password_recovery_instructions_will_be_sent_t_1b7991f5\\\":\\\"您的重設密碼指示將傳送至 *%{email_address}*。最多可能需要 30 分鐘。請務必檢查您的垃圾郵件箱。\\\"}}\"));\n","\n import I18n from '@canvas/i18n/i18nObj';\n \n import 'translations/pseudonyms.login';\n import 'translations/_core';\n \n import 'translations/_core_en';\n\n export default I18n.scoped('pseudonyms.login');\n ","/*\n * Copyright (C) 2014 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see .\n */\n\nimport I18n from 'i18n!pseudonyms.login'\nimport $ from 'jquery'\nimport htmlEscape from 'html-escape'\nimport signupDialog from '@canvas/signup-dialog'\nimport 'jquery-fancy-placeholder' /* fancyPlaceholder */\nimport '@canvas/forms/jquery/jquery.instructure_forms' /* formSubmit, getFormData, formErrors, errorBox */\nimport '@canvas/loading-image'\nimport '@canvas/rails-flash-notifications'\n\n$('#coenrollment_link').click(function(event) {\n event.preventDefault()\n const template = $(this).data('template')\n const path = $(this).data('path')\n signupDialog(template, I18n.t('parent_signup', 'Parent Signup'), path)\n})\n\n$('.field-with-fancyplaceholder input').fancyPlaceholder()\n$('#forgot_password_form').formSubmit({\n object_name: 'pseudonym_session',\n required: ['unique_id_forgot'],\n beforeSubmit(_data) {\n $(this).loadingImage()\n },\n success(_data) {\n $(this).loadingImage('remove')\n $.flashMessage(\n htmlEscape(\n I18n.t(\n 'Your password recovery instructions will be sent to *%{email_address}*. This may take up to 30 minutes. Make sure to check your spam box.',\n {\n wrappers: ['$1'],\n email_address: $(this)\n .find('.email_address')\n .val()\n }\n )\n ),\n 15 * 60 * 1000 // fifteen minutes isn't forever but should be plenty\n )\n // Focus on the close button of the alert we just put up, per a11y\n $('ul#flash_message_holder button.close_link').focus()\n },\n error(_data) {\n $(this).loadingImage('remove')\n }\n})\n\n$('#login_form').submit(function(_event) {\n const data = $(this).getFormData({object_name: 'pseudonym_session'})\n let success = true\n if (!data.unique_id || data.unique_id.length < 1) {\n $(this).formErrors({\n unique_id: I18n.t('invalid_login', 'Invalid login')\n })\n success = false\n } else if (!data.password || data.password.length < 1) {\n $(this).formErrors({\n password: I18n.t('invalid_password', 'Invalid password')\n })\n success = false\n }\n return success\n})\n","/*\n * Copyright (C) 2014 - present Instructure, Inc.\n *\n * This file is part of Canvas.\n *\n * Canvas is free software: you can redistribute it and/or modify it under\n * the terms of the GNU Affero General Public License as published by the Free\n * Software Foundation, version 3 of the License.\n *\n * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more\n * details.\n *\n * You should have received a copy of the GNU Affero General Public License along\n * with this program. If not, see .\n */\n\nimport $ from 'jquery'\nimport LoginFormSwitcher from './jquery/LoginFormSwitcher'\nimport ready from '@instructure/ready'\nimport './jquery/index'\n\nready(() => {\n const switcher = new LoginFormSwitcher($('#login_form'), $('#forgot_password_form'))\n\n $('.forgot_password_link').click(event => {\n event.preventDefault()\n return switcher.switchToForgotPassword()\n })\n\n $('.login_link').click(event => {\n event.preventDefault()\n return switcher.switchToLogin()\n })\n})\n"],"sourceRoot":""}