From 1e154812af75e3ddd9e7dca88a261e179a3ea2bd Mon Sep 17 00:00:00 2001 From: William Troup Date: Thu, 30 May 2024 16:57:13 +0100 Subject: [PATCH 1/2] Updated to v3.1.2. --- README.md | 6 +++--- README_NUGET.md | 6 +++--- dist/heat.js | 4 ++-- dist/heat.js.css | 2 +- dist/heat.js.min.css | 2 +- dist/heat.min.js | 4 ++-- dist/themes/dark/heat.js.dark.bright-blue.theme.css | 2 +- dist/themes/dark/heat.js.dark.bright-orange.theme.css | 2 +- dist/themes/dark/heat.js.dark.bright-purple.theme.css | 2 +- dist/themes/dark/heat.js.dark.bright-yellow.theme.css | 2 +- dist/themes/dark/heat.js.dark.cadmium-red.theme.css | 2 +- dist/themes/dark/heat.js.dark.github.theme.css | 2 +- dist/themes/light/heat.js.light.bright-orange.theme.css | 2 +- dist/themes/light/heat.js.light.bright-purple.theme.css | 2 +- dist/themes/light/heat.js.light.gamboge.theme.css | 2 +- dist/themes/light/heat.js.light.neon-blue.theme.css | 2 +- dist/themes/light/heat.js.light.red.theme.css | 2 +- dist/themes/light/heat.js.light.shamrock-green.theme.css | 2 +- dist/translations/heat.translations.af.js | 2 +- dist/translations/heat.translations.ar.js | 2 +- dist/translations/heat.translations.be.js | 2 +- dist/translations/heat.translations.bg.js | 2 +- dist/translations/heat.translations.bn.js | 2 +- dist/translations/heat.translations.ca.js | 2 +- dist/translations/heat.translations.da.js | 2 +- dist/translations/heat.translations.de.js | 2 +- dist/translations/heat.translations.el.js | 2 +- dist/translations/heat.translations.en.js | 2 +- dist/translations/heat.translations.eo.js | 2 +- dist/translations/heat.translations.es.js | 2 +- dist/translations/heat.translations.et.js | 2 +- dist/translations/heat.translations.fa.js | 2 +- dist/translations/heat.translations.fi.js | 2 +- dist/translations/heat.translations.fr.js | 2 +- dist/translations/heat.translations.fy.js | 2 +- dist/translations/heat.translations.ga.js | 2 +- dist/translations/heat.translations.gl.js | 2 +- dist/translations/heat.translations.he.js | 2 +- dist/translations/heat.translations.hi.js | 2 +- dist/translations/heat.translations.hu.js | 2 +- dist/translations/heat.translations.hy.js | 2 +- dist/translations/heat.translations.id.js | 2 +- dist/translations/heat.translations.is.js | 2 +- dist/translations/heat.translations.it.js | 2 +- dist/translations/heat.translations.ja.js | 2 +- dist/translations/heat.translations.ka.js | 2 +- dist/translations/heat.translations.ko.js | 2 +- dist/translations/heat.translations.lb.js | 2 +- dist/translations/heat.translations.lt.js | 2 +- dist/translations/heat.translations.lv.js | 2 +- dist/translations/heat.translations.ms.js | 2 +- dist/translations/heat.translations.ne.js | 2 +- dist/translations/heat.translations.nl.js | 2 +- dist/translations/heat.translations.no.js | 2 +- dist/translations/heat.translations.pl.js | 2 +- dist/translations/heat.translations.pt.js | 2 +- dist/translations/heat.translations.ro.js | 2 +- dist/translations/heat.translations.si.js | 2 +- dist/translations/heat.translations.sk.js | 2 +- dist/translations/heat.translations.sl.js | 2 +- dist/translations/heat.translations.sv.js | 2 +- dist/translations/heat.translations.ta.js | 2 +- dist/translations/heat.translations.te.js | 2 +- dist/translations/heat.translations.th.js | 2 +- dist/translations/heat.translations.tl.js | 2 +- dist/translations/heat.translations.tr.js | 2 +- dist/translations/heat.translations.uk.js | 2 +- dist/translations/heat.translations.zh-tw.js | 2 +- dist/translations/heat.translations.zh.js | 2 +- heat.js.nuspec | 2 +- package.json | 2 +- src/heat.js | 4 ++-- src/heat.js.scss | 2 +- 73 files changed, 80 insertions(+), 80 deletions(-) diff --git a/README.md b/README.md index 54c1fef3..2e0bf8e8 100644 --- a/README.md +++ b/README.md @@ -2,15 +2,15 @@ Heat.js [![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Heat.js%2C%20a%20free%20JavaScript%heat%20map&url=https://github.com/williamtroup/Heat.js&hashtags=javascript,heat,map) -[![npm](https://img.shields.io/badge/npmjs-v3.1.1-blue)](https://www.npmjs.com/package/jheat.js) -[![nuget](https://img.shields.io/badge/nuget-v3.1.1-purple)](https://www.nuget.org/packages/jHeat.js/) +[![npm](https://img.shields.io/badge/npmjs-v3.1.2-blue)](https://www.npmjs.com/package/jheat.js) +[![nuget](https://img.shields.io/badge/nuget-v3.1.2-purple)](https://www.nuget.org/packages/jHeat.js/) [![license](https://img.shields.io/badge/license-MIT-green)](https://github.com/williamtroup/Heat.js/blob/main/LICENSE.txt) [![discussions Welcome](https://img.shields.io/badge/discussions-Welcome-red)](https://github.com/williamtroup/Heat.js/discussions) [![coded by William Troup](https://img.shields.io/badge/coded_by-William_Troup-yellow)](https://william-troup.com/) >

🌞 A lightweight JavaScript library that generates customizable heat maps, charts, and statistics to visualize date-based activity and trends.

->

v3.1.1

+>

v3.1.2


![Heat.js](docs/images/main.png) diff --git a/README_NUGET.md b/README_NUGET.md index 79fc06d3..65aba765 100644 --- a/README_NUGET.md +++ b/README_NUGET.md @@ -1,8 +1,8 @@ -# Heat.js v3.1.1 +# Heat.js v3.1.2 [![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Heat.js%2C%20a%20free%20JavaScript%heat%20map&url=https://github.com/williamtroup/Heat.js&hashtags=javascript,heat,map) -[![npm](https://img.shields.io/badge/npmjs-v3.1.1-blue)](https://www.npmjs.com/package/jheat.js) -[![nuget](https://img.shields.io/badge/nuget-v3.1.1-purple)](https://www.nuget.org/packages/jHeat.js/) +[![npm](https://img.shields.io/badge/npmjs-v3.1.2-blue)](https://www.npmjs.com/package/jheat.js) +[![nuget](https://img.shields.io/badge/nuget-v3.1.2-purple)](https://www.nuget.org/packages/jHeat.js/) [![license](https://img.shields.io/badge/license-MIT-green)](https://github.com/williamtroup/Heat.js/blob/main/LICENSE.txt) [![discussions Welcome](https://img.shields.io/badge/discussions-Welcome-red)](https://github.com/williamtroup/Heat.js/discussions) [![coded by William Troup](https://img.shields.io/badge/coded_by-William_Troup-yellow)](https://william-troup.com/) diff --git a/dist/heat.js b/dist/heat.js index 81b11e6f..b7753e03 100644 --- a/dist/heat.js +++ b/dist/heat.js @@ -1,4 +1,4 @@ -/*! Heat.js v3.1.1 | (c) Bunoon 2024 | MIT License */ +/*! Heat.js v3.1.2 | (c) Bunoon 2024 | MIT License */ (function() { var _parameter_Document = null, _parameter_Window = null, _parameter_Math = null, _parameter_JSON = null, _public = {}, _configuration = {}, _string = {empty:"", space:" ", newLine:"\n", dash:"-", underscore:"_", plus:"+", zero:"0", colon:":", comma:","}, _value = {notFound:-1}, _internal_Name_Holiday = "HOLIDAY", _local_Storage_Start_ID = "HJS_", _default_MonthsToShow = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], _default_DaysToShow = [1, 2, 3, 4, 5, 6, 7], _elements_Type = {}, _elements_Day_Width = null, _elements_DateCounts = {}, _elements_View_Name_Map = "map", _elements_View_Name_Chart = "chart", _elements_View_Name_Days = "days", _elements_View_Name_Statistics = "statistics", _elements_View_Map = 1, _elements_View_Chart = 2, _elements_View_Days = 3, _elements_View_Statistics = 4, _export_Type_Csv = "csv", _export_Type_Json = "json", _export_Type_Xml = "xml", _export_Type_Txt = "txt", _attribute_Name_Options = "data-heat-js"; @@ -2322,7 +2322,7 @@ return result; }; _public.getVersion = function() { - return "3.1.1"; + return "3.1.2"; }; (function(documentObject, windowObject, mathObject, jsonObject) { _parameter_Document = documentObject; diff --git a/dist/heat.js.css b/dist/heat.js.css index b05429b1..84de51f2 100644 --- a/dist/heat.js.css +++ b/dist/heat.js.css @@ -1,5 +1,5 @@ /* - * Heat.js Library v3.1.1 + * Heat.js Library v3.1.2 * * Copyright 2024 Bunoon * Released under the MIT License diff --git a/dist/heat.js.min.css b/dist/heat.js.min.css index 1fc17d1b..756a95e9 100644 --- a/dist/heat.js.min.css +++ b/dist/heat.js.min.css @@ -1,2 +1,2 @@ -/*! Heat.js v3.1.1 | (c) Bunoon 2024 | MIT License */ +/*! Heat.js v3.1.2 | (c) Bunoon 2024 | MIT License */ :root{--heat-js-default-font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--heat-js-text-bold-weight:400;--heat-js-title-bold-weight:900;--heat-js-sub-title-bold-weight:700;--heat-js-text-bold-weight-active:900;--heat-js-color-black:#3b3a3a;--heat-js-color-white:#adbac7;--heat-js-color-snow-white:#F5F5F5;--heat-js-color-gray:#AAAAAA;--heat-js-container-background-color:#22272e;--heat-js-container-border-color:#454c56;--heat-js-dialog-background-color:var(--heat-js-container-background-color);--heat-js-dialog-border-color:var(--heat-js-container-border-color);--heat-js-dialog-text-color:var(--heat-js-color-white);--heat-js-tooltip-background-color:var(--heat-js-container-background-color);--heat-js-tooltip-border-color:var(--heat-js-container-border-color);--heat-js-tooltip-text-color:var(--heat-js-color-white);--heat-js-years-background-color:var(--heat-js-container-background-color);--heat-js-years-border-color:var(--heat-js-container-border-color);--heat-js-years-text-color:var(--heat-js-color-white);--heat-js-years-background-color-hover:var(--heat-js-button-background-color-hover);--heat-js-years-text-color-hover:var(--heat-js-color-snow-white);--heat-js-title-opener-text-color-hover:var(--heat-js-color-gray);--heat-js-title-background-color:var(--heat-js-container-background-color);--heat-js-title-border-color:var(--heat-js-container-border-color);--heat-js-title-text-color:var(--heat-js-color-white);--heat-js-title-background-color-hover:var(--heat-js-button-background-color-hover);--heat-js-title-text-color-hover:var(--heat-js-color-snow-white);--heat-js-holiday-background-color:rgba( 210, 43, 43, 0.75 );--heat-js-holiday-border-color:rgba( 210, 43, 43, 0.5 );--heat-js-holiday-text-color:var(--heat-js-color-black);--heat-js-day-background-color:#2d333b;--heat-js-day-border-color:var(--heat-js-container-border-color);--heat-js-day-background-color-hover:var(--heat-js-container-border-color);--heat-js-day-spacing:6.3px;--heat-js-day-opacity-hover:0.7;--heat-js-day-opacity-active:0.5;--heat-js-day-size:1.1rem;--heat-js-day-chart-width:10px;--heat-js-day-color-1-background-color:rgba( 80, 200, 120, 0.25 );--heat-js-day-color-1-border-color:rgba( 80, 200, 120, 0.15 );--heat-js-day-color-1-text-color:var(--heat-js-color-white);--heat-js-day-color-2-background-color:rgba( 80, 200, 120, 0.50 );--heat-js-day-color-2-border-color:rgba( 80, 200, 120, 0.25 );--heat-js-day-color-2-text-color:var(--heat-js-color-white);--heat-js-day-color-3-background-color:rgba( 80, 200, 120, 0.75 );--heat-js-day-color-3-border-color:rgba( 80, 200, 120, 0.50 );--heat-js-day-color-3-text-color:var(--heat-js-color-black);--heat-js-day-color-4-background-color:rgba( 80, 200, 120, 1 );--heat-js-day-color-4-border-color:rgba( 80, 200, 120, 0.75 );--heat-js-day-color-4-text-color:var(--heat-js-color-black);--heat-js-view-days-background-color:var(--heat-js-day-color-4-background-color);--heat-js-view-days-border-color:var(--heat-js-day-color-4-border-color);--heat-js-view-days-text-color:var(--heat-js-day-color-4-text-color);--heat-js-button-background-color:var(--heat-js-day-background-color);--heat-js-button-border-color:var(--heat-js-container-border-color);--heat-js-button-text-color:var(--heat-js-color-white);--heat-js-button-background-color-hover:var(--heat-js-container-border-color);--heat-js-button-text-color-hover:var(--heat-js-color-snow-white);--heat-js-button-background-color-active:#616b79;--heat-js-button-text-color-active:var(--heat-js-color-snow-white);--heat-js-checkbox-background-color-checked:rgba( 80, 200, 120, 1 );--heat-js-checkbox-background-color:var(--heat-js-color-black);--heat-js-checkbox-border-color-checked:--heat-js-checkbox-background-color-checked;--heat-js-checkbox-border-color:var(--heat-js-color-white);--heat-js-panel-background-color:var(--heat-js-day-background-color);--heat-js-panel-border-color:var(--heat-js-container-border-color);--heat-js-border-control-radius:0.25rem;--heat-js-border-radius:0.5rem;--heat-js-border-radius-day:0.35rem;--heat-js-border-size:0.5px;--heat-js-border-size-day:1px;--heat-js-spacing:10px;--heat-js-spacing-font-size:0.85rem;--heat-js-spacing-day-font-size:0.6rem;--heat-js-transition:all .3s;--heat-js-animation-length:0.5s}div.heat-js{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;cursor:default;box-sizing:border-box;line-height:normal;font-family:var(--heat-js-default-font);display:inline-block;position:relative;border-radius:var(--heat-js-border-radius);background-color:var(--heat-js-container-background-color);color:var(--heat-js-color-white);border:var(--heat-js-border-size) solid var(--heat-js-container-border-color);padding:var(--heat-js-spacing);font-size:var(--heat-js-spacing-font-size);width:100%;max-width:700px;margin:0!important}div.heat-js div.view-switch{animation:fade-in-animation var(--heat-js-animation-length)}div.heat-js div.no-click{pointer-events:none!important}div.heat-js *{box-sizing:border-box;line-height:normal}div.heat-js *::before,div.heat-js *::after{box-sizing:border-box;line-height:normal}div.heat-js div.disabled{display:none;z-index:1000;position:absolute;background-color:rgb(0 0 0 / .3);top:0;left:0;height:100%;width:100%;animation:fade-in-animation var(--heat-js-animation-length)}div.heat-js div.disabled div.dialog{display:none;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);max-width:450px;width:calc(100% - var(--heat-js-spacing) * 2);background-color:var(--heat-js-dialog-background-color);border:var(--heat-js-border-size) solid var(--heat-js-dialog-border-color);color:var(--heat-js-dialog-text-color);border-radius:var(--heat-js-border-radius);animation:fade-in-animation var(--heat-js-animation-length)}div.heat-js div.disabled div.dialog div.dialog-title-bar{position:relative;padding:var(--heat-js-spacing);text-align:left}div.heat-js div.disabled div.dialog div.dialog-title-bar span.dialog-title-bar-text{font-weight:var(--heat-js-title-bold-weight)}div.heat-js div.disabled div.dialog div.dialog-title-bar div.dialog-close{float:right;width:16px;height:16px;position:relative;cursor:pointer}div.heat-js div.disabled div.dialog div.dialog-title-bar div.dialog-close::before,div.heat-js div.disabled div.dialog div.dialog-title-bar div.dialog-close::after{content:"";position:absolute;height:16px;width:3px;left:6.5px;top:0;background-color:var(--heat-js-color-white);border-radius:var(--heat-js-border-radius);transition:var(--heat-js-transition)}div.heat-js div.disabled div.dialog div.dialog-title-bar div.dialog-close::before{transform:rotate(45deg)}div.heat-js div.disabled div.dialog div.dialog-title-bar div.dialog-close::after{transform:rotate(-45deg)}div.heat-js div.disabled div.dialog div.dialog-title-bar div.dialog-close:hover::before,div.heat-js div.disabled div.dialog div.dialog-title-bar div.dialog-close:hover::after{background-color:var(--heat-js-color-gray)}div.heat-js div.disabled div.dialog div.dialog-contents{padding:var(--heat-js-spacing);overflow-x:scroll;overflow-y:hidden}div.heat-js div.disabled div.configuration div.dialog-contents div.panel{background-color:var(--heat-js-panel-background-color);border:var(--heat-js-border-size) solid var(--heat-js-panel-border-color);border-radius:var(--heat-js-border-radius);padding:var(--heat-js-spacing)}div.heat-js div.disabled div.configuration div.dialog-contents div.side-container{vertical-align:top;display:inline-block;width:calc(50% - var(--heat-js-spacing));margin-right:var(--heat-js-spacing);text-align:left!important}div.heat-js div.disabled div.configuration div.dialog-contents div.side-container:last-child{margin-right:0;width:50%}div.heat-js div.disabled div.configuration div.dialog-contents div.side-container div.side-container-title-text{margin-bottom:var(--heat-js-spacing);font-weight:var(--heat-js-sub-title-bold-weight)}div.heat-js div.disabled div.configuration div.dialog-contents div.side-container label.checkbox{margin-left:var(--heat-js-spacing)}div.heat-js div.title-bar{text-align:right;margin-bottom:calc(var(--heat-js-spacing) + var(--heat-js-spacing) / 2)}div.heat-js div.title-bar button{background-color:var(--heat-js-button-background-color);border:var(--heat-js-border-size) solid var(--heat-js-button-border-color);color:var(--heat-js-button-text-color);border-radius:var(--heat-js-border-radius);padding-top:5px;padding-bottom:5px;padding-left:9px;padding-right:9px;outline:none;transition:var(--heat-js-transition)}div.heat-js div.title-bar button:disabled{color:var(--heat-js-button-border-color)}div.heat-js div.title-bar button:not(.active):not(:disabled):active{background:var(--heat-js-button-background-color-active)!important;color:var(--heat-js-button-text-color-active)!important}div.heat-js div.title-bar button:not(.active):not(:disabled):hover{cursor:pointer;background:var(--heat-js-button-background-color-hover);color:var(--heat-js-button-text-color-hover)}div.heat-js div.title-bar button.active{cursor:default;background:var(--heat-js-button-background-color-hover);color:var(--heat-js-button-text-color-hover);transition:var(--heat-js-transition);font-weight:var(--heat-js-text-bold-weight-active)}div.heat-js div.title-bar button.back{margin-left:calc(var(--heat-js-spacing) * 2)!important}div.heat-js div.title-bar button.export,div.heat-js div.title-bar button.import{margin-right:calc(var(--heat-js-spacing) / 2)!important}div.heat-js div.title-bar div.configure{display:inline-block;width:8.5px;height:8.5px;position:relative;margin-right:var(--heat-js-spacing);transition:var(--heat-js-transition)}div.heat-js div.title-bar div.configure:hover::before,div.heat-js div.title-bar div.configure:hover::after{border-color:var(--heat-js-title-opener-text-color-hover);cursor:pointer}div.heat-js div.title-bar div.configure::before{content:"";position:absolute;height:8.5px;width:8.5px;border-color:var(--heat-js-color-white);border-width:2px;border-style:solid;transform:rotate(-45deg);top:0;left:0;transition:var(--heat-js-transition)}div.heat-js div.title-bar div.configure::after{content:"";position:absolute;height:8.5px;width:8.5px;border-color:var(--heat-js-color-white);border-width:2px;border-style:solid;transform:rotate(90deg);top:0;left:0;transition:var(--heat-js-transition)}div.heat-js div.title-bar button.export,div.heat-js div.title-bar button.refresh,div.heat-js div.title-bar button.import{display:none}@media (min-width:768px){div.heat-js div.title-bar button.export,div.heat-js div.title-bar button.refresh,div.heat-js div.title-bar button.import{display:inline-block}}div.heat-js div.title-bar div.title{float:left;font-weight:var(--heat-js-title-bold-weight);font-size:1.2rem;padding-bottom:3px;transition:var(--heat-js-transition);cursor:pointer}div.heat-js div.title-bar div.title:hover{color:var(--heat-js-title-opener-text-color-hover)}div.heat-js div.title-bar div.title:hover div.down-arrow{border-top-color:var(--heat-js-title-opener-text-color-hover)}div.heat-js div.title-bar div.title:hover div.titles-menu-container{display:block}div.heat-js div.title-bar div.title div.down-arrow{display:inline-block;width:0;height:0;border-left:8px solid #fff0;border-right:8px solid #fff0;border-top:14px solid var(--heat-js-color-white);transition:var(--heat-js-transition);margin-right:var(--heat-js-spacing)}div.heat-js div.title-bar div.title div.titles-menu-container{animation:fade-in-animation var(--heat-js-animation-length);padding-top:3px;display:none;position:absolute;min-width:100px;margin-top:3px;z-index:1000}div.heat-js div.title-bar div.title div.titles-menu-container div.titles-menu{border-radius:var(--heat-js-border-radius);background-color:var(--heat-js-title-background-color);border:var(--heat-js-border-size) solid var(--heat-js-title-border-color);color:var(--heat-js-title-text-color);overflow-y:scroll}div.heat-js div.title-bar div.title div.titles-menu-container div.titles-menu div.title-menu-header{color:var(--heat-js-color-white);font-weight:var(--heat-js-title-bold-weight);padding:var(--heat-js-spacing);padding-right:calc(var(--heat-js-spacing) * 3);text-align:left;width:100%;font-size:var(--heat-js-spacing-font-size)!important;cursor:default}div.heat-js div.title-bar div.title div.titles-menu-container div.titles-menu div.title-menu-item{color:var(--heat-js-color-white);font-weight:var(--heat-js-text-bold-weight);padding:var(--heat-js-spacing);padding-right:calc(var(--heat-js-spacing) * 3);padding-left:calc(var(--heat-js-spacing) * 3);text-align:left;width:100%;transition:var(--heat-js-transition);font-size:var(--heat-js-spacing-font-size)!important;position:relative}div.heat-js div.title-bar div.title div.titles-menu-container div.titles-menu div.title-menu-item::before{content:"";position:absolute;left:var(--heat-js-spacing);top:50%;transform:translate(0,-50%);border-radius:50%;width:8px;height:8px;background-color:var(--heat-js-color-white)}div.heat-js div.title-bar div.title div.titles-menu-container div.titles-menu div.title-menu-item:not(.title-menu-item-active):active{opacity:0.5!important}div.heat-js div.title-bar div.title div.titles-menu-container div.titles-menu div.title-menu-item:not(.title-menu-item-active):hover{cursor:pointer;background-color:var(--heat-js-title-background-color-hover);color:var(--heat-js-title-text-color-hover)}div.heat-js div.title-bar div.title div.titles-menu-container div.titles-menu div.title-menu-item:not(.title-menu-item-active):hover::before{background-color:var(--heat-js-title-text-color-hover)}div.heat-js div.title-bar div.title div.titles-menu-container div.titles-menu div.title-menu-item-active{background-color:var(--heat-js-title-background-color-hover);color:var(--heat-js-title-text-color-hover);font-weight:var(--heat-js-text-bold-weight-active);cursor:default!important}div.heat-js div.title-bar div.title div.titles-menu-container div.titles-menu div.title-menu-item-active::before{background-color:var(--heat-js-title-text-color-hover)}div.heat-js div.title-bar div.year-text{margin-left:var(--heat-js-spacing);margin-right:var(--heat-js-spacing);display:inline-block;font-weight:var(--heat-js-title-bold-weight);position:relative;padding-top:5px;padding-bottom:5px;transition:var(--heat-js-transition);cursor:pointer}div.heat-js div.title-bar div.year-text:hover{color:var(--heat-js-title-opener-text-color-hover)}div.heat-js div.title-bar div.year-text:hover div.down-arrow{border-top-color:var(--heat-js-title-opener-text-color-hover)}div.heat-js div.title-bar div.year-text:hover div.years-menu-container{display:block!important}div.heat-js div.title-bar div.year-text div.down-arrow{display:inline-block;width:0;height:0;border-left:6px solid #fff0;border-right:6px solid #fff0;border-top:9px solid var(--heat-js-color-white);transition:var(--heat-js-transition);margin-left:calc(var(--heat-js-spacing) / 2)}div.heat-js div.title-bar div.year-text div.years-menu-container{animation:fade-in-animation var(--heat-js-animation-length);padding-top:5px;display:none;position:absolute;width:80px;left:50%;transform:translateX(-50%);margin-top:5px;z-index:1000}div.heat-js div.title-bar div.year-text div.years-menu-container div.years-menu{border-radius:var(--heat-js-border-radius);background-color:var(--heat-js-years-background-color);border:var(--heat-js-border-size) solid var(--heat-js-years-border-color);color:var(--heat-js-years-text-color);max-height:183px;height:100%;overflow-y:scroll;scroll-snap-type:y mandatory}div.heat-js div.title-bar div.year-text div.years-menu-container div.years-menu div.year-menu-item{color:var(--heat-js-color-white);font-weight:var(--heat-js-text-bold-weight);border-bottom:var(--heat-js-border-size) dashed var(--heat-js-container-border-color);padding:var(--heat-js-spacing);text-align:center;width:100%;transition:var(--heat-js-transition);scroll-snap-align:start}div.heat-js div.title-bar div.year-text div.years-menu-container div.years-menu div.year-menu-item:not(.year-menu-item-active):active{opacity:0.5!important}div.heat-js div.title-bar div.year-text div.years-menu-container div.years-menu div.year-menu-item:not(.year-menu-item-active):hover{cursor:pointer;background-color:var(--heat-js-years-background-color-hover);color:var(--heat-js-years-text-color-hover)}div.heat-js div.title-bar div.year-text div.years-menu-container div.years-menu div.year-menu-item:last-child{border-bottom:none}div.heat-js div.title-bar div.year-text div.years-menu-container div.years-menu div.year-menu-item-active{background-color:var(--heat-js-years-background-color-hover);color:var(--heat-js-years-text-color-hover);font-weight:var(--heat-js-text-bold-weight-active);cursor:default!important}div.heat-js div.title-bar div.year-text div.years-menu-container div.years-menu div.year-menu-item-current{font-style:italic;font-weight:var(--heat-js-text-bold-weight-active)}div.heat-js div.map-contents{overflow-x:scroll;overflow-y:hidden;min-height:191px;position:relative}div.heat-js div.map-contents div.no-data-message{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-weight:var(--heat-js-text-bold-weight)}div.heat-js div.map-contents div.map{display:inline-flex;flex-direction:row}div.heat-js div.map-contents div.map div.days,div.heat-js div.map-contents div.map div.days-months-bottom{background-color:var(--heat-js-container-background-color);padding-right:calc(var(--heat-js-spacing) * 3);padding-top:calc(var(--heat-js-spacing-font-size) + var(--heat-js-spacing) + 1px);position:sticky;left:0;display:none;z-index:50}@media (min-width:768px){div.heat-js div.map-contents div.map div.days,div.heat-js div.map-contents div.map div.days-months-bottom{display:block}}div.heat-js div.map-contents div.map div.days div.day-name,div.heat-js div.map-contents div.map div.days-months-bottom div.day-name{font-weight:var(--heat-js-text-bold-weight);text-align:left!important;height:var(--heat-js-day-size);margin-bottom:var(--heat-js-day-spacing);display:flex;justify-content:center;flex-direction:column}div.heat-js div.map-contents div.map div.days-months-bottom{padding-top:0!important}div.heat-js div.map-contents div.map div.months{display:flex;justify-content:space-between;flex-grow:1}div.heat-js div.map-contents div.map div.months div.month{flex:1;pointer-events:none}div.heat-js div.map-contents div.map div.months div.month:last-child div.day-columns div.day-column:last-child div.day{margin-right:0!important}div.heat-js div.map-contents div.map div.months div.month div.month-name,div.heat-js div.map-contents div.map div.months div.month div.month-name-bottom{font-weight:var(--heat-js-text-bold-weight);text-align:left!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}div.heat-js div.map-contents div.map div.months div.month div.month-name{margin-bottom:var(--heat-js-spacing)}div.heat-js div.map-contents div.map div.months div.month div.month-name-bottom{margin-top:var(--heat-js-spacing)}div.heat-js div.map-contents div.map div.months div.month div.day-columns{display:flex;justify-content:space-between}div.heat-js div.map-contents div.map div.months div.month div.day-columns div.day-column div.day,div.heat-js div.map-contents div.map div.months div.month div.day-columns div.day-column div.day-disabled{display:flex;border-radius:var(--heat-js-border-radius-day);width:var(--heat-js-day-size);height:var(--heat-js-day-size);margin-right:var(--heat-js-day-spacing);margin-bottom:var(--heat-js-day-spacing);font-size:var(--heat-js-spacing-day-font-size);justify-content:center;align-items:center;overflow:hidden}div.heat-js div.map-contents div.map div.months div.month div.day-columns div.day-column div.day:last-child,div.heat-js div.map-contents div.map div.months div.month div.day-columns div.day-column div.day-disabled:last-child{margin-bottom:0}div.heat-js div.map-contents div.map div.months div.month div.day-columns div.day-column div.day{pointer-events:all;background-color:var(--heat-js-day-background-color);border:var(--heat-js-border-size) solid var(--heat-js-day-border-color);transition:var(--heat-js-transition);transition-property:opacity,background-color,color,border-color}div.heat-js div.map-contents div.map div.months div.month div.day-columns div.day-column div.day:not(.no-hover):hover{cursor:pointer;background:var(--heat-js-day-background-color-hover)}div.heat-js div.chart-contents{display:flex;overflow-x:scroll;overflow-y:hidden;text-wrap:nowrap;white-space:nowrap;position:relative}div.heat-js div.chart-contents div.no-data-message{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-weight:var(--heat-js-text-bold-weight)}div.heat-js div.chart-contents div.chart{display:inline-flex;flex-direction:row}div.heat-js div.chart-contents div.chart div.y-labels{background-color:var(--heat-js-container-background-color);padding-right:calc(var(--heat-js-spacing) * 3);padding-top:calc(var(--heat-js-spacing-font-size) + var(--heat-js-spacing) + 1px);position:sticky;left:0;display:none;border-right:var(--heat-js-border-size) solid var(--heat-js-container-border-color);z-index:50}@media (min-width:768px){div.heat-js div.chart-contents div.chart div.y-labels{display:block}}div.heat-js div.chart-contents div.chart div.y-labels div.label-0,div.heat-js div.chart-contents div.chart div.y-labels div.label-25,div.heat-js div.chart-contents div.chart div.y-labels div.label-50,div.heat-js div.chart-contents div.chart div.y-labels div.label-75,div.heat-js div.chart-contents div.chart div.y-labels div.label-100{font-weight:var(--heat-js-text-bold-weight);text-align:left!important;height:var(--heat-js-day-size);display:inline-flex;justify-content:center;flex-direction:column;position:absolute;left:0;padding-right:var(--heat-js-spacing)}div.heat-js div.chart-contents div.chart div.y-labels div.label-0{top:0}div.heat-js div.chart-contents div.chart div.y-labels div.label-25{top:25%;transform:translateY(-25%)}div.heat-js div.chart-contents div.chart div.y-labels div.label-50{top:50%;transform:translateY(-50%)}div.heat-js div.chart-contents div.chart div.y-labels div.label-75{top:75%;transform:translateY(-75%)}div.heat-js div.chart-contents div.chart div.y-labels div.label-100{bottom:0}div.heat-js div.chart-contents div.chart div.day-lines{flex:1;border-bottom:var(--heat-js-border-size) solid var(--heat-js-container-border-color)}div.heat-js div.chart-contents div.chart div.day-lines div.day-line-number{font-size:var(--heat-js-spacing-day-font-size);padding:calc(var(--heat-js-spacing) / 2);overflow:hidden}div.heat-js div.chart-contents div.chart div.day-lines div.day-line{border-top-left-radius:var(--heat-js-border-radius-day);border-top-right-radius:var(--heat-js-border-radius-day);background-color:var(--heat-js-day-background-color);border:var(--heat-js-border-size) solid var(--heat-js-day-border-color);border-bottom:none!important;vertical-align:bottom;min-width:var(--heat-js-day-chart-width);margin-right:1px;display:inline-block;transition:var(--heat-js-transition)}@media (min-width:768px){div.heat-js div.chart-contents div.chart div.day-lines div.day-line:first-child{margin-left:calc(var(--heat-js-spacing) / 2)}}div.heat-js div.chart-contents div.chart div.day-lines div.day-line:last-child{margin-right:0}div.heat-js div.chart-contents div.chart div.day-lines div.day-line:not(.no-hover):hover{cursor:pointer;background:var(--heat-js-day-background-color-hover)}div.heat-js div.chart-contents div.chart-months{position:relative;height:calc(var(--heat-js-spacing-font-size) + var(--heat-js-spacing))}div.heat-js div.chart-contents div.chart-months div.month-name,div.heat-js div.chart-contents div.chart-months div.month-name-space{font-weight:var(--heat-js-text-bold-weight);text-align:left!important;position:absolute;bottom:0}@media (min-width:768px){div.heat-js div.chart-contents div.chart-months div.month-name:first-child{margin-left:calc(var(--heat-js-spacing) / 2)}}div.heat-js div.chart-contents div.chart-months div.month-name:nth-child(2){margin-left:var(--heat-js-day-chart-width)}div.heat-js div.chart-contents div.chart-months div.month-name-space{left:0;top:0;position:sticky;background-color:var(--heat-js-container-background-color)}div.heat-js div.days-contents{display:flex;overflow:hidden;text-wrap:nowrap;white-space:nowrap;position:relative}div.heat-js div.days-contents div.no-days-message{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-weight:var(--heat-js-text-bold-weight)}div.heat-js div.days-contents div.days{display:flex;flex-direction:row}div.heat-js div.days-contents div.days div.y-labels{background-color:var(--heat-js-container-background-color);padding-right:calc(var(--heat-js-spacing) * 3);padding-top:calc(var(--heat-js-spacing-font-size) + var(--heat-js-spacing) + 1px);position:sticky;left:0;display:none;border-right:var(--heat-js-border-size) solid var(--heat-js-container-border-color);z-index:50}@media (min-width:768px){div.heat-js div.days-contents div.days div.y-labels{display:block}}div.heat-js div.days-contents div.days div.y-labels div.label-0,div.heat-js div.days-contents div.days div.y-labels div.label-25,div.heat-js div.days-contents div.days div.y-labels div.label-50,div.heat-js div.days-contents div.days div.y-labels div.label-75,div.heat-js div.days-contents div.days div.y-labels div.label-100{font-weight:var(--heat-js-text-bold-weight);text-align:left!important;height:var(--heat-js-day-size);display:inline-flex;justify-content:center;flex-direction:column;position:absolute;left:0;padding-right:var(--heat-js-spacing)}div.heat-js div.days-contents div.days div.y-labels div.label-0{top:0}div.heat-js div.days-contents div.days div.y-labels div.label-25{top:25%;transform:translateY(-25%)}div.heat-js div.days-contents div.days div.y-labels div.label-50{top:50%;transform:translateY(-50%)}div.heat-js div.days-contents div.days div.y-labels div.label-75{top:75%;transform:translateY(-75%)}div.heat-js div.days-contents div.days div.y-labels div.label-100{bottom:0}div.heat-js div.days-contents div.days div.day-lines{display:flex;align-items:baseline;flex:1;border-bottom:var(--heat-js-border-size) solid var(--heat-js-container-border-color);justify-content:space-between}div.heat-js div.days-contents div.days div.day-lines div.day-line-number{font-size:var(--heat-js-spacing-day-font-size);padding:calc(var(--heat-js-spacing) / 2);position:relative;overflow:hidden}div.heat-js div.days-contents div.days div.day-lines div.day-line-number div.count{position:absolute;top:calc(var(--heat-js-spacing) / 2);left:50%;transform:translateX(-50%);color:var(--heat-js-view-days-text-color)}div.heat-js div.days-contents div.days div.day-lines div.day-line{border-top-left-radius:var(--heat-js-border-radius-day);border-top-right-radius:var(--heat-js-border-radius-day);background-color:var(--heat-js-view-days-background-color);border:var(--heat-js-border-size) solid var(--heat-js-view-days-border-color);border-bottom:none!important;vertical-align:bottom;flex:1 100%;margin-right:var(--heat-js-spacing);display:inline-block;transition:var(--heat-js-transition)}@media (min-width:768px){div.heat-js div.days-contents div.days div.day-lines div.day-line:first-child{margin-left:calc(var(--heat-js-spacing) / 2)}}div.heat-js div.days-contents div.days div.day-lines div.day-line:last-child{margin-right:0}div.heat-js div.days-contents div.days div.day-lines div.day-line:not(.no-hover):hover{cursor:pointer;opacity:var(--heat-js-day-opacity-hover)}div.heat-js div.days-contents div.day-names{display:flex;flex:1;position:relative;justify-content:space-between;align-items:baseline;height:calc(var(--heat-js-spacing-font-size) + var(--heat-js-spacing) + 3px)}div.heat-js div.days-contents div.day-names div.day-name{flex:1 100%;margin-top:var(--heat-js-spacing);font-weight:var(--heat-js-text-bold-weight);text-align:center!important;overflow:hidden;text-overflow:ellipsis;margin-right:var(--heat-js-spacing)}@media (min-width:768px){div.heat-js div.days-contents div.day-names div.day-name:first-child{margin-left:calc(var(--heat-js-spacing) / 2)}}div.heat-js div.days-contents div.day-names div.day-name:last-child{margin-right:0}div.heat-js div.statistics-contents{display:flex;overflow:hidden;text-wrap:nowrap;white-space:nowrap;position:relative}div.heat-js div.statistics-contents div.no-statistics-message{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-weight:var(--heat-js-text-bold-weight)}div.heat-js div.statistics-contents div.statistics{display:flex;flex-direction:row}div.heat-js div.statistics-contents div.statistics div.y-labels{background-color:var(--heat-js-container-background-color);padding-right:calc(var(--heat-js-spacing) * 3);padding-top:calc(var(--heat-js-spacing-font-size) + var(--heat-js-spacing) + 1px);position:sticky;left:0;display:none;border-right:var(--heat-js-border-size) solid var(--heat-js-container-border-color);z-index:50}@media (min-width:768px){div.heat-js div.statistics-contents div.statistics div.y-labels{display:block}}div.heat-js div.statistics-contents div.statistics div.y-labels div.label-0,div.heat-js div.statistics-contents div.statistics div.y-labels div.label-25,div.heat-js div.statistics-contents div.statistics div.y-labels div.label-50,div.heat-js div.statistics-contents div.statistics div.y-labels div.label-75,div.heat-js div.statistics-contents div.statistics div.y-labels div.label-100{font-weight:var(--heat-js-text-bold-weight);text-align:left!important;height:var(--heat-js-day-size);display:inline-flex;justify-content:center;flex-direction:column;position:absolute;left:0;padding-right:var(--heat-js-spacing)}div.heat-js div.statistics-contents div.statistics div.y-labels div.label-0{top:0}div.heat-js div.statistics-contents div.statistics div.y-labels div.label-25{top:25%;transform:translateY(-25%)}div.heat-js div.statistics-contents div.statistics div.y-labels div.label-50{top:50%;transform:translateY(-50%)}div.heat-js div.statistics-contents div.statistics div.y-labels div.label-75{top:75%;transform:translateY(-75%)}div.heat-js div.statistics-contents div.statistics div.y-labels div.label-100{bottom:0}div.heat-js div.statistics-contents div.statistics div.range-lines{display:flex;align-items:baseline;flex:1;border-bottom:var(--heat-js-border-size) solid var(--heat-js-container-border-color);justify-content:space-between}div.heat-js div.statistics-contents div.statistics div.range-lines div.range-line-number{font-size:var(--heat-js-spacing-day-font-size);padding:calc(var(--heat-js-spacing) / 2);position:relative;overflow:hidden}div.heat-js div.statistics-contents div.statistics div.range-lines div.range-line-number div.count{position:absolute;top:calc(var(--heat-js-spacing) / 2);left:50%;transform:translateX(-50%)}div.heat-js div.statistics-contents div.statistics div.range-lines div.range-line{border-top-left-radius:var(--heat-js-border-radius-day);border-top-right-radius:var(--heat-js-border-radius-day);background-color:var(--heat-js-day-background-color);border:var(--heat-js-border-size) solid var(--heat-js-day-border-color);border-bottom:none!important;vertical-align:bottom;flex:1 100%;margin-right:var(--heat-js-spacing);display:inline-block;transition:var(--heat-js-transition)}@media (min-width:768px){div.heat-js div.statistics-contents div.statistics div.range-lines div.range-line:first-child{margin-left:calc(var(--heat-js-spacing) / 2)}}div.heat-js div.statistics-contents div.statistics div.range-lines div.range-line:last-child{margin-right:0}div.heat-js div.statistics-contents div.statistics div.range-lines div.range-line:not(.no-hover):hover{cursor:pointer;background:var(--heat-js-day-background-color-hover)}div.heat-js div.statistics-contents div.statistics-ranges{display:flex;flex:1;position:relative;justify-content:space-between;align-items:baseline;height:calc(var(--heat-js-spacing-font-size) + var(--heat-js-spacing) + 3px)}div.heat-js div.statistics-contents div.statistics-ranges div.range-name{flex:1 100%;margin-top:var(--heat-js-spacing);font-weight:var(--heat-js-text-bold-weight);text-align:center!important;overflow:hidden;text-overflow:ellipsis;margin-right:var(--heat-js-spacing)}@media (min-width:768px){div.heat-js div.statistics-contents div.statistics-ranges div.range-name:first-child{margin-left:calc(var(--heat-js-spacing) / 2)}}div.heat-js div.statistics-contents div.statistics-ranges div.range-name:last-child{margin-right:0}div.heat-js div.description{text-align:center;margin-top:calc(var(--heat-js-spacing) + var(--heat-js-spacing) / 2);text-align:center}@media (min-width:768px){div.heat-js div.description{text-align:left}}@media (min-width:768px){div.heat-js div.description{text-align:left}}div.heat-js div.description span.label,div.heat-js div.description a.label,div.heat-js div.description a.label:visited{color:var(--heat-js-color-white);font-weight:var(--heat-js-text-bold-weight);text-decoration:none}div.heat-js div.description a.label{transition:var(--heat-js-transition)}div.heat-js div.description a.label:active{color:var(--heat-js-color-gray)}div.heat-js div.description a.label:hover{text-decoration:underline}div.heat-js div.guide{display:block}@media (min-width:768px){div.heat-js div.guide{display:flex}}div.heat-js div.guide div.map-types,div.heat-js div.guide div.map-toggles{margin-top:calc(var(--heat-js-spacing) + var(--heat-js-spacing) / 2);width:100%}@media (min-width:768px){div.heat-js div.guide div.map-types,div.heat-js div.guide div.map-toggles{margin-bottom:0}}div.heat-js div.guide div.map-types{text-align:center;flex-grow:unset;margin-right:0;text-align:center}@media (min-width:768px){div.heat-js div.guide div.map-types{text-align:left;width:unset;flex-grow:1;margin-right:var(--heat-js-spacing)}}div.heat-js div.guide div.map-types button{background-color:var(--heat-js-button-background-color);border:var(--heat-js-border-size) solid var(--heat-js-button-border-color);color:var(--heat-js-button-text-color);border-radius:var(--heat-js-border-radius);padding-top:5px;padding-bottom:5px;padding-left:9px;padding-right:9px;outline:none;transition:var(--heat-js-transition)}div.heat-js div.guide div.map-types button:disabled{color:var(--heat-js-button-border-color)}div.heat-js div.guide div.map-types button:not(.active):not(:disabled):active{background:var(--heat-js-button-background-color-active)!important;color:var(--heat-js-button-text-color-active)!important}div.heat-js div.guide div.map-types button:not(.active):not(:disabled):hover{cursor:pointer;background:var(--heat-js-button-background-color-hover);color:var(--heat-js-button-text-color-hover)}div.heat-js div.guide div.map-types button.active{cursor:default;background:var(--heat-js-button-background-color-hover);color:var(--heat-js-button-text-color-hover);transition:var(--heat-js-transition);font-weight:var(--heat-js-text-bold-weight-active)}@media (min-width:768px){div.heat-js div.guide div.map-types{text-align:left}}div.heat-js div.guide div.map-types span.label,div.heat-js div.guide div.map-types a.label,div.heat-js div.guide div.map-types a.label:visited{color:var(--heat-js-color-white);font-weight:var(--heat-js-text-bold-weight);text-decoration:none}div.heat-js div.guide div.map-types a.label{transition:var(--heat-js-transition)}div.heat-js div.guide div.map-types a.label:active{color:var(--heat-js-color-gray)}div.heat-js div.guide div.map-types a.label:hover{text-decoration:underline}div.heat-js div.guide div.map-types button{margin-left:0!important;margin-right:calc(var(--heat-js-spacing) / 2)!important}div.heat-js div.guide div.map-toggles{display:flex;align-items:center;justify-content:center;text-align:center}@media (min-width:768px){div.heat-js div.guide div.map-toggles{text-align:right;justify-content:right;width:auto}}div.heat-js div.guide div.map-toggles div.less-text,div.heat-js div.guide div.map-toggles div.more-text{display:inline-block;font-weight:var(--heat-js-text-bold-weight);transition:var(--heat-js-transition)}div.heat-js div.guide div.map-toggles div.less-text:hover,div.heat-js div.guide div.map-toggles div.more-text:hover{cursor:pointer;text-decoration:underline}div.heat-js div.guide div.map-toggles div.less-text:active,div.heat-js div.guide div.map-toggles div.more-text:active{color:var(--heat-js-color-gray)}div.heat-js div.guide div.map-toggles div.less-text{margin-right:var(--heat-js-spacing)}div.heat-js div.guide div.map-toggles div.more-text{margin-left:var(--heat-js-spacing)}div.heat-js div.guide div.map-toggles div.days{display:inline-flex;align-items:center;justify-content:right}div.heat-js div.guide div.map-toggles div.days div.day-number{display:inline-flex!important;justify-content:center;align-items:center;overflow:hidden;text-align:center;font-size:var(--heat-js-spacing-day-font-size);padding-left:calc(var(--heat-js-spacing) / 2);padding-right:calc(var(--heat-js-spacing) / 2)}div.heat-js div.guide div.map-toggles div.days div.day{background-color:var(--heat-js-day-background-color);border:var(--heat-js-border-size) solid var(--heat-js-day-border-color);display:inline-block;border-radius:var(--heat-js-border-radius-day);min-width:var(--heat-js-day-size);height:var(--heat-js-day-size);margin-right:var(--heat-js-day-spacing);transition:var(--heat-js-transition)}div.heat-js div.guide div.map-toggles div.days div.day:last-child{margin-right:0}div.heat-js div.guide div.map-toggles div.days div.day:not(.no-hover):hover{cursor:pointer;background:var(--heat-js-day-background-color-hover)}div.heat-js label.checkbox{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;cursor:default;display:inline-block;position:relative;padding-left:20px;padding-top:1px;padding-bottom:2px;color:var(--heat-js-color-white)}div.heat-js label.checkbox input{display:none!important}div.heat-js label.checkbox input:checked~span.check-mark{background-color:var(--heat-js-checkbox-background-color-checked);border:var(--heat-js-border-size) solid var(--heat-js-checkbox-border-color-checked)}div.heat-js label.checkbox input:checked~span.check-mark::before{display:block}div.heat-js label.checkbox input:disabled~span.check-mark,div.heat-js label.checkbox input:disabled~span.text{opacity:.5}div.heat-js label.checkbox input:disabled~span.check-mark{border:var(--heat-js-border-size) solid var(--heat-js-color-black)!important}div.heat-js label.checkbox span.check-mark{position:absolute;top:1px;left:0;height:15px;width:15px;background-color:var(--heat-js-checkbox-background-color);border-radius:var(--heat-js-border-control-radius);border:var(--heat-js-border-size) solid var(--heat-js-checkbox-border-color);transition:var(--heat-js-transition)}div.heat-js label.checkbox span.check-mark::before{content:"";transform:rotate(45deg);position:absolute;display:none;left:4.5px;top:1px;width:6px;height:11px;border:solid var(--heat-js-color-black);border-width:0 3px 3px 0}div.heat-js div.day-color-1:not(.no-hover):active,div.heat-js div.day-color-2:not(.no-hover):active,div.heat-js div.day-color-3:not(.no-hover):active,div.heat-js div.day-color-4:not(.no-hover):active,div.heat-js div.holiday:not(.no-hover):active{opacity:var(--heat-js-day-opacity-active)!important}div.heat-js div.day-color-1:not(.no-hover):hover,div.heat-js div.day-color-2:not(.no-hover):hover,div.heat-js div.day-color-3:not(.no-hover):hover,div.heat-js div.day-color-4:not(.no-hover):hover,div.heat-js div.holiday:not(.no-hover):hover{cursor:pointer;opacity:var(--heat-js-day-opacity-hover)}div.heat-js div.holiday{background-color:var(--heat-js-holiday-background-color)!important;border:var(--heat-js-border-size-day) solid var(--heat-js-holiday-border-color)!important;color:var(--heat-js-holiday-text-color)}div.heat-js div.day-color-1{background-color:var(--heat-js-day-color-1-background-color)!important;border:var(--heat-js-border-size-day) solid var(--heat-js-day-color-1-border-color)!important;color:var(--heat-js-day-color-1-text-color)}div.heat-js div.day-color-2{background-color:var(--heat-js-day-color-2-background-color)!important;border:var(--heat-js-border-size-day) solid var(--heat-js-day-color-2-border-color)!important;color:var(--heat-js-day-color-2-text-color)}div.heat-js div.day-color-3{background-color:var(--heat-js-day-color-3-background-color)!important;border:var(--heat-js-border-size-day) solid var(--heat-js-day-color-3-border-color)!important;color:var(--heat-js-day-color-3-text-color)}div.heat-js div.day-color-4{background-color:var(--heat-js-day-color-4-background-color)!important;border:var(--heat-js-border-size-day) solid var(--heat-js-day-color-4-border-color)!important;color:var(--heat-js-day-color-4-text-color)}div.heat-js-tooltip{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;cursor:default;box-sizing:border-box;line-height:normal;font-family:var(--heat-js-default-font);animation:fade-in-animation var(--heat-js-animation-length);position:absolute;background-color:var(--heat-js-tooltip-background-color);border:var(--heat-js-border-size) solid var(--heat-js-tooltip-border-color);color:var(--heat-js-tooltip-text-color);border-radius:var(--heat-js-border-radius);z-index:2000;max-width:300px;padding:var(--heat-js-spacing);font-size:var(--heat-js-spacing-font-size);font-weight:var(--heat-js-text-bold-weight);display:none}@keyframes fade-in-animation{0%{opacity:0}100%{opacity:1}} \ No newline at end of file diff --git a/dist/heat.min.js b/dist/heat.min.js index 8019e0ad..8dd761c8 100644 --- a/dist/heat.min.js +++ b/dist/heat.min.js @@ -1,4 +1,4 @@ -/*! Heat.js v3.1.1 | (c) Bunoon 2024 | MIT License */ +/*! Heat.js v3.1.2 | (c) Bunoon 2024 | MIT License */ (function(){function Da(){for(var a=h.domElementTypes,b=a.length,d=0;d jHeat.js - 3.1.1 + 3.1.2 Heat.js A lightweight JavaScript library that generates customizable heat maps, charts, and statistics to visualize date-based activity and trends. William Troup diff --git a/package.json b/package.json index 98c51c2f..c980830c 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "jheat.js", "title": "Heat.js", "description": "A lightweight JavaScript library that generates customizable heat maps, charts, and statistics to visualize date-based activity and trends.", - "version": "3.1.1", + "version": "3.1.2", "main": "dist/heat.js", "homepage": "https://www.william-troup.com/heat-js/", "author": { diff --git a/src/heat.js b/src/heat.js index 596f25de..fb2b10ec 100644 --- a/src/heat.js +++ b/src/heat.js @@ -4,7 +4,7 @@ * A lightweight JavaScript library that generates customizable heat maps, charts, and statistics to visualize date-based activity and trends. * * @file observe.js - * @version v3.1.1 + * @version v3.1.2 * @author Bunoon * @license MIT License * @copyright Bunoon 2024 @@ -3917,7 +3917,7 @@ * @returns {string} The version number. */ _public.getVersion = function() { - return "3.1.1"; + return "3.1.2"; }; diff --git a/src/heat.js.scss b/src/heat.js.scss index a22a1dd1..04f18aa1 100644 --- a/src/heat.js.scss +++ b/src/heat.js.scss @@ -1,5 +1,5 @@ /* - * Heat.js Library v3.1.1 + * Heat.js Library v3.1.2 * * Copyright 2024 Bunoon * Released under the MIT License From dc5c6f63f37bde753273f2d3c63bf9b777b457f4 Mon Sep 17 00:00:00 2001 From: William Troup Date: Thu, 30 May 2024 17:00:15 +0100 Subject: [PATCH 2/2] All text translations now allow empty text to be passed (which will prevent them from defaulting to the English version). --- dist/heat.js | 69 +++++++++--------- dist/heat.min.js | 182 +++++++++++++++++++++++------------------------ src/heat.js | 70 +++++++++--------- 3 files changed, 164 insertions(+), 157 deletions(-) diff --git a/dist/heat.js b/dist/heat.js index b7753e03..300f3379 100644 --- a/dist/heat.js +++ b/dist/heat.js @@ -1793,6 +1793,9 @@ } return result; } + function getDefaultAnyString(value, defaultValue) { + return typeof value === "string" ? value : defaultValue; + } function getDefaultString(value, defaultValue) { return isDefinedString(value) ? value : defaultValue; } @@ -2266,39 +2269,39 @@ buildDefaultConfigurationArrays(); } function buildDefaultConfigurationStrings() { - _configuration.stText = getDefaultString(_configuration.stText, "st"); - _configuration.ndText = getDefaultString(_configuration.ndText, "nd"); - _configuration.rdText = getDefaultString(_configuration.rdText, "rd"); - _configuration.thText = getDefaultString(_configuration.thText, "th"); - _configuration.backButtonText = getDefaultString(_configuration.backButtonText, "Back"); - _configuration.nextButtonText = getDefaultString(_configuration.nextButtonText, "Next"); - _configuration.refreshButtonText = getDefaultString(_configuration.refreshButtonText, "Refresh"); - _configuration.exportButtonText = getDefaultString(_configuration.exportButtonText, "Export"); - _configuration.lessText = getDefaultString(_configuration.lessText, "Less"); - _configuration.moreText = getDefaultString(_configuration.moreText, "More"); - _configuration.dateText = getDefaultString(_configuration.dateText, "Date"); - _configuration.countText = getDefaultString(_configuration.countText, "Count"); - _configuration.mapText = getDefaultString(_configuration.mapText, "Map"); - _configuration.chartText = getDefaultString(_configuration.chartText, "Chart"); - _configuration.noChartDataMessage = getDefaultString(_configuration.noChartDataMessage, "There is currently no data to view."); - _configuration.statisticsText = getDefaultString(_configuration.statisticsText, "Statistics"); - _configuration.noStatisticsDataMessage = getDefaultString(_configuration.noStatisticsDataMessage, "There are currently no statistics to view."); - _configuration.unknownTrendText = getDefaultString(_configuration.unknownTrendText, "Unknown"); - _configuration.importButtonText = getDefaultString(_configuration.importButtonText, "Import"); - _configuration.noMapDataMessage = getDefaultString(_configuration.noMapDataMessage, "There is currently no data to view."); - _configuration.objectErrorText = getDefaultString(_configuration.objectErrorText, "Errors in object: {{error_1}}, {{error_2}}"); - _configuration.attributeNotValidErrorText = getDefaultString(_configuration.attributeNotValidErrorText, "The attribute '{{attribute_name}}' is not a valid object."); - _configuration.attributeNotSetErrorText = getDefaultString(_configuration.attributeNotSetErrorText, "The attribute '{{attribute_name}}' has not been set correctly."); - _configuration.closeToolTipText = getDefaultString(_configuration.closeToolTipText, "Close"); - _configuration.configurationToolTipText = getDefaultString(_configuration.configurationToolTipText, "Configuration"); - _configuration.configurationTitleText = getDefaultString(_configuration.configurationTitleText, "Configuration"); - _configuration.visibleMonthsText = getDefaultString(_configuration.visibleMonthsText, "Visible Months"); - _configuration.visibleDaysText = getDefaultString(_configuration.visibleDaysText, "Visible Days"); - _configuration.dataText = getDefaultString(_configuration.dataText, "Data"); - _configuration.colorRangesText = getDefaultString(_configuration.colorRangesText, "Color Ranges"); - _configuration.yearText = getDefaultString(_configuration.yearText, "Year"); - _configuration.daysText = getDefaultString(_configuration.daysText, "Days"); - _configuration.noDaysDataMessage = getDefaultString(_configuration.noDaysDataMessage, "There are currently no days to view."); + _configuration.stText = getDefaultAnyString(_configuration.stText, "st"); + _configuration.ndText = getDefaultAnyString(_configuration.ndText, "nd"); + _configuration.rdText = getDefaultAnyString(_configuration.rdText, "rd"); + _configuration.thText = getDefaultAnyString(_configuration.thText, "th"); + _configuration.backButtonText = getDefaultAnyString(_configuration.backButtonText, "Back"); + _configuration.nextButtonText = getDefaultAnyString(_configuration.nextButtonText, "Next"); + _configuration.refreshButtonText = getDefaultAnyString(_configuration.refreshButtonText, "Refresh"); + _configuration.exportButtonText = getDefaultAnyString(_configuration.exportButtonText, "Export"); + _configuration.lessText = getDefaultAnyString(_configuration.lessText, "Less"); + _configuration.moreText = getDefaultAnyString(_configuration.moreText, "More"); + _configuration.dateText = getDefaultAnyString(_configuration.dateText, "Date"); + _configuration.countText = getDefaultAnyString(_configuration.countText, "Count"); + _configuration.mapText = getDefaultAnyString(_configuration.mapText, "Map"); + _configuration.chartText = getDefaultAnyString(_configuration.chartText, "Chart"); + _configuration.noChartDataMessage = getDefaultAnyString(_configuration.noChartDataMessage, "There is currently no data to view."); + _configuration.statisticsText = getDefaultAnyString(_configuration.statisticsText, "Statistics"); + _configuration.noStatisticsDataMessage = getDefaultAnyString(_configuration.noStatisticsDataMessage, "There are currently no statistics to view."); + _configuration.unknownTrendText = getDefaultAnyString(_configuration.unknownTrendText, "Unknown"); + _configuration.importButtonText = getDefaultAnyString(_configuration.importButtonText, "Import"); + _configuration.noMapDataMessage = getDefaultAnyString(_configuration.noMapDataMessage, "There is currently no data to view."); + _configuration.objectErrorText = getDefaultAnyString(_configuration.objectErrorText, "Errors in object: {{error_1}}, {{error_2}}"); + _configuration.attributeNotValidErrorText = getDefaultAnyString(_configuration.attributeNotValidErrorText, "The attribute '{{attribute_name}}' is not a valid object."); + _configuration.attributeNotSetErrorText = getDefaultAnyString(_configuration.attributeNotSetErrorText, "The attribute '{{attribute_name}}' has not been set correctly."); + _configuration.closeToolTipText = getDefaultAnyString(_configuration.closeToolTipText, "Close"); + _configuration.configurationToolTipText = getDefaultAnyString(_configuration.configurationToolTipText, "Configuration"); + _configuration.configurationTitleText = getDefaultAnyString(_configuration.configurationTitleText, "Configuration"); + _configuration.visibleMonthsText = getDefaultAnyString(_configuration.visibleMonthsText, "Visible Months"); + _configuration.visibleDaysText = getDefaultAnyString(_configuration.visibleDaysText, "Visible Days"); + _configuration.dataText = getDefaultAnyString(_configuration.dataText, "Data"); + _configuration.colorRangesText = getDefaultAnyString(_configuration.colorRangesText, "Color Ranges"); + _configuration.yearText = getDefaultAnyString(_configuration.yearText, "Year"); + _configuration.daysText = getDefaultAnyString(_configuration.daysText, "Days"); + _configuration.noDaysDataMessage = getDefaultAnyString(_configuration.noDaysDataMessage, "There are currently no days to view."); } function buildDefaultConfigurationArrays() { if (isInvalidOptionArray(_configuration.monthNames, 12)) { diff --git a/dist/heat.min.js b/dist/heat.min.js index 8dd761c8..a90edd40 100644 --- a/dist/heat.min.js +++ b/dist/heat.min.js @@ -1,93 +1,93 @@ /*! Heat.js v3.1.2 | (c) Bunoon 2024 | MIT License */ -(function(){function Da(){for(var a=h.domElementTypes,b=a.length,d=0;dc;c++)S(a.views.map.daysToShow,c+1)&&u(f,"div","day-name",g&&0!==c%3?q.space:h.dayNames[c]);a.views.map.showDaysInReverseOrder&&T(f)}f=n(e,"div","months");e=na(a);for(g=0;12>g;g++)if(V(a.views.map.monthsToShow,g)){c=n(f,"div","month");var t=n(c, -"div","day-columns");var y=da(l,g),E=n(t,"div","day-column"),B=!1,F=oa(new Date(l,g,1)),G=1;y+=F;for(var H=0;H=F?B=!0:S(a.views.map.daysToShow,G)&&n(E,"div","day-disabled");if(B){var K=null;S(a.views.map.daysToShow,G)&&(K=Xa(a,E,H-F,g,l,e));if(0===(H+1)%7&&(a.views.map.showDaysInReverseOrder&&T(E),E=n(t,"div","day-column"),G=0,!w(ea)&&w(K))){var Ya=ha(K,"margin-left",!0),Za=ha(K,"margin-right",!0);ea=K.offsetWidth+Ya+Za}}G++}a.views.map.showMonthNames&&(E=c.offsetWidth,y=a.views.map.placeMonthNamesOnTheBottom? -u(c,"div","month-name-bottom",h.monthNames[g]):u(c,"div","month-name",h.monthNames[g],t),w(y)&&(y.style.width=a.views.map.showMonthDayGaps?E+"px":E-ea+"px"));b&&w(ea)&&(0y;y++)for(E=da(a.currentView.year,y),B=0;BF;F++)for(y=da(a.currentView.year,F),E=0;Ey;y++)a.currentView.dayCheckBoxes[y].checked&&g.push(y+1);for(y=0;12>y;y++)a.currentView.monthCheckBoxes[y].checked&&l.push(y+1);1<=g.length&&(1===a.currentView.view? -a.views.map.daysToShow=g:a.views.chart.enabled&&2===a.currentView.view?a.views.chart.daysToShow=g:a.views.days.enabled&&3===a.currentView.view?a.views.days.daysToShow=g:a.views.statistics.enabled&&4===a.currentView.view?a.views.statistics.daysToShow=g:a.views.map.daysToShow=g,t=!0);1<=l.length&&(1===a.currentView.view?a.views.map.monthsToShow=l:a.views.chart.enabled&&2===a.currentView.view?a.views.chart.monthsToShow=l:a.views.days.enabled&&3===a.currentView.view?a.views.days.monthsToShow=l:a.views.statistics.enabled&& -4===a.currentView.view?a.views.statistics.monthsToShow=l:a.views.map.monthsToShow=l,t=!0);t?(A(a),z(a.events.onOptionsUpdate,a.currentView.element,a)):ca(a)};for(var f=0;7>f;f++)a.currentView.dayCheckBoxes[f]=Ba(e,h.dayNames[f]).input;for(e=0;7>e;e++)a.currentView.monthCheckBoxes[e]=Ba(b,h.monthNames[e]).input;for(e=7;12>e;e++)a.currentView.monthCheckBoxes[e]=Ba(d,h.monthNames[e]).input;X(c,a,h.closeToolTipText)}function Ia(a,b){var d=(b=m(b,!0))?J.addEventListener:J.removeEventListener;(b?C.addEventListener: -C.removeEventListener)("mousemove",function(){ca(a)});d("scroll",function(){ca(a)})}function X(a,b,d){null!==a&&(a.onmousemove=function(c){cb(c,b,d)})}function cb(a,b,d){ia(a);ca(b);b.currentView.tooltipTimer=setTimeout(function(){b.currentView.tooltip.innerHTML=d;b.currentView.tooltip.style.display="block";var c=b.currentView.tooltip,e=a.pageX,f=a.pageY;var g=J.documentElement;var l=(C.pageXOffset||g.scrollLeft)-(g.clientLeft||0);g=(C.pageYOffset||g.scrollTop)-(g.clientTop||0);c.style.display="block"; -e+c.offsetWidth>C.innerWidth?e-=c.offsetWidth:e++;f+c.offsetHeight>C.innerHeight?f-=c.offsetHeight:f++;ec;c++)T(a.views.map.daysToShow,c+1)&&t(f,"div","day-name",g&&0!==c%3?q.space:h.dayNames[c]);a.views.map.showDaysInReverseOrder&&U(f)}f=n(e,"div","months");e=oa(a);for(g=0;12>g;g++)if(W(a.views.map.monthsToShow,g)){c=n(f,"div","month");var r=n(c, +"div","day-columns");var x=ea(l,g),F=n(r,"div","day-column"),B=!1,G=pa(new Date(l,g,1)),H=1;x+=G;for(var I=0;I=G?B=!0:T(a.views.map.daysToShow,H)&&n(F,"div","day-disabled");if(B){var L=null;T(a.views.map.daysToShow,H)&&(L=Ya(a,F,I-G,g,l,e));if(0===(I+1)%7&&(a.views.map.showDaysInReverseOrder&&U(F),F=n(r,"div","day-column"),H=0,!v(fa)&&v(L))){var Za=ia(L,"margin-left",!0),$a=ia(L,"margin-right",!0);fa=L.offsetWidth+Za+$a}}H++}a.views.map.showMonthNames&&(F=c.offsetWidth,x=a.views.map.placeMonthNamesOnTheBottom? +t(c,"div","month-name-bottom",h.monthNames[g]):t(c,"div","month-name",h.monthNames[g],r),v(x)&&(x.style.width=a.views.map.showMonthDayGaps?F+"px":F-fa+"px"));b&&v(fa)&&(0x;x++)for(F=ea(a.currentView.year,x),B=0;BG;G++)for(x=ea(a.currentView.year,G),F=0;Fx;x++)a.currentView.dayCheckBoxes[x].checked&&g.push(x+1);for(x=0;12>x;x++)a.currentView.monthCheckBoxes[x].checked&&l.push(x+1);1<=g.length&&(1===a.currentView.view? +a.views.map.daysToShow=g:a.views.chart.enabled&&2===a.currentView.view?a.views.chart.daysToShow=g:a.views.days.enabled&&3===a.currentView.view?a.views.days.daysToShow=g:a.views.statistics.enabled&&4===a.currentView.view?a.views.statistics.daysToShow=g:a.views.map.daysToShow=g,r=!0);1<=l.length&&(1===a.currentView.view?a.views.map.monthsToShow=l:a.views.chart.enabled&&2===a.currentView.view?a.views.chart.monthsToShow=l:a.views.days.enabled&&3===a.currentView.view?a.views.days.monthsToShow=l:a.views.statistics.enabled&& +4===a.currentView.view?a.views.statistics.monthsToShow=l:a.views.map.monthsToShow=l,r=!0);r?(A(a),y(a.events.onOptionsUpdate,a.currentView.element,a)):da(a)};for(var f=0;7>f;f++)a.currentView.dayCheckBoxes[f]=Ca(e,h.dayNames[f]).input;for(e=0;7>e;e++)a.currentView.monthCheckBoxes[e]=Ca(b,h.monthNames[e]).input;for(e=7;12>e;e++)a.currentView.monthCheckBoxes[e]=Ca(d,h.monthNames[e]).input;Y(c,a,h.closeToolTipText)}function Ja(a,b){var d=(b=m(b,!0))?K.addEventListener:K.removeEventListener;(b?C.addEventListener: +C.removeEventListener)("mousemove",function(){da(a)});d("scroll",function(){da(a)})}function Y(a,b,d){null!==a&&(a.onmousemove=function(c){db(c,b,d)})}function db(a,b,d){ja(a);da(b);b.currentView.tooltipTimer=setTimeout(function(){b.currentView.tooltip.innerHTML=d;b.currentView.tooltip.style.display="block";var c=b.currentView.tooltip,e=a.pageX,f=a.pageY;var g=K.documentElement;var l=(C.pageXOffset||g.scrollLeft)-(g.clientLeft||0);g=(C.pageYOffset||g.scrollTop)-(g.clientTop||0);c.style.display="block"; +e+c.offsetWidth>C.innerWidth?e-=c.offsetWidth:e++;f+c.offsetHeight>C.innerHeight?f-=c.offsetHeight:f++;ef;f++)a.currentView.dayCheckBoxes[f].checked= -S(c,f+1);for(c=0;12>c;c++)a.currentView.monthCheckBoxes[c].checked=V(e,c);ca(a)}),b=u(b,"button","next",h.nextButtonText),b.onclick=function(){ja(a)},0=a.currentView.yearsAvailable[a.currentView.yearsAvailable.length-1]&&(b.disabled=!0))}}function db(a,b){b=n(b,"div","titles-menu-container");b=n(b,"div","titles-menu");u(b,"div","title-menu-header",h.dataText+q.colon);var d=u(b,"div","title-menu-item",h.mapText);qa(a,d,1,"map");a.views.chart.enabled&& -(d=u(b,"div","title-menu-item",h.chartText),qa(a,d,2,"chart"));a.views.days.enabled&&(u(b,"div","title-menu-header",h.yearText+q.colon),d=u(b,"div","title-menu-item",h.daysText),qa(a,d,3,"days"));a.views.statistics.enabled&&(u(b,"div","title-menu-header",h.statisticsText+q.colon),b=u(b,"div","title-menu-item",h.colorRangesText),qa(a,b,4,"statistics"))}function qa(a,b,d,c){a.currentView.view===d?x(b,"title-menu-item-active"):b.onclick=function(){a.currentView.view=d;z(a.events.onViewSwitch,c);A(a, -!1,!0)}}function fb(a){n(a.currentView.yearText,"div","down-arrow");var b=n(a.currentView.yearText,"div","years-menu-container"),d=n(b,"div","years-menu"),c=(new Date).getFullYear(),e=null;b.style.display="block";b.style.visibility="hidden";for(var f=c-a.title.extraSelectionYears;fg;g++)if(V(a.views.chart.monthsToShow,g)){y=da(l,g);var E= -1;d++;for(var B=0;Bl;l++)f(l);F.style.width=e.offsetWidth+"px";e=n(F,"div","month-name-space"); -e.style.height=F.offsetHeight+"px";e.style.width=t+"px"}a.views.chart.keepScrollPositions&&(a.currentView.chartContents.scrollLeft=a.currentView.chartContentsScrollLeft)}}function ib(a,b,d,c,e,f,g){var l=new Date(e,c,d);a=n(a,"div","day-line");var t=N(b)[O(l)];t=Z(t,0);La(b,a,l,t);b.views.chart.showLineNumbers&&0=g&&(a.style.visibility="hidden");R(b.events.onDayClick)?a.onclick=function(){z(b.events.onDayClick,l,t)}: -x(a,"no-hover");f=Aa(b,f,t,l);w(f)&&ra(b,f.id)&&(v(f.chartCssClassName)?x(a,f.chartCssClassName):x(a,f.cssClassName))}function hb(a){for(var b=0,d=N(a),c=0;12>c;c++)for(var e=da(a.currentView.year,c),f=0;f=e&&(a.style.visibility="hidden");X(a,c,d.toString()); -R(c.events.onWeekDayClick)?a.onclick=function(){z(c.events.onWeekDayClick,b,d)}:x(a,"no-hover");c.views.days.showDayNumbers&&0=a&&(b.style.visibility="hidden");X(b,c,d.toString());c.views.statistics.showRangeNumbers&&0ka.notFound}function S(a, -b){return a.indexOf(b)>ka.notFound}function Sa(a){var b=[];if(a.showOnlyDataForYearsAvailable){a=N(a);for(var d in a)if(a.hasOwnProperty(d)){var c=parseInt(d.split(q.dash)[0]);b.indexOf(c)===ka.notFound&&b.push(c)}}return b=b.sort(function(e,f){return e-f})}function Y(a,b){return a.yearsToHide.indexOf(b)===ka.notFound&&(0===a.currentView.yearsAvailable.length||a.currentView.yearsAvailable.indexOf(b)>ka.notFound)}function Ta(a){a.currentView.isInFetchMode&&(w(a.currentView.isInFetchModeTimer)||Oa(a), -w(a.currentView.isInFetchModeTimer)||(a.currentView.isInFetchModeTimer=setInterval(function(){Oa(a);A(a)},a.dataFetchDelay)))}function Oa(a){var b=a.currentView.element.id,d=z(a.events.onDataFetch,b);if(L(d)){za(b,a,!1);for(var c in d)d.hasOwnProperty(c)&&(k[b].type[h.unknownTrendText].hasOwnProperty(c)||(k[b].type[h.unknownTrendText][c]=0),k[b].type[h.unknownTrendText][c]+=d[c])}}function ra(a,b){var d=!1;if("HOLIDAY"===b)d=!0;else for(var c=a.colorRanges.length,e=0;e=f.minimum)e=f;else break}return e}function Ja(a,b){for(var d=a.length,c=null,e=0;e');f.push("");for(e in g)g.hasOwnProperty(e)&& -(f.push(""),f.push(""+e+""),f.push(""+g[e]+""),f.push(""));f.push("");d=f.join(q.newLine)}else if("txt"===b){g=sa(a);e=[];for(f in g)g.hasOwnProperty(f)&&e.push(f+q.colon+q.space+g[f].toString());d=e.join(q.newLine)}v(d)&&(g=n(J.body,"a"),g.style.display="none",g.setAttribute("target","_blank"),g.setAttribute("href","data:"+c+";charset=utf-8,"+encodeURIComponent(d)),c=g.setAttribute,f=new Date,e=U(f.getDate())+q.dash+U(f.getMonth()+1)+q.dash+ -f.getFullYear(),f=U(f.getHours())+q.dash+U(f.getMinutes()),d=q.empty,a.currentView.type!==h.unknownTrendText&&(d=a.currentView.type.toLowerCase().replace(q.space,q.underscore)+q.underscore),e=d+e+q.underscore+f+"."+a.exportType.toLowerCase(),c.call(g,"download",e),g.click(),J.body.removeChild(g),z(a.events.onExport,a.currentView.element))}function sa(a){var b={},d=N(a);if(a.exportOnlyYearBeingViewed)for(var c=0;12>c;c++)for(var e=da(a.currentView.year,c),f=0;fa.getDay()-1?6:a.getDay()-1}function w(a){return null!==a&&void 0!==a&&a!==q.empty}function L(a){return w(a)&&"object"===typeof a}function v(a){return w(a)&&"string"=== -typeof a}function R(a){return w(a)&&"function"===typeof a}function wa(a){return w(a)&&"number"===typeof a}function aa(a){return L(a)&&a instanceof Array}function xa(a){return L(a)&&a instanceof Date}function lb(a){a=a.toLowerCase();var b="text"===a;fa.hasOwnProperty(a)||(fa[a]=b?J.createTextNode(q.empty):J.createElement(a));return fa[a].cloneNode(!1)}function n(a,b,d,c){b=b.toLowerCase();var e="text"===b;fa.hasOwnProperty(b)||(fa[b]=e?J.createTextNode(q.empty):J.createElement(b));b=fa[b].cloneNode(!1); -w(d)&&(b.className=d);w(c)?a.insertBefore(b,c):a.appendChild(b);return b}function u(a,b,d,c,e){a=n(a,b,d,e);a.innerHTML=c;return a}function ha(a,b,d){var c=null;d=m(d,!1);C.getComputedStyle?c=J.defaultView.getComputedStyle(a,null).getPropertyValue(b):a.currentStyle&&(c=a.currentStyle[b]);d&&(c=parseFloat(c,10));return c}function x(a,b){a.className+=q.space+b;a.className=a.className.trim()}function ia(a){a.preventDefault();a.cancelBubble=!0}function T(a){for(var b=a.children,d=b.length-1;d--;)a.appendChild(b[d])} -function Ba(a,b,d,c){a=n(a,"div");a=n(a,"label","checkbox");var e=n(a,"input");e.type="checkbox";w(c)&&(e.onclick=c);w(d)&&(e.checked=d);n(a,"span","check-mark");u(a,"span","text",b);return{input:e,label:a}}function z(a){var b=null;R(a)&&(b=a.apply(null,[].slice.call(arguments,1)));return b}function r(a,b){return v(a)?a:b}function m(a,b){return w(a)&&"boolean"===typeof a?a:b}function Z(a,b){return wa(a)?a:b}function D(a,b){return R(a)?a:b}function M(a,b){return L(a)?a:b}function ya(a){var b=!0,d= -null;try{v(a)&&(d=la.parse(a))}catch(c){try{d=eval("("+a+")"),R(d)&&(d=d())}catch(e){h.safeMode||(console.error(h.objectErrorText.replace("{{error_1}}",c.message).replace("{{error_2}}",e.message)),b=!1),d=null}}return{parsed:b,result:d}}function ba(){for(var a=[],b=0;32>b;b++){8!==b&&12!==b&&16!==b&&20!==b||a.push(q.dash);var d=I.floor(16*I.random()).toString(16);a.push(d)}return a.join(q.empty)}function U(a){a=a.toString();return 1===a.length?q.zero+a:a}function Ha(a,b){return a.substring(0,b.length).toLowerCase()=== -b.toLowerCase()}function O(a){return a.getFullYear()+q.dash+U(a.getMonth()+1)+q.dash+U(a.getDate())}function Ca(a,b){b=m(b,!0);var d=!0,c=a.currentView.year;for(c--;!Y(a,c);){if(0=a.currentView.yearsAvailable[a.currentView.yearsAvailable.length- -1]){d=!1;break}c++}d&&(a.currentView.year=c,A(a),b&&z(a.events.onBackYear,a.currentView.year))}function Qa(a){a.currentView.element.innerHTML=q.empty;var b=a.currentView.element;b.className=b.className.replace("heat-js",q.empty);b.className=b.className.trim();Ia(a,!1);J.body.removeChild(a.currentView.tooltip);a.currentView.isInFetchMode&&w(a.currentView.isInFetchModeTimer)&&clearInterval(a.currentView.isInFetchModeTimer);z(a.events.onDestroy,a.currentView.element)}function Ra(a){h=L(a)?a:{};h.safeMode= -m(h.safeMode,!0);a=h;var b=h.domElementTypes,d=["*"];v(b)?(b=b.split(q.space),0===b.length&&(b=d)):b=aa(b)?b:d;a.domElementTypes=b;h.stText=r(h.stText,"st");h.ndText=r(h.ndText,"nd");h.rdText=r(h.rdText,"rd");h.thText=r(h.thText,"th");h.backButtonText=r(h.backButtonText,"Back");h.nextButtonText=r(h.nextButtonText,"Next");h.refreshButtonText=r(h.refreshButtonText,"Refresh");h.exportButtonText=r(h.exportButtonText,"Export");h.lessText=r(h.lessText,"Less");h.moreText=r(h.moreText,"More");h.dateText= -r(h.dateText,"Date");h.countText=r(h.countText,"Count");h.mapText=r(h.mapText,"Map");h.chartText=r(h.chartText,"Chart");h.noChartDataMessage=r(h.noChartDataMessage,"There is currently no data to view.");h.statisticsText=r(h.statisticsText,"Statistics");h.noStatisticsDataMessage=r(h.noStatisticsDataMessage,"There are currently no statistics to view.");h.unknownTrendText=r(h.unknownTrendText,"Unknown");h.importButtonText=r(h.importButtonText,"Import");h.noMapDataMessage=r(h.noMapDataMessage,"There is currently no data to view."); -h.objectErrorText=r(h.objectErrorText,"Errors in object: {{error_1}}, {{error_2}}");h.attributeNotValidErrorText=r(h.attributeNotValidErrorText,"The attribute '{{attribute_name}}' is not a valid object.");h.attributeNotSetErrorText=r(h.attributeNotSetErrorText,"The attribute '{{attribute_name}}' has not been set correctly.");h.closeToolTipText=r(h.closeToolTipText,"Close");h.configurationToolTipText=r(h.configurationToolTipText,"Configuration");h.configurationTitleText=r(h.configurationTitleText, -"Configuration");h.visibleMonthsText=r(h.visibleMonthsText,"Visible Months");h.visibleDaysText=r(h.visibleDaysText,"Visible Days");h.dataText=r(h.dataText,"Data");h.colorRangesText=r(h.colorRangesText,"Color Ranges");h.yearText=r(h.yearText,"Year");h.daysText=r(h.daysText,"Days");h.noDaysDataMessage=r(h.noDaysDataMessage,"There are currently no days to view.");Q(h.monthNames,12)&&(h.monthNames="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "));Q(h.dayNames,7)&&(h.dayNames="Mon Tue Wed Thu Fri Sat Sun".split(" "))} -function Q(a,b){b=wa(b)?b:1;return!aa(a)||a.lengthd&&(a.currentView.year=d,Y(a,a.currentView.year)?A(a):Ca(a,!1),z(a.events.onSetYear,a.currentView.year))}return p};p.moveToPreviousYear=function(a){v(a)&&k.hasOwnProperty(a)&&Ca(k[a].options);return p};p.moveToNextYear= -function(a){v(a)&&k.hasOwnProperty(a)&&ja(k[a].options);return p};p.moveToCurrentYear=function(a){v(a)&&k.hasOwnProperty(a)&&(a=k[a].options,a.currentView.year=(new Date).getFullYear(),Y(a,a.currentView.year)?A(a):ja(a,!1),z(a.events.onSetYear,a.currentView.year));return p};p.getYear=function(a){var b=null;v(a)&&k.hasOwnProperty(a)&&(b=k[a].options.currentView.year);return b};p.render=function(a,b){L(a)&&L(b)&&Ea(Fa(b,a));return p};p.renderAll=function(){Da();return p};p.switchView=function(a,b){if(v(a)&& -v(b)&&k.hasOwnProperty(a)){a=k[a].options;var d=null;"map"===b.toLowerCase()?d=1:"chart"===b.toLowerCase()?d=2:"days"===b.toLowerCase()?d=3:"statistics"===b.toLowerCase()&&(d=4);wa(d)&&(a.currentView.view=d,z(a.events.onViewSwitch,b),A(a,!1,!0))}return p};p.switchType=function(a,b){v(a)&&v(b)&&k.hasOwnProperty(a)&&k[a].type.hasOwnProperty(b)&&(a=k[a].options,a.currentView.type!==b&&(a.currentView.type=b,z(a.events.onTypeSwitch,b),A(a)));return p};p.updateOptions=function(a,b){if(v(a)&&L(b)&&k.hasOwnProperty(a)){a= -k[a].options;b=Ga(b);var d=!1,c;for(c in b)b.hasOwnProperty(c)&&a.hasOwnProperty(c)&&a[c]!==b[c]&&(a[c]=b[c],d=!0);d&&(A(a,!0),z(a.events.onRefresh,a.currentView.element),z(a.events.onOptionsUpdate,a.currentView.element,a))}return p};p.destroyAll=function(){for(var a in k)k.hasOwnProperty(a)&&Qa(k[a].options);k={};return p};p.destroy=function(a){v(a)&&k.hasOwnProperty(a)&&(Qa(k[a].options),delete k[a]);return p};p.setConfiguration=function(a,b){if(L(a)){var d=!1,c;for(c in a)a.hasOwnProperty(c)&& -h.hasOwnProperty(c)&&h[c]!==a[c]&&(h[c]=a[c],d=!0);d&&(b=m(b,!0),Ra(h),b&&p.refreshAll())}return p};p.getIds=function(){var a=[],b;for(b in k)k.hasOwnProperty(b)&&a.push(b);return a};p.getVersion=function(){return"3.1.2"};(function(a,b,d,c){J=a;C=b;I=d;la=c;Ra();J.addEventListener("DOMContentLoaded",function(){Da()});C.addEventListener("pagehide",function(){for(var e in k)if(k.hasOwnProperty(e)){var f=k[e].options;w(f.currentView.isInFetchModeTimer)&&clearInterval(f.currentView.isInFetchModeTimer)}}); -w(C.$heat)||(C.$heat=p)})(document,window,Math,JSON)})(); \ No newline at end of file +T(c,f+1);for(c=0;12>c;c++)a.currentView.monthCheckBoxes[c].checked=W(e,c);da(a)}),b=t(b,"button","next",h.nextButtonText),b.onclick=function(){ka(a)},0=a.currentView.yearsAvailable[a.currentView.yearsAvailable.length-1]&&(b.disabled=!0))}}function eb(a,b){b=n(b,"div","titles-menu-container");b=n(b,"div","titles-menu");t(b,"div","title-menu-header",h.dataText+q.colon);var d=t(b,"div","title-menu-item",h.mapText);ra(a,d,1,"map");a.views.chart.enabled&& +(d=t(b,"div","title-menu-item",h.chartText),ra(a,d,2,"chart"));a.views.days.enabled&&(t(b,"div","title-menu-header",h.yearText+q.colon),d=t(b,"div","title-menu-item",h.daysText),ra(a,d,3,"days"));a.views.statistics.enabled&&(t(b,"div","title-menu-header",h.statisticsText+q.colon),b=t(b,"div","title-menu-item",h.colorRangesText),ra(a,b,4,"statistics"))}function ra(a,b,d,c){a.currentView.view===d?w(b,"title-menu-item-active"):b.onclick=function(){a.currentView.view=d;y(a.events.onViewSwitch,c);A(a, +!1,!0)}}function gb(a){n(a.currentView.yearText,"div","down-arrow");var b=n(a.currentView.yearText,"div","years-menu-container"),d=n(b,"div","years-menu"),c=(new Date).getFullYear(),e=null;b.style.display="block";b.style.visibility="hidden";for(var f=c-a.title.extraSelectionYears;fg;g++)if(W(a.views.chart.monthsToShow,g)){x=ea(l,g);var F= +1;d++;for(var B=0;Bl;l++)f(l);G.style.width=e.offsetWidth+"px";e=n(G,"div","month-name-space"); +e.style.height=G.offsetHeight+"px";e.style.width=r+"px"}a.views.chart.keepScrollPositions&&(a.currentView.chartContents.scrollLeft=a.currentView.chartContentsScrollLeft)}}function jb(a,b,d,c,e,f,g){var l=new Date(e,c,d);a=n(a,"div","day-line");var r=O(b)[P(l)];r=aa(r,0);Ma(b,a,l,r);b.views.chart.showLineNumbers&&0=g&&(a.style.visibility="hidden");S(b.events.onDayClick)?a.onclick=function(){y(b.events.onDayClick,l,r)}: +w(a,"no-hover");f=Ba(b,f,r,l);v(f)&&sa(b,f.id)&&(u(f.chartCssClassName)?w(a,f.chartCssClassName):w(a,f.cssClassName))}function ib(a){for(var b=0,d=O(a),c=0;12>c;c++)for(var e=ea(a.currentView.year,c),f=0;f=e&&(a.style.visibility="hidden");Y(a,c,d.toString()); +S(c.events.onWeekDayClick)?a.onclick=function(){y(c.events.onWeekDayClick,b,d)}:w(a,"no-hover");c.views.days.showDayNumbers&&0=a&&(b.style.visibility="hidden");Y(b,c,d.toString());c.views.statistics.showRangeNumbers&&0la.notFound}function T(a, +b){return a.indexOf(b)>la.notFound}function Ta(a){var b=[];if(a.showOnlyDataForYearsAvailable){a=O(a);for(var d in a)if(a.hasOwnProperty(d)){var c=parseInt(d.split(q.dash)[0]);b.indexOf(c)===la.notFound&&b.push(c)}}return b=b.sort(function(e,f){return e-f})}function Z(a,b){return a.yearsToHide.indexOf(b)===la.notFound&&(0===a.currentView.yearsAvailable.length||a.currentView.yearsAvailable.indexOf(b)>la.notFound)}function Ua(a){a.currentView.isInFetchMode&&(v(a.currentView.isInFetchModeTimer)||Pa(a), +v(a.currentView.isInFetchModeTimer)||(a.currentView.isInFetchModeTimer=setInterval(function(){Pa(a);A(a)},a.dataFetchDelay)))}function Pa(a){var b=a.currentView.element.id,d=y(a.events.onDataFetch,b);if(M(d)){Aa(b,a,!1);for(var c in d)d.hasOwnProperty(c)&&(k[b].type[h.unknownTrendText].hasOwnProperty(c)||(k[b].type[h.unknownTrendText][c]=0),k[b].type[h.unknownTrendText][c]+=d[c])}}function sa(a,b){var d=!1;if("HOLIDAY"===b)d=!0;else for(var c=a.colorRanges.length,e=0;e=f.minimum)e=f;else break}return e}function Ka(a,b){for(var d=a.length,c=null,e=0;e');f.push("");for(e in g)g.hasOwnProperty(e)&& +(f.push(""),f.push(""+e+""),f.push(""+g[e]+""),f.push(""));f.push("");d=f.join(q.newLine)}else if("txt"===b){g=ta(a);e=[];for(f in g)g.hasOwnProperty(f)&&e.push(f+q.colon+q.space+g[f].toString());d=e.join(q.newLine)}u(d)&&(g=n(K.body,"a"),g.style.display="none",g.setAttribute("target","_blank"),g.setAttribute("href","data:"+c+";charset=utf-8,"+encodeURIComponent(d)),c=g.setAttribute,f=new Date,e=V(f.getDate())+q.dash+V(f.getMonth()+1)+q.dash+ +f.getFullYear(),f=V(f.getHours())+q.dash+V(f.getMinutes()),d=q.empty,a.currentView.type!==h.unknownTrendText&&(d=a.currentView.type.toLowerCase().replace(q.space,q.underscore)+q.underscore),e=d+e+q.underscore+f+"."+a.exportType.toLowerCase(),c.call(g,"download",e),g.click(),K.body.removeChild(g),y(a.events.onExport,a.currentView.element))}function ta(a){var b={},d=O(a);if(a.exportOnlyYearBeingViewed)for(var c=0;12>c;c++)for(var e=ea(a.currentView.year,c),f=0;fa.getDay()-1?6:a.getDay()-1}function v(a){return null!==a&&void 0!==a&&a!==q.empty}function M(a){return v(a)&&"object"===typeof a}function u(a){return v(a)&&"string"=== +typeof a}function S(a){return v(a)&&"function"===typeof a}function xa(a){return v(a)&&"number"===typeof a}function ba(a){return M(a)&&a instanceof Array}function ya(a){return M(a)&&a instanceof Date}function mb(a){a=a.toLowerCase();var b="text"===a;ha.hasOwnProperty(a)||(ha[a]=b?K.createTextNode(q.empty):K.createElement(a));return ha[a].cloneNode(!1)}function n(a,b,d,c){b=b.toLowerCase();var e="text"===b;ha.hasOwnProperty(b)||(ha[b]=e?K.createTextNode(q.empty):K.createElement(b));b=ha[b].cloneNode(!1); +v(d)&&(b.className=d);v(c)?a.insertBefore(b,c):a.appendChild(b);return b}function t(a,b,d,c,e){a=n(a,b,d,e);a.innerHTML=c;return a}function ia(a,b,d){var c=null;d=m(d,!1);C.getComputedStyle?c=K.defaultView.getComputedStyle(a,null).getPropertyValue(b):a.currentStyle&&(c=a.currentStyle[b]);d&&(c=parseFloat(c,10));return c}function w(a,b){a.className+=q.space+b;a.className=a.className.trim()}function ja(a){a.preventDefault();a.cancelBubble=!0}function U(a){for(var b=a.children,d=b.length-1;d--;)a.appendChild(b[d])} +function Ca(a,b,d,c){a=n(a,"div");a=n(a,"label","checkbox");var e=n(a,"input");e.type="checkbox";v(c)&&(e.onclick=c);v(d)&&(e.checked=d);n(a,"span","check-mark");t(a,"span","text",b);return{input:e,label:a}}function y(a){var b=null;S(a)&&(b=a.apply(null,[].slice.call(arguments,1)));return b}function z(a,b){return"string"===typeof a?a:b}function D(a,b){return u(a)?a:b}function m(a,b){return v(a)&&"boolean"===typeof a?a:b}function aa(a,b){return xa(a)?a:b}function E(a,b){return S(a)?a:b}function N(a, +b){return M(a)?a:b}function za(a){var b=!0,d=null;try{u(a)&&(d=ma.parse(a))}catch(c){try{d=eval("("+a+")"),S(d)&&(d=d())}catch(e){h.safeMode||(console.error(h.objectErrorText.replace("{{error_1}}",c.message).replace("{{error_2}}",e.message)),b=!1),d=null}}return{parsed:b,result:d}}function ca(){for(var a=[],b=0;32>b;b++){8!==b&&12!==b&&16!==b&&20!==b||a.push(q.dash);var d=J.floor(16*J.random()).toString(16);a.push(d)}return a.join(q.empty)}function V(a){a=a.toString();return 1===a.length?q.zero+a: +a}function Ia(a,b){return a.substring(0,b.length).toLowerCase()===b.toLowerCase()}function P(a){return a.getFullYear()+q.dash+V(a.getMonth()+1)+q.dash+V(a.getDate())}function Da(a,b){b=m(b,!0);var d=!0,c=a.currentView.year;for(c--;!Z(a,c);){if(0=a.currentView.yearsAvailable[a.currentView.yearsAvailable.length-1]){d=!1;break}c++}d&&(a.currentView.year=c,A(a),b&&y(a.events.onBackYear,a.currentView.year))}function Ra(a){a.currentView.element.innerHTML=q.empty;var b=a.currentView.element;b.className=b.className.replace("heat-js",q.empty);b.className=b.className.trim();Ja(a,!1);K.body.removeChild(a.currentView.tooltip);a.currentView.isInFetchMode&&v(a.currentView.isInFetchModeTimer)&&clearInterval(a.currentView.isInFetchModeTimer);y(a.events.onDestroy, +a.currentView.element)}function Sa(a){h=M(a)?a:{};h.safeMode=m(h.safeMode,!0);a=h;var b=h.domElementTypes,d=["*"];u(b)?(b=b.split(q.space),0===b.length&&(b=d)):b=ba(b)?b:d;a.domElementTypes=b;h.stText=z(h.stText,"st");h.ndText=z(h.ndText,"nd");h.rdText=z(h.rdText,"rd");h.thText=z(h.thText,"th");h.backButtonText=z(h.backButtonText,"Back");h.nextButtonText=z(h.nextButtonText,"Next");h.refreshButtonText=z(h.refreshButtonText,"Refresh");h.exportButtonText=z(h.exportButtonText,"Export");h.lessText=z(h.lessText, +"Less");h.moreText=z(h.moreText,"More");h.dateText=z(h.dateText,"Date");h.countText=z(h.countText,"Count");h.mapText=z(h.mapText,"Map");h.chartText=z(h.chartText,"Chart");h.noChartDataMessage=z(h.noChartDataMessage,"There is currently no data to view.");h.statisticsText=z(h.statisticsText,"Statistics");h.noStatisticsDataMessage=z(h.noStatisticsDataMessage,"There are currently no statistics to view.");h.unknownTrendText=z(h.unknownTrendText,"Unknown");h.importButtonText=z(h.importButtonText,"Import"); +h.noMapDataMessage=z(h.noMapDataMessage,"There is currently no data to view.");h.objectErrorText=z(h.objectErrorText,"Errors in object: {{error_1}}, {{error_2}}");h.attributeNotValidErrorText=z(h.attributeNotValidErrorText,"The attribute '{{attribute_name}}' is not a valid object.");h.attributeNotSetErrorText=z(h.attributeNotSetErrorText,"The attribute '{{attribute_name}}' has not been set correctly.");h.closeToolTipText=z(h.closeToolTipText,"Close");h.configurationToolTipText=z(h.configurationToolTipText, +"Configuration");h.configurationTitleText=z(h.configurationTitleText,"Configuration");h.visibleMonthsText=z(h.visibleMonthsText,"Visible Months");h.visibleDaysText=z(h.visibleDaysText,"Visible Days");h.dataText=z(h.dataText,"Data");h.colorRangesText=z(h.colorRangesText,"Color Ranges");h.yearText=z(h.yearText,"Year");h.daysText=z(h.daysText,"Days");h.noDaysDataMessage=z(h.noDaysDataMessage,"There are currently no days to view.");R(h.monthNames,12)&&(h.monthNames="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" ")); +R(h.dayNames,7)&&(h.dayNames="Mon Tue Wed Thu Fri Sat Sun".split(" "))}function R(a,b){b=xa(b)?b:1;return!ba(a)||a.lengthd&&(a.currentView.year=d,Z(a,a.currentView.year)?A(a):Da(a,!1),y(a.events.onSetYear,a.currentView.year))}return p};p.moveToPreviousYear=function(a){u(a)&&k.hasOwnProperty(a)&& +Da(k[a].options);return p};p.moveToNextYear=function(a){u(a)&&k.hasOwnProperty(a)&&ka(k[a].options);return p};p.moveToCurrentYear=function(a){u(a)&&k.hasOwnProperty(a)&&(a=k[a].options,a.currentView.year=(new Date).getFullYear(),Z(a,a.currentView.year)?A(a):ka(a,!1),y(a.events.onSetYear,a.currentView.year));return p};p.getYear=function(a){var b=null;u(a)&&k.hasOwnProperty(a)&&(b=k[a].options.currentView.year);return b};p.render=function(a,b){M(a)&&M(b)&&Fa(Ga(b,a));return p};p.renderAll=function(){Ea(); +return p};p.switchView=function(a,b){if(u(a)&&u(b)&&k.hasOwnProperty(a)){a=k[a].options;var d=null;"map"===b.toLowerCase()?d=1:"chart"===b.toLowerCase()?d=2:"days"===b.toLowerCase()?d=3:"statistics"===b.toLowerCase()&&(d=4);xa(d)&&(a.currentView.view=d,y(a.events.onViewSwitch,b),A(a,!1,!0))}return p};p.switchType=function(a,b){u(a)&&u(b)&&k.hasOwnProperty(a)&&k[a].type.hasOwnProperty(b)&&(a=k[a].options,a.currentView.type!==b&&(a.currentView.type=b,y(a.events.onTypeSwitch,b),A(a)));return p};p.updateOptions= +function(a,b){if(u(a)&&M(b)&&k.hasOwnProperty(a)){a=k[a].options;b=Ha(b);var d=!1,c;for(c in b)b.hasOwnProperty(c)&&a.hasOwnProperty(c)&&a[c]!==b[c]&&(a[c]=b[c],d=!0);d&&(A(a,!0),y(a.events.onRefresh,a.currentView.element),y(a.events.onOptionsUpdate,a.currentView.element,a))}return p};p.destroyAll=function(){for(var a in k)k.hasOwnProperty(a)&&Ra(k[a].options);k={};return p};p.destroy=function(a){u(a)&&k.hasOwnProperty(a)&&(Ra(k[a].options),delete k[a]);return p};p.setConfiguration=function(a,b){if(M(a)){var d= +!1,c;for(c in a)a.hasOwnProperty(c)&&h.hasOwnProperty(c)&&h[c]!==a[c]&&(h[c]=a[c],d=!0);d&&(b=m(b,!0),Sa(h),b&&p.refreshAll())}return p};p.getIds=function(){var a=[],b;for(b in k)k.hasOwnProperty(b)&&a.push(b);return a};p.getVersion=function(){return"3.1.2"};(function(a,b,d,c){K=a;C=b;J=d;ma=c;Sa();K.addEventListener("DOMContentLoaded",function(){Ea()});C.addEventListener("pagehide",function(){for(var e in k)if(k.hasOwnProperty(e)){var f=k[e].options;v(f.currentView.isInFetchModeTimer)&&clearInterval(f.currentView.isInFetchModeTimer)}}); +v(C.$heat)||(C.$heat=p)})(document,window,Math,JSON)})(); \ No newline at end of file diff --git a/src/heat.js b/src/heat.js index fb2b10ec..4ca09cdf 100644 --- a/src/heat.js +++ b/src/heat.js @@ -2779,6 +2779,10 @@ * ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */ + function getDefaultAnyString( value, defaultValue ) { + return typeof value === "string" ? value : defaultValue; + } + function getDefaultString( value, defaultValue ) { return isDefinedString( value ) ? value : defaultValue; } @@ -3807,39 +3811,39 @@ } function buildDefaultConfigurationStrings() { - _configuration.stText = getDefaultString( _configuration.stText, "st" ); - _configuration.ndText = getDefaultString( _configuration.ndText, "nd" ); - _configuration.rdText = getDefaultString( _configuration.rdText, "rd" ); - _configuration.thText = getDefaultString( _configuration.thText, "th" ); - _configuration.backButtonText = getDefaultString( _configuration.backButtonText, "Back" ); - _configuration.nextButtonText = getDefaultString( _configuration.nextButtonText, "Next" ); - _configuration.refreshButtonText = getDefaultString( _configuration.refreshButtonText, "Refresh" ); - _configuration.exportButtonText = getDefaultString( _configuration.exportButtonText, "Export" ); - _configuration.lessText = getDefaultString( _configuration.lessText, "Less" ); - _configuration.moreText = getDefaultString( _configuration.moreText, "More" ); - _configuration.dateText = getDefaultString( _configuration.dateText, "Date" ); - _configuration.countText = getDefaultString( _configuration.countText, "Count" ); - _configuration.mapText = getDefaultString( _configuration.mapText, "Map" ); - _configuration.chartText = getDefaultString( _configuration.chartText, "Chart" ); - _configuration.noChartDataMessage = getDefaultString( _configuration.noChartDataMessage, "There is currently no data to view." ); - _configuration.statisticsText = getDefaultString( _configuration.statisticsText, "Statistics" ); - _configuration.noStatisticsDataMessage = getDefaultString( _configuration.noStatisticsDataMessage, "There are currently no statistics to view." ); - _configuration.unknownTrendText = getDefaultString( _configuration.unknownTrendText, "Unknown" ); - _configuration.importButtonText = getDefaultString( _configuration.importButtonText, "Import" ); - _configuration.noMapDataMessage = getDefaultString( _configuration.noMapDataMessage, "There is currently no data to view." ); - _configuration.objectErrorText = getDefaultString( _configuration.objectErrorText, "Errors in object: {{error_1}}, {{error_2}}" ); - _configuration.attributeNotValidErrorText = getDefaultString( _configuration.attributeNotValidErrorText, "The attribute '{{attribute_name}}' is not a valid object." ); - _configuration.attributeNotSetErrorText = getDefaultString( _configuration.attributeNotSetErrorText, "The attribute '{{attribute_name}}' has not been set correctly." ); - _configuration.closeToolTipText = getDefaultString( _configuration.closeToolTipText, "Close" ); - _configuration.configurationToolTipText = getDefaultString( _configuration.configurationToolTipText, "Configuration" ); - _configuration.configurationTitleText = getDefaultString( _configuration.configurationTitleText, "Configuration" ); - _configuration.visibleMonthsText = getDefaultString( _configuration.visibleMonthsText, "Visible Months" ); - _configuration.visibleDaysText = getDefaultString( _configuration.visibleDaysText, "Visible Days" ); - _configuration.dataText = getDefaultString( _configuration.dataText, "Data" ); - _configuration.colorRangesText = getDefaultString( _configuration.colorRangesText, "Color Ranges" ); - _configuration.yearText = getDefaultString( _configuration.yearText, "Year" ); - _configuration.daysText = getDefaultString( _configuration.daysText, "Days" ); - _configuration.noDaysDataMessage = getDefaultString( _configuration.noDaysDataMessage, "There are currently no days to view." ); + _configuration.stText = getDefaultAnyString( _configuration.stText, "st" ); + _configuration.ndText = getDefaultAnyString( _configuration.ndText, "nd" ); + _configuration.rdText = getDefaultAnyString( _configuration.rdText, "rd" ); + _configuration.thText = getDefaultAnyString( _configuration.thText, "th" ); + _configuration.backButtonText = getDefaultAnyString( _configuration.backButtonText, "Back" ); + _configuration.nextButtonText = getDefaultAnyString( _configuration.nextButtonText, "Next" ); + _configuration.refreshButtonText = getDefaultAnyString( _configuration.refreshButtonText, "Refresh" ); + _configuration.exportButtonText = getDefaultAnyString( _configuration.exportButtonText, "Export" ); + _configuration.lessText = getDefaultAnyString( _configuration.lessText, "Less" ); + _configuration.moreText = getDefaultAnyString( _configuration.moreText, "More" ); + _configuration.dateText = getDefaultAnyString( _configuration.dateText, "Date" ); + _configuration.countText = getDefaultAnyString( _configuration.countText, "Count" ); + _configuration.mapText = getDefaultAnyString( _configuration.mapText, "Map" ); + _configuration.chartText = getDefaultAnyString( _configuration.chartText, "Chart" ); + _configuration.noChartDataMessage = getDefaultAnyString( _configuration.noChartDataMessage, "There is currently no data to view." ); + _configuration.statisticsText = getDefaultAnyString( _configuration.statisticsText, "Statistics" ); + _configuration.noStatisticsDataMessage = getDefaultAnyString( _configuration.noStatisticsDataMessage, "There are currently no statistics to view." ); + _configuration.unknownTrendText = getDefaultAnyString( _configuration.unknownTrendText, "Unknown" ); + _configuration.importButtonText = getDefaultAnyString( _configuration.importButtonText, "Import" ); + _configuration.noMapDataMessage = getDefaultAnyString( _configuration.noMapDataMessage, "There is currently no data to view." ); + _configuration.objectErrorText = getDefaultAnyString( _configuration.objectErrorText, "Errors in object: {{error_1}}, {{error_2}}" ); + _configuration.attributeNotValidErrorText = getDefaultAnyString( _configuration.attributeNotValidErrorText, "The attribute '{{attribute_name}}' is not a valid object." ); + _configuration.attributeNotSetErrorText = getDefaultAnyString( _configuration.attributeNotSetErrorText, "The attribute '{{attribute_name}}' has not been set correctly." ); + _configuration.closeToolTipText = getDefaultAnyString( _configuration.closeToolTipText, "Close" ); + _configuration.configurationToolTipText = getDefaultAnyString( _configuration.configurationToolTipText, "Configuration" ); + _configuration.configurationTitleText = getDefaultAnyString( _configuration.configurationTitleText, "Configuration" ); + _configuration.visibleMonthsText = getDefaultAnyString( _configuration.visibleMonthsText, "Visible Months" ); + _configuration.visibleDaysText = getDefaultAnyString( _configuration.visibleDaysText, "Visible Days" ); + _configuration.dataText = getDefaultAnyString( _configuration.dataText, "Data" ); + _configuration.colorRangesText = getDefaultAnyString( _configuration.colorRangesText, "Color Ranges" ); + _configuration.yearText = getDefaultAnyString( _configuration.yearText, "Year" ); + _configuration.daysText = getDefaultAnyString( _configuration.daysText, "Days" ); + _configuration.noDaysDataMessage = getDefaultAnyString( _configuration.noDaysDataMessage, "There are currently no days to view." ); } function buildDefaultConfigurationArrays() {