{"version":3,"sources":["../frontend/js/charts.js","../frontend/js/pdf.js","../frontend/js/polyfill.js","../frontend/js/search.js","../frontend/js/select.js","../frontend/js/tabs.js"],"names":["$","doChart","$el","points","_options","options","extend","canvas","x","min","max","label","y","plotOptions","data","color","chartOptions","xaxis","ticks","autoscaleMargin","tickFormatter","val","axis","datamax","toFixed","font","size","family","yaxis","grid","hoverable","margin","highlight","push","show","symbol","radius","plot","$tooltip","css","position","display","padding","background-color","opacity","bottom","right","font-weight","font-size","appendTo","bind","event","pos","item","datapoint","html","hide","parsePoint","rawPoint","split","map","parseFloat","parsePoints","rawPoints","rawPointsAry","i","length","DimChart","xlabel","ylabel","self","this","ADDITIONAL_XRANGE","rawHighlight","xrange","xbounds","delta","bounds","fn","DimPerformanceChart","each","call","DimPressureChart","jQuery","RENDER_PATH","RENDER_MODAL","RENDER_MODAL_CONTENT","RenderModal","exchanger","$modal","$modalContent","redirectIf401","jqXHR","status","loginURL","responseJSON","redirect_to","window","location","href","on","form","ajax","url","type","param","serializeArray","done","_","jqxhr","fail","statusText","params","load","empty","append","modal","set","k","v","DimResultToPdf","renderModal","fields","key","value","modalkey","replace","args","arguments","apply","DimPdfRenderModal","find","submit","getOrSetField","id","field","reset","dissipated_power","tin","tout","tamb","flowrate","dp","fluid","String","prototype","endsWith","Object","defineProperty","searchString","subjectString","toString","undefined","lastIndex","indexOf","DimSearchResult","action","SELECTED_CLASS","detail","next","init","isOpen","close","open","hasClass","removeClass","trigger","addClass","animate","scrollTop","offset","top","DimSearchResultList","results","e","filter","target","DimSearchType","tabs","showOrHide","sel","enableOrDisable","enable","attr","updateUnknown","toutCheck","toutField","powerField","is","updateTinMax","isAutonomous","console","log","$tin","setAutonomous","oldTab","newTab","click","findActiveTab","Ladda","selectize","plugins","searchField","DimTabs","tabLinks","tabsContainer","siblings","idFromTabLink","link","slice","selectedTabLink","selected","parent","children","first","switchToLink","newLink","force","newID","currentlySelectedLink","currentlySelectedID","slideUp","slideDown","preventDefault"],"mappings":"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","file":"app.js","sourcesContent":["(function($) {\n\n var doChart = function($el, points, _options) {\n\n var options = $.extend({\n canvas: true,\n x: {\n min: null, max: null, label: \"x\",\n },\n y: {\n min: null, max: null, label: \"y\",\n },\n }, _options);\n\n var plotOptions = [\n {\n data: points,\n color: 2,\n }];\n var chartOptions = {\n xaxis: {\n ticks: 10,\n autoscaleMargin: 0.05,\n min: options.x.min,\n max: options.x.max,\n tickFormatter: function(val, axis) { return val < axis.datamax ? val.toFixed(0) : options.x.label; },\n font: {\n size: 13,\n color: \"#555\",\n family: \"Noto Sans\",\n },\n },\n yaxis: {\n autoscaleMargin: 0.05,\n min: options.y.min,\n max: options.y.max,\n tickFormatter: function(val, axis) { return val < axis.max ? val.toFixed(3) : options.y.label; },\n font: {\n size: 13,\n color: \"#555\",\n family: \"Noto Sans\",\n },\n\n },\n grid: {\n hoverable: true,\n margin: 0,\n },\n };\n\n if (options.highlight) {\n plotOptions.push({\n data: [options.highlight],\n color: 4,\n points: {\n show: true,\n symbol: \"diamond\",\n radius: 4,\n },\n });\n }\n\n // Render chart\n $.plot($el, plotOptions, chartOptions);\n\n // Create tooltip\n var $tooltip = $(\"
\").css({\n position: \"absolute\",\n display: \"block\",\n padding: \"4px\",\n \"background-color\": \"transparent\",\n opacity: 0.80,\n bottom: \"23px\",\n right: \"20px\",\n \"font-weight\": \"bold\",\n \"font-size\": \"13pt\",\n }).appendTo($el);\n\n // Enable tooltip on hover\n $el.bind(\"plothover\", function(event, pos, item) {\n if (item) {\n var x = item.datapoint[0].toFixed(0),\n y = item.datapoint[1].toFixed(2);\n\n $tooltip.html(x + \" \" + options.x.label + \" = \" + y + \" \" + options.y.label).show();\n } else {\n $tooltip.hide();\n }\n });\n }\n var parsePoint = function(rawPoint) {\n return rawPoint.split(\";\").map(parseFloat);\n }\n\n var parsePoints = function(rawPoints) {\n var rawPointsAry = rawPoints.split(\"|\");\n var points = [];\n\n for (var i = 0; i < rawPointsAry.length; i++) {\n points.push(parsePoint(rawPointsAry[i]));\n }\n\n return points;\n }\n\n var DimChart = function(xlabel, ylabel) {\n var self = this;\n var points = [];\n\n var ADDITIONAL_XRANGE = 5; // in percent\n\n var init = function() {\n var rawPoints = self.data('points');\n var rawHighlight = self.data('highlight');\n\n var points = parsePoints(rawPoints);\n var highlight = parsePoint(rawHighlight);\n\n var xrange = [null, null];\n var xbounds = [null, null];\n\n var xlabel = self.data('x-uom');\n var ylabel = self.data('y-uom');\n\n if (points.length > 2) {\n xbounds[0] = points[0][0];\n xbounds[1] = points[points.length - 1][0];\n\n var delta = (xbounds[1] - xbounds[0]) / 100;\n xrange[0] = xbounds[0] - delta * ADDITIONAL_XRANGE;\n xrange[1] = xbounds[1] + delta * ADDITIONAL_XRANGE;\n }\n\n doChart(self, points, {\n x: {\n label: xlabel,\n min: xrange[0],\n max: xrange[1],\n bounds: xbounds,\n },\n y: {\n label: ylabel,\n },\n highlight: highlight,\n });\n }\n\n init();\n }\n\n $.fn.DimPerformanceChart = function() {\n var args = arguments;\n this.each(function() {\n DimChart.call($(this));\n });\n };\n\n $.fn.DimPressureChart = function() {\n var args = arguments;\n this.each(function() {\n DimChart.call($(this));\n });\n };\n\n})(jQuery);\n","(function($) {\n\n var RENDER_PATH = '/search-render/';\n var RENDER_MODAL = '#render-modal';\n var RENDER_MODAL_CONTENT = '#render-modal-content';\n var RENDER_IFRAME = '#render-iframe';\n\n var RenderModal = function(exchanger) {\n var self = this;\n\n var $modal = $(RENDER_MODAL);\n var $modalContent = $(RENDER_MODAL_CONTENT);\n\n var redirectIf401 = function(jqXHR) {\n if (jqXHR.status == 401) {\n var loginURL = jqXHR.responseJSON.redirect_to;\n window.location.href = loginURL;\n }\n }\n\n $('.submit', $modal).on('click', function() {\n var form = $('form', $modalContent);\n\n $.ajax({\n url: RENDER_PATH,\n type: \"POST\",\n data: $.param(form.serializeArray())\n }).done(function(data, _, jqxhr) {\n window.location.href = data;\n }).fail(function(jqXHR, statusText) {\n redirectIf401(jqXHR);\n });\n });\n\n self.params = {};\n\n self.load = function() {\n // Prepare container for ajax load\n\n // Load modal from AJAX\n self.params.exchanger = exchanger;\n var xhr = $.ajax({\n type: \"GET\",\n url: RENDER_PATH,\n data: self.params\n }).fail(function(jqXHR, statusText) {\n redirectIf401(jqXHR);\n }).done(function(data) {\n $modalContent.empty();\n $modalContent.append(data);\n\n $modal.modal('show');\n });\n\n return xhr;\n };\n\n self.set = function(k, v) {\n self.params[k] = v;\n };\n }\n\n var DimResultToPdf = function() {\n var self = this;\n\n this.on('click', function() {\n var exchanger = self.data('exchanger');\n\n var renderModal = new RenderModal(exchanger);\n\n // Set render fields\n var fields = ['fluid', 'tin', 'tout', 'tamb', 'dp', 'flowrate', 'dissipated-power', 'is-autonomous'];\n for (var i = 0; i < fields.length; i++) {\n var key = fields[i];\n var value = self.data(key);\n var modalkey = key.replace('-', '_');\n\n renderModal.set(modalkey, value);\n }\n\n renderModal.load();\n });\n }\n\n $.fn.DimResultToPdf = function() {\n var args = arguments;\n this.each(function() {\n DimResultToPdf.apply($(this), args);\n });\n };\n\n $.fn.DimPdfRenderModal = function() {\n var self = this;\n var form = this.find('form');\n\n this.find('.render-form-submit').on('click', function() {\n form.submit();\n });\n\n var getOrSetField = function(id) {\n return function() {\n var field = form.find('#render_' + id);\n if (arguments.length == 0) {\n return field.val();\n }\n\n return field.val(arguments[0]);\n }\n }\n \n return {\n modal: function() {\n return $.fn.modal.apply(self, arguments);\n },\n reset: function() {\n form[0].reset();\n },\n\n // fields\n exchanger: getOrSetField('exchanger'),\n dissipated_power: getOrSetField('dissipated_power'),\n tin: getOrSetField('tin'),\n tout: getOrSetField('tout'),\n tamb: getOrSetField('tamb'),\n flowrate: getOrSetField('flowrate'),\n dp: getOrSetField('dp'),\n fluid: getOrSetField('fluid'),\n };\n }\n\n\n\n})(jQuery);\n","// String.endsWith - https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\nif (!String.prototype.endsWith) {\n Object.defineProperty(String.prototype, 'endsWith', {\n value: function (searchString, position) {\n var subjectString = this.toString();\n if (position === undefined || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n }\n });\n}\n","/*global Ladda, jQuery */\n\n(function($) {\n\n $.fn.DimSearchResult = function (action) {\n var self = this;\n var SELECTED_CLASS = 'search-result-selected';\n var detail = this.next('.search-result-detail');\n\n if (detail.length != 1) {\n return;\n };\n\n var init = function() {\n self.on('click', function() {\n if (isOpen()) {\n close();\n } else {\n open();\n }\n });\n };\n\n var isOpen = function() {\n return self.hasClass(SELECTED_CLASS);\n };\n\n var close = function() {\n self.removeClass(SELECTED_CLASS);\n detail.hide();\n self.trigger('search-result-close', detail);\n };\n\n var open = function() {\n self.addClass(SELECTED_CLASS);\n detail.show();\n self.trigger('search-result-open', detail);\n\n // Scroll to result\n $('html, body').animate({\n scrollTop: self.offset().top - 5\n }, 200);\n };\n\n if (action === 'open') {\n open();\n } else if (action === 'close') {\n close();\n } else if (!action) {\n init();\n }\n\n return this;\n };\n\n $.fn.DimSearchResultList = function(options) {\n var self = this;\n var results = self.find('.search-result');\n\n results.each(function() {\n var $result = $(this);\n $result.DimSearchResult();\n });\n\n // Close other search results when one is opened\n self.on('search-result-open', function(e) {\n results.filter(function() {\n return this != e.target;\n })\n .each(function() {\n $(this).DimSearchResult('close');\n });\n });\n\n return this;\n };\n\n $.fn.DimSearchType = function() {\n var self = this;\n \n self.tabs = self.find('li');\n self.form = $('.search-form');\n self.field = $('#id_autonomous_group');\n\n var showOrHide = function(sel, show) {\n if (show) {\n self.form.find(sel).show();\n } else {\n self.form.find(sel).hide();\n }\n };\n\n var enableOrDisable = function(sel, enable) {\n if (enable) {\n self.form.find(sel).attr('disabled', false);\n } else {\n self.form.find(sel).attr('disabled', true);\n }\n };\n\n var updateUnknown = function() {\n var toutCheck = $('#id_search_0');\n var powerCheck = $('#id_search_1');\n\n var toutField = $('#input-tout');\n var powerField = $('#input-power');\n\n if (toutCheck.is(':checked')) {\n powerField.hide();\n toutField.show();\n } else {\n toutField.hide();\n powerField.show();\n }\n };\n\n var updateTinMax = function(isAutonomous) {\n console.log('updateTinMax');\n var $tin = $('#id_tin');\n if (isAutonomous) {\n $tin.attr('max', 93);\n } else {\n $tin.attr('max', 120);\n }\n }\n\n self.setAutonomous = function(isAutonomous) {\n showOrHide('.search-form-options', !isAutonomous);\n showOrHide('.search-form-flowrate', !isAutonomous);\n showOrHide('.search-form-pressureloss', !isAutonomous);\n showOrHide('.search-form-power-supply', !isAutonomous);\n showOrHide('.search-unknown', !isAutonomous);\n\n showOrHide('.search-model-exchanger', !isAutonomous);\n showOrHide('.search-model-autonomous', isAutonomous);\n\n // Ste, riesci sui gruppi autonomi ad escludere la scelta dell'olio iso vg 460?\n // 05/05/2017 08:56\n enableOrDisable('#id_fluid option:contains(\"VG 460\")', !isAutonomous);\n\n self.field.val(isAutonomous ? 1 : 0);\n\n var oldTab, newTab;\n\n if (isAutonomous) {\n oldTab = self.tabs.filter('.search-type-exchangers');\n newTab = self.tabs.filter('.search-type-autonomous-units');\n $('#id_search_1').click();\n } else {\n oldTab = self.tabs.filter('.search-type-autonomous-units');\n newTab = self.tabs.filter('.search-type-exchangers');\n }\n\n updateUnknown();\n updateTinMax(isAutonomous);\n\n oldTab.removeClass('search-type-selected');\n newTab.addClass('search-type-selected');\n };\n\n self.findActiveTab = function() {\n return self.tabs.filter('.search-type-selected');\n };\n\n self.tabs.on('click', function() {\n var isAutonomous = $(this).hasClass('search-type-autonomous-units');\n self.setAutonomous(isAutonomous);\n });\n\n self.setAutonomous(self.field.val() == 1);\n };\n\n \n $(function() {\n // Bind search type tabs\n $('.search-type').DimSearchType();\n\n // Set Ladda spinner on search button on submit\n Ladda.bind('.search-submit');\n });\n\n})(jQuery);\n","/*global jQuery*/\n\n(function($) {\n $(function() {\n $('.to-selectize').selectize({\n plugins: ['remove_button'],\n searchField: ['optgroup', 'text']\n });\n });\n})(jQuery);\n","(function($) {\n\n var DimTabs = function(action) {\n var self = this;\n var tabLinks = this.find('li > a');\n var tabsContainer = this.siblings('.dim-tabs-container');\n var SELECTED_CLASS = 'pure-menu-selected';\n\n // Extract the tab id from the link.\n // i.e. when passed a , this function returns tab1\n // returns null if the href is not an anchor\n var idFromTabLink = function(link) {\n var href = link.attr('href');\n if (!href || href[0] != \"#\") {\n return null;\n }\n return href.slice(1);\n }\n\n var tabLinkFromID = function(id) {\n var link = tabLinks.filter('[href=\"' + id + '\"]');\n if (link.length < 1) {\n return null;\n }\n return link.first();\n }\n\n // Returns the selected tab link, null if none is selected\n var selectedTabLink = function() {\n var selected = tabLinks.parent().filter('.' + SELECTED_CLASS);\n if (selected.length < 1) {\n return null;\n }\n return selected.children('a').first();\n }\n\n // Returns the ID of the selected tab link, null if none is selected\n var selectedID = function() {\n var selected = selectedTabLink();\n if (!selected) {\n return null;\n }\n return idFromTabLink(selected);\n }\n\n var switchToLink = function(newLink, force) {\n if (!newLink) {\n return;\n }\n\n var newID = idFromTabLink(newLink);\n var currentlySelectedLink = selectedTabLink();\n var currentlySelectedID = idFromTabLink(currentlySelectedLink);\n\n if (newID == currentlySelectedID && !force) {\n return;\n }\n\n // Deactivate current link\n if (currentlySelectedLink) {\n currentlySelectedLink.parent().removeClass(SELECTED_CLASS);\n tabsContainer.children().filter('#' + currentlySelectedID).slideUp('fast');\n }\n\n // Activate this link\n newLink.parent().addClass(SELECTED_CLASS);\n tabsContainer.children().filter('#' + newID).slideDown('fast');\n };\n\n var init = function() {\n // Hide all tabs containers\n tabsContainer.children('div').hide();\n\n // Activate default tab\n var selected = selectedTabLink();\n if (selected) {\n switchToLink(selected, true);\n }\n\n // Bind click events on tabs\n tabLinks.on('click', function(e) {\n e.preventDefault();\n switchToLink($(this));\n });\n };\n\n if (!action) {\n init();\n }\n\n return this;\n }\n\n $.fn.DimTabs = function() {\n var args = arguments;\n this.each(function() {\n DimTabs.apply($(this), args);\n });\n }\n\n /*\n $(function() {\n $('.dim-tabs').DimTabs();\n });\n */\n\n})(jQuery);\n"]}