{"version":3,"file":"../GuideSingleMultiPicker.js","names":["GuideSingleMultiPicker","me","this","selectedJurisdictionList","selectedRegionList","selectedQuestionList","jurisdictionQuickLookup","questionsQuickLookup","jurisdictionCheckboxList","guideErrorMessages","guideBuildLoading","guideBuildDisplay","jurisdictionsPopulated","questionsPopulated","Init","console","log","document","querySelector","getElementById","queryParams","URLSearchParams","window","location","search","get","q","split","length","forEach","el","checked","bind","querySelectorAll","val","index","push","id","parseInt","getAttribute","element","replaceAll","jArray","addJurisdictionToSelectedList","renderJurisdictionList","checkboxes","switchStage","breadcrumb","last","lastElementChild","removeChild","children","newA","createElement","classList","add","setAttribute","innerHTML","appendChild","buildFilters","getTableListing","checkBoxGroups","singleMultiItems","stage1QuestionNext","stage1QuestionNextBottom","stage2QuestionNext","stage2QuestionBack","stage3QuestionBack","showAllJurisdictions","showAllStage3","stage3ApplyFilters","jurisdictionCheckboxes","jurisdictionCheckbox","selectAllQuestions","selectAllJurisdictions","selectAllJurisdictionsInGroup","questionCheckboxes","mobileJursdictionDropdown","href","options","addEventListener","e","preventDefault","toTab","wrapper","closest","activeTab","t","remove","tc","className","replace","c","previousElementSibling","addQuestionToSelectedList","value","childChecks","target","checkall","params","set","history","replaceState","pathname","scrollToAnchorIDVanilla","showErrorMessage","currentUrl","URL","pushState","event","state","reload","json","topic","guideTitle","jurisdictions","commaEncodeForJson","questions","commaEncodeQuestions","regions","commaEncodedRegions","JSON","stringify","alert","delete","contains","hideJurisdictionsCaption","showAllJurisdictionsCaption","elVal","removeJurisdictionFromSelectedList","name","parentNode","ele","targetEle","targetId","selecting","targetDivs","checkbox","eleName","eleID","addJurisdictionToSelected","removeQuestionFromSelectedList","selectAllBox","selector","groupContainers","group","box","groupId","questionEle","questionId","currentTarget","questionCheckboxList","message","clearErrorMessage","suppressRefresh","newList","find","o","clicked","splice","commaEncodeList","join","caption","isAutoComplete","item","confirm","globalThis","v","template","parent","found","warn","qIDs","jIDs","getSearchResultsQuery","then","result","setTimeout","body","calculateHeight","applyClicks","anchors","getElementsByTagName","i","encoded","region","includes","toStage","autoCompleteElement","autoCompleteJS","autoComplete","autoCompleteConfig","Promise","resolve","reject","searchParams","fetch","method","headers","Accept","response","text","catch","error","tableClose","commaEncode","valueA","label","isQuestions","commaDecode","commaDecodeList","decoded","onload"],"sources":["GuideSingleMultiPicker.js"],"sourcesContent":["var GuideSingleMultiPicker = {\r\n me: this,\r\n selectedJurisdictionList: [],\r\n selectedRegionList: [],\r\n selectedQuestionList: [],\r\n jurisdictionQuickLookup: [],\r\n questionsQuickLookup: [],\r\n jurisdictionCheckboxList: [],\r\n guideErrorMessages: null,\r\n\r\n guideBuildLoading: null,\r\n guideBuildDisplay: null,\r\n jurisdictionsPopulated: false,\r\n questionsPopulated: false,\r\n\r\n Init: function () {\r\n console.log('Init GuideSingleMultiPicker')\r\n this.guideErrorMessages = document.querySelector('.guideErrorMessages');\r\n this.guideBuildLoading = document.getElementById('IGResultsLoading');\r\n this.guideBuildDisplay = document.getElementById('IGResults');\r\n var queryParams = new URLSearchParams(window.location.search);\r\n if (queryParams.get('questions') != null) {\r\n var q = queryParams.get('questions').split(\",\");\r\n this.selectedQuestionList = q;\r\n if (this.selectedQuestionList.length > 0) {\r\n this.questionsPopulated = true;\r\n }\r\n q.forEach(function (el) {\r\n var checkbox = document.getElementById(\"GQ_\" + el);\r\n checkbox.checked = true;\r\n }.bind(this));\r\n }\r\n jurisdictionCheckboxList = document.querySelectorAll('#jurisdictionCheckboxes input[type=checkbox]:not(.jurisdictionSelectAll)');\r\n jurisdictionCheckboxList.forEach((val, index) => {\r\n this.jurisdictionQuickLookup.push({ id: parseInt(val.getAttribute('id')), element: val });\r\n });\r\n if (queryParams.get('jurisdictions') != null) {\r\n var temp = queryParams.get('jurisdictions').replaceAll(\", \", \"*\");\r\n var j = temp.split(\",\");\r\n /* console.log(\"J: %o Query params: %o\", j, temp);*/\r\n j.forEach(function (el) {\r\n var val = el.replaceAll(\"*\", \", \");\r\n var jArray = val.split(\"-\");\r\n /* console.log(\"JArray: %o\", jArray);*/\r\n var checkbox = document.getElementById(jArray[1]);\r\n\r\n checkbox.checked = true;\r\n /* console.log(\"Checkbox: %o\", checkbox);*/\r\n this.addJurisdictionToSelectedList(jArray[0], jArray[1]);\r\n // Find each checkbox and set checked to true\r\n this.renderJurisdictionList();\r\n }.bind(this));\r\n if (this.selectedJurisdictionList.length > 0) {\r\n this.jurisdictionsPopulated = true;\r\n }\r\n }\r\n if (queryParams.get('stage') != null) {\r\n if (queryParams.get('stage') == \"questions\") {\r\n var checkboxes = document.querySelectorAll('#questionsContainer input[type=checkbox]');\r\n var checked = true;\r\n checkboxes.forEach(function (el) {\r\n /* console.log(\"EL: %o\", el.checked);*/\r\n if (el.checked == false) {\r\n checked = false;\r\n }\r\n });\r\n document.getElementById(\"selectAllQuestions\").checked = checked;\r\n\r\n this.switchStage(2);\r\n var breadcrumb = document.querySelector(\".breadcrumb\");\r\n var last = breadcrumb.lastElementChild;\r\n breadcrumb.removeChild(breadcrumb.children[2]);\r\n console.log(\"Breadcrumb : %o\", last);\r\n var newA = document.createElement('a');\r\n newA.classList.add(\"breadcrumb__link\");\r\n newA.setAttribute('href', \"/resources/guides-toolkits/global-practice-guides/\");\r\n newA.innerHTML = \"Global practice guides\";\r\n\r\n breadcrumb.appendChild(newA);\r\n breadcrumb.appendChild(last);\r\n }\r\n else if (queryParams.get('stage') == \"report\") {\r\n //var json = {\r\n // 'topic': guideTitle,\r\n // 'jurisdictions': commaEncodeForJson(this.selectedJurisdictionList),\r\n // 'questions': commaEncodeQuestions(this.selectedQuestionList, true),\r\n // 'regions': this.commaEncodedRegions(),\r\n\r\n //};\r\n\r\n //console.log(\"Json object: %o\", JSON.stringify(json));\r\n this.buildFilters();\r\n // Go to stage 3\r\n this.switchStage(3);\r\n this.getTableListing();\r\n }\r\n }\r\n if (this.jurisdictionsPopulated && this.questionsPopulated) {\r\n // Go straight to guide page\r\n }\r\n\r\n console.log(\"Jurisdictions: %o, Questions: %o\", queryParams.get('jurisdictions'), queryParams.get('questions'))\r\n let checkBoxGroups = document.querySelectorAll('.singleMultiSwitcher .parentItem');\r\n let singleMultiItems = document.querySelectorAll('.singleMultiSwitcher .tab a');\r\n let stage1QuestionNext = document.getElementById('stage1QuestionNext');\r\n let stage1QuestionNextBottom = document.getElementById('stage1QuestionNextBottom');\r\n let stage2QuestionNext = document.getElementById('stage2QuestionNext');\r\n let stage2QuestionBack = document.getElementById('stage2QuestionBack');\r\n let stage3QuestionBack = document.getElementById('stage3QuestionBack');\r\n let JurisdictionDropDown = document.getElementById('guideJurisdiction');\r\n let showAllJurisdictions = document.getElementById('showAllJurisdictions');\r\n let showAllStage3 = document.getElementById('stage3ShowAll');\r\n let stage3ApplyFilters = document.getElementById('stage3ApplyFilters');\r\n let jurisdictionCheckboxes = document.getElementById('jurisdictionCheckboxes');\r\n let jurisdictionCheckbox = document.querySelectorAll('.jurisdiction-checkbox');\r\n let reportCheckbox = document.querySelectorAll('.report-checkbox');\r\n let JurisdictionQuestionNext = document.getElementById('JurisdictionQuestionNext');\r\n let selectAllQuestions = document.getElementById('selectAllQuestionsLabel');\r\n let selectAllJurisdictions = document.getElementById('selectAllJurisdictionsLabel');\r\n let selectAllJurisdictionsInGroup = document.querySelectorAll('.jurisdictionSelectAllInGroup');\r\n let questionCheckboxes = document.querySelectorAll('#questionsContainer .guides__checkbox-label');\r\n let mobileJursdictionDropdown = document.getElementById('mobileJurisdictionSelecter')\r\n\r\n var url = window.location.href;\r\n var queryParams = new URLSearchParams(window.location.search);\r\n\r\n var urlKeywords, urlJurisdictions, urlQuestions;\r\n urlKeywords = urlJurisdictions = urlQuestions = '';\r\n console.log(\"DROPDOWN VALUE: %o\", document.getElementById(\"mobileJurisdictionSelecter\").options[0]);\r\n\r\n // document.getElementById(\"mobileGuideNext\").setAttribute(\"href\", document.getElementById('mobileJurisdictionSelecter').value);\r\n /* console.log(\"Url: %o, Query params: %o\", url, queryParams);*/\r\n // Switch between single and multi\r\n singleMultiItems.forEach(function (el) {\r\n el.addEventListener('click', function (e) {\r\n e.preventDefault();\r\n let toTab = el.classList.length > 0 ? el.classList[0] : '';\r\n //console.log('Switch tab : ' + toTab);\r\n\r\n let wrapper = el.closest('.singleMultiSwitcher');\r\n\r\n // Tab title\r\n let activeTab = el.closest('.tab');\r\n wrapper.querySelectorAll('.tab').forEach(function (t) { t.classList.remove('active'); }); // Make all tabs inactive\r\n //console.log(wrapper.querySelectorAll('.tab'));\r\n activeTab.classList.add('active'); // Make clicked tab active\r\n\r\n // Tab Content\r\n wrapper.querySelectorAll('.tabContent').forEach(function (tc) { tc.classList.add('hidden');; }); // Hide all content tabs\r\n let className = '.tabContent.' + toTab.replace(' active', '');\r\n let contentDiv = wrapper.querySelector(className); // Show clicked content\r\n contentDiv.classList.remove('hidden');\r\n }.bind(this));\r\n }.bind(this));\r\n //document.getElementById('guideBack').addEventListener('click', function (e) {\r\n // e.preventDefault();\r\n // history.back();\r\n //});\r\n questionCheckboxes.forEach(function (el) {\r\n el.addEventListener('click', function (e) {\r\n var c = el.previousElementSibling;\r\n /* console.log(\"prev sibling: %o\", c);*/\r\n this.addQuestionToSelectedList(c.value);\r\n }.bind(this));\r\n }.bind(this));\r\n\r\n // Top level checkbox group - Select / unselect all\r\n checkBoxGroups.forEach(function (el) {\r\n el.addEventListener('click', function (e) {\r\n let childChecks = e.target.closest('li').querySelectorAll('ul li div.checkbox-container input');\r\n let checkall = e.target.checked;\r\n childChecks.forEach(function (el) {\r\n if (checkall) {\r\n el.checked = true;\r\n } else {\r\n el.checked = false;\r\n }\r\n });\r\n }.bind(this));\r\n }.bind(this));\r\n\r\n // Next button on stage 1 - Questions\r\n stage1QuestionNext.addEventListener('click', function (e) {\r\n let childChecks = document.querySelectorAll('#jurisdictionList div'); // Only check nested\r\n\r\n //console.log(childChecks);\r\n if (childChecks.length > 0) {\r\n var params = new URLSearchParams(window.location.search);\r\n params.set('stage', \"questions\");\r\n var sparam = '' + params;\r\n if (sparam !== '') {\r\n window.history.replaceState({}, '', window.location.pathname + '?' + params);\r\n } else {\r\n window.history.replaceState({}, '', window.location.pathname);\r\n }\r\n\r\n this.switchStage(2);\r\n scrollToAnchorIDVanilla('topOfQuestionCheckboxes');\r\n } else {\r\n // Anchor to top and show error message\r\n this.showErrorMessage('Please select at least one jurisdiction');\r\n }\r\n }.bind(this));\r\n stage1QuestionNextBottom.addEventListener('click', function (e) {\r\n let childChecks = document.querySelectorAll('#jurisdictionList div'); // Only check nested\r\n //console.log(childChecks);\r\n if (childChecks.length > 0) {\r\n this.switchStage(2);\r\n scrollToAnchorIDVanilla('topOfQuestionCheckboxes');\r\n } else {\r\n // Anchor to top and show error message\r\n this.showErrorMessage('Please select at least one jurisdiction');\r\n }\r\n }.bind(this));\r\n stage2QuestionNext.addEventListener('click', function (e) {\r\n let childChecks = document.querySelectorAll('#questionsContainer input[type=checkbox]:checked');\r\n //console.log('Checked questions : %o', childChecks);\r\n // this.selectedQuestionList = []; // clear it out\r\n if (childChecks.length > 0) {\r\n // Save the checked items\r\n //childChecks.forEach((c) => {\r\n // this.selectedQuestionList.push(parseInt(c.value));\r\n //});\r\n var params = new URLSearchParams(window.location.search);\r\n params.set('stage', \"report\");\r\n var sparam = '' + params;\r\n if (sparam !== '') {\r\n window.history.replaceState({}, '', window.location.pathname + '?' + params);\r\n } else {\r\n window.history.replaceState({}, '', window.location.pathname);\r\n }\r\n const currentUrl = new URL(window.location);\r\n window.history.pushState({}, '', currentUrl);\r\n window.addEventListener('popstate', function (event) {\r\n event.preventDefault();\r\n var params = new URLSearchParams(window.location.search);\r\n params.set('stage', \"questions\");\r\n var sparam = '' + params;\r\n if (sparam !== '') {\r\n window.history.replaceState({}, '', window.location.pathname + '?' + params);\r\n } else {\r\n window.history.replaceState({}, '', window.location.pathname);\r\n }\r\n\r\n if (event.state != null) {\r\n location.reload();\r\n }\r\n });\r\n //const currentUrl = new URL(window.location);\r\n //window.history.pushState({}, '', currentUrl);\r\n //addEventListener('popstate', () => { location.reload() });\r\n\r\n // Create Json String\r\n var json = {\r\n 'topic': guideTitle,\r\n 'jurisdictions': commaEncodeForJson(this.selectedJurisdictionList),\r\n 'questions': commaEncodeQuestions(this.selectedQuestionList, true),\r\n 'regions': this.commaEncodedRegions(),\r\n // 'questions': [\"What is the key anti-bribery and corruption legislation in your jurisdiction\", \"Who is subject to the legislation?\",\" Is requesting or accepting a bribe prohibited by the legislation?\"] ,\r\n };\r\n\r\n console.log(\"Json object: %o\", JSON.stringify(json));\r\n this.buildFilters();\r\n // Go to stage 3\r\n this.switchStage(3);\r\n this.getTableListing();\r\n } else {\r\n // Anchor to top and show error message\r\n this.showErrorMessage('Please select at least one question');\r\n }\r\n }.bind(this));\r\n\r\n stage3ApplyFilters.addEventListener('click', function (e) {\r\n if (this.selectedQuestionList.length > 0) {\r\n // Hide jurisdiction list if visible\r\n jurisdictionCheckboxes.classList.add(\"hidden\");\r\n // Go to stage 3\r\n this.switchStage(3);\r\n scrollToAnchorIDVanilla('topOfIGResults');\r\n this.getTableListing();\r\n } else {\r\n alert('Lost track of questions');\r\n }\r\n }.bind(this));\r\n\r\n stage2QuestionBack.addEventListener('click', function (e) {\r\n var params = new URLSearchParams(window.location.search);\r\n\r\n params.delete('stage');\r\n\r\n var sparam = '' + params;\r\n if (sparam !== '') {\r\n window.history.replaceState({}, '', window.location.pathname + '?' + params);\r\n } else {\r\n window.history.replaceState({}, '', window.location.pathname);\r\n }\r\n this.switchStage(1);\r\n }.bind(this));\r\n\r\n stage3QuestionBack.addEventListener('click', function (e) {\r\n this.switchStage(2);\r\n }.bind(this));\r\n\r\n showAllJurisdictions.addEventListener('click', function (e) {\r\n if (jurisdictionCheckboxes.classList.contains(\"hidden\")) {\r\n jurisdictionCheckboxes.classList.remove(\"hidden\");\r\n showAllJurisdictions.value = hideJurisdictionsCaption; // This is a global var in /blocklist/components/practiceGuideSingleMultiPicker\r\n }\r\n else {\r\n jurisdictionCheckboxes.classList.add(\"hidden\");\r\n showAllJurisdictions.value = showAllJurisdictionsCaption; // This is a global var in /blocklist/components/practiceGuideSingleMultiPicker\r\n }\r\n }.bind(this));\r\n\r\n showAllStage3.addEventListener('click', function (e) {\r\n if (jurisdictionCheckboxes.classList.contains(\"hidden\")) {\r\n jurisdictionCheckboxes.classList.remove(\"hidden\");\r\n showAllStage3.value = \"Hide\";\r\n }\r\n else {\r\n jurisdictionCheckboxes.classList.add(\"hidden\");\r\n showAllStage3.value = \"Show all\";\r\n }\r\n }.bind(this));\r\n\r\n jurisdictionCheckbox.forEach(function (el) {\r\n el.addEventListener('click', function (e) {\r\n var elVal = parseInt(el.value);\r\n var region = el.getAttribute(\"data-group-title\");\r\n /* console.log(\"Region: %o\", this.jurisdictionQuickLookup);*/\r\n if (el.checked == false) {\r\n this.removeJurisdictionFromSelectedList(elVal);\r\n }\r\n else {\r\n this.addJurisdictionToSelectedList(el.name, elVal);\r\n }\r\n this.renderJurisdictionList();\r\n }.bind(this));\r\n }.bind(this));\r\n\r\n mobileJursdictionDropdown.addEventListener('change', function (e) {\r\n document.getElementById(\"mobileGuideNext\").setAttribute(\"href\", this.value);\r\n });\r\n\r\n document.getElementById(\"mobileGuideNext\").addEventListener('click', function (e) {\r\n if (this.getAttribute(\"href\") == '') {\r\n e.preventDefault();\r\n }\r\n });\r\n // Remove buttons on the selected jurisdictions\r\n document.getElementById(\"jurisdictionList\").addEventListener(\"click\", function (e) {\r\n if (e.target && e.target.parentNode.classList.contains('jurisdiction-item')) {\r\n // Do something\r\n //console.log('clicked checkbox with id : %o ', e.target.parentNode.getAttribute('data-id'));\r\n this.removeJurisdictionFromSelectedList(parseInt(e.target.parentNode.getAttribute('data-id')));\r\n }\r\n }.bind(this));\r\n\r\n // Select all / None jurisdiction buttons\r\n document.querySelectorAll(\".guides__checkbox-title .selectAllNone\").forEach((ele) => {\r\n ele.addEventListener(\"click\", function (e) {\r\n console.log('Clicked select all none');\r\n //if (e.target && e.target.classList.contains('selectAllNone')) {\r\n // Kill the click action\r\n e.preventDefault();\r\n\r\n var targetEle = e.target;\r\n\r\n var targetId = `CBGroup_${targetEle.parentNode.getAttribute('data-group-id')}`;\r\n\r\n let selecting = false;\r\n if (targetEle.classList.contains('all')) {\r\n selecting = true;\r\n }\r\n\r\n /* console.log('targetId : %o', targetId);*/\r\n var targetDivs = document.querySelectorAll('.' + targetId);\r\n var checkboxes = [];\r\n targetDivs.forEach((val, index) => {\r\n var allCheckboxes = val.querySelectorAll('input[type = checkbox]');\r\n allCheckboxes.forEach((checkbox, index) => {\r\n checkboxes.push(checkbox);\r\n });\r\n });\r\n\r\n // var targetDiv = document.getElementById(targetId);\r\n // var checkboxes = targetDiv.querySelectorAll('input[type = checkbox]');\r\n\r\n let shouldSkip = false;\r\n checkboxes.forEach((c) => {\r\n if (shouldSkip) {\r\n return;\r\n }\r\n var eleName = c.getAttribute('name');\r\n var eleID = parseInt(c.getAttribute('id'));\r\n\r\n //c.checked = selecting;\r\n if (!selecting) {\r\n this.removeJurisdictionFromSelectedList(eleID, true);\r\n }\r\n else {\r\n //if (this.selectedJurisdictionList.length == 5) {\r\n // alert('Only a maximum of 5 jursidictions can be selected at once.');\r\n // shouldSkip = true;\r\n // return;\r\n\r\n //}\r\n // else {\r\n this.addJurisdictionToSelected(eleName, eleID, true);\r\n // }\r\n }\r\n });\r\n\r\n this.renderJurisdictionList();\r\n //}\r\n }.bind(this));\r\n });\r\n selectAllQuestions.addEventListener('click', function (e) {\r\n let checkbox = document.getElementById('selectAllQuestions');\r\n\r\n var selecting = false;\r\n\r\n if (checkbox.checked == false) {\r\n checkbox.checked = true;\r\n selecting = true;\r\n }\r\n else {\r\n checkbox.checked = false;\r\n }\r\n var checkboxes = this.questionsQuickLookup;\r\n\r\n checkboxes.forEach((c) => {\r\n c.element.checked = selecting;\r\n if (selecting) {\r\n this.addQuestionToSelectedList(c.element.value);\r\n }\r\n else {\r\n this.removeQuestionFromSelectedList(c.element.value);\r\n }\r\n });\r\n if (!selecting) {\r\n this.selectedQuestionList = [];\r\n this.buildFilters();\r\n }\r\n }.bind(this));\r\n\r\n selectAllJurisdictions.addEventListener('click', function (e) {\r\n let checkbox = document.getElementById('selectAllJurisdictions');\r\n\r\n var selecting = false;\r\n\r\n if (checkbox.checked == false) {\r\n //checkbox.checked = true;\r\n selecting = true;\r\n }\r\n else {\r\n //checkbox.checked = false;\r\n }\r\n var checkboxes = this.jurisdictionQuickLookup;\r\n\r\n checkboxes.forEach((c) => {\r\n c.element.checked = selecting;\r\n if (selecting) {\r\n this.addJurisdictionToSelectedList(c.element.name, c.element.value);\r\n\r\n selectAllJurisdictionsInGroup.forEach(function (selectAllBox) {\r\n selectAllBox.checked = true;\r\n });\r\n }\r\n else {\r\n this.removeJurisdictionFromSelectedList(c.element.value);\r\n\r\n selectAllJurisdictionsInGroup.forEach(function (selectAllBox) {\r\n selectAllBox.checked = false;\r\n });\r\n }\r\n });\r\n if (!selecting) {\r\n this.selectedJurisdictionList = [];\r\n this.buildFilters();\r\n }\r\n\r\n this.renderJurisdictionList();\r\n }.bind(this));\r\n\r\n selectAllJurisdictionsInGroup.forEach(function (selectAllBox) {\r\n selectAllBox.addEventListener('click', function (e) {\r\n\r\n var selecting = false;\r\n\r\n if (selectAllBox.checked == true) {\r\n //checkbox.checked = true;\r\n selecting = true;\r\n }\r\n\r\n var selectAllBoxVal = parseInt(selectAllBox.value);\r\n var selector = \".CBGroup_\" + selectAllBoxVal;\r\n var groupContainers = document.querySelectorAll(selector);\r\n\r\n //The checkboxes might be split across multiple groups in different columns, so we need to collate them\r\n var checkboxes = [];\r\n groupContainers.forEach((group) => {\r\n var boxes = group.querySelectorAll('.jurisdiction-checkbox');\r\n boxes.forEach((box) => {\r\n checkboxes.push(box);\r\n });\r\n });\r\n\r\n checkboxes.forEach((c) => {\r\n c.checked = selecting;\r\n if (selecting) {\r\n this.addJurisdictionToSelectedList(c.name, c.value);\r\n }\r\n else {\r\n this.removeJurisdictionFromSelectedList(c.value);\r\n }\r\n });\r\n\r\n if (selecting) {\r\n this.buildFilters();\r\n }\r\n\r\n this.renderJurisdictionList();\r\n\r\n if (selecting) {\r\n scrollToAnchorIDVanilla(\"autoCompleteStage1\");\r\n }\r\n\r\n }.bind(this));\r\n }.bind(this));\r\n\r\n document.querySelectorAll(\"a.guides__question-list-group\").forEach((ele) => {\r\n ele.addEventListener(\"click\", function (e) {\r\n var groupId = e.target.getAttribute('data-group-id');\r\n console.log(groupId);\r\n\r\n document.querySelectorAll(`input[data-group-id=\"${groupId}\"]`).forEach((questionEle) => {\r\n var questionId = questionEle.value;\r\n\r\n if (questionEle.checked) {\r\n questionEle.checked = false;\r\n this.removeQuestionFromSelectedList(questionId);\r\n }\r\n else {\r\n questionEle.checked = true;\r\n this.addQuestionToSelectedList(questionId);\r\n }\r\n });\r\n }.bind(this));\r\n });\r\n\r\n // Select all / None question buttons\r\n document.querySelectorAll(\"#questionsContainer .selectAllNoneQuestions\").forEach((ele) => {\r\n ele.addEventListener(\"click\", function (e) {\r\n console.log('Clicked select all none question');\r\n\r\n e.preventDefault();\r\n\r\n let selecting = false;\r\n if (e.currentTarget.classList.contains('all')) {\r\n selecting = true;\r\n }\r\n\r\n var checkboxes = this.questionsQuickLookup;\r\n\r\n checkboxes.forEach((c) => {\r\n c.element.checked = selecting;\r\n });\r\n }.bind(this));\r\n });\r\n\r\n // Jurisdiction quick lookup\r\n jurisdictionCheckboxList = document.querySelectorAll('#jurisdictionCheckboxes input[type=checkbox]:not(.jurisdictionSelectAll)');\r\n jurisdictionCheckboxList.forEach((val, index) => {\r\n this.jurisdictionQuickLookup.push({ id: parseInt(val.getAttribute('id')), element: val });\r\n });\r\n // Question quick lookup\r\n let questionCheckboxList = document.querySelectorAll('#questionsContainer input[type=checkbox]');\r\n\r\n questionCheckboxList.forEach((val, index) => {\r\n this.questionsQuickLookup.push({ id: parseInt(val.getAttribute('id')), element: val });\r\n });\r\n console.log(questionCheckboxList);\r\n\r\n // Title\r\n // document.getElementById('guide--title').innerHTML = guideTitle;\r\n\r\n // Debug\r\n //this.selectedJurisdictionList.push({ id: 42254, caption: 'Canada, Ontario' });\r\n //this.selectedJurisdictionList.push({ id: 42265, caption: 'Canda, Quebec' });\r\n //console.log('this.selectedJurisdictionList : %o ', this.selectedJurisdictionList);\r\n //this.renderJurisdictionList();\r\n }, // Init\r\n\r\n showErrorMessage: function (message) {\r\n this.guideErrorMessages.innerHTML = message;\r\n this.guideErrorMessages.classList.remove('hidden');\r\n scrollToAnchorIDVanilla('guideErrorMessages');\r\n },\r\n clearErrorMessage: function () {\r\n this.guideErrorMessages.classList.add('hidden');\r\n this.guideErrorMessages.innerHTML = '';\r\n },\r\n\r\n removeJurisdictionFromSelectedList: function (id, suppressRefresh = false) {\r\n //alert(\"Removed\");\r\n var newList = this.selectedJurisdictionList;\r\n /* console.log(\"NEw list: %o, Id: %o\", newList, id);*/\r\n this.selectedJurisdictionList.forEach((val, index) => {\r\n if (val.id == id) {\r\n // Remove from the checkbox list\r\n let found = newList.find(o => o.id == id);\r\n found.clicked = false;\r\n\r\n // Remove from the array\r\n newList.splice(index, 1);\r\n }\r\n });\r\n\r\n this.selectedJurisdictionList = newList;\r\n if (!suppressRefresh) {\r\n this.renderJurisdictionList();\r\n }\r\n this.buildFilters();\r\n },\r\n buildFilters: function () {\r\n //console.log(' In filters : %o', filterObj.city.join());\r\n var params = new URLSearchParams(window.location.search);\r\n console.log(\"J: %o\", this.selectedJurisdictionList);\r\n this.selectedJurisdictionList.length > 0 ? params.set('jurisdictions', commaEncodeList(this.selectedJurisdictionList, false).join()) : params.delete('jurisdictions');\r\n this.selectedQuestionList.length > 0 ? params.set('questions', commaEncodeList(this.selectedQuestionList, true).join()) : params.delete('questions');\r\n\r\n var sparam = '' + params;\r\n if (sparam !== '') {\r\n window.history.replaceState({}, '', window.location.pathname + '?' + params);\r\n } else {\r\n window.history.replaceState({}, '', window.location.pathname);\r\n }\r\n },\r\n addJurisdictionToSelectedList: function (caption, id, isAutoComplete = false) {\r\n // Already in the list?\r\n for (let item of this.selectedJurisdictionList) {\r\n //if (this.selectedJurisdictionList.length == 5) {\r\n // alert('Only a maximum of 5 jursidictions can be selected at once.');\r\n // return false;\r\n\r\n //}\r\n if (item.id == id) {\r\n if (isAutoComplete) { // Auto complete searched for existing result\r\n if (confirm('This items has already been added. Do you want to remove it?')) {\r\n this.removeJurisdictionFromSelectedList(id);\r\n }\r\n }\r\n this.buildFilters();\r\n return false;\r\n }\r\n }\r\n\r\n // Not got this one\r\n this.selectedJurisdictionList.push({ id: id, caption: caption });\r\n this.buildFilters();\r\n\r\n return true;\r\n },\r\n addQuestionToSelectedList: function (id) {\r\n console.log(\"Question id: %o\", id);\r\n // Already in the list?\r\n for (let item of this.selectedQuestionList) {\r\n if (item == id) {\r\n this.removeQuestionFromSelectedList(id);\r\n\r\n this.buildFilters();\r\n return false;\r\n }\r\n }\r\n\r\n // Not got this one\r\n this.selectedQuestionList.push(id);\r\n console.log(\"Selected Question list: %o\", this.selectedQuestionList);\r\n this.buildFilters();\r\n return true;\r\n },\r\n removeQuestionFromSelectedList: function (id, suppressRefresh = false) {\r\n //alert(\"Removed\");\r\n var newList = this.selectedQuestionList;\r\n\r\n this.selectedQuestionList.forEach((val, index) => {\r\n if (val == id) {\r\n // Remove from the checkbox list\r\n let found = newList.find(o => o === id);\r\n found.clicked = false;\r\n\r\n // Remove from the array\r\n newList.splice(index, 1);\r\n }\r\n });\r\n console.log(\"New list: %o\", newList);\r\n this.selectedQuestionList = newList;\r\n\r\n this.buildFilters();\r\n },\r\n renderJurisdictionList: function () {\r\n console.log('Render list with : %o', this.selectedJurisdictionList);\r\n var globalThis = this;\r\n\r\n // Clear everything out\r\n document.getElementById('jurisdictionList').innerHTML = '';\r\n jurisdictionCheckboxList.forEach((v) => {\r\n v.checked = false;\r\n })\r\n\r\n // Re-apply all\r\n this.selectedJurisdictionList.forEach((val, index) => {\r\n // Top templates\r\n let id = val.id;\r\n let caption = val.caption;\r\n let template = `
${caption}
`; // onclick='removeJurisdictionFromSelected(\"${caption}\",${id});'\r\n document.getElementById('jurisdictionList').innerHTML += template;\r\n let removeIcons = document.querySelectorAll('.guides__remove-jurisdiction');\r\n removeIcons.forEach(function (el) {\r\n el.addEventListener('click', function (e) {\r\n let parent = el.parentNode;\r\n globalThis.removeJurisdictionFromSelectedList(parseInt(parent.getAttribute('data-id')));\r\n });\r\n });\r\n // Check the boxes\r\n let found = this.jurisdictionQuickLookup.find(o => o.id == id);\r\n if (found !== undefined && found !== null) {\r\n found.element.checked = true;\r\n } else {\r\n console.warn('Jurisdiction checkbox missing for id : %o', id);\r\n }\r\n });\r\n },\r\n\r\n addJurisdictionToSelected: function (caption, id, suppressRefresh = false) {\r\n let added = this.addJurisdictionToSelectedList(caption, id);\r\n //console.log('Selected jurisdictions : %o', this.selectedJurisdictionList);\r\n if (!suppressRefresh) {\r\n this.renderJurisdictionList();\r\n }\r\n },\r\n\r\n getTableListing: function () {\r\n this.guideBuildLoading.classList.remove('hidden');\r\n let questionChecks = document.querySelectorAll('#questionsContainer ul li input:checked');\r\n // let body = document.querySelector('body');\r\n\r\n var qIDs = this.selectedQuestionList;\r\n //questionChecks.forEach((v) => qIDs.push(parseInt(v.value)));\r\n\r\n var jIDs = [];\r\n this.selectedJurisdictionList.forEach((v) => jIDs.push(v.id));\r\n\r\n // DEBUG\r\n //jIDs = ['34885','34886'];\r\n //qIDs = ['35126','35138']; //, '35114', '35102', '35090', '35078', '35066', '35054', '35042', '35030', '35018', '35006', '34994', '34982', '34970', '34958', '34946', '34934', '34922', '34910'\r\n\r\n console.log('Q : %o , J : %o', qIDs, jIDs);\r\n\r\n var prom = this.getSearchResultsQuery(qIDs, jIDs);\r\n prom.then(\r\n function (result) {\r\n var guideTitle = document.getElementById('guide--title').innerHTML;\r\n //console.log(\"Search results : %o\", result);\r\n setTimeout(() => {\r\n this.guideBuildLoading.classList.add('hidden');\r\n }, 1000);\r\n this.guideBuildDisplay.classList.remove('hidden');\r\n body.classList.add('overflow--hidden');\r\n document.getElementById('IGResults').innerHTML = result; //result.htmlResults;\r\n document.getElementById('guide--title--overlay').innerHTML = guideTitle;\r\n calculateHeight();\r\n applyClicks();\r\n\r\n var anchors = document.getElementById('reportBody').getElementsByTagName('a');\r\n for (var i = 0; i < anchors.length; i++) {\r\n anchors[i].setAttribute('target', '_blank');\r\n }\r\n document.querySelectorAll('.report-checkbox').forEach(function (el) {\r\n el.checked = true;\r\n el.addEventListener('click', function (e) {\r\n // console.log(\"IS CHECKED: %o\", document.querySelectorAll('.report-checkbox-container input[type=checkbox]:checked'));\r\n var checked = document.querySelectorAll('.report-checkbox-container input[type=checkbox]:checked');\r\n if (checked.length == 0) {\r\n document.getElementById('reportBody').classList.add(\"hidden\");\r\n }\r\n else {\r\n document.getElementById('reportBody').classList.remove(\"hidden\");\r\n }\r\n\r\n var reportInfo = document.querySelectorAll('.info-' + el.id);\r\n /* console.log(\"report info: %o\", reportInfo);*/\r\n\r\n reportInfo.forEach(function (element) {\r\n if (element.classList.contains(\"hidden\")) {\r\n element.classList.remove(\"hidden\");\r\n }\r\n else {\r\n element.classList.add(\"hidden\");\r\n }\r\n });\r\n }.bind(this));\r\n }.bind(this));\r\n document.getElementById('tableClose').addEventListener('click', function (e) {\r\n e.preventDefault();\r\n const currentUrl = new URL(window.location);\r\n window.history.pushState({}, '', currentUrl);\r\n\r\n var params = new URLSearchParams(window.location.search);\r\n params.set('stage', \"questions\");\r\n var sparam = '' + params;\r\n if (sparam !== '') {\r\n window.history.replaceState({}, '', window.location.pathname + '?' + params);\r\n } else {\r\n window.history.replaceState({}, '', window.location.pathname);\r\n }\r\n location.reload();\r\n });\r\n }.bind(this)\r\n )\r\n },\r\n\r\n commaEncodedRegions: function () {\r\n var encoded = [];\r\n for (i = 0; i < this.selectedJurisdictionList.length; i++) {\r\n let found = this.jurisdictionQuickLookup.find(o => o.id == this.selectedJurisdictionList[i].id);\r\n var region = found.element.getAttribute(\"data-group-title\");\r\n /* console.log(\"FOUND: %o\", found);*/\r\n if (!encoded.includes(region)) {\r\n encoded.push(region);\r\n }\r\n }\r\n\r\n return encoded;\r\n },\r\n\r\n switchStage: function (toStage) {\r\n var container = document.getElementById(\"showAllContainer\");\r\n if (toStage == 2) {\r\n jurisdictionCheckboxes.classList.add(\"hidden\");\r\n document.getElementById(\"jurisdictionList\").classList.add(\"hidden\");\r\n showAllJurisdictions.value = showAllJurisdictionsCaption; // This is a global var in /blocklist/components/practiceGuideSingleMultiPicker\r\n\r\n // Move the auto complete\r\n var autoCompleteElement = document.getElementById('autoComplete');\r\n var stage3Holder = document.getElementById('autoCompleteStage3');\r\n stage3Holder.appendChild(autoCompleteElement);\r\n console.log('apply js autocomplete');\r\n autoCompleteJS = new autoComplete(autoCompleteConfig);\r\n }\r\n if (toStage == 1) {\r\n // Move the auto complete\r\n document.getElementById(\"jurisdictionList\").classList.remove(\"hidden\");\r\n var autoCompleteElement = document.getElementById('autoComplete');\r\n var stage1Holder = document.getElementById('autoCompleteStage1');\r\n stage1Holder.appendChild(autoCompleteElement);\r\n console.log('apply js autocomplete');\r\n autoCompleteJS = new autoComplete(autoCompleteConfig);\r\n }\r\n\r\n document.querySelectorAll('.qStages').forEach(function (el) {\r\n el.classList.add('hidden');\r\n });\r\n\r\n // Clear out any errors\r\n this.clearErrorMessage();\r\n\r\n document.querySelector('.qStages.stage' + toStage).classList.remove('hidden');\r\n },\r\n\r\n getSearchResultsQuery: function (qIDs, jIDs) {\r\n return new Promise(function (resolve, reject) {\r\n searchParams = { jurisdictions: jIDs, questions: qIDs }\r\n console.log('GetSearchResults from searchParams : %o', searchParams);\r\n\r\n fetch('/Umbraco/Surface/InteractiveGuidesFrontEnd/GetGuides', {\r\n body: JSON.stringify(searchParams), method: 'post', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' },\r\n })\r\n .then(function (response) {\r\n //console.log('response : %o', response.json());\r\n\r\n resolve(response.text());\r\n })\r\n .catch(error => {\r\n //console.log('Failed', error);\r\n reject(error);\r\n });\r\n });\r\n }\r\n}\r\n\r\nfunction tableClose(e) {\r\n const table = e.parentNode.parentNode;\r\n\r\n table.classList.add('hidden')\r\n body.classList.remove('overflow--hidden')\r\n}\r\nfunction commaEncode(value) {\r\n // if (FacHelpers.isNullOrEmpty(value)) {\r\n // return '';\r\n // } else {\r\n /* console.log(\"val: %o\", value);*/\r\n if (typeof value === 'string') {\r\n return value.replace(',', '--');\r\n } else {\r\n return value;\r\n }\r\n //}\r\n}\r\nfunction commaEncodeForJson(valueA) {\r\n var encoded = [];\r\n for (i = 0; i < valueA.length; i++) {\r\n encoded.push(valueA[i].caption);\r\n }\r\n\r\n return encoded;\r\n}\r\nfunction commaEncodedRegions() {\r\n var encoded = [];\r\n for (i = 0; i < selectedJurisdictionList.length; i++) {\r\n let found = this.jurisdictionQuickLookup.find(o => o.id == selectedJurisdictionList[i].id);\r\n var region = \"\";\r\n /* console.log(\"FOUND: %o\", found);*/\r\n if (!encoded.contains(region)) {\r\n encoded.push(region);\r\n }\r\n }\r\n\r\n return encoded;\r\n}\r\nfunction commaEncodeQuestions(valueA) {\r\n /* console.log(\"List: %o\", valueA);*/\r\n var encoded = [];\r\n for (i = 0; i < valueA.length; i++) {\r\n var c = document.getElementById(\"GQ_\" + valueA[i]);\r\n var id = \"GQ_\" + valueA[i];\r\n var label = document.querySelectorAll('[for=\"' + id + '\"]');\r\n\r\n /* console.log(\"Label: %o\", label[0].innerHTML);*/\r\n encoded.push(label[0].innerHTML);\r\n }\r\n\r\n return encoded;\r\n}\r\nfunction commaEncodeList(valueA, isQuestions) {\r\n console.log(\"List: %o\", valueA);\r\n var encoded = [];\r\n for (i = 0; i < valueA.length; i++) {\r\n if (isQuestions) {\r\n encoded.push(valueA[i]);\r\n }\r\n else {\r\n encoded.push(valueA[i].caption + \"-\" + valueA[i].id);\r\n }\r\n }\r\n\r\n return encoded;\r\n}\r\nfunction commaDecode(value) {\r\n //if (FacHelpers.isNullOrEmpty(value)) {\r\n // return '';\r\n //} else {\r\n if (typeof value === 'string') {\r\n return value.replace('--', ',');\r\n } else {\r\n return value;\r\n }\r\n //}\r\n}\r\nfunction commaDecodeList(valueA) {\r\n var decoded = [];\r\n for (i = 0; i < valueA.length; i++) {\r\n decoded.push(commaDecode(valueA[i]));\r\n }\r\n return decoded;\r\n}\r\nwindow.onload = function (e) {\r\n document.getElementById(\"mobileGuideNext\").setAttribute(\"href\", document.getElementById(\"mobileJurisdictionSelecter\").value);\r\n}"],"mappings":"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","ignoreList":[]}