- [refactor] - Move all plugins to their own repositories in https://github.com/cal-heatmap/
- [fix] fix call signature of on(...) to allow a function with arguments (@terencehonles)
- [fix] Add non-null asserts to min/max function usage (@Uzaaft)
- [chores] Dependencies update
- [fix] Fix error when using with typescript
noUnusedParameters
options
- [chore] Dependencies update
- [fix] fix invalid dayjs locale import from nodejs
- [fix] Add support for SSR
- [feat] dataset values should accept string type
- [feat] extract DomainSubLabel into a plugin
- [feat] allow multiple instances of same plugin to co-exist
- [feat] refactor all CSS classnames, for a more consistent naming
- [feat] add defaultValue option to set a default value for missing values in dataset
- [fix] fix remaining wrong templates name, which should be migrated to snakeCase
- [fix] fix CalendarLabel missing coordinates on repaint
- [fix] fix missing dark theme style for Legend plugin
- All CSS classname have been refactor, plase update your CSS if required
domain.subLabel
option has been extracted toCalendarLabel
plugin
- [feat] add github-like day subdomain template
- [feat] add safeguard and error message when Domain/SubDomain couple is not valid
- [fix] DomainSubLabel vertical position ignoring padding and label position
- [fix] rename subDomain template, for consistency
- [fix] fix plugins export from package.json
See all previous changelogs from v4.0.0-beta.1 though 12
- [feat] add legend lite plugin
- [chore] CSS file is not exported from the package
- [refactor] extract variables to constant file
- [refactor] improve typescript definition
- [feat] data source URI now accepts dayjs format token (BREAKING CHANGES)
- [feat] add support for RTL
- [fix] fix missing data when subDomain range is overflow the domain range
- [fix] fix cells stroke cut off on calendar edge
- [fix] week subDomain where first and last week not assigned to correct month
- [fix] scale color and opacity should always be clamped to the domain
- Improve typescript d.ts
- [fix] fix en locale always loaded instead of user defined custom locale
- [feat] dark/Light mode option can be toggled via an option
- [fix] fix legend UI, where dimension where bigger than expected
- [fix] remove legend background to support dark/light mode
- [feat] add support for opacity scale
- [fix] fix dataset shifted by one day due to timezone
- Dependencies update
- [feat] add API to extend/inject custom dayjs locale
- [fix] keep default text color when subDomain do not have value
- [fix] fix ignored subDomain.color option
- [feat] add CSS support for dark theme
- [tests] Refactor tests to test only against the minimum browser version
Momentjs have been replaced by the more lighter day.js, slimming down the bundle by 75%. Timezone support is now a built-in function, instead of a plugin.
- Some refactoring, so that
d3-array
is not a required depency anymore - Avoid redundant calls to dayjs initializer
- Do not process data irrelevant to the calendar current time window
- Locales will be loaded asynchronously by the calendar itself
- Add new
extendDayjs()
method to extend dayjs with a plugin, as it's built-in with the minimum number of plugins
This migration required further tests, to ensure listed browser support is met.
- Dayjs is having some performance issues when using the timezone plugin (iamkun/dayjs#2019).
- [fix] Fix #293 Tooltip default date should use same timezone as calendar
- [fix] Fix #297 Ignore date.min and date.max when invalid
- Template can now inherit from another template via
parent
property
- [chores] Dependencies update
- [chores] Add more typescript
- [tests] Refactor JSDom tests to be compatible with real browsers
- [tests] Tests with various browsers (version/os/device), via browserstack, see browser-support.md for browsers matrix
- [fix] Fix #286 Uncaught TypeError: Cannot set properties of undefined (setting 'range')
V4 is a complete rewrite from the ground up. See the Migration guide if migrating from v3.x
-
[new] New SubDomainTemplate module, to create your own custom subDomains
-
[new] New plugin system, to extend calendar function
-
[new] New opt-in Timezone plugin, to add timezone support (depends on MomentJS-Timezone)
-
[new] Legend has been extracted as an opt-in plugin
-
[new] Tooltip has been extracted as an opt-in plugin (depends on @popperJS)
-
[new] Fix #249 Day label
-
[new] Fix #111 (Request) Reverse domain order
-
[new] Fix #241 Any way to determine size
-
[new] Fix #162/#163 added onResize event
-
[new] Fix #265 Accessing click event from onClick
-
[new] Fix #164 Customize interval
-
[new] Fix #194 Add
afterUpdate()
callback -
[new] Fix #234 Pass custom headers to XHR request
-
[new] Fix #216 Question about Label Values - Why not aware of data?
- [fix] Fix #229 Calling
update()
without arguments refresh the calendar with original data - [fix] Fix #154 Tooltip does not align
- [fix] Fix #158 Dynamically changing properties set during init()
- [fix] Fix #134 Navigation Issue with Next and previous functionality
- [fix] Fix #189 Tooltips appearing in the wrong place
- [fix] Fix #131 tooltip contained by {overflow:hidden / auto} not fully displayed
- [fix] Fix #266 interpolateHcl produces colors that are hard to understand
- [fix] Fix #82 Add callbacks for mouseover and mouseout
- [fix] Fix #52 Parsing data leads to undefined index
- [fix] Fix #171 cal.previous not working properly
- [fix] Fix #95 Calendar start and end date are not correctly generated
- [fix] Fix #169 added a callback when showing tooltips to customize contents
- [fix] Fix #91 Add 'middle' value for legend
- [fix] Fix #186 keep styling on q{n} selectors when value transition
- [fix] Fix #257 displaying value/data from json
- [fix] Fix #115 no date past 08
- [fix] Fix #220 Moved format function in library implementation
- [fix] Fix #87 Fix Year > Weeks aligning issue
- [fix] Fix #223 Fix an issue the max color becomes black when legend starts with 0
- [fix] Fix #190 Ajax requests sent twice
- [fix] Fix #90 Fix Legend colors/values not working properly
- [fix] Fix #100 Responsive cal-heatmap
- [fix] Fix #238 Aggregated Day/Week view?
- [fix] Fix #260 Cross off date possible with two subDomainTextFormat?
- [fix] Fix #176 Responsive view for Cal-heatmap chart
- [fix] Fix #127 Legend range labels display constantly - not hover dependent (feature request)
- Code base rewritten in typescript
- Code base rewritten in ES6 modules
- Build tool changed from Grunt to Rollup
- EMS/UMD bundle are now handled by a rollup plugin
- Code standard have been updated
- Build files are now located in
dist
folder, and not versioned anymore
- [change] Update D3js library to v7 (latest)
- [new] MomentJS is now a required dependency
- [change] All callbacks methods have been removed, and replaced by a node-like EventListener
- [change] The whole
options
object given toinit()
has been refactored, and all options have been renamed for consistency - [change] The opinionated expected data format have been removed, and now expect any array of object, like d3js
- [change]
init()
method has been renamed topaint()
- [change] As
paint()
can now be called multiple times to update the options dynamically, a couple of redundant methods have been removed - [removed] All CSS classes used for data coloring have been removed
- [removed] All the
x_
subDomains variants aside fromx_day
have been removed
- [fix] Fix #217 Month domain and week subdomain not working when week start set to sunday
From now, 3.x branch will only include bugfixes, all new features will go to 4.x branch
- [fix] Fix #207 Locking d3.js version to v3.x
- [fix] Fix #183 Fix/add now without highlight
- [fix] Update all references to github account new username
- [fix] Fix #156 Remove trailing comma in object literal
- [fix] Fix #161
domainDynamicDimension
not working with x_week subdomain
- [fix] Fix #74: Let
empty
target cells with no data
- [fix] Fix #97 Make "class" of all elements more dedicated
- [fix] Fix #93 Tooltip position due to legendOffset and domainLabel
- [fix] Fix #89 Add a
.future
class to future subdomain cells - [fix] Fix false error output when no callback passed to
destroy()
- [fix] Fix #84 Fixing highlighting for week subdomain (Dominic Barnes)
- [new] Fix #85 Adding some CommonJS as well as Component support (Dominic Barnes)
- [fix] Fix #107 Fix connectors for week/month/year (Andreas Jaggi)
- [change] Use NPM to install jquery and qunit dev dependencies
- [fix] Fix #57 display data values in subdomain
- [fix] Fix #69 the 'now' and 'highlight' classes are not applied to subdomain text
- [new] Only consider entries less than now (in the subdomain) as zero, when considering null as zero (Peter Schwarz)
- [change] Remove sourcemaps comment in js
- [fix] Fix #58 Legend colors are shifted
- [fix] Fix #62 Bug when calendar container already have a style attribute
- [new] Fix hidden day cells for leap year in some domain/subDomainc configuration
- [fix] Allow other data type to be passed to
data
- [fix] Fix DST for time change occuring other than midnight
- [new] Add
rewind()
method to navigate the calendar back to the starting date - [change] Code improvement and cleaning
- [fix] Fix
getSVG()
not returning all needed classes
- [new] Add
destroy()
method
- [new] Add
highlight()
method to change highlighted date after calendar initialization - [new] CSV files works out-of-the-box, as long as the first 2 columns are the timestamp and value.
- [change] Fatal errors throws errors intead of a simply console.log()
- [fix] Fix bug when trying to load plain text file as datasource
- More test and code improvement
- [fix] Fix #47: Increase d3 version dependency
- [new] Add tooltip on date hover
- [Fix] Fix #45: Fix loss of htmlClass (e.g. highlight) for graph rects with zero scale
- [fix] Fix broken
afterLoadPreviousDomain
callback
- [new] Add
jumpTo()
method to scroll the calendar to the specified date - [new]
setLegend()
will redraw the legend if some of its settings (cellSize/padding, position, etc ...) were changed - [new] Add
legendColors
setting, to dynamically control the heatmap colors - [new] Add
showLegend()
andremoveLegend()
methods - [new]
next()
andprevious()
now takes an argument, to scroll multiple domains at once - [new] Add
legendOrientation
setting - [new] Add
rowLimit
andcolLimit
setting to control the number of columns and rows in a domain - [fix] Fix #37: two days get summed
- [change] All invalid data (not a number) will be ignored
- [change]
setLegend()
now takes a legend threshold array as first argument, and a color array as second argument
- [fix] Fix #35: Can't load new domain with
next()
when the new domain's timestamp contains more character
- [fix] Fix #33: domain browsing is incrementing the calendar's value when data is a json object
- [fix] Fix #34: Only the newly appended domain can be manipulated by
update()
after callingnext()
orprevious()
- [new] Add
setLegend()
method to redefine legend threshold
- [new] Add
update()
method, to update calendar data. - [improvement] Use d3.js internal methods to bind data to subDomains
- [new] Fix #26: add
considerMissingDataAsZero
option to consider missing value as zero
- [new] Add
minDate
,startDate
to limit domain navigation beyond certain dates - [new] Add
onMaxDomainReached()
andonMinDomainReached()
events, triggered when navigation is hitting the lower/upper domain limit - [change]
next()
andprevious()
will now always returntrue
, as long as there is more domain to load
- [fix] Fix domain month class (
m_x
) beginning atm_0
insted ofm_1
- [new] Add new domain class:
dy_x
for the day of the week
- [fix] Bring back the dynamic domain width/height
- [fix] Fix
day
subdomains displaying garbage when using domain other thanmonth
- [new] Add
domainDynamicDimension
to disable dynamic domain width/height (default: true)
- [fix] Fix domain month when using day subDomain
- [Fix] Fix calendar crashing in IE when using d3.js >= v3.2.4
- [Fix] Fix overflow when adding/removing domains dynamically in IE
- [fix] Fix
subDomainTitleFormat
not applying to subDomain with data
- [fix] Fix
onComplete()
event not firing when loading data from a json object indata
option
- [fix] Add missing files
v3 is a major release, a lot of changes are not backward compatible with v2. See the migration guide for update process.
- [new] Add Vertical orientation
- [new] Add option to display a date inside subDomain cells
- [new] Replace
id
withitemSelector
, and accept any kind of CSS3 selector string - [new] subDomain highlighting can highlight more that today
- [new] domain highlighting
- [new]
nextSelector
andpreviousSelector
to attach domain navigation to any DOM Element - [new] Add
tsv
to accepted dataType - [new] More control about legend position and size
- [new] More control about domain label position and size
- [new] Label rotation, to display text vertically
- [new]
getSVG()
method to export SVG code
- [new] Highlight today's rectangle (only available when subdomain is equal to "day")
- [fix] Fix plurals title (Issue #14)
- [new] Add
afterLoadData
callback, to apply your own conversion function when the API don't return data in the expected format - [new] Add
dataType
property to specify data source format type. Can use json (default), csv or txt. - [fix] Fix wrong number of minutes when using minutes subdomain with a week domain
- [new] Add
startWeekOnMonday
to choose whether to start the week on Monday or Sunday
- [new]
x_day
subdomain to display days horizontally, grouped by week - [new]
cellradius
property to apply rounded corner to subdomain cell
[enhancement] More faster tests
- [fix#6] Can now pass a function to date formatter, to format the date using an external library like moment.js
- [fix#9] null values not interpreted as "empty" when rendering the title
- [new] onComplete callback
- [new#5] AfterLoad callback, called when the calendar is fully drawn, but not filled with datas yet
- [new#6] Add options to customize all text
- [fix] Handle not valid callback
See documentation for i18n usage
- [fix#8] Support for null values
- [fix#7] Wrong color for the last interval values
- [fix] Floating number does not display in tooltip
- [enhancement] Change cursor to pointer on subdomain hover if it's associated to an onClick event
- [fix] Fix domain positioning on Firefox
- [new] Can know browse the calendar, by setting the new
browsing
property totrue
- [new] Add animation when displaying the scale
- [change] Rename
scales
property toscale
- [fix] Fix displaying week subdomain from a year domain
- [new] Add test code coverage in grunt
- [new] Add Bower and Jam support
- [new] Change
uri
property todata
. It can now accepts a file path to a JSON file, directly a JSON object, or a string template.
The string template is usually a dynamic url to an API, like
api.com/get?start=xxx&end=yyy
, where xxx and yyy are respectively the first and last date of the calendar. You can use tokens to dynamically insert the calendar first and last date in the url. See documentation for accepted tokens. Example :api?start={{t:start}}&end={{d:end}}
will fetchapi?start=1362006000&end=2013-02-27T23:00:00.000Z
- [new] Add AMD support
- First release