Heat.js - Documentation - Recent Changes

Below is a list of the most recent changes made in the Heat.js versions released.

Download Now

v4.2.2 - 14nd Oct 2024
Versions

Version 4.2.2:

  • Updated all the NPM packages to the latest versions.
  • Added an ignore path for ".DS_Store" files when packing the NuGet package.
  • Updated the CSS to fix some of the new SASS rules causing compiler warnings.
  • The Binding Options and Configuration Options are now loaded using less memory (less overwrites).
  • General code improvements and refactors.


Version 4.2.1:

General Improvements:

  • Moved from ES2016 to ES2020.
  • Improved the event assignments, which are now single lines.
  • The GUIDs generated now used the "crypto.randomUUID()" instead of the custom-built one (this is now RFC4122-compliant).
  • Removed string concatenation usages, and replaced with string templates.

Fixes:

  • Fixed a fault that caused the title bar buttons to appear in different sizes (if the default font is unavailable).
  • Fixed a fault that prevented the multiple spaces used in type names from being replaced with underscores.


Version 4.2.0:

Binding Options:

  • Added a new option called "title.showCurrentYearButton" (defaults to true), which states if the "Current Year" button should be shown in the title bar.

Configuration Options:

  • Added a new option called "text.currentYearSymbolText", which states the symbol text to use for the "Current Year" button (defaults to "⏎").
  • Added a new option called "text.currentYearText", which states the text to use for the "Current Year" button (defaults to "Current Year").

UI Changes:

  • Added a new "Current Year" button to the title bar next to the "Next" button.

Improvements:

  • The width of the days calculated per view is now tracked per instance, instead of for all.
  • Added configuration settings to force types to be declared.
  • Updated to the latest versions of the NPM packages.
  • Moved more code into the shared files.
  • Improved type signatures and function signatures.

Fixes:

  • Fixed a fault that caused the "Next" button to fire the wrong custom trigger.
  • Fixed some warnings appearing in the console for input fields having no name/id attributes set.


Version 4.1.1:

  • Added a background color and border to the configuration dialog.
  • Renamed some of the types to prevent collisions with other libraries.
  • Fixed a fault that caused the "Chart" view to use different heights when showing different years (due to a visible day issue).


Version 4.1.0:

UI Changes:

  • The title bar buttons now use symbols instead of text (to free up space), and use tooltips that use existing configuration settings.

Configuration:

  • BREAKING: All text configuration settings are now under a new section called "text".
  • Added a new option called "text.backButtonSymbolText", which states the symbol text to use for the "Back" button (defaults to "←").
  • Added a new option called "text.nextButtonSymbolText", which states the symbol text to use for the "Next" button (defaults to "→").
  • Added a new option called "text.refreshButtonSymbolText", which states the symbol text to use for the "Refresh" button (defaults to "↻").
  • Added a new option called "text.exportButtonSymbolText", which states the symbol text to use for the "Export" button (defaults to "↓").
  • Added a new option called "text.importButtonSymbolText", which states the symbol text to use for the "Import" button (defaults to "↑").

Improvements:

  • Fixed missing return types from the private functions.
  • The tooltip code is now in a separate file called "ts/areas/tooltip.ts".
  • The firing custom trigger code is now in a separate file called "ts/areas/trigger.ts".
  • The binding options code is now in a separate file called "options/binding.ts".
  • The configuration options code is now in a separate file called "options/config.ts".
  • The disabled background code is now in a separate file called "ts/area/disabled.ts".
  • Massive reorganization of all the .ts files in the project.
  • NPM package update.
  • Renames to prevent collisions with JSON and String.

Fixes:

  • Fixed an issue that caused the buttons in the display to use the wrong font.


Version 4.0.5:

  • "addClass()" and "removeClass()" now use classList for handling the classes assigned to DOM elements.
  • Moved all string concatenation to use string templates.
  • Updated to the latest NPM packages.


Version 4.0.4:

  • Fixed CDN links pointing to the wrong version.
  • Added a "build-all" script option so that everything (including minimized versions) can be built with one command.
  • Minor CSS layout improvements.
  • Removed deprecated "cancelBubble" usages and replaced them with "stopPropagation()".
  • Rewritten "getStyleValueByName()" to use the modern implementation to get a style.
  • Fixed a type mismatch between the PublicApi structure and the implementation.
  • Improved more type implementations.
  • Internal storage date methods are now exported via the "DateTime.ts" module.
  • The "import" public API function will now show the select files dialog if no files are passed.


Version 4.0.3:

  • Renamed the "scss" folder to "sass".
  • Updated file headers to show the correct name of the file.
  • Added more strict types around variables and objects.
  • Updated packages.
  • Minor documentation updates.


Version 4.0.2:

  • Stricter types across the code base.
  • Updated documentation to reflect the TypeScript switch.
  • Fixed 800+ error messages due to export types allowing nulls.
  • Strict mode is now always on for all build modes.


Version 4.0.1:

  • NuGet packages generated from the code are now 400KB in size instead of 36MB.
  • *.nupkg files are now ignored when an NPM package is built, or a NuGet file is built.


Version 4.0.0:

Language Shift:

  • The entire project has been rewritten in TypeScript, allowing all components to be exported, which allows better support for libraries such as React, Angular, etc.
  • Added CDN links for the minimized version of the files.
  • The TypeScript code is compiled to ES2016 instead of ES5 (older browsers, such as IE, are no longer supported).

Building:

  • You can now run separate builds to produce CJS, ESM, and Minimized project versions.
  • All files not required for the NPM packages have now been excluded.

Testing:

  • Removed the "src" and "dist" folders under "test". Only the dist versions remain, removing duplication.
  • Added "BUILD_INSTRUCTIONS.md" to help first-time users set up their dev environments.


Version 3.2.0:

New Features:

  • Added export support for the global "$heat" object, which can now be imported as "heat.js".

Binding Options:

  • Added a new binding option called "title.showTitleDropDownHeaders", which states if the title drop-down should show the headers (defaults to true).

Public Functions:

  • Added a new public function called "import()", allowing data to be imported from files for a specific element ID instance.


Version 3.1.2:

  • All text translations now allow empty text to be passed (which will prevent them from defaulting to the English version).


Version 3.1.1:

  • Fixed a fault that caused the Day/Month names to appear centered in the Configuration dialog.
  • Added a new binding option called "title.showTitleDropDownButton", which states if the drop-down arrow next to the title text should be shown (defaults to true).
  • Added a new binding option called "description.urlTarget", which states the target for the link URL (defaults to "_blank").


Version 3.1.0:

Binding Options:

  • BREAKING: The binding attribute "data-heat-options" has been renamed to "data-heat-js".
  • BREAKING: Removed the binding option "keepScrollPositions".
  • BREAKING: All title bar related binding options are now available under a new area called "title".
  • BREAKING: All guide related binding options are now available under a new area called "guide".
  • BREAKING: Renamed "guide.showGuide" to "guide.enabled".
  • BREAKING: All binding option events are now available under a new area called "events".
  • BREAKING: All binding options for descriptions (text and link) are now available under a new area called "description".
  • BREAKING: All binding options for tooltips (text and delay) are now available under a new area called "tooltip".
  • Added a new binding option called "views.map.keepScrollPositions", which states if the scroll positions should be kept when the view is refreshed (or moving year to year, defaults to false).
  • Added a new binding option called "views.chart.keepScrollPositions", which states if the scroll positions should be kept when the view is refreshed (or moving year to year, defaults to false).
  • Added a new binding option called "views.days.keepScrollPositions", which states if the scroll positions should be kept when the view is refreshed (or moving year to year, defaults to false).
  • Added a new binding option called "views.statistics.keepScrollPositions", which states if the scroll positions should be kept when the view is refreshed (or moving year to year, defaults to false).

Improvements:

  • Faster reading of internal defaults for binding parameters.

Fixes:

  • Fixed a fault that caused the "Chart" view to show the incorrect Y-Labels when months with the largest values are hidden.


Version 3.0.0:

New Features:

  • Added a new configuration icon to the main display, which will allow the Days/Months to be toggled easily per view!
  • Added a brand new view called "Days", which will allow you to see the counts for the days of the week for the entire year.
  • Redesigned the title drop-down menu.

Binding Options:

  • Added a new binding option called "showConfigurationButton", which states if the configuration dialog can be used (defaults to true).
  • Added a new binding option called "views.days.enabled", which states if this view is enabled (defaults to true).
  • Added a new binding option called "views.days.showChartYLabels", which states if the chart Y axis labels should be shown (defaults to true).
  • Added a new binding option called "views.days.showDayNames", which states if the day names are shown (defaults to true).
  • Added a new binding option called "views.days.showInReverseOrder", which states if the chart should be shown in reverse order (defaults to false).
  • Added a new binding option called "views.days.showDayNumbers", which states if the day counts should be shown in the lines (defaults to false).
  • Added a new binding option called "views.days.monthsToShow", which states the months that should be shown (defaults to [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]).
  • Added a new binding option called "views.days.daysToShow", which states the days that should be shown (defaults to [1, 2, 3, 4, 5, 6, 7]).

Binding Options - Custom Triggers:

  • Added a new binding option custom trigger called "onOptionsUpdate", which triggers an event when the binding options are updated.
  • Added a new binding option custom trigger called "onWeekDayClick", which triggers an event when a weekday is clicked in the "Days" view.

Configuration Options:

  • Added a new binding option called "closeToolTipText", which states the text that should be shown for the tooltip "Close".
  • Added a new binding option called "configurationToolTipText", which states the text that should be shown for the tooltip "Configuration".
  • Added a new binding option called "configurationTitleText", which states the text that should be shown for the title bar "Configuration".
  • Added a new binding option called "visibleMonthsText", which states the text that should be shown for the "Visible Months" label header.
  • Added a new binding option called "visibleDaysText", which states the text that should be shown for the "Visible Days" label header.
  • Added a new binding option called "dataText", which states the text that should be shown for the "Data" label.
  • Added a new binding option called "colorRangesText", which states the text that should be shown for the "Color Ranges" label.
  • Added a new binding option called "yearText", which states the text that should be shown for the "Year" label.
  • Added a new binding option called "daysText", which states the text that should be shown for the "Days" label.
  • Added a new binding option called "noDaysDataMessage", which states the text that should be shown for the "There are currently no days to view." label.

Improvements:

  • CSS renames to ensure they do not collide with other libraries, along with internal refactoring.

Fixes:

  • Fixed a fault that prevented the ToolTip from being hidden when an area outside the body of a document is focused.
  • Fixed a fault that prevented the events added for ToolTips from being removed when the instance is destroyed.
  • Fixed a fault that caused the wrong days to be excluded from the statistics when disabled via the binding options.
  • Fixed an alignment fault in the "statistics" view that caused the x-labels to be slightly off.


Version 2.8.0:

New Features:

  • Added import from CSV support (by drag & drop, and the import dialog).

Binding Options:

  • Added a new binding option called "views.map.showMinimalDayNames", which states if only the minimal day names should be shown (defaults to false).
  • Added a new binding option called "views.map.showMonthsInReverseOrder", which states if the months should be shown in reverse order (defaults to false).
  • Added a new binding option called "views.chart.showInReverseOrder", which states if the chart should be shown in reverse order (defaults to false).
  • Added a new binding option called "views.statistics.showInReverseOrder", which states if the statistics should be shown in reverse order (defaults to false).

Fixes & Improvements:

  • Added "use strict" support internally and updated all public functions to use the new scope.
  • Minor internal refactoring to make reviews a little easier.


Version 2.7.2:

  • Added a new configuration option called "attributeNotValidErrorText", which states the error text that should be shown when a binding object isn't valid (defaults to "The attribute '{{attribute_name}}' is not a valid object.").
  • Added a new configuration option called "attributeNotSetErrorText", which states the error text that should be shown when a binding attribute isn't set (defaults to "The attribute '{{attribute_name}}' has not been set correctly.").
  • The "unload" window event has been replaced with "pagehide" (due to "unload" being deprecated).


Version 2.7.1:

  • Added missing translation "objectErrorText" to all translation files.
  • When a Heat.js instance is created for a DOM element, any existing classes on the element are now maintained (allowing custom CSS classes to be used).
  • All default parameters are now read more accurately and apply the correct defaults.
  • When the binding option "showOnlyDataForYearsAvailable" is set to true, if the first/last year is selected, the Back/Next buttons are now disabled.


Version 2.7.0:

Binding Options:

  • Added a new binding option called "showOnlyDataForYearsAvailable", which states if only data for years available is shown (including in the selector, defaults to false).
  • Added a new binding option called "showHolidaysInDayToolTips", which states if the holidays should be shown in the regular day tooltips (defaults to false).

Configuration Options:

  • Added new configuration option "objectErrorText", which states the error text that should be shown when an object error is detected (defaults to "Errors in object: {{error_1}}, {{error_2}}").

UI Changes:

  • The current year in the years drop-down list now uses a slightly different style to make it stand out.

Fixes & Improvements:

  • Fixed a minor formatting issue in the "package.json" file.


Version 2.6.1:

  • Minor documentation updates.


Version 2.6.0:

Binding Options:

  • Added a new binding option called "views.statistics.showRangeNumbers", which states if the range counts should be shown in the lines (defaults to false).
  • BREAKING: Renamed the binding option "mapTogglesEnabled" to "colorRangeTogglesEnabled".

Public Functions:

  • Added a new parameter called "exportType" to the "export()" public function, which states the export type to use (defaults to "csv", also accepts "json", "xml", and "txt").

General Improvements:

  • Removed replicated code and added constants to specific characters used for string building.

Documentation:

  • Minor documentation improvements.

Fixes:

  • Fixed a fault in the public function "moveToCurrentYear()" which caused the binding option "yearsToHide" to be ignored.
  • Fixed a fault in the public function "setYearToHighest()" which caused the binding option "yearsToHide" to be ignored.
  • Fixed a fault in the public function "setYearToLowest()" which caused the binding option "yearsToHide" to be ignored.
  • Fixed a fault in the public function "setYear()" which caused the binding option "yearsToHide" to be ignored.
  • Fixed a fault that allowed the data pull timer to continue running when the public function "destroy()" is called.
  • Fixed a fault that allowed the data pull timer to continue running when the public function "destroyAll()" is called.
  • Fixed a fault that caused a script error to occur when setting the view to "chart" manually and the view is disabled.
  • Fixed a fault that caused the wrong menu item to be selected for the active view when one of the views was disabled.


Version 2.5.0:

Binding Options:

  • Added a new binding option called "views.map.showNoDataMessageWhenDataIsNotAvailable", which states if the no-data message should be shown instead of empty days when no data is available (defaults to false).

Configuration Options:

  • Added a new configuration option called "noMapDataMessage", which states the message that should be shown on the map view when there is no data (defaults to "There is currently no data to view.").

Binding Options - Custom Triggers:

  • Added a new binding option custom trigger called "onClear", which states an event that should be triggered when a date is cleared for an element.
  • Added a new binding option custom trigger called "onUpdate", which states an event that should be triggered when a date is updated for an element.

Public Functions:

  • Added a new public function "clearDate()", which will clear a date for a specific element and refresh the UI.
  • Added a new public function "updateDate()", which will update a date for a specific element and refresh the UI.

Translations:

  • Added translation support for Frisian (fy).
  • Added translation support for Sinhalese (si).
  • Added translation support for Tagalog (tl).
  • Added translation support for Tamil (ta).
  • Added translation support for Taiwanese (zh-tw).
  • Added translation support for Telugu (te).

UI Changes:

  • The types/descriptions column in the guide footer now auto-fills the remaining space (and the toggle buttons on the right fit to its content size).

Documentation:

  • Minor documentation improvements.


Version 2.4.0:

New Features:

  • Added holiday support! When set, the days are shown differently in the UI, and excluded from the statistics!
  • Added data pulling support! This will pull data in using a custom trigger, which in turn disables all manual data adding/removing, and local storage support.

Binding Options:

  • Added a new binding option called "holidays", which states the holidays that should be shown in the views (defaults to []).
  • Added a new binding option called "dataFetchDelay", which states how long the data fetching should wait (in milliseconds) until its next pull (defaults to 60000).
  • Added a new binding option called "views.statistics.useColorRangeNamesForLabels", which states if the color range names should be shown instead of the minimum for the X labels (defaults to false).

Binding Options - Custom Triggers:

  • Added a new binding option custom trigger called "onDataFetch", which states an event that should be triggered when data a data pull is requested (it returns the data).

Color Ranges:

  • Added a new property called "name", which states a unique name that should be used for the Color Range (optional).

General Improvements:

  • Improved the defaults and reading of the binding option "colorRanges".
  • Internal refactoring to update the naming used for some of the functions/variables.
  • The public function "updateOptions()" will now only update the display if something in the options has been changed.
  • The public function "setConfiguration()" will now only update the configuration (and refresh the displays) if something in the configuration has been changed.
  • All public functions now only accept the right variable types for data (to prevent issues from occurring).

Documentation:

  • Moved "COLOR_RANGE.md" into "docs/binding" and fixed the documentation (was very outdated and would not have worked).


Version 2.3.0:

New Features:

  • Added a new "Import" button to the title bar, which will allow you to import JSON files (off by default).
  • Added import from TXT support (via drag & drop, or the new import button).

Binding Options:

  • Added a new binding option called "showNumbersInGuide", which states if the color range numbers should be shown in the guide (defaults to false).
  • Added a new binding option called "views.chart.showLineNumbers", which states if the activity counts should be shown in the lines (defaults to false).
  • Added a new binding option called "showImportButton", which states if the "Import" button should be shown (defaults to false).

Configuration Options:

  • Added a new configuration option called "importButtonText", which states the text that should be shown for the "Import" button (defaults to "Import").

Fixes:

  • Fixed a fault that caused longer month names to mess up the "Map" view (ellipsis is now used for the month name text).
  • Fixed a fault that caused the tooltip to remain visible when the UI is refreshed.


Version 2.2.0:

New Features:

  • Export to TXT support!

Binding Options:

  • Added a new binding option called "yearsToHide", which states the years that should be hidden (defaults to []).
  • Added a new binding option called "showLessAndMoreLabels", which states if the "Less" and "More" labels are shown (defaults to true).

Binding Options - Custom Triggers:

  • Added a new binding option custom trigger called "onStatisticClick", which states an event that should be triggered when a statistic value is clicked.

Public Functions:

  • Added a new public function "updateOptions()", which will update the original binding options for an element and refresh it.

UI Changes:

  • When switching views, the target view now fades in (a much smoother display).
  • The description link now opens in a new window/tab instead of the current one.
  • If a Chart/Statistic bar is 0 in height, it is now hidden (prevents little borders from appearing across the chart baseline).

Fixes:

  • Fixed a minor README.md error.
  • Fixed a fault that prevented the "onExport" custom trigger from firing when the public function "export()" is called.


Version 2.1.1:

  • Fixed errors in the "PUBLIC_FUNCTIONS.md" documentation.
  • Updated "README.md" and "README_NUGET.md" documentation.
  • Fixed the years drop-down list triggering the custom trigger "onNextYear" instead of "onSetYear".
  • Fixed a fault that caused the class of the main container to be constantly reset whenever the view/data changes.
  • Fixes to spacing used in the documentation.


Version 2.1.0:

New Features:

  • Added file-dropping support to all views, which allows exported JSON data to be re-imported to the currently selected trend type.

Binding Options:

  • BREAKING: Renamed the binding option "noTypesLabel" to "descriptionText", and updated documentation.
  • BREAKING: Renamed the binding option "noTypesLabelLink" to "descriptionTextLink", and updated documentation.
  • Added a new binding option called "allowFileImports", which states if file importing via drag & drop is enabled (defaults to true).

Binding Options - Custom Triggers:

  • Added a new binding option custom trigger called "onImport", which states an event that should be triggered when data is imported.

Public Functions:

  • The public function "setConfiguration()" now has an additional parameter called "triggerRefresh" (defaults to true), which will force refresh all rendered maps.

UI Changes:

  • The "descriptionText" binding option text is now shown no matter if trend types are used (if they are used, the description text is shown above the buttons).

Fixes:

  • Fixed the "box-sizing" rules not being applied to the main container (causing width issues in mobile mode).
  • Fixed the "box-sizing" rules not being applied to the tooltip (causing width issues in mobile mode).
  • Fixed a fault that caused all pre-configured settings to be wiped out when calling "setConfiguration()".


Version 2.0.0:

New Features:

  • BREAKING: All binding options that affect the views and how they look are now split up into categories under a new "views" area.
  • Added support to disable the "Chart" and "Statistics" views.
  • Added local storage persistent support! This will allow data added/removed between browser usages to be remembered.
  • Added support to show different colors in the "Map", "Chart" and "Statistics" views (see documentation).
  • Added support for 5 new languages!
  • Added 6 new themes!

Breakdown:

Binding Options:

  • BREAKING: Renamed the binding option "mapRangeColors" to "colorRanges" (more consistent with the project), and updated documentation.
  • Added a new binding option called "views.statistics.showColorRangeLabels", which states if the chart X color range labels should be shown (defaults to true).
  • Added a new binding option called "views.chart.enabled", which states if the "Chart" view is enabled (defaults to true).
  • Added a new binding option called "views.statistics.enabled", which states if the "Statistics" view is enabled (defaults to true).
  • Added a new binding option called "useLocalStorageForData", which states if data added/removed should be remembered in local storage (defaults to true).
  • Added a new binding option called "views.map.showDaysInReverseOrder", which states if the days of the week should be in reverse order (defaults to false).

Binding Options - Color Ranges:

  • Added a new "colorRanges" binding option called "mapCssClassName", which states a CSS class name to use for items in the "Map" view (overrides the "cssClassName" property).
  • Added a new "colorRanges" binding option called "chartCssClassName", which states a CSS class name to use for items in the "Chart" view (overrides the "cssClassName" property).
  • Added a new "colorRanges" binding option called "statisticsCssClassName", which states a CSS class name to use for items in the "Statistics" view (overrides the "cssClassName" property).

Binding Options - Custom Triggers:

  • BREAKING: Renamed the binding option custom trigger "onMapRangeTypeToggle" to "onColorRangeTypeToggle" (more consistent with the project), and updated documentation.

Configuration Options:

  • Added a new configuration option called "unknownTrendText", which states the text that should be shown for the "Unknown" trend type button (was originally "None").

Translations:

  • Added translation support for Afrikaans (af).
  • Added translation support for Armenian (hy).
  • Added translation support for Belarusian (be).
  • Added translation support for Catalan (ca).
  • Added translation support for Esperanto (eo).

Themes:

  • The default theme now uses a different shade of green for the days, to move the project away from the GitHub style.
  • Added new theme "dist/dark/heat.js.dark.github.theme.css", which shows a dark theme, but with green day colors (the original scheme that looks like GitHub).
  • Added new theme "dist/dark/heat.js.dark.bright-yellow.theme.css", which shows a dark theme, but with day colors set to use the color bright yellow.
  • Added new theme "dist/light/heat.js.light.shamrock-green.theme.css", which shows a light theme, but with day colors set to use the color shamrock green.
  • Added new theme "dist/light/heat.js.light.gamboge.theme.css", which shows a light theme, but with day colors set to use the color gamboge.
  • Renamed the theme "dist/light/heat.js.light.orange.theme.css" to "heat.js.light.bright-orange.theme.css".
  • Renamed the theme "dist/light/heat.js.light.blue.theme.css" to "heat.js.light.neon-blue.theme.css" (with color improvements).
  • Renamed the theme "dist/dark/heat.js.dark.blue.theme.css" to "heat.js.dark.bright-blue.theme.css" (with color improvements).
  • Renamed the theme "dist/dark/heat.js.dark.orange.theme.css" to "heat.js.dark.bright-orange.theme.css" (with color improvements).
  • Added new theme "dist/dark/heat.js.dark.bright-purple.theme.css", which shows a dark theme, but with day colors set to use the color bright purple.
  • Added new theme "dist/light/heat.js.light.bright-purple.theme.css", which shows a light theme, but with day colors set to use the color bright purple.
  • Renamed the theme "dist/dark/heat.js.dark.red.theme.css" to "heat.js.dark.cadmium-red.theme.css" (with color improvements).

CSS:

  • Changed the default value for "--heat-js-border-radius-day" to 0.35rem.
  • Added ":root" variable "--heat-js-day-chart-width", which specifies the width of the bar lines shown in the "Chart" view.
  • Improved the spacing used for the month names in the "Chart" view (they align more with the bars now).
  • Improved the width of the control when additional libraries are not used.

Fixes:

  • Fixed a fault that caused the years drop-down arrow to still appear when the binding option "showYearSelectionDropDown" is set to false.
  • Fixed a grammar mistake in the configuration option "noStatisticsDataMessage".
  • Fixed the configuration option "noStatisticsDataMessage" being missing from all translation files.
  • Fixed the default trend type text "None" being missing from all translation files (now configuration, and renamed to "Unknown").
  • Fixed the public functions "addDates()" and "removeDates()" trigger an extra custom trigger (onAdd and onRemove).
  • Fixed some naming mistakes in the markup/code documentation.


Version 1.9.2:

  • Updated the README documentation.
  • Added a "visible" property to the binding option configuration "mapRangeColors", which will allow you to set the visible ranges on load.
  • Added a new binding option custom trigger called "onMapRangeTypeToggle", which states an event that should be triggered when a map range's visible state is toggled on/off.
  • Added a new binding option called "noTypesLabelLink", which states a link that should be used for the "noTypesLabel" label (defaults to null).


Version 1.9.1:

  • The Chart/Statistics views now hide the margin-left of the first bar when displayed in mobile view.
  • The years drop-down list now scrolls to the active year when first opened (or after the year is changed).
  • Fixed some spelling mistakes in the main "src" JS file.
  • Added install instructions into the main README files.
  • Added Chinese (simplified) translation improvements (thank you @ziqiangai).


Version 1.9.0:

New Features:

  • Export to XML support!

Binding Options:

  • Updated the binding option "tooltipDelay" to have a default value of 750, instead of 1000.

View: Statistics:

  • The bars shown in the view now show a tooltip, which shows the total count for each range type.

Public Functions:

  • Added a new public function "switchView()", which will switch the current view for any rendered element.
  • Added a new public function "switchType()", which will switch the selected trend type for any rendered element.

General Improvements:

  • The drop-down menus for the title bar/years list now fade in when shown.
  • The tooltips shown throughout the display now fade in when shown.
  • Added Math injection directly into the main instance.
  • Added JSON injection directly into the main instance.
  • Added Chinese (simplified) translation improvements.
  • Updated the project description.
  • The entire display now uses the same font, either when an extra library is installed or not.

CSS:

  • Added a new ":root" variable called "--heat-js-default-font".
  • Added a new ":root" variable called "--heat-js-animation-length".
  • Added a new ":root" variable called "--heat-js-color-snow-white".
  • Added a new ":root" variable called "--heat-js-years-text-color-hover".
  • Added a new ":root" variable called "--heat-js-title-text-color-hover".
  • Added a new ":root" variable called "--heat-js-button-text-color-hover".
  • Added a new ":root" variable called "--heat-js-button-text-color-active".
  • Added a new ":root" variable called "--heat-js-text-bold-weight-active".

Fixes:

  • Fixed the year's list having extra padding around the left, right, and bottom, which caused the menu to stay open longer when the mouse left the menu.
  • Fixed the "Chart" view lines being positioned using "margin-left" instead of just "left".
  • Fixed some errors in the documentation and added data that was missing.
  • Fixed a fault that caused exporting data in JSON to ignore the binding option "exportOnlyYearBeingViewed".
  • Fixed a fault that caused the "Map" view to render the days in the wrong places when the binding option "daysToShow" is configured to show fewer days.
  • Fixed a fault that caused the "Statistics" view to show data for Days/Months that are hidden via the binding options configuration.
  • Fixed a fault that caused the month names in the "Chart" view to be shown in the wrong position when months are hidden via the binding options configuration.
  • Fixed an extra loop occurring overall data when exporting.
  • Fixed the "heat.js.nuspec" file including the ".github" folder when NuGet PACK is called.


Version 1.8.3:

  • The default text color shown in the default dark theme is now slighter darker.
  • Minor code organisation improvements.
  • The month names shown in the Map view now use an ellipsis when larger text is shown (for translations).


Version 1.8.2:

  • Added translation support for Hebrew (he).
  • Added translation support for Indonesian (id).
  • Added translation support for Estonian (et).
  • Added translation support for Icelandic (is).
  • Added translation support for Nepali (ne).
  • Added translation support for Thai (th).
  • Added translation support for Slovenian (sl).
  • Added translation support for Farsi (fa).
  • Added translation support for Slovak (sk).
  • Added translation support for Luxembourgish (lb).
  • Added translation support for Irish (ga).
  • Added translation support for Galician (gl).
  • Added translation support for Malay (ms).


Version 1.8.1:

  • Fixed some mistakes in the documentation (GitHub only).
  • The statistics view now shows the bars fully using the available width, which will ensure they show up correctly in mobile view.
  • Added translation support for Danish (da).
  • Added translation support for Ukrainian (uk).
  • Added translation support for Dutch (nl).
  • Added translation support for Finnish (fi).
  • Added translation support for Greek (el).
  • Added translation support for Georgian (ka).
  • Added translation support for Korean (ko).
  • Added translation support for Hungarian (hu).
  • Added translation support for Italian (it).
  • Added translation support for Latvian (lv).
  • Added translation support for Lithuanian (lt).
  • Added translation support for Norwegian (no).
  • Added translation support for Romanian (ro).
  • Added translation support for Swedish (sv).
  • Added translation support for Bulgarian (bg).


Version 1.8.0:

New Features:

  • Added a new "Statistics" view, which shows the total count per map range type (in a bar chart).
  • Added label support for the bottom right, which allows you to add a description (when no trend types are used).

Binding Options:

  • Added a new binding option called "noTypesLabel", which states a label that should be shown when no trend types are available (defaults to null).

Configuration Options:

  • Added a new configuration option called "statisticsText", which states the text that should be shown for the "Statistics" label (defaults to "Statistics").
  • Added a new configuration option called "noStatisticsDataMessage", which states the message that should be shown on the chart view when there is no data (defaults to "There is currently no statistics to view.").

Public Functions:

  • Added new public function "getIds()", which will return all the IDs for the elements that have been rendered.
  • Added new public function "resetAll()", which will reset the data for all elements.
  • Added new public function "moveToPreviousYear()", which will move the year back one.
  • Added new public function "moveToNextYear()", which will set move the year forward one.
  • Added new public function "moveToCurrentYear()", which will move the year to the current year.

General Improvements:

  • When the no data messages are shown, all other objects in the DOM element are now removed.

Documentation:

  • Lots of improvements to the documentation.

Fixes:

  • Fixed a fault that caused the Y-axis labels in the chart view to overlap the chart when a larger number is shown.
  • Fixed a fault that caused the sorting order for the map range types to be ignored when custom ones were used.
  • Fixed a fault that caused empty data sets to be exported to CSV files.
  • Fixed a fault that caused the active state for buttons to be shown when the button is disabled.


Version 1.7.1:

  • Fixed documentation errors.
  • Added a new configuration option called "noChartDataMessage", which states the message that should be shown on the chart view when there is no data (defaults to "There is currently no data to view.").
  • Fixed the year's drop-down list not appearing correctly in the chart view when data is available.
  • Fixed the height of the control changing slightly when no data is available and the view is switched.


Version 1.7.0:

New Features:

  • Export to JSON support!

Binding Options:

  • Added a new binding option called "exportType", which states what format the data should be exported as (defaults to "csv", also accepts "json").

Binding Options - Custom Triggers:

  • Added a new binding option called "onViewSwitch", which states an event that should be triggered when the view is switched.

Public Functions:

  • Added new public function "export()", which will export all the data for a specific element ID.

Themes:

  • The theme files are now organised into "dark" and "light" folders.
  • Added new theme "dist/dark/heat.js.dark.red.theme.css", which shows a dark theme, but with red day colors.
  • Added new theme "dist/dark/heat.js.dark.blue.theme.css", which shows a dark theme, but with blue day colors.
  • Added new theme "dist/dark/heat.js.dark.orange.theme.css", which shows a dark theme, but with orange day colors.
  • Added new theme "dist/light/heat.js.light.blue.theme.css", which shows a light theme, but with blue day colors.
  • Added new theme "dist/light/heat.js.light.orange.theme.css", which shows a light theme, but with orange day colors.
  • Renamed the theme "heat.js.light.theme.css" to "dist/light/heat.js.light.red.theme.css".

CSS:

  • Added a new ":root" variable called "--heat-js-title-opener-text-color-hover", which states the text hover color that should be used for the drop-down menu openers.


Version 1.6.4:

  • Fixed a fault that caused the "onNextYear" custom trigger to fire when the view is switched.


Version 1.6.3:

  • Increased the width of the bars shown in the chart view to 10 pixels.
  • Added a top left/right border-radius to the bars shown in the chart view.


Version 1.6.2:

  • Added hover effect for the guide day toggles that are turned off.
  • Fixed package keywords and descriptions being wrong.


Version 1.6.1:

  • Fixed a fault that prevented the tooltips from showing when click events are not assigned, or the map toggles are turned off.
  • Removed more duplicate code.
  • Removed a manual setter for the position of the day names in the map view (when the month names are at the bottom).


Version 1.6.0:

New Features:

  • Added custom tooltip support! Tooltips will continue to show as normal, but you can now style when using the new ":root" variables.

Binding Options:

  • Added a new binding option called "tooltipDelay", which states how long the tooltip should wait (in milliseconds) until it's shown (defaults to 1000).

Public Functions:

  • Added new public function "addDates()", which will add an array of dates (saves all addDate() each time).
  • Added new public function "removeDates()", which will remove an array of dates (saves all removeDate() each time).

CSS:

  • Added an extra bit of spacing before the first bar in the chart view.


Version 1.5.2:

  • Removed a manual margin setter when the month names are shown at the bottom of the map view.
  • In the Chart view, if a day does not have a valid value, the default background/border color (as shown on the Map view) is now shown.


Version 1.5.1:

  • Fixed an error in the binding option custom triggers documentation.
  • Fixed the chart view showing the border at the bottom of each bar.
  • Fixed the binding option "showMonthNames" not being used for the chart view.
  • Added extra values for the Y axis on the chart view (now shows five values in total).
  • Removed dead code that is no longer needed.
  • Fixed the overflow CSS properties for the chart and map being the wrong type.
  • Added a new binding option called "showChartYLabels", which states if the chart Y axis labels should be shown (defaults to true).
  • Added arrows to the title and year text in the title bar (to help show that a drop-down menu is available for each).


Version 1.5.0:

New Features:

  • Added chart support! This view can be shown using a new menu available from the title bar!

Binding Options:

  • Added a new binding option called "view", which states the view that should be shown by default (defaults to "map", also accepts "chart").

Binding Options - Custom Triggers:

  • Added a new binding option called "onAdd", which states an event that should be called when new dates are added.
  • Added a new binding option called "onRemove", which states an event that should be called when dates are removed.
  • Added a new binding option called "onReset", which states an event that should be called when all data for an element is reset.

Configuration Options:

  • Added a new configuration option called "mapText", which states the text that should be shown for the "Map" label (defaults to "Map").
  • Added a new configuration option called "chartText", which states the text that should be shown for the "Chart" label (defaults to "Chart").

CSS:

  • Decreased the height of the year's drop-down list slightly.
  • Added snap to scroll support for the year's drop-down list.

General Improvements:

  • All rendering areas are now sectioned in the JS code.
  • The year currently selected in the view is now shown in the year drop-down list.


Version 1.4.0:

New Features:

  • The year text (shown between the back/next buttons) now shows a drop-down list of years that can be selected.

Binding Options:

  • Added a new binding option called "keepScrollPositions", which states if the scroll positions should be maintained when the map is redrawn (or moving year to year, defaults to false).
  • Added a new binding option called "extraSelectionYears", which states the extra years that should be included in the year drop-down list (defaults to 50).
  • Added a new binding option called "showYearSelectionDropDown", which states if the year selection drop-down menu is shown (defaults to true).

Public Functions:

  • Added new public function "render()", which will render a heat map on a specific DOM element using the options you specify.
  • Added new public function "setYearToHighest()", which will set the year being displayed for a heat map DOM element to the highest available.
  • Added new public function "setYearToLowest()", which will set the year being displayed for a heat map DOM element to the lowest available.

CSS:

  • Added a new ":root" variable "--heat-js-text-bold-weight", which states the font weight to use for all text (now 400).
  • Added a new ":root" variable "--heat-js-title-bold-weight", which states the font weight to use for the title text, and the year (set to 800).

General Improvements:

  • Removed the possibility that a binding option can override access to the element.

Documentation:

  • Improved the documentation to show which public functions fire custom triggers (and which ones).


Version 1.3.0:

Binding Options:

  • Added a new binding option called "showDayNumbers", which states if the activity counts should be shown in the days (defaults to false).

Binding Options - Custom Triggers:

  • Added a new binding option called "onDayToolTipRender", which states an event that should be called for custom rendering the tooltip for a specific day.

Public Functions:

  • Added new public function "renderAll()", which will find all new DOM elements with the "data-heat-js" attribute and render them.

CSS:

  • Added new ":root" variable "--heat-js-day-color-1-text-color".
  • Added new ":root" variable "--heat-js-day-color-2-text-color".
  • Added new ":root" variable "--heat-js-day-color-3-text-color".
  • Added new ":root" variable "--heat-js-day-color-4-text-color".
  • Added an ":active" state for days (now shows a slightly different opacity).

Fixes:

  • Fixed a fault that allowed the hover/active CSS states to still be shown when no event is assigned to the days.


Version 1.2.1:

  • Fixed a minor fault that caused the month names to be centred.
  • Fixed the day name labels shown on the right, so are now the same height/margin as the days, allowing them to align correctly.
  • Added new ":root" variable "--heat-js-border-size-day", which states the size to use the days/day name heights.
  • Fixed the day name labels not being aligned to the middle vertically.
  • Increased the default size of the days from 0.85rem to 1.1rem.
  • The day names are now hidden in mobile view.
  • The type/guide toggles are now stacked in mobile view and centred (make them much easier to access and see).
  • The export/refresh buttons are now hidden in mobile view.
  • Added new ":root" variable "--heat-js-button-text-color", which will allow you to override the button text colors.
  • The light mode theme buttons now use a darker background color (so they stand out).
  • Added the button margin back in for the test files.
  • Documentation improvements.


Version 1.2.0:

Themes:

  • Added a new folder under "dist" called "themes", which will house all the default theme files.
  • Added a new light theme called "heat.js.light.theme.css".

Binding Options:

  • Added a new binding option called "year", which states the year that should be shown when the heat map is rendered for the first time (defaults to current year).

CSS:

  • Increased the margin under the title bar.
  • Decreased the margin used around the "type" buttons shown in the guide.
  • Removed the "margin-right" CSS property for the last days in the last month.
  • Added an ":active" state for all buttons (now shows a slightly lighter background color).
  • Removed replicated HEX colors (all now reference the original ":root" variable).
  • Added an ":active" state for less/more toggles (now shows a slightly darker text color).
  • Added new ":root" variable "--heat-js-day-opacity-hover", which states the opacity to use for days when they are hovered.
  • All hover transition effects now work for hovering, and not hovering, which results in a smoother display.
  • Added new ":root" variable "--heat-js-day-color-1-background-color".
  • Added new ":root" variable "--heat-js-day-color-2-background-color".
  • Added new ":root" variable "--heat-js-day-color-3-background-color".
  • Added new ":root" variable "--heat-js-day-color-4-background-color".
  • Added new ":root" variable "--heat-js-day-color-1-border-color".
  • Added new ":root" variable "--heat-js-day-color-2-border-color".
  • Added new ":root" variable "--heat-js-day-color-3-border-color".
  • Added new ":root" variable "--heat-js-day-color-4-border-color".

General Improvements:

  • Removed a large amount of duplicated code.

Fixes:

  • Fixed a fault that prevented decimal values for CSS margins from being converted correctly.
  • Fixed broken documentation links.


Version 1.1.0:

Translations:

  • Added a new folder under "dist" called "translations", which will house all the translations files for languages supported.
  • Added support for the following languages:
    1. Arabic
    2. Bengali
    3. Chinese (simplified)
    4. English
    5. French
    6. German
    7. Hindi
    8. Japanese
    9. Polish
    10. Portuguese
    11. Spanish
    12. Turkish


Version 1.0.0:

Binding Options:

  • Added a new binding option called "exportOnlyYearBeingViewed", which states that only the data for the year being viewed should be exported (defaults to true).

Binding Options - Custom Triggers:

  • An on click event is now only assigned to the days when the binding custom trigger "onDayClick" is set.

CSS:

  • Split up the SCSS file into sections.

Fixes:

  • Fixed a fault that caused the trend type buttons to be hidden when the binding option "showGuide" is set to false.
  • Fixed a fault that caused "undefined" to be passed to the "count" parameter for the binding custom trigger "onDayClick".
  • Fixed HTML files using the wrong formatting for meta, and imports being missing.

Documentation:

  • Improved documentation in the main README files.


Version 0.9.0:

Binding Options:

  • Added a new binding option called "placeMonthNamesOnTheBottom", which states if the month names should be placed at the bottom (defaults to false).

Binding Options - Custom Triggers:

  • Added a new binding option called "onTypeSwitch", which states an event that should be triggered when the trend type being viewed is switched.

General Improvements:

  • When the binding option "showMonthDayGaps" is set to true, gaps are now always shown between the months (even if the first day is a Monday).

CSS:

  • The buttons will no longer show a focused outline effect when Bootstrap is being used.
  • Added new ":root" variable "--heat-js-day-border-color", which states the border color to use for the days.
  • Added new ":root" variable "--heat-js-day-spacing", which states the spacing to use for the days (now all even).
  • Improved the spacing around the main buttons.


Version 0.8.0:

Binding Options:

  • Added a new binding option called "mapTogglesEnabled", which states if the map toggles are enabled (defaults to true).

Binding Options - Custom Triggers:

  • Added a new binding option called "onSetYear", which states an event that should be triggered when the year is manually set.

Public Functions:

  • Added new public function "setYear()", which will set the year being displayed for a heat map DOM element.
  • Added new public function "getYear()", which will return the year being displayed.

General Improvements:

  • The heat map layout is now fully responsive with mobile and tablet views.
  • When exporting the map details, the type selected is now included in the filename (if types are available).


Version 0.7.0:

  • BREAKING: All ":root" variables now start with "--heat-js-", which will prevent collisions with other libraries.
  • Updated project homepage URL.


Version 0.6.1:

  • Fixed documentation in the README files.


Version 0.6.0:

New Features:

  • Trend types support! This allows you to add data for various trend types, which can then be toggled in the guide under the map!

General Improvements:

  • The "More" and "Less" labels can now be clicked, which will toggle all map range colors on/off.

CSS:

  • Renamed the "year" CSS class to "title-bar".

Fixes:

  • Fixed the entire heatmap rendering slightly incorrectly when bootstrap is not available.


Version 0.5.1:

  • Fixed a fault that allowed date counts to go into negative values (when calling "removeDate()").
  • Minor code improvement for future work plans.


Version 0.5.0:

New Features:

  • The heat map can now export all data to a CSV file (off by default).

Binding Options:

  • Added a new binding option called "showMonthNames", which states if the month names should be shown (defaults to true).
  • Added a new binding option called "showExportButton", which states if the "Export" button should be shown (defaults to false).

Binding Options - Custom Triggers:

  • The binding option "onDayClick" now has two parameters: Date, Count.
  • Added a new binding option called "onExport", which states an event that should be triggered when heatmap data is exported.

Configuration Options:

  • Added a new configuration option called "exportButtonText", which states the text that should be shown for the "Export" button (defaults to "Export").
  • Added a new configuration option called "dateText", which states the text that should be shown for the "Date" CSV header (defaults to "Date").
  • Added a new configuration option called "countText", which states the text that should be shown for the "Count" CSV header (defaults to "Count").

CSS:

  • Added some spacing between the "Back" button and the "Refresh" and "Export" buttons.

General:

  • Updated the project description.


Version 0.4.0:

New Features:

  • The heat map colors that are displayed can now be toggled on/off by clicking the associated color in the guide.

Binding Options - Custom Triggers:

  • Added a new binding option called "onDestroy", which states an event that should be triggered when a heatmap is destroyed.
  • Added a new binding option called "mapRangeColors", which works as it did before, but can now be set per heatmap.
  • Added "id" support for "mapRangeColors", which states a unique identifier to use for the color item (optional).
  • Added "tooltipText" support for "mapRangeColors", which states the tooltip text to use for the color item in the guide (optional).

Configuration Options:

  • Removed the configuration option called "mapRangeColors".

Public Functions:

  • Added new public function "destroy()", which will revert a heatmap DOM element to its original state.
  • Added new public function "destroyAll()", which will revert all heatmap DOM elements to their original state.

CSS:

  • Added a new ":root" variable called "--border-size-day", which states the border size for the days shown in the heatmap (now slightly thicker).
  • Added hover effects to the day CSS classes "div.day-color-*".


Version 0.3.0:

Binding Options:

  • Added a new binding option called "showMonthDayGaps", which states if the gaps between the days in each month should be shown (defaults to true).
  • Added a new binding option called "showRefreshButton", which states if the "Refresh" button should be shown (defaults to false).
  • Added a new binding option called "daysToShow", which states the days that should be shown (defaults to [1, 2, 3, 4, 5, 6, 7]).

Configuration Options:

  • Added a new configuration option called "refreshButtonText", which states the text that should be shown for the "Refresh" button (defaults to "Refresh").

CSS:

  • Added slightly darker borders around the default day CSS classes "div.day-color-*".

Fixes:

  • Fixed the binding option "monthsToShow" not being read when set.
  • Fixed the CSS classes "div.day-color-*" being in the opacity order.
  • Fixed a major fault that prevented the heat map from showing the other CSS classes for days correctly.


Version 0.2.0:

Binding Options:

  • Added a new binding option called "dayToolTipText", which states the tooltip text that should be shown for a day.

Binding Options - Custom Triggers:

  • Added a new binding option called "onRefresh", which states an event that should be triggered when a heatmap is refreshed.
  • Added a new binding option called "onBeforeRender", which states an event that should be triggered before an element is rendered.
  • Added a new binding option called "onRenderComplete", which states an event that should be triggered after an element is rendered.

Public Functions:

  • Added new public function "removeDate()", which will remove a specific date from a heat map (or decrease the date if more than one exists).
  • Added new public function "reset()", which will remove all the dates from a heat map.

Documentation:

  • Improved documentation in the main README files.
  • Fixed some spelling/grammar mistakes.


Version 0.1.0:

  • Everything :)