');s.find("button.reset-pins").click(function(){($ftw=b(this).closest(".fixed-table-wrapper")).removeClass("sticky-table"),$ftw.find("tr").remove(),($innerTable=$ftw.siblings(".inner")).find("tr input").prop("checked",!1)}),(t.find("td.sub-header").length?t.find("td.sub-header"):t.find("th div")).append(e),s.insertBefore(b(this).find(".inner"))});var o=b(".first-header");if(0!==o.length){var c,f="",f=o[0].firstElementChild.innerText;for(i=1;i *").css("display","none"),b("#process-state-change-bulk-wrapper .process-state-change-message").fadeIn(200),b.ajax({url:e,type:"POST",data:t.serialize(),success:function(){location.reload()}})}),b("#process-state-change-bulk-wrapper .btn-clear-checkboxes").click(function(){b(".assessment-status-td.enable-process-state-change input[name='process-state-change']").each(function(){b(this).prop("checked",!1)}),b("#process-state-change-bulk-wrapper").css("display","none"),b("#process-state-change-bulk-wrapper #form-process-state-change-bulk input[name='process-state-change']").remove()}),b(".assessment-status-td.enable-process-state-change").each(function(){var t=b(this),e=t.find(".assessment-status-wrapper form").last().attr("action");b("").attr("name","process-state-change").attr("value",e).appendTo(t).change(function(){var t,e,s=b(this).attr("value");b(this).is(":checked")?(0===b("#form-process-state-change-bulk").find("input[value='"+s+"' ]").length&&(console.log("this: ",b(this)),b(this).clone().attr("type","hidden").appendTo("#form-process-state-change-bulk")),(t=b(this).parent("td").find(".phase-selector").clone(!1).attr("id","process-state-bulk-select")).find(".select2-container").remove(),t.find("select").show().css("display",""),e=t.find("select").removeClass("select2-offscreen select2-hidden-accessible").removeAttr("data-select2-id").removeAttr("tabindex").removeAttr("aria-hidden").removeAttr("style"),b("#form-process-state-change-bulk .phase-selector").replaceWith(t),"function"==typeof e.select2&&e.select2({width:"250px",minimumResultsForSearch:-1}),b("#process-state-change-bulk-wrapper").css("display","block")):(b("#form-process-state-change-bulk").find("input[value='"+s+"' ]").remove(),0===b("#form-process-state-change-bulk").find("input[name='process-state-change']").length&&((e=b("#form-process-state-change-bulk .phase-selector select")).data("select2")&&e.select2("destroy"),e.remove(),b("#process-state-change-bulk-wrapper").css("display","none")))})})})})}(window,document,$);
//# sourceMappingURL=compliance.js.map
\ No newline at end of file
diff --git a/src/wise/msfd/static/wise/dist/js/compliance.js.map b/src/wise/msfd/static/wise/dist/js/compliance.js.map
index 8adacea8c..e8f51bfaf 100644
--- a/src/wise/msfd/static/wise/dist/js/compliance.js.map
+++ b/src/wise/msfd/static/wise/dist/js/compliance.js.map
@@ -1 +1 @@
-{"version":3,"file":"compliance.js","sources":["../../src/js/compliance.js"],"sourcesContent":["// if (!Array.prototype.last) {\n// Array.prototype.last = function () {\n// return this[this.length - 1];\n// };\n// }\n\n(function (window, document, $) {\n var selectorFormContainer = \".wise-search-form-container\";\n var exceptVal = [\"all\", \"none\", \"invert\", \"apply\"];\n /*\n * SELECT2 functions\n * */\n // TODO: please explain what this does and why it's needed\n // function setupSelects2(selector) {\n // var forbiddenIDs = [];\n // var selectorFormCont = selector || selectorFormContainer;\n\n // $(selectorFormCont + \" select\").each(function (ind, selectElement) {\n // var selectedElementID = $(selectElement).attr(\"id\");\n // if (forbiddenIDs.indexOf(selectedElementID) !== -1) {\n // return false;\n // }\n\n // $(selectElement).addClass(\"js-example-basic-single\");\n // var lessOptions = $(selectElement).find(\"option\").length < 10;\n\n // var options = {\n // placeholder: \"Select an option\",\n // closeOnSelect: true,\n // dropdownAutoWidth: true,\n // width: \"100%\",\n // theme: \"flat\",\n // };\n // if (lessOptions) options.minimumResultsForSearch = Infinity;\n\n // $(selectElement).select2(options);\n // });\n // }\n\n function initStyling() {\n // TODO: is this still needed? I don't think so\n //$(\"#form-buttons-continue\").hide(\"fast\");\n $(\".button-field\").addClass(\"btn\");\n\n // mobile hide .toggle-sidebar\n $(\".toggle-sidebar\").hide();\n }\n\n function setupTargetsWidth() {\n // Make targets extend on multiple rows when there are many targets\n // and the assessment-data-table is scrollable\n var $tableWrap = $(\".table-wrap\");\n var $assessmentTable = $(\n \"#container-assessment-data-2018 .assessment-data-table\",\n );\n if ($assessmentTable.width() <= $tableWrap.width()) {\n return;\n }\n\n $(\"div.gescomp\", $tableWrap).css({\n display: \"inline-table\",\n \"min-width\": \"inherit\",\n width: \"inherit\",\n });\n\n var maxGescompWidth = 0;\n $(\"div.gescomp\", $tableWrap).each(function () {\n var width = $(this).width();\n if (width > maxGescompWidth) {\n maxGescompWidth = width;\n }\n });\n\n $(\"div.gescomp\", $tableWrap).css({ width: maxGescompWidth });\n\n // $(window).on('resize', adjustTargetsWidth);\n }\n\n function setupScrollableTargets() {\n // NOT USED\n // create a clone of the assessment data 2018 table and overlap the original table\n // with fixed question and score columns\n $(\n \"#container-assessment-data-2018 .table.table-condensed.assessment-data-table\",\n )\n .clone(true)\n .appendTo(\"#container-assessment-data-2018\")\n .addClass(\"clone\");\n\n var $orig = $(\".table-wrap .table.table-condensed.assessment-data-table\");\n var $clone = $(\".table.table-condensed.assessment-data-table.clone\");\n var origLength = $orig.find(\"tr\").length;\n var origHeight, cloneHeight;\n\n for (var i = 0; i < origLength; i++) {\n var x = $clone.find(\"tr\")[i];\n cloneHeight = $(x).find(\".fixed-center\").innerHeight();\n origHeight = $($orig.find(\"tr\")[i]).innerHeight();\n\n if (origHeight > cloneHeight) {\n $(x).css(\"height\", origHeight + \"px\");\n } else {\n $($orig.find(\"tr\")[i]).css(\"height\", cloneHeight + \"px\");\n }\n }\n }\n\n function setupAssessmentStatusChange() {\n // Setup the process status change forms to make it possible\n // to change the assessment status on pages like\n // ./assessment-module/national-descriptors-assessments/fi/assessments\n // ./assessment-module/regional-descriptors-assessments/bal/assessments\n\n $(\".assessment-status-colorbar.show-assessment-wrapper\").hover(\n function () {\n $(this).siblings(\".assessment-status-wrapper\").css(\"display\", \"flex\");\n },\n function () {\n $(this).siblings(\".assessment-status-wrapper\").css(\"display\", \"none\");\n },\n );\n\n $(\".assessment-status-processstate\").each(function () {\n var $this = $(this);\n var $processState = $this.find(\".process-state\");\n\n $this.on(\"click\", function () {\n $this.toggleClass(\"active\");\n });\n });\n\n $(\n \".assessment-status-wrapper .assessment-status.process-state select\",\n ).change(function () {\n var $form = $(this).parents(\"form\");\n var $assessmentContainers = $(\".assessment-status-container2\");\n var url = $form[0].action;\n\n $(document.body).addClass(\"cursor-wait\");\n $form.addClass(\"cursor-wait\");\n $assessmentContainers.each(function () {\n $(this).addClass(\"cursor-wait\");\n });\n\n $.ajax({\n url: url,\n type: \"POST\",\n data: $form.serialize(),\n success: function () {\n location.reload();\n },\n });\n });\n }\n\n function setupProcessStateCheckboxes() {\n // setup submit button\n $(\"#process-state-change-bulk-wrapper .btn-submit-form\").click(function () {\n var $form = $(this).siblings(\"form#form-process-state-change-bulk\");\n var url = $form[0].action;\n\n $(document.body).addClass(\"cursor-wait\");\n $form.addClass(\"cursor-wait\");\n $(\"#process-state-change-bulk-wrapper\").addClass(\"change-initiated\");\n $(\"#process-state-change-bulk-wrapper > *\").css(\"display\", \"none\");\n $(\n \"#process-state-change-bulk-wrapper .process-state-change-message\",\n ).fadeIn(200);\n\n $.ajax({\n url: url,\n type: \"POST\",\n data: $form.serialize(),\n success: function () {\n location.reload();\n },\n });\n });\n\n // setup clear button, uncheck all checkboxes and clear the form\n $(\"#process-state-change-bulk-wrapper .btn-clear-checkboxes\").click(\n function () {\n $(\n \".assessment-status-td.enable-process-state-change input[name='process-state-change']\",\n ).each(function () {\n $(this).prop(\"checked\", false);\n });\n\n $(\"#process-state-change-bulk-wrapper\").css(\"display\", \"none\");\n\n $(\n \"#process-state-change-bulk-wrapper #form-process-state-change-bulk input[name='process-state-change']\",\n ).remove();\n },\n );\n\n // setup checkboxes\n $(\".assessment-status-td.enable-process-state-change\").each(function () {\n var $this = $(this);\n var action = $this\n .find(\".assessment-status-wrapper form\")\n .last()\n .attr(\"action\");\n\n var $inputCheckbox = $(\"\")\n .attr(\"name\", \"process-state-change\")\n .attr(\"value\", action)\n .appendTo($this);\n\n $inputCheckbox.change(function () {\n var value = $(this).attr(\"value\");\n var ischecked = $(this).is(\":checked\");\n\n if (ischecked) {\n // when the checkbox is checked\n var inputNotExists =\n $(\"#form-process-state-change-bulk\").find(\n \"input[value='\" + value + \"' ]\",\n ).length === 0;\n\n if (inputNotExists) {\n console.log(\"this: \", $(this));\n $(this)\n .clone()\n .attr(\"type\", \"hidden\")\n .appendTo(\"#form-process-state-change-bulk\");\n }\n\n // Find the original phase-selector\n var $originalPhaseSelector = $(this)\n .parent(\"td\")\n .find(\".phase-selector\");\n\n // Clone the entire phase-selector\n var $newPhaseSelector = $originalPhaseSelector\n .clone(false) // Don't clone event handlers\n .attr(\"id\", \"process-state-bulk-select\");\n\n // Remove all select2 generated elements from the clone\n $newPhaseSelector.find(\".select2-container\").remove();\n $newPhaseSelector.find(\"select\").show().css(\"display\", \"\");\n\n // Remove select2 classes and data attributes\n var $select = $newPhaseSelector\n .find(\"select\")\n .removeClass(\"select2-offscreen select2-hidden-accessible\")\n .removeAttr(\"data-select2-id\")\n .removeAttr(\"tabindex\")\n .removeAttr(\"aria-hidden\")\n .removeAttr(\"style\");\n\n $(\"#form-process-state-change-bulk .phase-selector\").replaceWith(\n $newPhaseSelector,\n );\n\n // Reinitialize Select2 v3 on the new select element\n if (typeof $select.select2 === \"function\") {\n $select.select2({\n width: \"250px\",\n minimumResultsForSearch: -1, // Hide search box\n });\n }\n\n $(\"#process-state-change-bulk-wrapper\").css(\"display\", \"block\");\n } else {\n // when the checkbox is unchecked\n $(\"#form-process-state-change-bulk\")\n .find(\"input[value='\" + value + \"' ]\")\n .remove();\n\n // if there are no checkboxes checked, remove the select box too\n if (\n $(\"#form-process-state-change-bulk\").find(\n \"input[name='process-state-change']\",\n ).length === 0\n ) {\n var $select = $(\n \"#form-process-state-change-bulk .phase-selector select\",\n );\n // Destroy Select2 v3\n if ($select.data(\"select2\")) {\n $select.select2(\"destroy\");\n }\n $select.remove();\n $(\"#process-state-change-bulk-wrapper\").css(\"display\", \"none\");\n }\n }\n });\n });\n }\n\n $.fn.fixTableHeaderAndCellsHeight = function () {\n // because the
are position: absolute, they don't get the height of\n // the
cells, and the other way around.\n\n this.each(function () {\n $(\"th\", this).each(function (index) {\n if ($(this).parents(\"table\").hasClass(\"skip-height-fix\")) {\n return;\n }\n\n var isSideBySideLeft = $(this)\n .parents(\".overflow-table\")\n .hasClass(\"side-by-side-table-left\");\n var isSideBySideRigth = $(this)\n .parents(\".overflow-table\")\n .hasClass(\"side-by-side-table-right\");\n\n if (isSideBySideRigth) {\n return;\n }\n\n var $th = $(this);\n // var $next = $('td:not(\".sub-header\")', $th.parent());\n var $next = $th.parent().children('td:not(\".sub-header\")');\n\n if (isSideBySideLeft) {\n var $nextSideBySide = $(\n $(this)\n .parents(\".overflow-table.side-by-side-table\")\n .siblings(\".overflow-table.side-by-side-table-right\")\n .find(\"tr\")[index],\n ).children();\n $next = $.merge($next, $nextSideBySide);\n }\n\n var $subheader = $(\"td.sub-header\", $th.parent());\n var tdHeights = [];\n\n $next.each(function () {\n var $this = $(this);\n if ($this.hasClass(\"translatable\")) {\n var hght = $this.find(\".tr-text\").height();\n tdHeights.push(hght);\n } else {\n tdHeights.push($this.height());\n }\n });\n\n var cells_max_height = Math.max.apply(Math, tdHeights);\n var height = Math.max(\n $th.height(),\n $subheader.height(),\n cells_max_height,\n );\n\n $th.height(height);\n $subheader.height(height);\n var thHeight = $th.height();\n var thInnerHeight = $th.innerHeight();\n\n if (thHeight >= cells_max_height) {\n $next.each(function () {\n if ($(this).hasClass(\"translatable\")) {\n $(this).height(thInnerHeight);\n } else {\n $(this).height(thHeight);\n }\n });\n //$next.height(thHeight);\n }\n\n $(\"div\", this).css(\"margin-top\", \"-4px\");\n });\n });\n\n // $('tr .lang-toolbar', this).each(function() {\n // console.log('fixing', this);\n // var $this = $(this);\n // var height = $this.parents('tr').height();\n // $this.css('height', height);\n // });\n };\n\n $.fn.fixTableHeaderHeight = function fixTableHeaderHeight() {\n // TODO not used anymore, replaced by fixTableHeaderAndCellsHeight\n\n // Because of the way the
cells are positioned absolute, to be able to\n // keep them fixed, they are \"disconnected\" from the regular box sizing\n // layout algorithm. For this reason we have to recompute their height (to\n // make either the
or the
match same height\n this.each(function () {\n if ($(this).parents(\"table\").hasClass(\"skip-height-fix\")) {\n return;\n }\n\n $(\"th\", this).each(function (index) {\n var $th = $(this);\n var $next = $(\"td\", $th.parent());\n var tdHeights = [];\n var isSideBySideLeft = $(this)\n .parents(\".overflow-table\")\n .hasClass(\"side-by-side-table-left\");\n var isSideBySideRigth = $(this)\n .parents(\".overflow-table\")\n .hasClass(\"side-by-side-table-right\");\n\n if (isSideBySideRigth || isSideBySideLeft) {\n return;\n }\n\n if (isSideBySideLeft) {\n var $rowSideBySide = $(\n $(this)\n .parents(\".overflow-table.side-by-side-table\")\n .siblings(\".overflow-table.side-by-side-table-right\")\n .find(\"tr\")[index],\n );\n var $nextSideBySide = $rowSideBySide.children(\"td\");\n var $thSideBySide = $rowSideBySide.children(\"th\");\n $next = $.merge($next, $nextSideBySide);\n }\n\n $next.each(function () {\n var $this = $(this);\n if ($this.hasClass(\"translatable\")) {\n var hght = $this.find(\".tr-text\").height();\n tdHeights.push(hght);\n } else {\n tdHeights.push($this.height());\n }\n });\n\n var cells_max_height = Math.max.apply(Math, tdHeights);\n\n $th.height(cells_max_height);\n if (isSideBySideLeft) {\n $thSideBySide.height(cells_max_height);\n }\n });\n });\n };\n\n function mergeCellsInRow(row, cache) {\n /* This function visually groups and merges cells in table, to optimize\n * for reading information.\n *\n * It joins adjacent cells that have identical text, but uses group\n * definitions to establish \"limits\" on what it can merge. Finally, those\n * \"groups\" end cells are marked with special classes, to distinguish them\n * visually.\n */\n\n var sets = [];\n\n // get the appropriate limits from the cache, based on the current level\n var limits = [];\n var rowLevel = $(row).data(\"level\");\n rowLevel = rowLevel != undefined ? parseInt(rowLevel) : -1;\n $(cache.setlimits).each(function () {\n if (this.level == rowLevel) {\n limits = this.limits;\n return false;\n }\n });\n if (limits.length == 0) {\n limits = cache.setlimits[cache.setlimits.length - 1].limits;\n }\n\n // group cells by similarity\n $(\"td\", row)\n .not(\".sub-header\")\n .each(function (ix) {\n if (sets.length == 0 || limits.includes(ix)) {\n sets.push([this]);\n } else {\n var thisText = $(this).text().trim();\n var lastText = $(sets.last().last()).text().trim();\n\n if (thisText == lastText) {\n sets.last().push(this);\n } else {\n sets.push([this]);\n }\n }\n });\n\n // merge cells that are duplicated\n $(sets).each(function () {\n if (this.length > 1) {\n var colspan = this.length;\n $(this[0]).attr(\"colspan\", colspan); // .addClass('merged');\n $(this.slice(1)).each(function () {\n $(this).remove();\n });\n }\n });\n\n // compute new group limits\n if (rowLevel != -1) {\n limits = [];\n cache.curentLevel = rowLevel;\n\n $(sets).each(function () {\n var l = this.length;\n if (limits.length) {\n l += limits[limits.length - 1];\n }\n limits.push(l);\n });\n cache.setlimits.push({\n level: cache.curentLevel,\n limits: limits.slice(0), // makes a copy\n });\n }\n\n // apply special class to group end cells\n var cursor = 0;\n $(\"td\", row)\n .not(\".sub-header\")\n .each(function (iy) {\n var level = cache.curentLevel;\n var l;\n var prevset;\n\n var c = parseInt($(this).attr(\"colspan\") || \"1\");\n cursor += c;\n\n if (limits.includes(cursor)) {\n if (level > 0) {\n // traverse all previous limits to see which major one includes\n // this limit\n for (l = 0; l < cache.setlimits.length; l++) {\n prevset = cache.setlimits[l].limits;\n if (prevset.includes(cursor)) {\n level = cache.setlimits[l].level;\n break;\n }\n }\n }\n $(this).addClass(\"endgroup_\" + level);\n }\n });\n }\n\n $.fn.simplifyTable = function simplifyTable() {\n var $table = $(this);\n\n if (!$table.data(\"original\")) {\n $table.data(\"original\", $table.html());\n }\n\n var cache = {\n curentLevel: 0,\n setlimits: [\n {\n level: -1,\n limits: [],\n },\n ],\n };\n $(\"tr\", this).each(function () {\n mergeCellsInRow(this, cache);\n });\n\n // Laci disable\n // $table.fixTableHeaderHeight();\n // $table.fixTableHeaderAndCellsHeight();\n $table.data(\"simplified\", $table.html());\n };\n\n $.fn.toggleTable = function toggleTable(onoff) {\n var original = $(this).data(\"original\");\n var simplified = $(this).data(\"simplified\");\n\n if (onoff) {\n //$(this).simplifyTable();\n $(this).html(simplified);\n } else {\n $(this).hide();\n $(this).empty().html(original);\n $(this).show();\n //setupTranslateClickHandlers();\n //setupReadMoreModal();\n }\n setupReadMoreModal();\n setupTranslateClickHandlers();\n $(this).fixTableHeaderAndCellsHeight();\n };\n\n /* Used in report data table create a 'read more' modal if the cell content\n * is too long\n */\n window.setupReadMoreModal = function () {\n var $table = $(\".table-report\");\n var $modal = $(\"#read-more-modal\");\n var $modalContent = $(\".modal-content-wrapper\");\n var maxchars = 397;\n var sep = \"...\";\n var $cells = $table.find(\".tr-text\");\n $cells.each(function () {\n var t = $(this).text();\n var t_html = $(this).html();\n\n if (t_html.length > maxchars) {\n $(this).addClass(\"short\");\n var sh = t_html.substr(0, 0.75 * maxchars) + sep;\n $(this).html(sh);\n $(this).on(\"click\", function () {\n $modalContent.html(t_html);\n $modal.modal(\"show\");\n });\n }\n });\n\n $(\".btn-close-modal\").click(function () {\n $modalContent.empty();\n });\n\n // Laci disable\n // $table.fixTableHeaderAndCellsHeight();\n };\n\n function setupReportNavigation() {\n // This is a menu that is triggered from a button. When scrolling down, it\n // sticks to the top. Allows navigation between articles/years\n var $reportnav = $(\"#report-data-navigation\");\n $(\"button\", $reportnav).on(\"click\", function () {\n $(\".nav-body\", $reportnav).toggle();\n $(this)\n .children()\n .addClass(\"glyphicon\")\n .toggleClass(\"glyphicon-menu-hamburger glyphicon-remove-circle\");\n return false;\n });\n $(\".nav-body\", $reportnav).hide();\n\n // sticky report data navigation\n var $rn = $(\".report-nav\");\n var $title = $(\".report-title\");\n var $reportDataNav = $(\"#report-data-navigation\");\n\n if ($rn.length > 0) {\n var stickyOffset = $rn.offset().top;\n\n $(window).scroll(function () {\n var scroll = $(window).scrollTop();\n var fixElement = scroll >= stickyOffset;\n $reportDataNav.toggleClass(\"height-fix\", fixElement);\n $rn.toggleClass(\"sticky\", fixElement);\n $title.toggleClass(\"fixed-title\", fixElement);\n });\n }\n }\n\n function setupTableScrolling() {\n // TODO not used\n // When dealing with a really wide table, with wide cells, we want to keep\n // the text relatively narrow, but always keep in view that cell content\n var $ot = $(\".overflow-table table\");\n\n $ot.each(function () {\n var $tw = $(this);\n var $td = $tw.find(\"td\");\n\n if (!$td.length) {\n return;\n }\n\n // get table header cell right position\n var $th = $tw.find(\"th\");\n var thRight = $th.position().left + $th.outerWidth();\n\n $td.each(function () {\n var $this = $(this);\n var scrollTimer;\n\n $(\".report-page-view .overflow-table .inner\").scroll(function () {\n clearTimeout(scrollTimer);\n\n if ($this.attr(\"colspan\") > 1) {\n var tdText = $this.find(\".td-content\");\n var tdLeft = $this.position().left;\n var tdRight = tdLeft + $this.outerWidth(); // get table cell right position\n var tdTextWidth = $this.find(\".td-content\").width();\n var thAndCellWidth = tdTextWidth + thRight;\n\n $this.css(\"height\", $this.outerHeight());\n\n scrollTimer = setTimeout(afterScroll, 1);\n\n if (tdLeft < thRight) {\n tdText.addClass(\"td-scrolled\").css(\"left\", thRight + 5);\n } else {\n $this.css(\"height\", \"\");\n tdText.removeClass(\"td-scrolled\");\n }\n\n if (thAndCellWidth >= tdRight) {\n $this.addClass(\"td-relative\");\n } else {\n $this.removeClass(\"td-relative\");\n }\n }\n });\n\n function afterScroll() {\n // Tibi: temporarily disabled\n // $('.btn-translate').on('click', function() {\n // var $btn = $(this);\n // var transTextHeight = $btn.closest('.td-content').outerHeight();\n // var $td = $btn.closest('td.translatable');\n // var $th = $td.siblings('th');\n // $td.css({\n // 'height': transTextHeight,\n // 'padding': '0'\n // });\n // $btn.closest('.td-content').css('padding', '8px');\n // $th.css('height', transTextHeight);\n // });\n }\n });\n });\n }\n\n // check if element is in viewport\n $.fn.isInViewport = function () {\n var elementTop = $(this).offset().top;\n var elementBottom = elementTop + $(this).height();\n\n var viewportTop = $(window).scrollTop();\n var viewportBottom = viewportTop + $(window).height();\n\n return elementBottom > viewportTop && elementTop < viewportBottom;\n };\n\n function addCustomScroll() {\n var $cs = $(\n '
' +\n // '' +\n '
' +\n '' +\n \"
\" +\n \"
\",\n );\n\n $cs.insertAfter($(\".overflow-table\").find(\".inner\"));\n }\n\n function setupCustomScroll() {\n // A fixed scrollbar at the bottom of the window for tables\n\n var $ot = $(\".overflow-table\");\n var $win = $(window);\n\n $ot.each(function () {\n var $t = $(this);\n // var $tParent = $t.parent();\n var $tParent = $t;\n var topScroll = $(\".top-scroll\", $tParent);\n var topScrollInner = topScroll.find(\".top-scroll-inner\");\n var tableScroll = $(\".inner\", $tParent);\n var tableWidth = $(\".table-report\", $tParent).outerWidth(\n (includeMargin = true),\n );\n var tableHeaderWidth = $(\"th\", $tParent).width();\n var tableAndHeaderWidth = tableWidth + tableHeaderWidth;\n var customScroll = $(\".scroll-wrapper\", $tParent);\n\n topScrollInner.width(tableWidth);\n\n topScroll.on(\"scroll\", function () {\n tableScroll.scrollLeft($(this).scrollLeft());\n });\n\n tableScroll.on(\"scroll\", function () {\n topScroll.scrollLeft($(this).scrollLeft());\n });\n\n if (tableAndHeaderWidth > $t.width()) {\n $win.on(\"resize scroll\", function () {\n var scroll = $win.scrollTop();\n\n if ($t.isInViewport()) {\n customScroll.addClass(\"fixed-scroll\");\n } else {\n customScroll.removeClass(\"fixed-scroll\");\n }\n\n // hide custom scrollbar when it reaches the bottom of the table\n if (\n scroll >=\n $t.offset().top + $t.outerHeight() - window.innerHeight\n ) {\n customScroll.hide();\n } else {\n customScroll.show();\n }\n });\n }\n });\n }\n\n function addFixedTable() {\n var $ot = $(\".overflow-table\");\n\n $ot.each(function () {\n var $table = $(this).find(\"table\");\n var $cb = $('');\n var $ft = $(\n '
' +\n '\" +\n '
' +\n '
' +\n \"
\" +\n \"
\" +\n \"
\",\n );\n\n // Register click event for button to clear all pinned rows for the current table\n $ft.find(\"button.reset-pins\").click(function () {\n $ftw = $(this).closest(\".fixed-table-wrapper\");\n $ftw.removeClass(\"sticky-table\");\n $ftw.find(\"tr\").remove();\n\n $innerTable = $ftw.siblings(\".inner\");\n $innerTable.find(\"tr input\").prop(\"checked\", false);\n });\n\n if ($table.find(\"td.sub-header\").length) {\n // Regional descriptors\n $table.find(\"td.sub-header\").append($cb);\n } else {\n // National descriptors\n $table.find(\"th div\").append($cb);\n }\n\n $ft.insertBefore($(this).find(\".inner\"));\n });\n }\n\n $.fn.setupFixedTableRows = function () {\n // Allows report table rows to be fixed while scrolling\n // var $ot = $('.overflow-table');\n var $ot = $(this);\n\n // The .each is necessary, we can have more overflow-tables\n $ot.each(function () {\n var $t = $(this);\n var $fixedTable = $t.find(\".fixed-table-wrapper\");\n var $th = $(\"th\", $t.parent());\n var tableW = $(\".table-report\", $t).width();\n var tableScroll = $(\".inner\", $t);\n var fixedTableInner = $(\".fixed-table-inner\", $t);\n\n function toggleSyncScrolls(onoff) {\n function f1() {\n tableScroll.scrollLeft($(this).scrollLeft());\n }\n function f2() {\n fixedTableInner.scrollLeft($(this).scrollLeft());\n }\n if (onoff) {\n fixedTableInner.on(\"scroll\", f1);\n tableScroll.on(\"scroll\", f2);\n } else {\n fixedTableInner.off(\"scroll\", f1);\n tableScroll.off(\"scroll\", f2);\n }\n }\n toggleSyncScrolls(true);\n\n $t.find(\".fix-row\").each(function (i) {\n var val = \"cb\" + i++;\n // var checkBox = $(this).find('.fix-row');\n var checkBox = $(this);\n checkBox.val(val);\n });\n\n var checkBox = $t.find(\".fix-row\");\n checkBox.change(function () {\n var $this = $(this);\n var value = $this.val();\n var table = $this.closest(\".overflow-table\").find(\".fixed-table\");\n var tableWrapper = $this\n .closest(\".overflow-table\")\n .find(\".fixed-table-wrapper\");\n table.width(tableW);\n\n if ($this.is(\":checked\")) {\n tableWrapper.addClass(\"sticky-table\");\n\n //for other tables find the reset button and trigger the click event\n var $parentReportSection = $this.closest(\".report-section\");\n var $otherReportSections =\n $parentReportSection.siblings(\".report-section\");\n $otherReportSections.each(function () {\n $ftw = $(this).find(\".fixed-table-wrapper\");\n $ftw.find(\"button.reset-pins\").click();\n });\n\n // clone table row, but keep the width of the original table cells\n var target = $this.closest(\"tr\");\n var target_children = target.children(\"td\");\n var clone = target.clone();\n clone.children(\"td\").width(function (i, val) {\n return target_children.eq(i).outerWidth();\n });\n clone.appendTo(table).attr(\"data-row\", value);\n\n // disable for test\n //$t.find('.table').fixTableHeaderAndCellsHeight();\n // setupTableScrolling();\n } else {\n $fixedTable\n .find('tr[data-row=\"' + value + '\"]')\n .slideUp(\"fast\", function () {\n $(this).remove();\n });\n\n if (table.find(\"tr\").length === 1) {\n tableWrapper.removeClass(\"sticky-table\");\n }\n }\n\n var $cb = $fixedTable.find(\".fix-row\");\n $cb.change(function () {\n var $this = $(this);\n var value = $this.val();\n\n if ($this.closest(\"tr\").siblings().length === 0) {\n $this.closest(\".fixed-table-wrapper\").removeClass(\"sticky-table\");\n }\n\n $this.closest(\"tr\").remove();\n $('.fix-row[value=\"' + value + '\"]').prop(\"checked\", false);\n });\n\n toggleSyncScrolls(false);\n fixedTableInner.scrollLeft(tableScroll.scrollLeft());\n toggleSyncScrolls(true);\n });\n });\n\n $(window).on(\"resize scroll\", function () {\n if ($(\".report-nav.sticky\").length > 0) {\n $(\".fixed-table-wrapper\").each(function () {\n $(this).css(\"top\", \"56px\");\n });\n } else {\n $(\".fixed-table-wrapper\").each(function () {\n $(this).css(\"top\", \"0\");\n });\n }\n });\n };\n\n function setupResponsiveness() {\n // fire resize event after the browser window resizing it's completed\n var resizeTimer;\n $(window).resize(function () {\n clearTimeout(resizeTimer);\n resizeTimer = setTimeout(doneResizing, 500);\n });\n\n function doneResizing() {\n // $('.table-report').fixTableHeaderHeight();\n $(\".table-report\").each(function () {\n $(this).fixTableHeaderAndCellsHeight();\n });\n }\n\n if (window.matchMedia(\"(max-width: 768px)\").matches) {\n $(\".overflow-table h5\").width($(\".overflow-table table\").width());\n }\n\n // tibi: temporarily disabled. I don't know what td-content does\n // var $td = $('.overflow-table table td');\n // $td.children('div').wrapInner('');\n }\n\n function setupSimplifiedTables() {\n $(\".simplify-form\")\n .next()\n .find(\".table-report\")\n .each(function () {\n $(this).simplifyTable();\n });\n\n $(\".simplify-form button\").on(\"click\", function () {\n var onoff = $(this).attr(\"aria-pressed\") == \"true\";\n $p = $(this).parent().next();\n $(\".table-report\", $p).toggleTable(!onoff);\n // Laci disable\n $p.setupFixedTableRows();\n setupCustomScroll();\n });\n }\n\n function regionalDescriptorsGroupTableHeaders() {\n var $headers = $(\".first-header\");\n if ($headers.length === 0) {\n return;\n }\n var compareText = \"\";\n var currentText = \"\";\n\n compareText = $headers[0].firstElementChild.innerText;\n\n for (i = 1; i < $headers.length; i++) {\n currentText = $headers[i].firstElementChild.innerText;\n\n if (compareText === currentText) {\n $headers[i].firstElementChild.innerText = \"\";\n $($headers[i - 1]).css(\"border-bottom\", \"0px\");\n } else {\n compareText = currentText;\n }\n\n //debugger;\n }\n }\n\n $.fn.setupStickyRows = function () {\n // make first th element(s) with 'sticky-col' class stick to the left of the\n // screen when scrolling horizontally\n $stickyTable = $(\".table-sticky-first-col\");\n $stickyTable.find(\"tr\").each(function () {\n $(this)\n .find(\"th.sticky-col\")\n .each(function () {\n $currentTh = $(this);\n $prevTh = $(this).prev(\".sticky-col\");\n\n if ($prevTh.hasClass(\"sticky-col\")) {\n prevWidth = $prevTh.outerWidth();\n prevLeft = parseInt($prevTh.css(\"left\"));\n $currentTh.css({ left: prevWidth + prevLeft });\n } else {\n $currentTh.css(\"left\", -1);\n }\n });\n });\n\n // Pin all rows with 'sticky-row' class\n $fixedTable = $(this).find(\".fixed-table\");\n var tableWrapper = $(this).find(\".fixed-table-wrapper\");\n tableWrapper.addClass(\"sticky-table\");\n\n if ($(this).find(\".inner table\").hasClass(\"table-sticky-first-col\")) {\n $fixedTable.addClass(\"table-sticky-first-col\");\n }\n\n $(this)\n .find(\"tr.sticky-row\")\n .each(function () {\n $(this)\n .children()\n .each(function () {\n var width = $(this).outerWidth();\n $(this).css(\"min-width\", width);\n $(this).css(\"width\", width);\n $(this).css(\"background-color\", $(this).css(\"background-color\"));\n $(this).css(\"color\", $(this).css(\"color\"));\n $(this).css(\"text-align\", $(this).css(\"text-align\"));\n });\n\n clone = $(this).clone();\n clone.appendTo($fixedTable);\n });\n\n // on scroll check if the all rows 'sticky-row' are displayed on screen\n // if not show the 'fixed-table' with the pinned rows\n $(window).on(\"resize scroll\", function () {\n $(\".overflow-table\").each(function () {\n var $ot = $(this);\n var tableWrapper = $ot.find(\".fixed-table-wrapper\");\n var stickyRowsInView = [];\n\n $ot.find(\".inner tr.sticky-row\").each(function () {\n var elementTop = $(this).offset().top;\n var viewportTop = parseInt($(window).scrollTop());\n // var viewportBottom = viewportTop + $(window).height();\n var $currentOT = $(this).parents(\".overflow-table\");\n var otTop = $currentOT.offset().top;\n var otBottom = otTop + $currentOT.outerHeight();\n var theadHeight = $(this).parents(\"thead\").outerHeight();\n\n // if this is false, we display the sticky bar on the top\n isInViewport =\n // $(this).isInViewport() ||\n // elementTop > viewportBottom\n elementTop > viewportTop || otBottom < viewportTop + theadHeight;\n\n stickyRowsInView.push(isInViewport);\n });\n\n if (stickyRowsInView.includes(false)) {\n $ot.removeClass(\"hidden-fixed-table\");\n } else {\n $ot.addClass(\"hidden-fixed-table\");\n }\n });\n });\n };\n\n $(document).ready(function ($) {\n setupReadMoreModal();\n initStyling();\n // setupSelects2();\n setupReportNavigation();\n // setupTableScrolling();\n setupResponsiveness();\n addCustomScroll();\n addFixedTable();\n regionalDescriptorsGroupTableHeaders();\n\n // $(\".pat-tooltip\").tooltip({\n // html: true,\n // title: $(this).attr(\"title\"),\n // });\n // $('[data-bs-toggle=\"tooltip\"]').tooltip({\n // html: true,\n // });\n // var popoverTriggerList = [].slice.call(\n // document.querySelectorAll('[data-bs-toggle=\"popover\"]'),\n // );\n // var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {\n // return new bootstrap.Popover(popoverTriggerEl);\n // });\n\n // Fix login url\n // $(\".pat-plone-modal\").attr(\"href\", \"/marine/assessment-module/login\");\n // Fix redirect on login\n // var _xhrOpen = XMLHttpRequest.prototype.open;\n // XMLHttpRequest.prototype.open = function (method, url) {\n // var self = this;\n // this.addEventListener(\"load\", function () {\n // if (\n // method === \"POST\" &&\n // url.indexOf(\"login\") !== -1 &&\n // self.responseURL.indexOf(\"login\") === -1\n // ) {\n // $(\".modal-wrapper\").hide();\n // window.location.href = self.responseURL;\n // }\n // });\n // _xhrOpen.apply(this, arguments);\n // };\n\n $(\".assessment-read-more\").click(function () {\n var $this = $(this);\n $this.text(function (a, b) {\n return b.startsWith(\"Show\")\n ? \"Hide reports\"\n : $(this).attr(\"display-text\");\n });\n $this.parents().siblings(\".assessment-dd-list\").fadeToggle();\n $this\n .parents()\n .siblings(\".text-reports-table\")\n .find(\".assessment-dd-list\")\n .fadeToggle();\n });\n\n var $scrollBtn = $(\".scroll-to-top\");\n $(window).scroll(function () {\n if ($(this).scrollTop() > 400) {\n $scrollBtn.fadeIn();\n } else {\n $scrollBtn.fadeOut();\n }\n });\n\n $scrollBtn.click(function () {\n $(\"html, body\").animate({ scrollTop: 0 }, 400);\n return false;\n });\n\n $(window).on(\"load\", function () {\n // setupReadMoreModal();\n setupSimplifiedTables();\n var $ot = $(\".overflow-table\");\n $ot.each(function () {\n $(this).setupFixedTableRows();\n $(this).find(\".table-report\").fixTableHeaderAndCellsHeight();\n // when loading the screen pin all rows marked with 'sticky-row' class\n // and display them if they are not in viewport\n $(this).setupStickyRows();\n });\n setupCustomScroll();\n\n // setupScrollableTargets();\n setupTargetsWidth();\n setupAssessmentStatusChange();\n\n setupProcessStateCheckboxes();\n });\n });\n})(window, document, $);\n"],"names":["window","document","$","setupCustomScroll","$ot","$win","each","$t","this","$tParent","topScroll","topScrollInner","find","tableScroll","tableWidth","outerWidth","includeMargin","tableAndHeaderWidth","width","customScroll","on","scrollLeft","scroll","scrollTop","isInViewport","addClass","removeClass","offset","top","outerHeight","innerHeight","hide","show","fn","fixTableHeaderAndCellsHeight","index","$th","$next","tdHeights","cells_max_height","height","thHeight","thInnerHeight","parents","hasClass","isSideBySideLeft","parent","children","$nextSideBySide","siblings","merge","$subheader","hght","$this","push","Math","max","apply","css","fixTableHeaderHeight","$thSideBySide","$rowSideBySide","simplifyTable","$table","cache","data","html","curentLevel","setlimits","level","limits","row","sets","rowLevel","cursor","undefined","parseInt","length","not","ix","includes","text","trim","last","colspan","attr","slice","remove","l","iy","c","toggleTable","onoff","original","simplified","empty","setupReadMoreModal","setupTranslateClickHandlers","$modal","$modalContent","sh","t_html","substr","modal","click","elementTop","elementBottom","viewportTop","viewportBottom","setupFixedTableRows","$fixedTable","tableW","fixedTableInner","toggleSyncScrolls","f1","f2","off","i","val","change","target_children","value","table","closest","tableWrapper","is","$ftw","target","clone","eq","appendTo","slideUp","prop","setupStickyRows","$stickyTable","$currentTh","$prevTh","prev","prevWidth","prevLeft","left","stickyRowsInView","$currentOT","otBottom","theadHeight","ready","stickyOffset","$reportnav","$rn","$title","$reportDataNav","resizeTimer","doneResizing","toggle","toggleClass","fixElement","resize","clearTimeout","setTimeout","matchMedia","matches","insertAfter","$cb","$ft","$innerTable","append","insertBefore","$headers","currentText","compareText","firstElementChild","innerText","a","b","startsWith","fadeToggle","$scrollBtn","fadeIn","fadeOut","animate","maxGescompWidth","$tableWrap","next","$p","display","min-width","hover","$form","$assessmentContainers","url","action","body","ajax","type","serialize","success","location","reload","$newPhaseSelector","$select","console","log","removeAttr","replaceWith","select2","minimumResultsForSearch"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"compliance.js","sources":["../../src/js/compliance.js"],"sourcesContent":["// if (!Array.prototype.last) {\n// Array.prototype.last = function () {\n// return this[this.length - 1];\n// };\n// }\n\n(function (window, document, $) {\n var selectorFormContainer = \".wise-search-form-container\";\n var exceptVal = [\"all\", \"none\", \"invert\", \"apply\"];\n /*\n * SELECT2 functions\n * */\n // TODO: please explain what this does and why it's needed\n // function setupSelects2(selector) {\n // var forbiddenIDs = [];\n // var selectorFormCont = selector || selectorFormContainer;\n\n // $(selectorFormCont + \" select\").each(function (ind, selectElement) {\n // var selectedElementID = $(selectElement).attr(\"id\");\n // if (forbiddenIDs.indexOf(selectedElementID) !== -1) {\n // return false;\n // }\n\n // $(selectElement).addClass(\"js-example-basic-single\");\n // var lessOptions = $(selectElement).find(\"option\").length < 10;\n\n // var options = {\n // placeholder: \"Select an option\",\n // closeOnSelect: true,\n // dropdownAutoWidth: true,\n // width: \"100%\",\n // theme: \"flat\",\n // };\n // if (lessOptions) options.minimumResultsForSearch = Infinity;\n\n // $(selectElement).select2(options);\n // });\n // }\n\n function initStyling() {\n // TODO: is this still needed? I don't think so\n //$(\"#form-buttons-continue\").hide(\"fast\");\n $(\".button-field\").addClass(\"btn\");\n\n // mobile hide .toggle-sidebar\n $(\".toggle-sidebar\").hide();\n }\n\n function setupTargetsWidth() {\n // Make targets extend on multiple rows when there are many targets\n // and the assessment-data-table is scrollable\n var $tableWrap = $(\".table-wrap\");\n var $assessmentTable = $(\n \"#container-assessment-data-2018 .assessment-data-table\",\n );\n if ($assessmentTable.width() <= $tableWrap.width()) {\n return;\n }\n\n $(\"div.gescomp\", $tableWrap).css({\n display: \"inline-table\",\n \"min-width\": \"inherit\",\n width: \"inherit\",\n });\n\n var maxGescompWidth = 0;\n $(\"div.gescomp\", $tableWrap).each(function () {\n var width = $(this).width();\n if (width > maxGescompWidth) {\n maxGescompWidth = width;\n }\n });\n\n $(\"div.gescomp\", $tableWrap).css({ width: maxGescompWidth });\n\n // $(window).on('resize', adjustTargetsWidth);\n }\n\n function setupScrollableTargets() {\n // NOT USED\n // create a clone of the assessment data 2018 table and overlap the original table\n // with fixed question and score columns\n $(\n \"#container-assessment-data-2018 .table.table-condensed.assessment-data-table\",\n )\n .clone(true)\n .appendTo(\"#container-assessment-data-2018\")\n .addClass(\"clone\");\n\n var $orig = $(\".table-wrap .table.table-condensed.assessment-data-table\");\n var $clone = $(\".table.table-condensed.assessment-data-table.clone\");\n var origLength = $orig.find(\"tr\").length;\n var origHeight, cloneHeight;\n\n for (var i = 0; i < origLength; i++) {\n var x = $clone.find(\"tr\")[i];\n cloneHeight = $(x).find(\".fixed-center\").innerHeight();\n origHeight = $($orig.find(\"tr\")[i]).innerHeight();\n\n if (origHeight > cloneHeight) {\n $(x).css(\"height\", origHeight + \"px\");\n } else {\n $($orig.find(\"tr\")[i]).css(\"height\", cloneHeight + \"px\");\n }\n }\n }\n\n function setupAssessmentStatusChange() {\n // Setup the process status change forms to make it possible\n // to change the assessment status on pages like\n // ./assessment-module/national-descriptors-assessments/fi/assessments\n // ./assessment-module/regional-descriptors-assessments/bal/assessments\n\n $(\".assessment-status-colorbar.show-assessment-wrapper\").hover(\n function () {\n $(this).siblings(\".assessment-status-wrapper\").css(\"display\", \"flex\");\n },\n function () {\n $(this).siblings(\".assessment-status-wrapper\").css(\"display\", \"none\");\n },\n );\n\n $(\".assessment-status-processstate\").each(function () {\n var $this = $(this);\n var $processState = $this.find(\".process-state\");\n\n $this.on(\"click\", function () {\n $this.toggleClass(\"active\");\n });\n });\n\n $(\n \".assessment-status-wrapper .assessment-status.process-state select\",\n ).change(function () {\n var $form = $(this).parents(\"form\");\n var $assessmentContainers = $(\".assessment-status-container2\");\n var url = $form[0].action;\n\n $(document.body).addClass(\"cursor-wait\");\n $form.addClass(\"cursor-wait\");\n $assessmentContainers.each(function () {\n $(this).addClass(\"cursor-wait\");\n });\n\n $.ajax({\n url: url,\n type: \"POST\",\n data: $form.serialize(),\n success: function () {\n location.reload();\n },\n });\n });\n }\n\n function setupProcessStateCheckboxes() {\n // setup submit button\n $(\"#process-state-change-bulk-wrapper .btn-submit-form\").click(function () {\n var $form = $(this).siblings(\"form#form-process-state-change-bulk\");\n var url = $form[0].action;\n\n $(document.body).addClass(\"cursor-wait\");\n $form.addClass(\"cursor-wait\");\n $(\"#process-state-change-bulk-wrapper\").addClass(\"change-initiated\");\n $(\"#process-state-change-bulk-wrapper > *\").css(\"display\", \"none\");\n $(\n \"#process-state-change-bulk-wrapper .process-state-change-message\",\n ).fadeIn(200);\n\n $.ajax({\n url: url,\n type: \"POST\",\n data: $form.serialize(),\n success: function () {\n location.reload();\n },\n });\n });\n\n // setup clear button, uncheck all checkboxes and clear the form\n $(\"#process-state-change-bulk-wrapper .btn-clear-checkboxes\").click(\n function () {\n $(\n \".assessment-status-td.enable-process-state-change input[name='process-state-change']\",\n ).each(function () {\n $(this).prop(\"checked\", false);\n });\n\n $(\"#process-state-change-bulk-wrapper\").css(\"display\", \"none\");\n\n $(\n \"#process-state-change-bulk-wrapper #form-process-state-change-bulk input[name='process-state-change']\",\n ).remove();\n },\n );\n\n // setup checkboxes\n $(\".assessment-status-td.enable-process-state-change\").each(function () {\n var $this = $(this);\n var action = $this\n .find(\".assessment-status-wrapper form\")\n .last()\n .attr(\"action\");\n\n var $inputCheckbox = $(\"\")\n .attr(\"name\", \"process-state-change\")\n .attr(\"value\", action)\n .appendTo($this);\n\n $inputCheckbox.change(function () {\n var value = $(this).attr(\"value\");\n var ischecked = $(this).is(\":checked\");\n\n if (ischecked) {\n // when the checkbox is checked\n var inputNotExists =\n $(\"#form-process-state-change-bulk\").find(\n \"input[value='\" + value + \"' ]\",\n ).length === 0;\n\n if (inputNotExists) {\n console.log(\"this: \", $(this));\n $(this)\n .clone()\n .attr(\"type\", \"hidden\")\n .appendTo(\"#form-process-state-change-bulk\");\n }\n\n // Find the original phase-selector\n var $originalPhaseSelector = $(this)\n .parent(\"td\")\n .find(\".phase-selector\");\n\n // Clone the entire phase-selector\n var $newPhaseSelector = $originalPhaseSelector\n .clone(false) // Don't clone event handlers\n .attr(\"id\", \"process-state-bulk-select\");\n\n // Remove all select2 generated elements from the clone\n $newPhaseSelector.find(\".select2-container\").remove();\n $newPhaseSelector.find(\"select\").show().css(\"display\", \"\");\n\n // Remove select2 classes and data attributes\n var $select = $newPhaseSelector\n .find(\"select\")\n .removeClass(\"select2-offscreen select2-hidden-accessible\")\n .removeAttr(\"data-select2-id\")\n .removeAttr(\"tabindex\")\n .removeAttr(\"aria-hidden\")\n .removeAttr(\"style\");\n\n $(\"#form-process-state-change-bulk .phase-selector\").replaceWith(\n $newPhaseSelector,\n );\n\n // Reinitialize Select2 v3 on the new select element\n if (typeof $select.select2 === \"function\") {\n $select.select2({\n width: \"250px\",\n minimumResultsForSearch: -1, // Hide search box\n });\n }\n\n $(\"#process-state-change-bulk-wrapper\").css(\"display\", \"block\");\n } else {\n // when the checkbox is unchecked\n $(\"#form-process-state-change-bulk\")\n .find(\"input[value='\" + value + \"' ]\")\n .remove();\n\n // if there are no checkboxes checked, remove the select box too\n if (\n $(\"#form-process-state-change-bulk\").find(\n \"input[name='process-state-change']\",\n ).length === 0\n ) {\n var $select = $(\n \"#form-process-state-change-bulk .phase-selector select\",\n );\n // Destroy Select2 v3\n if ($select.data(\"select2\")) {\n $select.select2(\"destroy\");\n }\n $select.remove();\n $(\"#process-state-change-bulk-wrapper\").css(\"display\", \"none\");\n }\n }\n });\n });\n }\n\n $.fn.fixTableHeaderAndCellsHeight = function () {\n // because the
are position: absolute, they don't get the height of\n // the
cells, and the other way around.\n\n this.each(function () {\n $(\"th\", this).each(function (index) {\n if ($(this).parents(\"table\").hasClass(\"skip-height-fix\")) {\n return;\n }\n\n var isSideBySideLeft = $(this)\n .parents(\".overflow-table\")\n .hasClass(\"side-by-side-table-left\");\n var isSideBySideRigth = $(this)\n .parents(\".overflow-table\")\n .hasClass(\"side-by-side-table-right\");\n\n if (isSideBySideRigth) {\n return;\n }\n\n var $th = $(this);\n // var $next = $('td:not(\".sub-header\")', $th.parent());\n var $next = $th.parent().children('td:not(\".sub-header\")');\n\n if (isSideBySideLeft) {\n var $nextSideBySide = $(\n $(this)\n .parents(\".overflow-table.side-by-side-table\")\n .siblings(\".overflow-table.side-by-side-table-right\")\n .find(\"tr\")[index],\n ).children();\n $next = $.merge($next, $nextSideBySide);\n }\n\n var $subheader = $(\"td.sub-header\", $th.parent());\n var tdHeights = [];\n\n $next.each(function () {\n var $this = $(this);\n if ($this.hasClass(\"translatable\")) {\n var hght = $this.find(\".tr-text\").height();\n tdHeights.push(hght);\n } else {\n tdHeights.push($this.height());\n }\n });\n\n var cells_max_height = Math.max.apply(Math, tdHeights);\n var height = Math.max(\n $th.height(),\n $subheader.height(),\n cells_max_height,\n );\n\n $th.height(height);\n $subheader.height(height);\n var thHeight = $th.height();\n var thInnerHeight = $th.innerHeight();\n\n if (thHeight >= cells_max_height) {\n $next.each(function () {\n if ($(this).hasClass(\"translatable\")) {\n $(this).height(thInnerHeight);\n } else {\n $(this).height(thHeight);\n }\n });\n //$next.height(thHeight);\n }\n\n $(\"div\", this).css(\"margin-top\", \"-4px\");\n });\n });\n\n // $('tr .lang-toolbar', this).each(function() {\n // console.log('fixing', this);\n // var $this = $(this);\n // var height = $this.parents('tr').height();\n // $this.css('height', height);\n // });\n };\n\n $.fn.fixTableHeaderHeight = function fixTableHeaderHeight() {\n // TODO not used anymore, replaced by fixTableHeaderAndCellsHeight\n\n // Because of the way the
cells are positioned absolute, to be able to\n // keep them fixed, they are \"disconnected\" from the regular box sizing\n // layout algorithm. For this reason we have to recompute their height (to\n // make either the
or the
match same height\n this.each(function () {\n if ($(this).parents(\"table\").hasClass(\"skip-height-fix\")) {\n return;\n }\n\n $(\"th\", this).each(function (index) {\n var $th = $(this);\n var $next = $(\"td\", $th.parent());\n var tdHeights = [];\n var isSideBySideLeft = $(this)\n .parents(\".overflow-table\")\n .hasClass(\"side-by-side-table-left\");\n var isSideBySideRigth = $(this)\n .parents(\".overflow-table\")\n .hasClass(\"side-by-side-table-right\");\n\n if (isSideBySideRigth || isSideBySideLeft) {\n return;\n }\n\n if (isSideBySideLeft) {\n var $rowSideBySide = $(\n $(this)\n .parents(\".overflow-table.side-by-side-table\")\n .siblings(\".overflow-table.side-by-side-table-right\")\n .find(\"tr\")[index],\n );\n var $nextSideBySide = $rowSideBySide.children(\"td\");\n var $thSideBySide = $rowSideBySide.children(\"th\");\n $next = $.merge($next, $nextSideBySide);\n }\n\n $next.each(function () {\n var $this = $(this);\n if ($this.hasClass(\"translatable\")) {\n var hght = $this.find(\".tr-text\").height();\n tdHeights.push(hght);\n } else {\n tdHeights.push($this.height());\n }\n });\n\n var cells_max_height = Math.max.apply(Math, tdHeights);\n\n $th.height(cells_max_height);\n if (isSideBySideLeft) {\n $thSideBySide.height(cells_max_height);\n }\n });\n });\n };\n\n function mergeCellsInRow(row, cache) {\n /* This function visually groups and merges cells in table, to optimize\n * for reading information.\n *\n * It joins adjacent cells that have identical text, but uses group\n * definitions to establish \"limits\" on what it can merge. Finally, those\n * \"groups\" end cells are marked with special classes, to distinguish them\n * visually.\n */\n\n var sets = [];\n\n // get the appropriate limits from the cache, based on the current level\n var limits = [];\n var rowLevel = $(row).data(\"level\");\n rowLevel = rowLevel != undefined ? parseInt(rowLevel) : -1;\n $(cache.setlimits).each(function () {\n if (this.level == rowLevel) {\n limits = this.limits;\n return false;\n }\n });\n if (limits.length == 0) {\n limits = cache.setlimits[cache.setlimits.length - 1].limits;\n }\n\n // group cells by similarity\n $(\"td\", row)\n .not(\".sub-header\")\n .each(function (ix) {\n if (sets.length == 0 || limits.includes(ix)) {\n sets.push([this]);\n } else {\n var thisText = $(this).text().trim();\n var lastText = $(sets.last().last()).text().trim();\n\n if (thisText == lastText) {\n sets.last().push(this);\n } else {\n sets.push([this]);\n }\n }\n });\n\n // merge cells that are duplicated\n $(sets).each(function () {\n if (this.length > 1) {\n var colspan = this.length;\n $(this[0]).attr(\"colspan\", colspan); // .addClass('merged');\n $(this.slice(1)).each(function () {\n $(this).remove();\n });\n }\n });\n\n // compute new group limits\n if (rowLevel != -1) {\n limits = [];\n cache.curentLevel = rowLevel;\n\n $(sets).each(function () {\n var l = this.length;\n if (limits.length) {\n l += limits[limits.length - 1];\n }\n limits.push(l);\n });\n cache.setlimits.push({\n level: cache.curentLevel,\n limits: limits.slice(0), // makes a copy\n });\n }\n\n // apply special class to group end cells\n var cursor = 0;\n $(\"td\", row)\n .not(\".sub-header\")\n .each(function (iy) {\n var level = cache.curentLevel;\n var l;\n var prevset;\n\n var c = parseInt($(this).attr(\"colspan\") || \"1\");\n cursor += c;\n\n if (limits.includes(cursor)) {\n if (level > 0) {\n // traverse all previous limits to see which major one includes\n // this limit\n for (l = 0; l < cache.setlimits.length; l++) {\n prevset = cache.setlimits[l].limits;\n if (prevset.includes(cursor)) {\n level = cache.setlimits[l].level;\n break;\n }\n }\n }\n $(this).addClass(\"endgroup_\" + level);\n }\n });\n }\n\n $.fn.simplifyTable = function simplifyTable() {\n if (!Array.prototype.last) {\n Array.prototype.last = function () {\n return this[this.length - 1];\n };\n }\n var $table = $(this);\n\n if (!$table.data(\"original\")) {\n $table.data(\"original\", $table.html());\n }\n\n var cache = {\n curentLevel: 0,\n setlimits: [\n {\n level: -1,\n limits: [],\n },\n ],\n };\n $(\"tr\", this).each(function () {\n mergeCellsInRow(this, cache);\n });\n\n // Laci disable\n // $table.fixTableHeaderHeight();\n // $table.fixTableHeaderAndCellsHeight();\n $table.data(\"simplified\", $table.html());\n };\n\n $.fn.toggleTable = function toggleTable(onoff) {\n var original = $(this).data(\"original\");\n var simplified = $(this).data(\"simplified\");\n\n if (onoff) {\n //$(this).simplifyTable();\n $(this).html(simplified);\n } else {\n $(this).hide();\n $(this).empty().html(original);\n $(this).show();\n //setupTranslateClickHandlers();\n //setupReadMoreModal();\n }\n setupReadMoreModal();\n setupTranslateClickHandlers();\n $(this).fixTableHeaderAndCellsHeight();\n };\n\n /* Used in report data table create a 'read more' modal if the cell content\n * is too long\n */\n window.setupReadMoreModal = function () {\n var $table = $(\".table-report\");\n var $modal = $(\"#read-more-modal\");\n var $modalContent = $(\".modal-content-wrapper\");\n var maxchars = 397;\n var sep = \"...\";\n var $cells = $table.find(\".tr-text\");\n $cells.each(function () {\n var t = $(this).text();\n var t_html = $(this).html();\n\n if (t_html.length > maxchars) {\n $(this).addClass(\"short\");\n var sh = t_html.substr(0, 0.75 * maxchars) + sep;\n $(this).html(sh);\n $(this).on(\"click\", function () {\n $modalContent.html(t_html);\n $modal.modal(\"show\");\n });\n }\n });\n\n $(\".btn-close-modal\").click(function () {\n $modalContent.empty();\n });\n\n // Laci disable\n // $table.fixTableHeaderAndCellsHeight();\n };\n\n function setupReportNavigation() {\n // This is a menu that is triggered from a button. When scrolling down, it\n // sticks to the top. Allows navigation between articles/years\n var $reportnav = $(\"#report-data-navigation\");\n $(\"button\", $reportnav).on(\"click\", function () {\n $(\".nav-body\", $reportnav).toggle();\n $(this)\n .children()\n .addClass(\"glyphicon\")\n .toggleClass(\"glyphicon-menu-hamburger glyphicon-remove-circle\");\n return false;\n });\n $(\".nav-body\", $reportnav).hide();\n\n // sticky report data navigation\n var $rn = $(\".report-nav\");\n var $title = $(\".report-title\");\n var $reportDataNav = $(\"#report-data-navigation\");\n\n if ($rn.length > 0) {\n var stickyOffset = $rn.offset().top;\n\n $(window).scroll(function () {\n var scroll = $(window).scrollTop();\n var fixElement = scroll >= stickyOffset;\n $reportDataNav.toggleClass(\"height-fix\", fixElement);\n $rn.toggleClass(\"sticky\", fixElement);\n $title.toggleClass(\"fixed-title\", fixElement);\n });\n }\n }\n\n function setupTableScrolling() {\n // TODO not used\n // When dealing with a really wide table, with wide cells, we want to keep\n // the text relatively narrow, but always keep in view that cell content\n var $ot = $(\".overflow-table table\");\n\n $ot.each(function () {\n var $tw = $(this);\n var $td = $tw.find(\"td\");\n\n if (!$td.length) {\n return;\n }\n\n // get table header cell right position\n var $th = $tw.find(\"th\");\n var thRight = $th.position().left + $th.outerWidth();\n\n $td.each(function () {\n var $this = $(this);\n var scrollTimer;\n\n $(\".report-page-view .overflow-table .inner\").scroll(function () {\n clearTimeout(scrollTimer);\n\n if ($this.attr(\"colspan\") > 1) {\n var tdText = $this.find(\".td-content\");\n var tdLeft = $this.position().left;\n var tdRight = tdLeft + $this.outerWidth(); // get table cell right position\n var tdTextWidth = $this.find(\".td-content\").width();\n var thAndCellWidth = tdTextWidth + thRight;\n\n $this.css(\"height\", $this.outerHeight());\n\n scrollTimer = setTimeout(afterScroll, 1);\n\n if (tdLeft < thRight) {\n tdText.addClass(\"td-scrolled\").css(\"left\", thRight + 5);\n } else {\n $this.css(\"height\", \"\");\n tdText.removeClass(\"td-scrolled\");\n }\n\n if (thAndCellWidth >= tdRight) {\n $this.addClass(\"td-relative\");\n } else {\n $this.removeClass(\"td-relative\");\n }\n }\n });\n\n function afterScroll() {\n // Tibi: temporarily disabled\n // $('.btn-translate').on('click', function() {\n // var $btn = $(this);\n // var transTextHeight = $btn.closest('.td-content').outerHeight();\n // var $td = $btn.closest('td.translatable');\n // var $th = $td.siblings('th');\n // $td.css({\n // 'height': transTextHeight,\n // 'padding': '0'\n // });\n // $btn.closest('.td-content').css('padding', '8px');\n // $th.css('height', transTextHeight);\n // });\n }\n });\n });\n }\n\n // check if element is in viewport\n $.fn.isInViewport = function () {\n var elementTop = $(this).offset().top;\n var elementBottom = elementTop + $(this).height();\n\n var viewportTop = $(window).scrollTop();\n var viewportBottom = viewportTop + $(window).height();\n\n return elementBottom > viewportTop && elementTop < viewportBottom;\n };\n\n function addCustomScroll() {\n var $cs = $(\n '
' +\n // '' +\n '
' +\n '' +\n \"
\" +\n \"
\",\n );\n\n $cs.insertAfter($(\".overflow-table\").find(\".inner\"));\n }\n\n function setupCustomScroll() {\n // A fixed scrollbar at the bottom of the window for tables\n\n var $ot = $(\".overflow-table\");\n var $win = $(window);\n\n $ot.each(function () {\n var $t = $(this);\n // var $tParent = $t.parent();\n var $tParent = $t;\n var topScroll = $(\".top-scroll\", $tParent);\n var topScrollInner = topScroll.find(\".top-scroll-inner\");\n var tableScroll = $(\".inner\", $tParent);\n var tableWidth = $(\".table-report\", $tParent).outerWidth(\n (includeMargin = true),\n );\n var tableHeaderWidth = $(\"th\", $tParent).width();\n var tableAndHeaderWidth = tableWidth + tableHeaderWidth;\n var customScroll = $(\".scroll-wrapper\", $tParent);\n\n topScrollInner.width(tableWidth);\n\n topScroll.on(\"scroll\", function () {\n tableScroll.scrollLeft($(this).scrollLeft());\n });\n\n tableScroll.on(\"scroll\", function () {\n topScroll.scrollLeft($(this).scrollLeft());\n });\n\n if (tableAndHeaderWidth > $t.width()) {\n $win.on(\"resize scroll\", function () {\n var scroll = $win.scrollTop();\n\n if ($t.isInViewport()) {\n customScroll.addClass(\"fixed-scroll\");\n } else {\n customScroll.removeClass(\"fixed-scroll\");\n }\n\n // hide custom scrollbar when it reaches the bottom of the table\n if (\n scroll >=\n $t.offset().top + $t.outerHeight() - window.innerHeight\n ) {\n customScroll.hide();\n } else {\n customScroll.show();\n }\n });\n }\n });\n }\n\n function addFixedTable() {\n var $ot = $(\".overflow-table\");\n\n $ot.each(function () {\n var $table = $(this).find(\"table\");\n var $cb = $('');\n var $ft = $(\n '
' +\n '\" +\n '
' +\n '
' +\n \"
\" +\n \"
\" +\n \"
\",\n );\n\n // Register click event for button to clear all pinned rows for the current table\n $ft.find(\"button.reset-pins\").click(function () {\n $ftw = $(this).closest(\".fixed-table-wrapper\");\n $ftw.removeClass(\"sticky-table\");\n $ftw.find(\"tr\").remove();\n\n $innerTable = $ftw.siblings(\".inner\");\n $innerTable.find(\"tr input\").prop(\"checked\", false);\n });\n\n if ($table.find(\"td.sub-header\").length) {\n // Regional descriptors\n $table.find(\"td.sub-header\").append($cb);\n } else {\n // National descriptors\n $table.find(\"th div\").append($cb);\n }\n\n $ft.insertBefore($(this).find(\".inner\"));\n });\n }\n\n $.fn.setupFixedTableRows = function () {\n // Allows report table rows to be fixed while scrolling\n // var $ot = $('.overflow-table');\n var $ot = $(this);\n\n // The .each is necessary, we can have more overflow-tables\n $ot.each(function () {\n var $t = $(this);\n var $fixedTable = $t.find(\".fixed-table-wrapper\");\n var $th = $(\"th\", $t.parent());\n var tableW = $(\".table-report\", $t).width();\n var tableScroll = $(\".inner\", $t);\n var fixedTableInner = $(\".fixed-table-inner\", $t);\n\n function toggleSyncScrolls(onoff) {\n function f1() {\n tableScroll.scrollLeft($(this).scrollLeft());\n }\n function f2() {\n fixedTableInner.scrollLeft($(this).scrollLeft());\n }\n if (onoff) {\n fixedTableInner.on(\"scroll\", f1);\n tableScroll.on(\"scroll\", f2);\n } else {\n fixedTableInner.off(\"scroll\", f1);\n tableScroll.off(\"scroll\", f2);\n }\n }\n toggleSyncScrolls(true);\n\n $t.find(\".fix-row\").each(function (i) {\n var val = \"cb\" + i++;\n // var checkBox = $(this).find('.fix-row');\n var checkBox = $(this);\n checkBox.val(val);\n });\n\n var checkBox = $t.find(\".fix-row\");\n checkBox.change(function () {\n var $this = $(this);\n var value = $this.val();\n var table = $this.closest(\".overflow-table\").find(\".fixed-table\");\n var tableWrapper = $this\n .closest(\".overflow-table\")\n .find(\".fixed-table-wrapper\");\n table.width(tableW);\n\n if ($this.is(\":checked\")) {\n tableWrapper.addClass(\"sticky-table\");\n\n //for other tables find the reset button and trigger the click event\n var $parentReportSection = $this.closest(\".report-section\");\n var $otherReportSections =\n $parentReportSection.siblings(\".report-section\");\n $otherReportSections.each(function () {\n $ftw = $(this).find(\".fixed-table-wrapper\");\n $ftw.find(\"button.reset-pins\").click();\n });\n\n // clone table row, but keep the width of the original table cells\n var target = $this.closest(\"tr\");\n var target_children = target.children(\"td\");\n var clone = target.clone();\n clone.children(\"td\").width(function (i, val) {\n return target_children.eq(i).outerWidth();\n });\n clone.appendTo(table).attr(\"data-row\", value);\n\n // disable for test\n //$t.find('.table').fixTableHeaderAndCellsHeight();\n // setupTableScrolling();\n } else {\n $fixedTable\n .find('tr[data-row=\"' + value + '\"]')\n .slideUp(\"fast\", function () {\n $(this).remove();\n });\n\n if (table.find(\"tr\").length === 1) {\n tableWrapper.removeClass(\"sticky-table\");\n }\n }\n\n var $cb = $fixedTable.find(\".fix-row\");\n $cb.change(function () {\n var $this = $(this);\n var value = $this.val();\n\n if ($this.closest(\"tr\").siblings().length === 0) {\n $this.closest(\".fixed-table-wrapper\").removeClass(\"sticky-table\");\n }\n\n $this.closest(\"tr\").remove();\n $('.fix-row[value=\"' + value + '\"]').prop(\"checked\", false);\n });\n\n toggleSyncScrolls(false);\n fixedTableInner.scrollLeft(tableScroll.scrollLeft());\n toggleSyncScrolls(true);\n });\n });\n\n $(window).on(\"resize scroll\", function () {\n if ($(\".report-nav.sticky\").length > 0) {\n $(\".fixed-table-wrapper\").each(function () {\n $(this).css(\"top\", \"56px\");\n });\n } else {\n $(\".fixed-table-wrapper\").each(function () {\n $(this).css(\"top\", \"0\");\n });\n }\n });\n };\n\n function setupResponsiveness() {\n // fire resize event after the browser window resizing it's completed\n var resizeTimer;\n $(window).resize(function () {\n clearTimeout(resizeTimer);\n resizeTimer = setTimeout(doneResizing, 500);\n });\n\n function doneResizing() {\n // $('.table-report').fixTableHeaderHeight();\n $(\".table-report\").each(function () {\n $(this).fixTableHeaderAndCellsHeight();\n });\n }\n\n if (window.matchMedia(\"(max-width: 768px)\").matches) {\n $(\".overflow-table h5\").width($(\".overflow-table table\").width());\n }\n\n // tibi: temporarily disabled. I don't know what td-content does\n // var $td = $('.overflow-table table td');\n // $td.children('div').wrapInner('');\n }\n\n function setupSimplifiedTables() {\n $(\".simplify-form\")\n .next()\n .find(\".table-report\")\n .each(function () {\n $(this).simplifyTable();\n });\n\n $(\".simplify-form button\").on(\"click\", function () {\n var onoff = $(this).attr(\"aria-pressed\") == \"true\";\n $p = $(this).parent().next();\n $(\".table-report\", $p).toggleTable(!onoff);\n // Laci disable\n $p.setupFixedTableRows();\n setupCustomScroll();\n });\n }\n\n function regionalDescriptorsGroupTableHeaders() {\n var $headers = $(\".first-header\");\n if ($headers.length === 0) {\n return;\n }\n var compareText = \"\";\n var currentText = \"\";\n\n compareText = $headers[0].firstElementChild.innerText;\n\n for (i = 1; i < $headers.length; i++) {\n currentText = $headers[i].firstElementChild.innerText;\n\n if (compareText === currentText) {\n $headers[i].firstElementChild.innerText = \"\";\n $($headers[i - 1]).css(\"border-bottom\", \"0px\");\n } else {\n compareText = currentText;\n }\n\n //debugger;\n }\n }\n\n $.fn.setupStickyRows = function () {\n // make first th element(s) with 'sticky-col' class stick to the left of the\n // screen when scrolling horizontally\n $stickyTable = $(\".table-sticky-first-col\");\n $stickyTable.find(\"tr\").each(function () {\n $(this)\n .find(\"th.sticky-col\")\n .each(function () {\n $currentTh = $(this);\n $prevTh = $(this).prev(\".sticky-col\");\n\n if ($prevTh.hasClass(\"sticky-col\")) {\n prevWidth = $prevTh.outerWidth();\n prevLeft = parseInt($prevTh.css(\"left\"));\n $currentTh.css({ left: prevWidth + prevLeft });\n } else {\n $currentTh.css(\"left\", -1);\n }\n });\n });\n\n // Pin all rows with 'sticky-row' class\n $fixedTable = $(this).find(\".fixed-table\");\n var tableWrapper = $(this).find(\".fixed-table-wrapper\");\n tableWrapper.addClass(\"sticky-table\");\n\n if ($(this).find(\".inner table\").hasClass(\"table-sticky-first-col\")) {\n $fixedTable.addClass(\"table-sticky-first-col\");\n }\n\n $(this)\n .find(\"tr.sticky-row\")\n .each(function () {\n $(this)\n .children()\n .each(function () {\n var width = $(this).outerWidth();\n $(this).css(\"min-width\", width);\n $(this).css(\"width\", width);\n $(this).css(\"background-color\", $(this).css(\"background-color\"));\n $(this).css(\"color\", $(this).css(\"color\"));\n $(this).css(\"text-align\", $(this).css(\"text-align\"));\n });\n\n clone = $(this).clone();\n clone.appendTo($fixedTable);\n });\n\n // on scroll check if the all rows 'sticky-row' are displayed on screen\n // if not show the 'fixed-table' with the pinned rows\n $(window).on(\"resize scroll\", function () {\n $(\".overflow-table\").each(function () {\n var $ot = $(this);\n var tableWrapper = $ot.find(\".fixed-table-wrapper\");\n var stickyRowsInView = [];\n\n $ot.find(\".inner tr.sticky-row\").each(function () {\n var elementTop = $(this).offset().top;\n var viewportTop = parseInt($(window).scrollTop());\n // var viewportBottom = viewportTop + $(window).height();\n var $currentOT = $(this).parents(\".overflow-table\");\n var otTop = $currentOT.offset().top;\n var otBottom = otTop + $currentOT.outerHeight();\n var theadHeight = $(this).parents(\"thead\").outerHeight();\n\n // if this is false, we display the sticky bar on the top\n isInViewport =\n // $(this).isInViewport() ||\n // elementTop > viewportBottom\n elementTop > viewportTop || otBottom < viewportTop + theadHeight;\n\n stickyRowsInView.push(isInViewport);\n });\n\n if (stickyRowsInView.includes(false)) {\n $ot.removeClass(\"hidden-fixed-table\");\n } else {\n $ot.addClass(\"hidden-fixed-table\");\n }\n });\n });\n };\n\n $(document).ready(function ($) {\n setupReadMoreModal();\n initStyling();\n // setupSelects2();\n setupReportNavigation();\n // setupTableScrolling();\n setupResponsiveness();\n addCustomScroll();\n addFixedTable();\n regionalDescriptorsGroupTableHeaders();\n\n // $(\".pat-tooltip\").tooltip({\n // html: true,\n // title: $(this).attr(\"title\"),\n // });\n // $('[data-bs-toggle=\"tooltip\"]').tooltip({\n // html: true,\n // });\n // var popoverTriggerList = [].slice.call(\n // document.querySelectorAll('[data-bs-toggle=\"popover\"]'),\n // );\n // var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {\n // return new bootstrap.Popover(popoverTriggerEl);\n // });\n\n // Fix login url\n // $(\".pat-plone-modal\").attr(\"href\", \"/marine/assessment-module/login\");\n // Fix redirect on login\n // var _xhrOpen = XMLHttpRequest.prototype.open;\n // XMLHttpRequest.prototype.open = function (method, url) {\n // var self = this;\n // this.addEventListener(\"load\", function () {\n // if (\n // method === \"POST\" &&\n // url.indexOf(\"login\") !== -1 &&\n // self.responseURL.indexOf(\"login\") === -1\n // ) {\n // $(\".modal-wrapper\").hide();\n // window.location.href = self.responseURL;\n // }\n // });\n // _xhrOpen.apply(this, arguments);\n // };\n\n $(\".assessment-read-more\").click(function () {\n var $this = $(this);\n $this.text(function (a, b) {\n return b.startsWith(\"Show\")\n ? \"Hide reports\"\n : $(this).attr(\"display-text\");\n });\n $this.parents().siblings(\".assessment-dd-list\").fadeToggle();\n $this\n .parents()\n .siblings(\".text-reports-table\")\n .find(\".assessment-dd-list\")\n .fadeToggle();\n });\n\n var $scrollBtn = $(\".scroll-to-top\");\n $(window).scroll(function () {\n if ($(this).scrollTop() > 400) {\n $scrollBtn.fadeIn();\n } else {\n $scrollBtn.fadeOut();\n }\n });\n\n $scrollBtn.click(function () {\n $(\"html, body\").animate({ scrollTop: 0 }, 400);\n return false;\n });\n\n $(window).on(\"load\", function () {\n // setupReadMoreModal();\n setupSimplifiedTables();\n var $ot = $(\".overflow-table\");\n $ot.each(function () {\n $(this).setupFixedTableRows();\n $(this).find(\".table-report\").fixTableHeaderAndCellsHeight();\n // when loading the screen pin all rows marked with 'sticky-row' class\n // and display them if they are not in viewport\n $(this).setupStickyRows();\n });\n setupCustomScroll();\n\n // setupScrollableTargets();\n setupTargetsWidth();\n setupAssessmentStatusChange();\n\n setupProcessStateCheckboxes();\n });\n });\n})(window, document, $);\n"],"names":["window","document","$","setupCustomScroll","$ot","$win","each","$t","this","$tParent","topScroll","topScrollInner","find","tableScroll","tableWidth","outerWidth","includeMargin","tableAndHeaderWidth","width","customScroll","on","scrollLeft","scroll","scrollTop","isInViewport","addClass","removeClass","offset","top","outerHeight","innerHeight","hide","show","fn","fixTableHeaderAndCellsHeight","index","$th","$next","tdHeights","cells_max_height","height","thHeight","thInnerHeight","parents","hasClass","isSideBySideLeft","parent","children","$nextSideBySide","siblings","merge","$subheader","hght","$this","push","Math","max","apply","css","fixTableHeaderHeight","$thSideBySide","$rowSideBySide","simplifyTable","Array","prototype","last","length","$table","cache","data","html","curentLevel","setlimits","level","limits","row","sets","rowLevel","cursor","undefined","parseInt","not","ix","includes","text","trim","colspan","attr","slice","remove","l","iy","c","toggleTable","onoff","original","simplified","empty","setupReadMoreModal","setupTranslateClickHandlers","$modal","$modalContent","sh","t_html","substr","modal","click","elementTop","elementBottom","viewportTop","viewportBottom","setupFixedTableRows","$fixedTable","tableW","fixedTableInner","toggleSyncScrolls","f1","f2","off","i","val","change","target_children","value","table","closest","tableWrapper","is","$ftw","target","clone","eq","appendTo","slideUp","prop","setupStickyRows","$stickyTable","$currentTh","$prevTh","prev","prevWidth","prevLeft","left","stickyRowsInView","$currentOT","otBottom","theadHeight","ready","stickyOffset","$reportnav","$rn","$title","$reportDataNav","resizeTimer","doneResizing","toggle","toggleClass","fixElement","resize","clearTimeout","setTimeout","matchMedia","matches","insertAfter","$cb","$ft","$innerTable","append","insertBefore","$headers","currentText","compareText","firstElementChild","innerText","a","b","startsWith","fadeToggle","$scrollBtn","fadeIn","fadeOut","animate","maxGescompWidth","$tableWrap","next","$p","display","min-width","hover","$form","$assessmentContainers","url","action","body","ajax","type","serialize","success","location","reload","$newPhaseSelector","$select","console","log","removeAttr","replaceWith","select2","minimumResultsForSearch"],"mappings":"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"}
\ No newline at end of file
diff --git a/src/wise/msfd/static/wise/src/js/compliance.js b/src/wise/msfd/static/wise/src/js/compliance.js
index d416ad7b8..c7bf85262 100644
--- a/src/wise/msfd/static/wise/src/js/compliance.js
+++ b/src/wise/msfd/static/wise/src/js/compliance.js
@@ -534,6 +534,11 @@
}
$.fn.simplifyTable = function simplifyTable() {
+ if (!Array.prototype.last) {
+ Array.prototype.last = function () {
+ return this[this.length - 1];
+ };
+ }
var $table = $(this);
if (!$table.data("original")) {
diff --git a/src/wise/msfd/static/wise/src/less/search-form.less b/src/wise/msfd/static/wise/src/less/search-form.less
index c04f6a3fe..23d79b5df 100644
--- a/src/wise/msfd/static/wise/src/less/search-form.less
+++ b/src/wise/msfd/static/wise/src/less/search-form.less
@@ -867,6 +867,12 @@
display: flex;
gap: 1rem;
align-items: flex-end;
+
+ .row {
+ display: flex;
+ gap: 1rem;
+ align-items: flex-end;
+ }
}
.panel-content {
diff --git a/src/wise/msfd/version.txt b/src/wise/msfd/version.txt
index 5904f7ade..f99416236 100644
--- a/src/wise/msfd/version.txt
+++ b/src/wise/msfd/version.txt
@@ -1 +1 @@
-7.2
+7.3