{"version":3,"file":"application_hoepliacademy-fb696ce2.js","sources":["../../../app/whitelabels/hoepliacademy/assets/javascripts/custom.js","../../../app/whitelabels/hoepliacademy/assets/javascripts/events.js","../../../app/whitelabels/hoepliacademy/assets/javascripts/tutors/check_box_form.js","../../../app/whitelabels/hoepliacademy/assets/javascripts/tutors/flash.js","../../../app/whitelabels/hoepliacademy/assets/javascripts/tutors/login.js","../../../app/whitelabels/hoepliacademy/assets/javascripts/tutors/custom.js","../../../app/whitelabels/hoepliacademy/assets/javascripts/tableau/custom.js","../../../app/whitelabels/hoepliacademy/assets/javascripts/application.js","../../../app/frontend/entrypoints/application_hoepliacademy.js"],"sourcesContent":["$(function () {\n //navbar bg on window scroll\n const scrollTopNav = document.getElementById('navbar');\n // Add an event listener to monitor scroll\n window.addEventListener('scroll', () => {\n const scrollPos = document.documentElement.scrollTop || document.body.scrollTop;\n\n // Handle thresholds\n if (scrollPos > 200) {\n // Apply styles for the higher threshold\n scrollTopNav.classList.add('coloredBG');\n } else if (scrollPos > 120) {\n // Apply styles for the lower threshold\n scrollTopNav.classList.add('coloredBG');\n } else {\n // Remove all styles when below the lower threshold\n scrollTopNav.classList.remove('coloredBG');\n }\n });\n\n // Scroll to top functionality\n scrollTopNav.addEventListener('click', () => {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n });\n //navbar bg on window scroll // end\n\n var $myCarousel = $(\"header.carousel\");\n // Initialize carousel\n $myCarousel.carousel({\n interval: 5000,\n });\n //*****************************//\n // ** slider for reviews box **\n var $myCarousel2 = $(\"#bottom-slider\");\n // Initialize carousel\n $myCarousel2.carousel({\n interval: 5000,\n });\n\n //*****************************//\n // slider on genitori page\n var $myCarousel2 = $(\"#genitori-slider\");\n // Initialize carousel\n $myCarousel2.carousel({\n interval: 5000,\n });\n\n $myCarousel2.bind(\"slid.bs.carousel\", function (e) {\n var indx = $(\"ol.carousel-indicators li.active\").data(\"slide-to\");\n $(\".genitori .box-slider a\").each(function () {\n $(this).removeClass(\"focused\");\n });\n $('div.slider-console a[data-bs-target=\"#genitori-slider\"][data-bs-slide-to=' + indx + \"]\").addClass(\"focused\");\n });\n\n var $myCarousel3 = $(\"#insegnanti-slider\");\n // Initialize carousel\n $myCarousel3.carousel({\n interval: 5000,\n });\n //*****************************//\n // slider on genitori page\n var $myCarouselBlog = $(\"#blog-slider\");\n // Initialize carousel\n $myCarouselBlog.carousel({\n interval: 5000,\n });\n //*****************************//\n // slider on insegnanti page\n // Instantiate the Bootstrap carousel\n $(\".multi-item-carousel\").carousel({\n interval: false,\n });\n // for every slide in carousel, copy the next slide's item in the slide.\n // Do the same for the next, next item.\n $(\".multi-item-carousel .item\").each(function () {\n var next = $(this).next();\n if (!next.length) {\n next = $(this).siblings(\":first\");\n }\n next.children(\":first-child\").clone().appendTo($(this));\n\n if (next.next().length > 0) {\n next.next().children(\":first-child\").clone().appendTo($(this));\n } else {\n $(this).siblings(\":first\").children(\":first-child\").clone().appendTo($(this));\n }\n });\n\n // Select all links with hashes\n $('a.scrollAnimation[href*=\"#\"]')\n // Remove links that don't actually link to anything\n .not('[href=\"#\"]')\n .not('[href=\"#0\"]')\n .click(function (event) {\n // On-page links\n if (location.pathname.replace(/^\\//, \"\") == this.pathname.replace(/^\\//, \"\") && location.hostname == this.hostname) {\n // Figure out element to scroll to\n var target = $(this.hash);\n target = target.length ? target : $(\"[name=\" + this.hash.slice(1) + \"]\");\n // Does a scroll target exist?\n if (target.length) {\n // Only prevent default if animation is actually gonna happen\n event.preventDefault();\n $(\"html, body\").animate(\n {\n scrollTop: target.offset().top,\n },\n 1000,\n function () {\n // Callback after animation\n // Must change focus!\n var $target = $(target);\n $target.focus();\n if ($target.is(\":focus\")) {\n // Checking if the target was focused\n return false;\n } else {\n $target.attr(\"tabindex\", \"-1\"); // Adding tabindex for elements not focusable\n $target.focus(); // Set focus again\n }\n }\n );\n }\n }\n });\n});\n\n//*********************************************************************//\n//**** header carousel scripts for text and buttons animations ****//\n//*********************************************************************//\n// slider on the homepage\n\n$(function () {\n $(\"#reg_teacher_form\").submit(function () {\n return validate(this);\n });\n\n if ($(\"#countainer_schools\").children().length == 1) {\n $(\".remove_school_link\").css(\"display\", \"none\");\n }\n});\n\nwindow.toggle_visibility = function toggle_visibility(id) {\n var e = document.getElementById(id);\n if (e.style.display != \"none\") e.style.display = \"none\";\n else e.style.display = \"block\";\n};\n\n$(document).on(\"change focusout\", '[data-purpose=\"fill-dropdown\"]', function (e) {\n var input = $(this).closest(\".dynamic_section\").find(\"input\")[1];\n $.each($('[data-purpose=\"auto-school\"]'), function (idx, v) {\n set_autocomplete_school($(v));\n });\n});\n\n/**\n * Get the parent-element and then the first block of fileds \"city\" and \"schools\".\n * We have to use the document.ready workaround just to be sure all fields are correctly loaded in page\n */\n\n// used in add_school function\nvar containerSchools = null;\nvar firstSchoolBlock = null;\n\n$(function () {\n containerSchools = $(\"#countainer_schools\");\n firstSchoolBlock = containerSchools.find(\" > .dynamic_section:first\").clone(); // force to select the first one\n firstSchoolBlock.find(\"select.selectpicker\").selectpicker(\"destroy\").addClass(\"selectpicker\");\n});\n\n$('[data-purpose=\"fill-dropdown\"]').change();\n\nwindow.add_school = function add_school() {\n // Fat: refactor js in order to avoid duplicate-field manipulation\n\n // var containerSchools = $(\"#countainer_schools\");\n\n if (containerSchools.children().length < 5) {\n // clone the first block without events\n var new_block = firstSchoolBlock.clone();\n // fix: remove duplicated IDs\n new_block.find(\"input, select\").each(function (i, e) {\n e.id = \"\";\n });\n\n // prepare new html fileds\n new_block.find(\"input\").val(\"\");\n new_block.find(\"select option\").remove();\n\n set_autocomplete_city(new_block.find('[data-purpose=\"fill-dropdown\"]'));\n\n new_block.find(\".remove_school_link\").css(\"display\", \"block\");\n\n // re-initialize selectpicker for school (code taken from application.js)\n new_block.find(\"select\").selectpicker();\n if (/Android|webOS|BlackBerry/i.test(navigator.userAgent)) {\n $(\".selectpicker\").selectpicker(\"mobile\");\n }\n\n containerSchools.append(new_block);\n\n containerSchools.find(\".remove_school_link\").css(\"display\", \"block\");\n }\n};\n\nwindow.remove_school = function remove_school(me) {\n if ($(\"#countainer_schools\").children().length > 1) {\n $(me).closest(\".dynamic_section\").remove();\n }\n if ($(\"#countainer_schools\").children().length == 1) {\n $(\".remove_school_link\").css(\"display\", \"none\");\n }\n};\n\nwindow.isOdd = function isOdd(value) {\n if (value % 2 != 0) return true;\n else return false;\n};\n\nwindow.update_panel_school_subjects = function update_panel_school_subjects(me) {\n var summary = $(\"#school_subject_summary\").text();\n var selected = $(me).text();\n $(\"#school_subject_summary\").text((summary += selected));\n};\n\n$(document).on(\"click\", 'input[data-purpose=\"fill_summary_school_subjects\"]', function () {\n $(\".panel_checkboxes\").css(\"display\", \"block\");\n var $checked = $(\"input:checked\");\n var texts = $checked.map(function (i, el) {\n return $(el).closest(\"label\").find(\"span\").html();\n });\n $(\"#school_subject_summary\").text($.makeArray(texts).join(\", \"));\n});\n\nwindow.trim = function trim(s) {\n if (s != null) {\n s = s.replace(/(^\\s*)|(\\s*$)/gi, \"\");\n s = s.replace(/[ ]{2,}/gi, \" \");\n s = s.replace(/\\n /, \"\\n\");\n return s;\n }\n};\n\n$(\"#areadropdown\")\n .change(function (e) {\n var container1 = document.getElementById(\"container_school_subjects_1\");\n var container2 = document.getElementById(\"container_school_subjects_2\");\n $(\"#school_subject_summary\").text(\"\");\n container1.innerHTML = \"\";\n container2.innerHTML = \"\";\n var selected = this.value.split(\"-\");\n var term = trim(selected[0]);\n var area = trim(selected[1]);\n var query = \"/profile/school-subject?term=\" + term;\n if (area != null) {\n query += \"&area=\" + area;\n }\n $.getJSON(query, function (schoolSubjects) {\n for (var i = 0; i < schoolSubjects.length; i++) {\n var obj = schoolSubjects[i];\n var target = container1;\n if (isOdd(i)) target = container2;\n\n var content = \"
\";\n content += '';\n content += '\";\n content += \"
\";\n\n $(content).appendTo(target);\n }\n });\n })\n .change();\n\n$(function () {\n var pickerOpts = {\n monthNames: [\"Gennaio\", \"Febbraio\", \"Marzo\", \"Aprile\", \"Maggio\", \"Giugno\", \"Luglio\", \"Agosto\", \"Settembre\", \"Ottobre\", \"Novembre\", \"Dicembre\"],\n monthNamesShort: [\"Gen\", \"Feb\", \"Mar\", \"Apr\", \"Mag\", \"Giu\", \"Lug\", \"Ago\", \"Set\", \"Ott\", \"Nov\", \"Dic\"],\n dayNames: [\"Domenica\", \"Lunedì\", \"Martedì\", \"Mercoledì\", \"Giovedì\", \"Venerdì\", \"Sabato\"],\n dayNamesShort: [\"Dom\", \"Lun\", \"Mar\", \"Mer\", \"Gio\", \"Ven\", \"Sab\"],\n dayNamesMin: [\"Do\", \"Lu\", \"Ma\", \"Me\", \"Gi\", \"Ve\", \"Sa\"],\n prevText: \"<Prec\",\n prevStatus: \"\",\n prevJumpText: \"<<\",\n prevJumpStatus: \"\",\n nextText: \"Succ>\",\n nextStatus: \"\",\n nextJumpText: \">>\",\n nextJumpStatus: \"\",\n currentText: \"Oggi\",\n currentStatus: \"\",\n todayText: \"Oggi\",\n todayStatus: \"\",\n clearText: \"-\",\n clearStatus: \"\",\n closeText: \"Chiudi\",\n closeStatus: \"\",\n yearStatus: \"\",\n monthStatus: \"\",\n weekText: \"Sm\",\n weekStatus: \"\",\n dayStatus: \"DD d MM\",\n defaultStatus: \"\",\n dateFormat: \"dd/mm/yy\",\n firstDay: 1,\n isRTL: false,\n showButtonPanel: false,\n changeMonth: true,\n changeYear: true,\n yearRange: \"1920:2020\",\n defaultDate: \"1/1/1980\",\n };\n $(\"#profile_birthdate\").datepicker(pickerOpts);\n});\n\nwindow.toTitleCase = function toTitleCase(str) {\n return str.replace(/\\w\\S*/g, function (txt) {\n return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();\n });\n};\n\nwindow.set_autocomplete_city = function set_autocomplete_city(obj) {\n var region_id = $(\"#region_id\").val();\n var regionPart = region_id ? \"?region_id=\" + region_id : \"\";\n\n obj\n .autocomplete({\n minLength: 2,\n delay: 500,\n source: \"/school_data/cities_list_by_name\" + regionPart,\n\n focus: function (event, ui) {\n obj.val(ui.item.label);\n return false;\n },\n\n select: function (event, ui) {\n obj.data(\"id\", ui.item.id);\n obj.val(toTitleCase(ui.item.city_name));\n $(\".school-type\").show();\n var classroom = $(\"#classroom\");\n classroom.find(\"option\").remove();\n return false;\n },\n })\n .data(\"ui-autocomplete\")._renderItem = function (ul, item) {\n return $(\"
  • \")\n .append(\"
    \" + toTitleCase(item.city_name) + \"
  • \")\n .appendTo(ul);\n };\n};\n\nwindow.set_autocomplete_school = function set_autocomplete_school(obj) {\n var city = $(obj).closest(\".dynamic_section\").find(\"input\")[0].value;\n obj\n .autocomplete({\n minLength: 2,\n source: \"/school_data/schools_list_by_name?term=\" + city,\n\n focus: function (event, ui) {\n obj.val(ui.item.label);\n return false;\n },\n\n select: function (event, ui) {\n obj.val(toTitleCase(ui.item.name));\n $(obj).closest(\".dynamic_section\").find(\".id_school\").val(ui.item.id);\n $(obj).closest(\".dynamic_section\").find(\".auto_mail\").val(ui.item.email);\n $(\".mail_miur\").val(\"\");\n return false;\n },\n })\n .data(\"ui-autocomplete\")._renderItem = function (ul, item) {\n return $(\"
  • \")\n .append(\"
    \" + toTitleCase(item.name) + \" - \" + toTitleCase(item.city.city_name) + \"
  • \")\n .appendTo(ul);\n };\n};\n\n$(function () {\n $(document).on(\"click\", \".mail_miur\", function () {\n $.each($(\".dynamic_section :input\"), function (idx, v) {\n $(v).val(null);\n });\n });\n});\n\n$(function () {\n $.each($('[data-purpose=\"fill-dropdown\"]'), function (idx, v) {\n set_autocomplete_city($(v));\n });\n});\n\n$(function () {\n $.each($('[data-purpose=\"open-modal\"]'), function () {\n $(\"#post_reg_popup\").foundation(\"reveal\", \"open\");\n });\n});\n\n$(function () {\n var searchStyle = $('[data-purpose=\"virtual_class_search_style\"]').get(0);\n if ($('[data-purpose=\"virtual_class_search\"]').length) {\n $('[data-purpose=\"virtual_class_search\"]')\n .get(0)\n .addEventListener(\"input\", function () {\n if (!this.value) {\n searchStyle.innerHTML = \"\";\n return;\n }\n searchStyle.innerHTML = '.searchable:not([data-index*=\"' + this.value.toLowerCase() + '\"]) { display: none; }';\n });\n }\n});\n\nwindow.update_school_mail = function update_school_mail() {\n $(\"#school_subject_summary\").text((summary += selected));\n};\n\n$(document).on(\"change\", '[data-purpose=\"virtual_class_jump\"]', function () {\n document.location.href = this.options[this.selectedIndex].value;\n});\n\nvar hide_show_others = (window.hide_show_others = function (event) {\n $(\".show_hide_others\").toggle();\n content = $(\".show_hide_others_link\").html().trim() == \"Mostra altre della tua scuola:\" ? \"Nascondi altre della tua scuola:\" : \"Mostra altre della tua scuola:\";\n return $(\".show_hide_others_link\").html(content);\n});\n\n$(document).on(\"ready page:load\", function () {\n return $(document).on(\"click\", \".show_hide_others_link\", hide_show_others);\n});\n\n$(document).on(\"click\", \"a\", function (e) {\n if (this.pathname === window.location.pathname && /Modal$/.test(this.hash) && $(this.hash).length) {\n e.preventDefault();\n $(this.hash).foundation(\"reveal\", \"open\");\n }\n});\n\n$(function () {\n if (/Modal$/.test(window.location.hash) && $(window.location.hash).length) {\n $(window.location.hash).foundation(\"reveal\", \"open\");\n }\n});\n\n// $(function () {\n// $(\".with_smooth_scroll\").smoothScroll();\n// });\n\n$(document).on(\"click\", \".hide_strip_button\", function hideButton() {\n $(\".containg_strip\").css(\"visibility\", \"hidden\");\n});\n\n$(document).on(\"change\", '[data-purpose=\"render_modal_activation\"]', function () {\n var brandId = $('[data-purpose=\"render_modal_activation\"]').val();\n var divToShow = [\"#modal_activation_for_brand_id_\", brandId].join(\"\");\n $(\"[id^=modal_activation_for_brand_id_]\").hide();\n $(divToShow).show();\n});\n\n$(\"#user_pwd\").capsChecker({\n capson: function (e, isOn) {\n $(\".registrazione_pw span.capsLockMessage\").html(\"MAIUSC BLOCK attivato\");\n },\n capsoff: function (e, isOn) {\n $(\".registrazione_pw span.capsLockMessage\").html(\"\");\n },\n});\n\n$(document).on(\"click\", '[data-purpose=\"with-book-stats\"]', function (e) {\n e.preventDefault();\n var query = this.href;\n $.getJSON(query, function (data) {\n var source = $(\"#bookStatModalTemplate\").html();\n var template = Handlebars.compile(source);\n var html = template(data);\n $(\"#bookStatModal\").html(html).foundation(\"reveal\", \"open\");\n });\n});\n\n$(document).on(\"change\", 'select[data-purpose=\"hideOrShowSchool\"]', function (e) {\n if (e.target.value == \"teacher\") {\n $(\".hide_or_show_school\").show();\n } else {\n $(\".hide_or_show_school\").hide();\n }\n});\n\n$(document).on(\"click\", \"#open_drop_for_login_menu img\", function (e) {\n e.preventDefault();\n Foundation.libs.dropdown.open($(\"#drop_for_login_menu\"), $(\"#open_drop_for_login_menu\"));\n return false;\n});\n\n$(document).on(\"click\", '[data-purpose=\"showJsonHelp\"]', function (e) {\n e.preventDefault();\n $(\"#help_for_json\").toggle();\n $('[data-purpose=\"showJsonHelp\"]').text($(\"#help_for_json\").is(\":visible\") ? \"Nascondi\" : \"Mostra esempio\");\n return false;\n});\n\n$(document).on(\"click\", '[data-purpose=\"changeWelcomeSlideshow\"]', function (a) {\n $(\"[class^=welcome_slideshow_content_panel_activate]\").removeClass(\"block\");\n var target = $(this).attr(\"data-bs-target\");\n var divToShow = [\".welcome_slideshow_content_panel_\", target].join(\"\");\n var cellToActivate = [\".welcome_cell_\", target].join(\"\");\n $(\"[class^=welcome_slideshow_content_panel_]\").hide();\n $(\"[class^=welcome_cell_]\").removeClass(\"welcome_selected_cell\");\n $(divToShow).show();\n $(cellToActivate).addClass(\"welcome_selected_cell\");\n window.location.hash = target;\n return false;\n});\n\n$(function () {\n var welcomeTarget = window.location.hash.substring(1);\n if (welcomeTarget && /activate|downloadapp|downloadbook|profile/.test(welcomeTarget)) {\n $(\"[class^=welcome_slideshow_content_panel_]\").hide();\n $(\".welcome_slideshow_content_panel_\" + welcomeTarget).show();\n $(\"[class^=welcome_cell_]\").removeClass(\"welcome_selected_cell\");\n $([\".welcome_cell_\", welcomeTarget].join(\"\")).addClass(\"welcome_selected_cell\");\n }\n});\n\n$(function () {\n $(\"img[usemap]\").rwdImageMaps();\n});\n\n// $(window).load(function() {\n// $('.welcome_carousel').flexslider({\n// animation: \"slide\",\n// controlNav: false,\n// animationLoop: true,\n// slideshow: false,\n// minItems: 4,\n// itemWidth: 150,\n// itemMargin: 5,\n// });\n// });\n\n$(document).on(\"click\", \".slide_carousel\", function (a) {\n var slideNumber = $(this).attr(\"data-orbit-slide-number\");\n $(\"#welcomeExerciseModal\").foundation(\"reveal\", \"open\");\n $(\"#exerciseOrbit\")\n .siblings(\".orbit-bullets\")\n .find(\"[data-orbit-slide='\" + slideNumber + \"']\")\n .click();\n});\n\n$(document).on(\"click\", \"#welcomeExerciseModal a.close-reveal-modal\", function (a) {\n $(\"#welcomeExerciseModal\").foundation(\"reveal\", \"close\");\n});\n\n$(document).on(\"click\", \".clearing-blackout\", function (e) {\n // $('a.clearing-close').trigger('click');\n});\n","$(function () {\n // hide fullname if avatar is clicked and show when not clicked\n $('#drop-avatar').change(function() {\n if (this.checked) {\n $('#fullname-header').hide();\n } else {\n $('#fullname-header').show();\n }\n });\n\n $('.boxed.parent').click(function () {\n $(this).toggleClass('open');\n });\n\n $('.box-family-member .two-element-flex').click(function () {\n $(this).closest('.box-family-member').toggleClass('open');\n });\n\n $('.child-name').blur(function (e) {\n var $this = $(this);\n var $error = $this.parent().find('.child-name-error');\n var id = $this.data('id');\n var name = $this.val();\n\n if (id && name) {\n $.ajax({\n url: '/users/' + id + '/check-children-name?name=' + name,\n method: 'get'\n }).done(function (json) {\n if (json && json.found) {\n $error.show();\n } else {\n $error.hide();\n }\n }).fail(function () {\n $error.hide();\n });\n }\n });\n});\n","// Rails wraps input[type=checkbox] with div.field_with_errors tag\n// this script exists to keep the same style of the clear form\n\n(function () {\n $(function () {\n return $(\".field_with_errors > input[type=checkbox]\").change(function (event) {\n if (this.checked) {\n return $(\".field_with_errors + label.checktype\").addClass(\"checked\");\n } else {\n return $(\".field_with_errors + label.checktype\").removeClass(\"checked\");\n }\n });\n });\n}.call(this));\n","(function() {\n $(function() {\n return $('a.close-action').on('click', function(e) {\n e.preventDefault();\n return $(this).closest('.messages').slideUp(200);\n });\n });\n\n}).call(this);\n","$(function () {\n\n $('.role-select-trigger').click(function() {\n var wrapper = $(this).closest('.user-role-select-form')\n var role = $(this).data('role');\n $(wrapper).find('#user_role_select_form_role').val(role);\n\n\n if (role === 'teacher') {\n if ( $(this).data('locale') === 'it') {\n $(wrapper).find('.first-step').hide();\n $(wrapper).find('.second-step').show();\n $(wrapper).find('.birthday-select').hide();\n $(wrapper).find('.users-select-school-teacher-subtitle').show();\n $(wrapper).find('.users-select-school-student-subtitle').hide();\n } else {\n $(wrapper).find('.btn-submit').trigger('click');\n }\n\n } else {\n $(wrapper).find('.users-select-school-teacher-subtitle').hide();\n $(wrapper).find('.users-select-school-student-subtitle').show();\n $(wrapper).find('.first-step').hide();\n $(wrapper).find('.second-step').show();\n };\n\n var birthdayOK = true;\n var schoolOK = true;\n\n\n $(wrapper).find('.birthday-select select').on('change', function() {\n var complete = true;\n var count = $(wrapper).find('.birthday-select select').size();\n var index = 0;\n birthdayOK = true;\n $(wrapper).find('.birthday-select select').each(function(i, obj) {\n var val = $(this).val();\n if (val === '') {\n index++;\n complete = false;\n }\n });\n if (!complete && index !== count && index !== 0) {\n // console.warn(\"Birthday is NOT OK\");\n birthdayOK = false;\n }\n\n checkBDayAndSchool();\n });\n\n $(wrapper).find('.school-select input.to-complete').on('change', function() {\n var complete = true;\n var count = $(wrapper).find('.school-select input.to-complete').size();\n var index = 0;\n schoolOK = true;\n $(wrapper).find('.school-select input.to-complete').each(function(i, obj) {\n var val = $(this).val();\n if (val === '') {\n index++;\n complete = false;\n }\n });\n if (!complete && index !== count && index !== 0) {\n schoolOK = false;\n }\n\n checkBDayAndSchool();\n });\n\n var checkBDayAndSchool = function() {\n if (birthdayOK && schoolOK) {\n // console.log(\"Everything is fine!\");\n $(wrapper).find('.btn-submit').attr(\"disabled\",false);\n } else {\n // console.warn(\"Something is NOT OK\");\n $(wrapper).find('.btn-submit').attr(\"disabled\",true);\n }\n };\n });\n\n});\n","import \"./check_box_form\";\r\nimport \"./flash\";\r\nimport \"./login\";\r\n\r\n$(function () {\r\n //navbar bg on window scroll\r\n if ($(window).scrollTop() > 200) {\r\n $(\".nav-bar\").addClass(\"coloredBG\");\r\n $(\".logo\").addClass(\"show\");\r\n }\r\n\r\n // search-navbar class switch to open the input\r\n $(\".search-form-opener\").on(\"click\", function () {\r\n $(this).prev().toggleClass(\"opened\");\r\n });\r\n});\r\n\r\n//navbar bg on window scroll\r\n$(window).scroll(function scrolledNavStyles() {\r\n if ($(window).scrollTop() > 120) {\r\n $(\".nav-bar\").addClass(\"coloredBG\");\r\n $(\".logo\").addClass(\"show\");\r\n } else {\r\n $(\".nav-bar\").removeClass(\"coloredBG\");\r\n $(\".logo\").removeClass(\"show\");\r\n }\r\n});\r\n\r\n$(function () {\r\n $('[data-bs-toggle=\"tooltip\"]').tooltip();\r\n});\r\n","$(function () {\n var viz;\n var div = document.getElementById('tableau-viz-cont');\n\n var options = {\n hideTabs: true,\n hideToolbar: true,\n width: \"1016px\",\n height: \"964px\"\n };\n\n function createViz(url) {\n if (!div) {\n return;\n }\n if (viz) {\n viz.dispose();\n }\n viz = new tableau.Viz(div, url, options);\n }\n\n function select($el) {\n var url = $el.attr('href');\n if (!viz || viz.getUrl() !== url) {\n createViz(url);\n }\n }\n\n var first = $('.tableau-wb-link').first();\n if (first) {\n select(first);\n }\n\n $('.tableau-wb-link').on('click', function(evt) {\n evt.preventDefault();\n select($(this));\n });\n\n});\n","import \"parsleyjs/src/parsley.js\";\nimport \"parsleyjs/src/i18n/fr.js\";\nimport \"parsleyjs/src/i18n/es.js\";\nimport \"parsleyjs/src/i18n/it.js\";\nimport \"parsleyjs/src/i18n/de.js\";\nimport \"jquery-ui/dist/jquery-ui.js\";\nimport \"@hotwired/turbo-rails\";\n// import \"jquery-smooth-scroll/jquery.smooth-scroll.js\";\n// import \"bootstrap/dist/js/bootstrap.bundle.js\";\nimport \"moment/src/moment.js\";\nimport \"moment/src/locale/de.js\";\nimport \"moment/src/locale/es.js\";\nimport \"moment/src/locale/fr.js\";\nimport \"moment/src/locale/it.js\";\n// import \"flexslider/jquery.flexslider.js\";\n\nimport \"@vendor/jquery.rwdImageMaps.js\";\nimport \"@vendor/jquery.capsChecker.js\";\nimport \"@vendor/handlebars-v1.2.0\";\nimport \"bootstrap-select\";\n\nimport \"./custom.js\";\nimport \"./events.js\";\nimport \"./tutors/custom.js\";\nimport \"./tableau/custom.js\";\n\n$(function () {\n window.Parsley.addValidator(\"checkOverAge\", {\n requirementType: \"string\",\n validateString: function (value, requirements) {\n var classId = requirements.split(\"-\")[0];\n var age = requirements.split(\"-\")[1];\n var day = $(\".\" + classId + \"-day\").val(),\n month = $(\".\" + classId + \"-month\").val(),\n year = $(\".\" + classId + \"-year\").val();\n\n if (isNumeric(day) === false || isNumeric(month) === false || isNumeric(year) === false) {\n return true;\n }\n\n day = zeroPad(day, 2);\n month = zeroPad(month, 2);\n year = zeroPad(year, 4);\n\n var inputDate = moment(year + \"-\" + month + \"-\" + day, \"YYYY-MM-DD\");\n var birthDate = moment().subtract(age, \"years\");\n\n if (inputDate.isValid() && inputDate <= birthDate) {\n return true;\n } else {\n return false;\n }\n },\n });\n\n window.Parsley.addValidator(\"checkUnderAge\", {\n requirementType: \"string\",\n validateString: function (value, requirements) {\n var classId = requirements.split(\"-\")[0];\n var age = requirements.split(\"-\")[1];\n var day = $(\".\" + classId + \"-day\").val(),\n month = $(\".\" + classId + \"-month\").val(),\n year = $(\".\" + classId + \"-year\").val();\n\n if (isNumeric(day) === false || isNumeric(month) === false || isNumeric(year) === false) {\n return true;\n }\n\n day = zeroPad(day, 2);\n month = zeroPad(month, 2);\n year = zeroPad(year, 4);\n\n var inputDate = moment(year + \"-\" + month + \"-\" + day, \"YYYY-MM-DD\");\n var birthDate = moment().subtract(age, \"years\");\n\n if (inputDate.isValid() && inputDate > birthDate) {\n return true;\n } else {\n return false;\n }\n },\n });\n\n window.Parsley.addValidator('rejectPattern', {\n requirementType: 'string',\n validateString: function(value, requirement) {\n // check that the email value does not contain http or // via regex\n var regex = new RegExp(requirement);\n return !regex.test(value);\n },\n });\n\n window.Parsley.addValidator(\"rejectEmoji\", {\n // requirementType: \"string\",\n validateString: function (value) {\n var regex = new RegExp(\n /[\\u{1f300}-\\u{1f5ff}\\u{1f900}-\\u{1f9ff}\\u{1f600}-\\u{1f64f}\\u{1f680}-\\u{1f6ff}\\u{2600}-\\u{26ff}\\u{2700}-\\u{27bf}\\u{1f1e6}-\\u{1f1ff}\\u{1f191}-\\u{1f251}\\u{1f004}\\u{1f0cf}\\u{1f170}-\\u{1f171}\\u{1f17e}-\\u{1f17f}\\u{1f18e}\\u{3030}\\u{2b50}\\u{2b55}\\u{2934}-\\u{2935}\\u{2b05}-\\u{2b07}\\u{2b1b}-\\u{2b1c}\\u{3297}\\u{3299}\\u{303d}\\u{00a9}\\u{00ae}\\u{2122}\\u{23f3}\\u{24c2}\\u{23e9}-\\u{23ef}\\u{25b6}\\u{23f8}-\\u{23fa}]/gu\n );\n return !regex.test(value);\n },\n });\n\n window.Parsley.addAsyncValidator(\n \"emailUnique\",\n function (xhr) {\n // Ritorna true anche se la richiesta non funziona per far\n // comunque andare avanti l'utente.\n // La validazione della mail c'è comunque alla fine del form.\n return xhr.status !== 200 || !xhr.responseJSON.found;\n },\n \"/api/v5/users/email/check?email={value}\"\n );\n\n // Nel caso in cui la data di nascita non viene passata dal provider\n // oauth, non si può avanzare automaticamente il primo step\n if (isOauth() && isBirthdaySet()) {\n $(\"#new_user\").hide();\n $(\"#oauth-spinner\").show();\n }\n\n // chrome workaround, altrimenti non onora 'autocomplete='off'\n $(\".selectpicker\").attr(\"autocomplete\", \"random\");\n\n $('[data-bs-toggle=\"tooltip\"]').tooltip();\n\n if (/Android|webOS|BlackBerry/i.test(navigator.userAgent)) {\n $(\".selectpicker\").selectpicker(\"mobile\");\n }\n\n if (/iPhone|iPad|iPod/i.test(navigator.userAgent)) {\n $(\".selectpicker\").removeClass(\"selectpicker\");\n }\n\n // chrome workaround, altrimenti non onora 'autocomplete='off''\n $(\"#city_id\").attr(\"autocomplete\", \"random\");\n $(\"#city\").attr(\"autocomplete\", \"none\");\n\n $(\"#countainer_schools\").on(\"autocompletechange\", \".dynamic_section .user-field .schools_city\", function () {\n var parent = $(this).closest(\".dynamic_section\");\n var sel = parent.find(\"select.schools_select\");\n var city = $(this).data();\n fill_schools($(sel), city.id);\n });\n\n $(function () {\n setTimeout(function () {\n $(\".alert\").slideUp(700, \"linear\", function () {\n $(\"header.welcome-page\").removeClass(\"lets-display-alert\");\n });\n }, 7000);\n });\n\n (function ($) {\n $.each([\"show\", \"hide\", \"fadeOut\", \"fadeIn\", \"slideUp\"], function (i, ev) {\n var el = $.fn[ev];\n $.fn[ev] = function () {\n var result = el.apply(this, arguments);\n result.promise().done(function () {\n this.trigger(ev, [result]);\n });\n return result;\n };\n });\n })(jQuery);\n\n $(\".alert\").on(\"show\", function () {\n $(\"header.welcome-page\").addClass(\"lets-display-alert\");\n });\n\n $(\"select[name='filter_for_publisher_select']\").on(\"change\", function () {\n var url = $(this).val();\n if (url) {\n // require a URL\n window.location = url; // redirect\n }\n return false;\n });\n\n $(\"header.user-role-select-form .signup-steps input:submit[name!='commit']\").on(\"click\", function (event) {\n event.preventDefault();\n manageStepChange(this);\n });\n\n $(\"header.user-role-select-form .signup-steps input:submit[name='commit']\").on(\"click\", function (event) {\n event.preventDefault();\n $(this).closest(\"form\").submit();\n });\n\n $(\"header.user-role-select-form .flat-box-steps-circle div\").on(\"click\", function () {\n manageStepCircles(this);\n });\n\n var userLang = navigator.language || navigator.userLanguage;\n userLang = userLang.substring(0, 2).toLowerCase();\n\n if (![\"it\", \"en\", \"fr\", \"de\", \"es\"].includes(userLang)) {\n userLang = \"en\";\n }\n window.Parsley.setLocale(userLang);\n\n if ($(\"#new_user\").length != 0) {\n $(\"#new_user\").parsley();\n }\n\n // New parent link form\n $(\"#new_connect_existing_account_form\").parsley();\n\n $(\"#connect_existing_account_form_email\").on(\"change keyup\", function () {\n manageNewParentLinkDisableBtn(this);\n });\n\n $(\"header.new_user_relation_form .signup-steps input:submit[name='commit']\").on(\"click\", function (event) {\n event.preventDefault();\n $(this).closest(\"form\").submit();\n });\n // End New parent link form\n\n $(\"header.user-role-select-form input\").on(\"change keyup\", function () {\n manageInputChange(this);\n });\n\n $(\".step-1-adult input\").on(\"change keyup\", function () {\n manageDisableBtn(this, 1);\n $(\"#other_input\").hide();\n $(\"#uni_select\").hide();\n });\n\n $(\".step-2-adult input\").on(\"change keyup\", function () {\n manageDisableBtn(this, 2);\n });\n\n $(\".step-1-adult select\").on(\"change keyup\", function () {\n manageDisableBtn(this, 1);\n });\n\n $(\".step-2-adult select\").on(\"change keyup\", function () {\n manageDisableBtn(this, 2);\n });\n\n $(\".step-3-adult input\").on(\"change keyup\", function () {\n manageDisableBtn(this, 3);\n });\n\n $(\".step-1-parent input\").on(\"change keyup\", function () {\n manageDisableBtn(this, 1);\n });\n\n $(\".step-2-parent input\").on(\"change keyup\", function () {\n manageDisableBtn(this, 2);\n });\n\n $(\".step-1-parent select\").on(\"change keyup\", function () {\n if (!isDateFullyEntered()) return;\n\n $(\".userbday-day\").parsley().validate();\n $(\".userbday-month\").parsley().validate();\n $(\".userbday-year\").parsley().validate();\n manageDisableBtn(this, 1);\n });\n\n $(\".step-1-teacher input\").on(\"change keyup\", function () {\n manageDisableBtn(this, 1);\n $(\"#other_input\").hide();\n $(\"#uni_select\").hide();\n });\n\n $(\".step-1-adult select\").on(\"change keyup\", function () {\n if (!isDateFullyEntered()) return;\n\n $(\".userbday-day\").parsley().validate();\n $(\".userbday-month\").parsley().validate();\n $(\".userbday-year\").parsley().validate();\n manageDisableBtn(this, 1);\n });\n\n $(\".step-2-teacher input\").on(\"change keyup\", function () {\n manageDisableBtn(this, 2);\n });\n\n $(\".step-1-teacher select\").on(\"change keyup\", function () {\n if (!isDateFullyEntered()) return;\n\n $(\".userbday-day\").parsley().validate();\n $(\".userbday-month\").parsley().validate();\n $(\".userbday-year\").parsley().validate();\n manageDisableBtn(this, 1);\n });\n\n $(\".step-2-teacher select\").on(\"change keyup\", function () {\n manageDisableBtn(this, 2);\n });\n\n $(\".step-1-young input\").on(\"change keyup\", function () {\n manageDisableBtn(this, 1);\n });\n\n $(\".step-1-young select\").on(\"change keyup\", function () {\n if (!isDateFullyEntered()) return;\n\n $(\".userbday-day\").parsley().validate();\n $(\".userbday-month\").parsley().validate();\n $(\".userbday-year\").parsley().validate();\n manageDisableBtn(this, 1);\n });\n\n $(\".step-2-young input\").on(\"change keyup\", function () {\n manageDisableBtn(this, 2);\n });\n\n $(\".step-2-young select\").on(\"change keyup\", function () {\n manageDisableBtn(this, 2);\n });\n\n $(\".step-3-young input\").on(\"change keyup\", function () {\n manageDisableBtn(this, 3);\n });\n\n $(\".step-3-teacher input\").on(\"change keyup\", function () {\n manageDisableBtn(this, 3);\n });\n\n $(\".required-by-fake-email\").on(\"change keyup\", function () {\n $(\"#new_user\")\n .parsley()\n .whenValid({ group: \"fake_email\" })\n .then(function () {\n $(\"#checkbox-form-fake-email\").removeAttr(\"disabled\"); // firefox compatibility\n })\n .catch(function () {\n $(\"#checkbox-form-fake-email\").prop(\"disabled\", true);\n });\n });\n\n var province_sel = $(\"#province_id\");\n if (province_sel.length) {\n fill_provinces(province_sel);\n }\n\n $(\".ui-autocomplete\").on(\"click\", function (event) {\n var sel = $(\"#school_code\");\n var province_code = $(\"#province_id\").val();\n fill_schools(sel, province_code);\n checkSelectVal();\n });\n\n // required to avoid double-click on submit button\n $(\".btn-signup-flow-last\").one(\"click\", function (event) {\n $(this).prop(\"disabled\", true);\n });\n $(\".btn-signup-flow-last\").dblclick(function (e) {\n e.preventDefault();\n });\n\n $(\"#new_bsmart_activation_form\").submit(function (event) {\n $(\"#new_bsmart_activation_form .btn.btn-bsmart\").prop(\"disabled\", true);\n });\n $(\".btn.btn-default.btn-eli.btn-bsmart\").dblclick(function (e) {\n e.preventDefault();\n });\n\n $(\"#header.user-role-select-form select#province_id\").on(\"change\", function () {\n $(\".school-inputs\").show();\n $(\"input[name='metadata[school_type]']\").prop(\"required\", true);\n $(\"input[name='metadata[school_type]']\").attr(\"data-parsley-required\", \"true\");\n $(\"#school_code\").prop(\"required\", true);\n $(\"#school_code\").attr(\"data-parsley-required\", \"true\");\n });\n\n $(\"#school_code\").on(\"change\", function () {\n checkSelectVal();\n });\n\n $(\"#user_schools_field\").on(\"change\", function () {\n if ($(this).val() !== \"\") {\n fill_courses($(\"#course\"), $(this).val());\n }\n });\n\n window.checkSelectVal = function checkSelectVal() {\n if ($(\"#school_code\").val() == \"university\") {\n $(\"#other_input\").show();\n required($(\"#other_input\").find(\"input\"), \"custom_school[school_name]\");\n } else {\n $(\"#other_input\").hide();\n unrequired($(\"#other_input\").find(\"input\"));\n }\n manageDisableBtn($(\"#school_code\"), 2);\n manageDisableBtn($(\"#other_input\"), 2);\n };\n\n window.required = function required(element, name = \"\") {\n element.prop(\"required\", true);\n element.attr(\"data-parsley-required\", \"true\");\n if (name) {\n element.prop(\"name\", name);\n }\n };\n window.unrequired = function unrequired(element, name = \"\") {\n element.prop(\"required\", false);\n element.attr(\"data-parsley-required\", \"false\");\n element.prop(\"name\", name);\n };\n\n $(\"#radio-form-school-type-post_school\").on(\"click\", function () {\n var uni_select = $(\"#uni_select\");\n var other_input = $(\"#other_input\");\n $(uni_select).hide();\n unrequired(uni_select.find(\"select\"), \"user[school_code]\");\n $(\".empty_sel\").remove();\n $(other_input).show();\n required(other_input.find(\"input\"), \"custom_school[school_name]\");\n });\n\n $(\"#radio-form-school-type-other\").on(\"click\", function () {\n var uni_select = $(\"#uni_select\");\n var other_input = $(\"#other_input\");\n $(uni_select).hide();\n unrequired(uni_select.find(\"select\"), \"user[school_code]\");\n $(\".empty_sel\").remove();\n $(other_input).show();\n required(other_input.find(\"input\"), \"custom_school[school_name]\");\n });\n\n $(\"#radio-form-school-type-university\").on(\"click\", function () {\n var uni_select = $(\"#uni_select\");\n var other_input = $(\"#other_input\");\n $(uni_select).show();\n required(uni_select.find(\"select\"), \"user[school_code]\");\n $(other_input).hide();\n unrequired(other_input.find(\"input\"));\n checkSelectVal();\n });\n\n $(\"#province_id\").on(\"change\", function () {\n if ($(this).val()) {\n var sel = $(\"#school_code\");\n var province_code = $(\"#province_id\").val();\n fill_schools(sel, province_code);\n $(\"#city_id\").val(\"\");\n $(\"#city_id\").autocomplete(\"option\", \"source\", \"/school_data/cities_list_by_name?province_id=\" + $(\"#province_id option:selected\").data(\"province_id\"));\n }\n });\n\n $(\"#checkbox-form-fake-email\").on(\"click\", function () {\n if ($(this)[0].checked) {\n var name = $(\"#user_name\")[0].value;\n var surname = $(\"#user_surname\")[0].value;\n var birthday = $(\".userbday-year\")[0].value + \"/\" + $(\".userbday-month\")[0].value + \"/\" + $(\".userbday-day\")[0].value;\n generate_fake_email($(\"#user_email\")[0], $(\"#email_confirmation\")[0], name, surname, birthday);\n disable_email_fields();\n } else {\n enable_email_fields();\n }\n });\n\n $(\"input[name='school_type']\").on(\"click\", function () {\n var radio_value = $(\"input[name='school_type']:checked\").val();\n if (radio_value == \"public\") {\n enable_school_fields();\n } else {\n disable_school_fields(radio_value);\n }\n });\n\n // Required to trigger validation when step 1 is\n // completely autofilled with oauth data\n $(\"#user_name\").trigger(\"change\");\n\n // ToS page\n $(\"#checkbox-tos-group-toggle\").on(\"change keyup\", function () {\n manageTosToggle(this);\n });\n\n $(\".tos-group input:checkbox\").on(\"change keyup\", function () {\n manageTosClick(this);\n });\n\n // Endo ToS page\n\n // Is `n` a number or numeric string (eg \"3\")?\n window.isNumeric = function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n };\n\n // Pad `n` with `z` (or `0` by default) to `width`.\n window.zeroPad = function zeroPad(n, width, z) {\n z = z || \"0\";\n n = n + \"\";\n return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;\n };\n\n // Return true if day, month and year is entered and\n // the date is ready to be validated\n // otherwise return false\n // This is needed to prevent starting validation\n // when the user select just the day\n window.isDateFullyEntered = function isDateFullyEntered() {\n var day = $(\".userbday-day\").val();\n var month = $(\".userbday-month\").val();\n var year = $(\".userbday-year\").val();\n\n if (isNumeric(day) === false || isNumeric(month) === false || isNumeric(year) === false) {\n return false;\n }\n\n return true;\n };\n\n if (isOauth()) {\n // SPIEGONE PARTE 4 - 1/10/2020\n // Non perdere le puntate precedenti, su un cerca vicino a te!\n // al momento abbiamo 3 flussi di registrazione: student, teacher e parent.\n // Quest'ultimo prevede solo anagrafica e TOS (niente scuola), quindi saltiamo\n // tutto il pezzo dello spiegone parte 1!\n var flow = $(\"#user_flow\").val();\n\n if (flow === \"parent\") {\n advanceStep();\n }\n }\n});\n\n// Just create a scope\n(function () {\n $(function checkCapsLock() {\n var inputWrappers = $(\".check-caps-lock\").each(function (i, wrap) {\n var el = null;\n if (wrap.tagName == \"INPUT\") {\n el = wrap;\n wrap = $(el).closest(\".form-group\");\n } else {\n el = $(wrap).find(\"input\");\n }\n if (!el) {\n // No input element found, skip\n return true;\n }\n\n $(el).on(\"keyup\", function (event) {\n // some events has not `getModifierState`\n if (!event.originalEvent.getModifierState) return true;\n var capsLock = event.originalEvent.getModifierState(\"CapsLock\");\n $(this).trigger(\"hasCapsLockEnable\", { status: capsLock });\n if (wrap) {\n $(wrap).find(\"small.caps-lock-message\")[capsLock ? \"removeClass\" : \"addClass\"](\"hide\");\n }\n });\n });\n });\n\n $(function showHidePassword() {\n var inputWrappers = $(\".show-hide-password\").each(function (i, wrap) {\n var $self = $(this);\n var handler = $(wrap).find(\".label-for-show-password\");\n handler.on(\"click\", function (event) {\n handler.toggleClass(\"open\");\n let input = $self.find(\"input[type]\");\n if (input.length) {\n input[0].type = input[0].type == \"password\" ? \"text\" : \"password\";\n } else {\n console.warn(\"cannot find input[type]\");\n }\n });\n });\n });\n})();\n\nwindow.isOauth = function isOauth() {\n // SPIEGONE PARTE 3 - 1/10/2020\n // Hai perso le puntate precedenti? cerca è tuo amico!\n // Per evitare di far saltare step quando non siamo in oauth, usiamo il valore\n // di questo input, che al momento viene valorizzato sempre con l'uid della\n // richiesta. OCCHIO!!\n var uid = $(\"#user_identity_uid\").val();\n return uid !== undefined && uid !== null && uid !== \"\";\n};\n\nwindow.isStepValid = function isStepValid(step) {\n return $(\"#new_user\")\n .parsley({ excluded: \"select:hidden\" })\n .whenValid({ group: \"step_\" + step });\n};\n\nwindow.changeStep = function changeStep(step, flow) {\n // SPIEGONE PARTE 2 - 1/10/2020\n // Per le puntate precedenti usa il cerca!\n // Altro spiegone: per come sono fatti i flussi di registrazione oggi, i campi\n // sono tutti dipendenti uno con l'altro e vengono mostrati in sequenza._\n // Questo metodo serve appositamente per gestire i casi \"anomali\":\n // - Se siamo in oauth e abbiamo i dati della scuola, dobbiamo abilitare a manina\n // il bottone dello step 2 (se no parsley non lo fa) ed evitare di fare tutto\n // il teatrino dela mostra/nascondi condizionale. L'utente si trova con tutto\n // popolato e via.\n // - Stessa cosa se saltiamo a piè pari lo step 2 (è tutto compilato da oauth\n // tranne le tos) - se non abilitiamo il pulsante del bottone 2 e l'utente\n // fa back, rimane incastrato.\n // \"Not the code we want, but the want we need.\" - Dark bweb rises, 2020\n\n if (step === 2) {\n var prefilled = $(\"#user_prefilled_region\").val();\n var oauth = isOauth();\n\n if (oauth && prefilled) {\n manageDisableBtn($(\"#nation\"), 2);\n } else {\n $(\".school-inputs\").not(\".school-geo-info\").hide();\n }\n }\n\n if (step === 3) {\n manageDisableBtn($(\"#nation\"), 2);\n }\n\n $(\".signup-steps\").hide();\n $(\".step-\" + step + \"-\" + flow).show();\n $(\"html, body\").animate({ scrollTop: 0 }, \"slow\");\n};\n\nwindow.getTargetStep = function getTargetStep(callback) {\n isStepValid(1)\n .then(function () {\n isStepValid(2)\n .then(function () {\n isStepValid(3)\n .then(function () {\n callback(null);\n })\n .catch(function () {\n callback(3);\n });\n })\n .catch(function () {\n callback(2);\n });\n })\n .catch(function () {\n callback(1);\n });\n};\n\nwindow.advanceStep = function advanceStep() {\n getTargetStep(function (step) {\n var flow = $(\"#user_flow\").val();\n if (step) {\n changeStep(step, flow);\n $(\"#oauth-spinner\").hide();\n $(\"#new_user\").show();\n }\n });\n};\n\nvar getCurrentStep = (window.getCurrentStep = function ($this) {\n var classesParent = $($this).closest(\".signup-steps\").attr(\"class\").split(\" \");\n var curStep = classesParent[2].split(\"-\")[1];\n return curStep;\n});\n\nvar manageDisableBtn = (window.manageDisableBtn = function ($this, step) {\n var btn = $($this).closest(\".signup-steps\").find(\"input[type='submit']\");\n $(\"#new_user\")\n .parsley({ excluded: \"select:hidden\" })\n .whenValid({\n group: \"step_\" + step,\n })\n .then(function () {\n $(btn).removeAttr(\"disabled\");\n })\n .catch(function () {\n $(btn).prop(\"disabled\", true);\n });\n});\n\n// submit button for parent link form\nvar manageNewParentLinkDisableBtn = (window.manageNewParentLinkDisableBtn = function ($this) {\n var btn = $(\"input[type='submit']\")[0];\n $(\"#connect_existing_account_form_email\")\n .parsley()\n .whenValid()\n .then(function () {\n $(btn).removeAttr(\"disabled\");\n })\n .catch(function () {\n $(btn).prop(\"disabled\", true);\n });\n});\n\nvar onPrivaciesChange = (window.onPrivaciesChange = function ($this, step) {\n if ($($this).is(\":checked\")) {\n $($this).attr(\"value\", \"1\");\n $($this).attr(\"checked\", true);\n } else {\n $($this).attr(\"value\", \"\");\n $($this).attr(\"checked\", null);\n }\n manageDisableBtn($this, step);\n});\n\nvar dateSeparator = \"/\";\n\nvar correctCaptcha = (window.correctCaptcha = function (response) {\n $(\"#recaptcha_status\").val(\"1\");\n var classesParent = $(\".g-recaptcha\").closest(\".signup-steps\").attr(\"class\").split(\" \");\n var curStep = classesParent[2].split(\"-\")[1];\n manageDisableBtn(\".g-recaptcha\", curStep);\n});\n\nvar manageStepCircles = (window.manageStepCircles = function ($this) {\n var currentIndex = $($this).siblings(\".active\").attr(\"class\").split(\" \")[0].split(\"-\")[1];\n var selected = $($this).attr(\"class\").split(\" \")[0];\n var selectedIndex = selected.split(\"-\")[1];\n if (selectedIndex * 1 < currentIndex * 1) {\n $(\".flat-box.signup-steps\").hide();\n $(\".flat-box-header.signup-steps\").hide();\n $(\".flat-box-steps-circle\").hide();\n $(\".flat-box.signup-steps.\" + selected).show();\n $(\".flat-box-header.signup-steps.\" + selected).show();\n $(\".flat-box-steps-circle.\" + selected).show();\n $(\"html, body\").animate({ scrollTop: 0 }, \"slow\");\n }\n});\n\nvar manageInputChange = (window.manageInputChange = function ($this) {\n var step = getCurrentStep($this);\n if ($($this).is(\":checkbox\")) {\n if ($($this).attr(\"id\") == \"checkbox-form-tos_agreement\") {\n $(\".privacies input:checkbox\").prop(\"checked\", $($this).is(\":checked\"));\n $(\".privacies input:checkbox\").each(function () {\n onPrivaciesChange(this);\n });\n } else if ($($this).data(\"privacies\") !== undefined) {\n $(\"#checkbox-form-tos_agreement\").prop(\"checked\", false);\n $(\"#checkbox-form-tos_agreement\").attr(\"value\", \"\");\n onPrivaciesChange($this, step);\n }\n }\n});\n\nvar manageStepChange = (window.manageStepChange = function ($this) {\n var classesParent = $($this).closest(\".signup-steps\").attr(\"class\").split(\" \");\n var curStep = classesParent[2].split(\"-\")[1];\n var curFlow = classesParent[2].split(\"-\")[2];\n var nextStep = curStep * 1 + 1;\n\n changeStep(nextStep, curFlow);\n});\n\nvar gobackSignupFlow = (window.gobackSignupFlow = function ($this) {\n // event.preventDefault();\n var classesParent = $($this).closest(\".signup-steps\").attr(\"class\").split(\" \");\n var curStep = classesParent[2].split(\"-\")[1];\n var curFlow = classesParent[2].split(\"-\")[2];\n var nextStep = curStep * 1 - 1;\n $(\".signup-steps\").hide();\n $(\".step-\" + nextStep + \"-\" + curFlow).show();\n $(\"html, body\").animate({ scrollTop: 0 }, \"slow\");\n});\n\n// ToS acceptance page\n\nvar manageTosToggle = (window.manageTosToggle = function ($this) {\n $(\"#checkbox-form-consent_terms_and_conditions\").prop(\"checked\", $(\"#checkbox-tos-group-toggle\")[0].checked);\n $(\"#checkbox-form-consent_privacy\").prop(\"checked\", $(\"#checkbox-tos-group-toggle\")[0].checked);\n $(\"#checkbox-form-consent_third_party\").prop(\"checked\", $(\"#checkbox-tos-group-toggle\")[0].checked);\n $(\"#checkbox-form-consent_bsmart_products\").prop(\"checked\", $(\"#checkbox-tos-group-toggle\")[0].checked);\n manageTosBtn(this);\n});\n\nvar manageTosClick = (window.manageTosClick = function ($this) {\n // $(\".tos-group input:checkbox\")\n manageTosBtn(this);\n manageTosToggleCheckbox(this);\n});\n\nvar allTosChecked = (window.allTosChecked = function ($this) {\n chk1 = $(\"#checkbox-form-consent_terms_and_conditions\")[0].checked;\n chk2 = $(\"#checkbox-form-consent_privacy\")[0].checked;\n chk3 = $(\"#checkbox-form-consent_third_party\")[0].checked;\n chk4 = $(\"#checkbox-form-consent_bsmart_products\")[0].checked;\n return chk1 && chk2 && chk3 && chk4;\n});\n\nvar mandatoryTosChecked = (window.mandatoryTosChecked = function ($this) {\n return $(\"#checkbox-form-consent_terms_and_conditions\")[0].checked && $(\"#checkbox-form-consent_privacy\")[0].checked;\n});\n\nvar manageTosToggleCheckbox = (window.manageTosToggleCheckbox = function ($this) {\n $(\"#checkbox-tos-group-toggle\").prop(\"checked\", allTosChecked(this));\n});\n\nvar manageTosBtn = (window.manageTosBtn = function ($this) {\n var btn = $(\"#tos-button\")[0];\n if (mandatoryTosChecked(this)) {\n $(btn).removeAttr(\"disabled\");\n } else {\n $(btn).prop(\"disabled\", true);\n }\n});\n\n// end ToS acceptance page\n\n// SPIEGONE PARTE 5 - 15/01/2021\n// Nel caso in cui non viene pre-compilata la parte\n// birthday, non si può skippare la prima parte della registazione\n// nemmeno in oAuth\nwindow.isBirthdaySet = function isBirthdaySet() {\n var day = $(\".userbday-day\").val();\n var month = $(\".userbday-month\").val();\n var year = $(\".userbday-year\").val();\n\n return day && month && year;\n};\n\nwindow.fill_provinces = function fill_provinces(obj) {\n obj.find(\"option\").remove();\n obj.append(\"\");\n\n $.ajax({\n url: \"/school_data/all_provinces_list\",\n dataType: \"json\",\n success: function (result) {\n $.each(result, function (key, value) {\n obj.append(\"\");\n });\n // SPIEGONE PARTE 1 - 1/10/2020\n // Spiegone unico valido per tutto questo discorso: al 1/10/2020 abbiamo\n // deciso di implementare l'avanzamento automatico negli step di registrazione,\n // che al momento sono:\n // 1 - Info anagrafiche (data di nascita, mail e generalità);\n // 2 - Scuola e classe;\n // 3 - TOS\n //\n // Abbiamo 3 possibili flussi di registrazione: student, teacher e parent.\n // I primi due hanno tutti e 3 gli step (il teacher non deve però impostare\n // la classe), mentre l'ultimo salta lo step intermedio.\n //\n // Visto che le chiamate che popolano i vari elenchi di regioni, città,\n // scuole e classi sono tutte asincrone, le facciamo una volta sola (e solo\n // in caso di oauth) qui. Finchè non completano l'utente vede uno spinner.\n if (isOauth()) {\n var prefilled = $(\"#user_prefilled_region\").val();\n if (prefilled) {\n $(obj).val(prefilled);\n var city = $(\"#user_prefilled_city\").val();\n var cityId = $(\"#user_prefilled_city_id\").val();\n $(\"#city_id\").val(city);\n $(\".school-inputs\").show();\n $(\"#radio-form-school-type-public\").prop(\"checked\", true);\n var school = $(\"#school_code\");\n var schoolCode = school.val();\n var city = $(\"#city_id\").data();\n fill_schools($(school), cityId, schoolCode);\n }\n\n // Nel caso in cui la data di nascita non viene passata dal provider\n // oauth, non si può avanzare automaticamente il primo step\n var birthdaySet = isBirthdaySet();\n\n if (birthdaySet) {\n advanceStep();\n }\n }\n },\n });\n};\n\nwindow.fill_schools = function fill_schools(obj, province_code) {\n var opt_to_keep_1 = obj.find(\"#drop_other\")[0];\n var opt_to_keep_2 = obj.find(\".empty_sel\")[0];\n obj.find(\"option\").remove();\n if (province_code) {\n $.ajax({\n url: \"/school_data/universities_by_province?province_code=\" + province_code,\n dataType: \"json\",\n success: function (result) {\n obj.append(opt_to_keep_1);\n obj.append(opt_to_keep_2);\n $.each(result, function (key, value) {\n var label = \"\" + value[\"name\"] + \"\";\n obj.append('\");\n });\n },\n error: function (request, status, error) {\n alert(error);\n },\n });\n }\n};\n\nwindow.fill_school_email = function fill_school_email() {\n var email = $(\"#school_email\")[0].value;\n console.log(email);\n $(\"#mail_from_school\")[0].value = email;\n};\n\nwindow.fill_courses = function fill_courses(obj, school_code, selected) {\n obj.find(\"option\").remove();\n obj.append(\"\");\n\n $.ajax({\n url: \"/school_data/courses_by_school_code?school_code=\" + school_code,\n dataType: \"json\",\n success: function (result) {\n $.each(result, function (key, value) {\n obj.append(\"\");\n });\n if (selected) {\n obj.val(selected);\n }\n },\n });\n};\n\nwindow.generate_fake_email = function generate_fake_email(email_obj, fake_email_obj, name, surname, birthday) {\n $.ajax({\n url: \"/profile/generate_fake_email\",\n type: \"POST\",\n data: { name: name, surname: surname, birthday: birthday },\n dataType: \"json\",\n success: function (result) {\n $.each(result, function (key, value) {\n email_obj.value = value;\n fake_email_obj.value = value;\n });\n },\n });\n};\n\nwindow.disable_email_fields = function disable_email_fields() {\n $(\"#user_email\").prop(\"readonly\", true);\n $(\"label[for=email_confirmation], #email_confirmation\").hide();\n};\n\nwindow.enable_email_fields = function enable_email_fields() {\n $(\"#user_email\")[0].value = \"\";\n $(\"#user_email\").prop(\"readonly\", false);\n $(\"#email_confirmation\")[0].value = \"\";\n $(\"label[for=email_confirmation], #email_confirmation\").show();\n};\n\nwindow.disable_school_fields = function disable_school_fields(private_institute = false) {\n var school = $(\"#school_code\");\n var school_code = private_institute ? school.data(\"private-institutes-school-code\") : school.data(\"universities-school-code\");\n school.find(\"option\").remove();\n school.append(\"\");\n school.value = school_code;\n\n var classroom = $(\"#classroom\");\n classroom.find(\"option\").remove();\n classroom.append(\"\");\n classroom.value = \"other\";\n\n $(\".school-details\").hide();\n};\n\nwindow.enable_school_fields = function enable_school_fields() {\n var school = $(\"#school_code\");\n var city = $(\"#city_id\").data();\n fill_schools(school, city.id);\n\n var classroom = $(\"#classroom\");\n classroom.find(\"option\").remove();\n classroom.val(\"\");\n\n $(\".user-field.classroom-name\").hide();\n $(\".school-details\").show();\n $(\".user-field.school-name\").show();\n};\n\nwindow.fillProfileSchoolDets = function fillProfileSchoolDets() {\n $(\"#countainer_schools .dynamic_section\").each(function (i, container) {\n container = $(container);\n var school = container.find(\"select.schools_select\");\n var schoolCode = school.val();\n var city = container.find(\"input.schools_city\").data();\n var course = container.find(\"select.courses_select\");\n fill_schools($(school), city.id, schoolCode);\n fill_courses($(course), schoolCode, course.val());\n });\n};\n","import \"../src/shared/wrap_ready.js\";\nimport Cookie from \"../src/shared/cookie\";\n\nwindow.Hoepliacademy = {};\n\nwindow.addEventListener(\"DOMContentLoaded\", () => {\n window.Hoepliacademy.Cookie = new Cookie();\n});\n\n// we moved Bootstrap here afer updating to BS5 because\n// it wasn't loaded in the right order in application.js\nimport * as bootstrap from '../../../node_modules/bootstrap/dist/js/bootstrap.bundle.js';\n\nwindow.bootstrap = bootstrap;\n\nimport \"../../whitelabels/hoepliacademy/assets/javascripts/application.js\";\n"],"names":["$","scrollTopNav","scrollPos","$myCarousel","$myCarousel2","e","indx","$myCarousel3","$myCarouselBlog","next","event","target","$target","id","idx","v","containerSchools","firstSchoolBlock","new_block","i","me","value","summary","selected","$checked","texts","el","s","container1","container2","term","area","query","schoolSubjects","obj","content","pickerOpts","str","txt","region_id","regionPart","ui","classroom","ul","item","city","searchStyle","hide_show_others","brandId","divToShow","isOn","data","source","template","html","a","cellToActivate","welcomeTarget","slideNumber","$this","$error","name","json","this","wrapper","role","birthdayOK","schoolOK","complete","count","index","val","checkBDayAndSchool","viz","div","options","createViz","url","select","$el","first","evt","requirements","classId","age","day","month","year","inputDate","moment","birthDate","requirement","regex","xhr","parent","sel","ev","result","jQuery","manageStepChange","manageStepCircles","userLang","manageNewParentLinkDisableBtn","manageInputChange","manageDisableBtn","province_sel","province_code","element","uni_select","other_input","surname","birthday","radio_value","manageTosToggle","manageTosClick","width","z","flow","wrap","capsLock","$self","handler","input","uid","step","prefilled","oauth","callback","getCurrentStep","classesParent","curStep","btn","onPrivaciesChange","response","currentIndex","selectedIndex","curFlow","nextStep","manageTosBtn","manageTosToggleCheckbox","allTosChecked","mandatoryTosChecked","key","cityId","school","schoolCode","birthdaySet","opt_to_keep_1","opt_to_keep_2","label","request","status","error","email","school_code","email_obj","fake_email_obj","private_institute","container","course","Cookie","bootstrap"],"mappings":"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"}