Socket
Socket
Sign inDemoInstall

@uiw/react-heat-map

Package Overview
Dependencies
Maintainers
1
Versions
31
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@uiw/react-heat-map - npm Package Compare versions

Comparing version 1.0.2 to 1.0.3

21

lib/cjs/SVG.js

@@ -88,2 +88,10 @@ "use strict";

}, [rectSize, svgRef, space, leftPad]);
var initStartDate = (0, _react.useMemo)(function () {
if ((0, _utils.isValidDate)(startDate)) {
return !startDate.getDay() ? startDate : new Date(startDate.getTime() - startDate.getDay() * oneDayTime);
} else {
var newDate = new Date();
return new Date(newDate.getTime() - newDate.getDay() * oneDayTime);
}
}, [startDate]);
return /*#__PURE__*/_react.default.createElement("svg", (0, _extends2.default)({

@@ -110,10 +118,7 @@ ref: svgRef

});
var currentDate = new Date(initStartDate.getTime() + oneDayTime * (idx * 7 + cidx));
dayProps.date = (0, _utils.getDateToString)(currentDate);
if (startDate instanceof Date) {
var currentDate = new Date(startDate.getTime() + oneDayTime * (idx * 7 + cidx));
dayProps.date = (0, _utils.getDateToString)(currentDate);
if (endDate instanceof Date && currentDate.getTime() > endDate.getTime()) {
return null;
}
if (endDate instanceof Date && currentDate.getTime() > endDate.getTime()) {
return null;
}

@@ -141,2 +146,2 @@

module.exports = exports.default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TVkcudHN4Il0sIm5hbWVzIjpbIm9uZURheVRpbWUiLCJTVkciLCJwcm9wcyIsInJlY3RTaXplIiwic3BhY2UiLCJzdGFydERhdGUiLCJEYXRlIiwiZW5kRGF0ZSIsInJlY3RQcm9wcyIsInJlbmRlclJlY3QiLCJ2YWx1ZSIsIndlZWtMYWJsZXMiLCJtb250aExhYmxlcyIsInBhbmVsQ29sb3JzIiwib3RoZXIiLCJncmlkTnVtIiwic2V0R3JpZE51bSIsImxlZnRQYWQiLCJzZXRMZWZ0UGFkIiwic3ZnUmVmIiwiUmVhY3QiLCJjcmVhdGVSZWYiLCJudW1zIiwiT2JqZWN0Iiwia2V5cyIsIm1hcCIsIml0ZW0iLCJwYXJzZUludCIsImRhdGEiLCJjdXJyZW50Iiwid2lkdGgiLCJjbGllbnRXaWR0aCIsIk1hdGgiLCJmbG9vciIsIkFycmF5IiwiXyIsImlkeCIsImNpZHgiLCJkYXlQcm9wcyIsImtleSIsInJvdyIsImNvbHVtbiIsImZpbGwiLCJjdXJyZW50RGF0ZSIsImdldFRpbWUiLCJkYXRlIiwibGVuZ3RoIiwiY291bnQiLCJlbG0iLCJpc1ZhbGlkRWxlbWVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsSUFBTUEsVUFBVSxHQUFHLEtBQUssRUFBTCxHQUFVLEVBQVYsR0FBZSxJQUFsQzs7QUF1QmUsU0FBU0MsR0FBVCxDQUFhQyxLQUFiLEVBQThCO0FBQzNDLGFBWUlBLEtBQUssSUFBSSxFQVpiO0FBQUEsMkJBQ0VDLFFBREY7QUFBQSxNQUNFQSxRQURGLDhCQUNhLEVBRGI7QUFBQSx3QkFFRUMsS0FGRjtBQUFBLE1BRUVBLEtBRkYsMkJBRVUsQ0FGVjtBQUFBLDRCQUdFQyxTQUhGO0FBQUEsTUFHRUEsU0FIRiwrQkFHYyxJQUFJQyxJQUFKLEVBSGQ7QUFBQSxNQUlFQyxPQUpGLFFBSUVBLE9BSkY7QUFBQSxNQUtFQyxTQUxGLFFBS0VBLFNBTEY7QUFBQSxNQU1F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RCxDQUE5QixFQUFtQztBQUN4Q3lCLFFBQUFBLFFBQVEsQ0FBQ0ksSUFBVCxHQUFnQjdCLFdBQVcsQ0FBQyxDQUFELENBQTNCO0FBQ0Q7O0FBQ0QsVUFBSUosVUFBVSxJQUFJLE9BQU9BLFVBQVAsS0FBc0IsVUFBeEMsRUFBb0Q7QUFDbEQsWUFBTXVDLEdBQUcsR0FBR3ZDLFVBQVUsQ0FBQzZCLFFBQUQsQ0FBdEI7O0FBQ0EsWUFBSVUsR0FBRyxpQkFBSTVCLGVBQU02QixjQUFOLENBQXFCRCxHQUFyQixDQUFYLEVBQXNDO0FBQ3BDLGlCQUFPQSxHQUFQO0FBQ0Q7QUFDRjs7QUFDRCwwQkFBTyw2QkFBQyxnQkFBRCxFQUFhVixRQUFiLENBQVA7QUFDRCxLQTdCQSxDQURILENBREY7QUFrQ0QsR0FuQ0EsQ0FESCxDQUZGLENBREY7QUEyQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFdlZWtMYWJsZXMgfSBmcm9tICcuL1dlZWtMYWJsZXMnO1xuaW1wb3J0IHsgUmVjdERheSwgUmVjdERheURlZmF1bHRQcm9wcyB9IGZyb20gJy4vUmVjdERheSc7XG5pbXBvcnQgeyBmb3JtYXREYXRhLCBnZXREYXRlVG9TdHJpbmcsIGV4aXN0Q29sb3IsIG51bWJlclNvcnQgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3Qgb25lRGF5VGltZSA9IDI0ICogNjAgKiA2MCAqIDEwMDA7XG5cbmV4cG9ydCB0eXBlIEhlYXRNYXBWYWx1ZSA9IHtcbiAgZGF0ZTogc3RyaW5nO1xuICBjb250ZW50OiBzdHJpbmcgfCBzdHJpbmdbXSB8IFJlYWN0LlJlYWN0Tm9kZTtcbiAgY291bnQ6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFJlY3REYXlFbGVtZW50PFQgPSBTVkdSZWN0RWxlbWVudD4gPSBSZWN0RGF5RGVmYXVsdFByb3BzICYgUmVhY3QuU1ZHUHJvcHM8VD47XG5cbmV4cG9ydCBpbnRlcmZhY2UgU1ZHUHJvcHMgZXh0ZW5kcyBSZWFjdC5TVkdQcm9wczxTVkdTVkdFbGVtZW50PiB7XG4gIHN0YXJ0RGF0ZT86IERhdGU7XG4gIGVuZERhdGU/OiBEYXRlO1xuICByZWN0U2l6ZT86IG51bWJlcjtcbiAgc3BhY2U/OiBudW1iZXI7XG4gIHJlY3RQcm9wcz86IFJlY3REYXlFbGVtZW50IHwgUmVjdERheURlZmF1bHRQcm9wcztcbiAgcmVuZGVyUmVjdD86IDxFID0gU1ZHUmVjdEVsZW1lbnQ+KGRhdGE6IEUgJiBSZWN0RGF5RGVmYXVsdFByb3BzICYgeyBmaWxsPzogc3RyaW5nIH0pID0+IFJlYWN0LlJlYWN0RWxlbWVudCB8IHZvaWQ7XG4gIHZhbHVlPzogQXJyYXk8SGVhdE1hcFZhbHVlPjtcbiAgd2Vla0xhYmxlcz86IHN0cmluZ1tdIHwgZmFsc2U7XG4gIG1vbnRoTGFibGVzPzogc3RyaW5nW107XG4gIHBhbmVsQ29sb3JzPzogUmVjb3JkPG51bWJlciwgc3RyaW5nPjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU1ZHKHByb3BzOiBTVkdQcm9wcykge1xuICBjb25zdCB7XG4gICAgcmVjdFNpemUgPSAxMSxcbiAgICBzcGFjZSA9IDIsXG4gICAgc3RhcnREYXRlID0gbmV3IERhdGUoKSxcbiAgICBlbmREYXRlLFxuICAgIHJlY3RQcm9wcyxcbiAgICByZW5kZXJSZWN0LFxuICAgIHZhbHVlID0gW10sXG4gICAgd2Vla0xhYmxlcyA9IFsnU3VuJywgJ01vbicsICdUdWUnLCAnV2VkJywgJ1RodScsICdGcmknLCAnU2F0J10sXG4gICAgbW9udGhMYWJsZXMgPSBbJ0phbicsICdGZWInLCAnTWFyJywgJ0FwcicsICdNYXknLCAnSnVuJywgJ0p1bCcsICdBdWcnLCAnU2VwJywgJ09jdCcsICdOb3YnLCAnRGVjJ10sXG4gICAgcGFuZWxDb2xvcnMgPSB7IDA6ICcjRUJFREYwJywgODogJyM3QkM5NkYnLCA0OiAnI0M2RTQ4QicsIDEyOiAnIzIzOUEzQicsIDMyOiAnIzE5NjEyNycgfSxcbiAgICAuLi5vdGhlclxuICB9ID0gcHJvcHMgfHwge307XG4gIGNvbnN0IFtncmlkTnVtLCBzZXRHcmlkTnVtXSA9IHVzZVN0YXRlKDApO1xuICBjb25zdCBbbGVmdFBhZCwgc2V0TGVmdFBhZF0gPSB1c2VTdGF0ZSghIXdlZWtMYWJsZXMgPyAyOCA6IDUpO1xuICBjb25zdCBzdmdSZWYgPSBSZWFjdC5jcmVhdGVSZWY8U1ZHU1ZHRWxlbWVudD4oKTtcbiAgY29uc3QgbnVtcyA9IHVzZU1lbW8oKCkgPT4gbnVtYmVyU29ydChPYmplY3Qua2V5cyhwYW5lbENvbG9ycykubWFwKChpdGVtKSA9PiBwYXJzZUludChpdGVtLCAxMCkpKSwgW3BhbmVsQ29sb3JzXSk7XG4gIGNvbnN0IGRhdGEgPSB1c2VNZW1vKCgpID0+IGZvcm1hdERhdGEodmFsdWUpLCBbdmFsdWVdKTtcbiAgdXNlRWZmZWN0KCgpID0+IHNldExlZnRQYWQoISF3ZWVrTGFibGVzID8gMjggOiA1KSwgW3dlZWtMYWJsZXNdKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoc3ZnUmVmLmN1cnJlbnQpIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gc3ZnUmVmLmN1cnJlbnQuY2xpZW50V2lkdGggLSBsZWZ0UGFkIHx8IDA7XG4gICAgICBzZXRHcmlkTnVtKE1hdGguZmxvb3Iod2lkdGggLyAocmVjdFNpemUgKyBzcGFjZSkpIHx8IDApO1xuICAgIH1cbiAgfSwgW3JlY3RTaXplLCBzdmdSZWYsIHNwYWNlLCBsZWZ0UGFkXSk7XG4gIHJldHVybiAoXG4gICAgPHN2ZyByZWY9e3N2Z1JlZn0gey4uLm90aGVyfT5cbiAgICAgIDxXZWVrTGFibGVzIHdlZWtMYWJsZXM9e3dlZWtMYWJsZXN9IHJlY3RTaXplPXtyZWN0U2l6ZX0gc3BhY2U9e3NwYWNlfSAvPlxuICAgICAgPGcgdHJhbnNmb3JtPXtgdHJhbnNsYXRlKCR7bGVmdFBhZH0sIDIwKWB9PlxuICAgICAgICB7Wy4uLkFycmF5KGdyaWROdW0pXS5tYXAoKF8sIGlkeCkgPT4ge1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZyBrZXk9e2lkeH0gZGF0YS1jb2x1bW49e2lkeH0+XG4gICAgICAgICAgICAgIHtbLi4uQXJyYXkoNyldLm1hcCgoXywgY2lkeCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRheVByb3BzOiBSZWN0RGF5RWxlbWVudCA9IHtcbiAgICAgICAgICAgICAgICAgIC4uLnJlY3RQcm9wcyxcbiAgICAgICAgICAgICAgICAgIHJlY3RTaXplLFxuICAgICAgICAgICAgICAgICAgc3BhY2UsXG4gICAgICAgICAgICAgICAgICBrZXk6IGNpZHgsXG4gICAgICAgICAgICAgICAgICByb3c6IGNpZHgsXG4gICAgICAgICAgICAgICAgICBjb2x1bW46IGlkeCxcbiAgICAgICAgICAgICAgICAgIGZpbGw6ICcjRUJFREYwJyxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGlmIChzdGFydERhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKHN0YXJ0RGF0ZS5nZXRUaW1lKCkgKyBvbmVEYXlUaW1lICogKGlkeCAqIDcgKyBjaWR4KSk7XG4gICAgICAgICAgICAgICAgICBkYXlQcm9wcy5kYXRlID0gZ2V0RGF0ZVRvU3RyaW5nKGN1cnJlbnREYXRlKTtcbiAgICAgICAgICAgICAgICAgIGlmIChlbmREYXRlIGluc3RhbmNlb2YgRGF0ZSAmJiBjdXJyZW50RGF0ZS5nZXRUaW1lKCkgPiBlbmREYXRlLmdldFRpbWUoKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGRheVByb3BzLmRhdGUgJiYgZGF0YVtkYXlQcm9wcy5kYXRlXSAmJiBwYW5lbENvbG9ycyAmJiBPYmplY3Qua2V5cyhwYW5lbENvbG9ycykubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgZGF5UHJvcHMuZmlsbCA9IGV4aXN0Q29sb3IoZGF0YVtkYXlQcm9wcy5kYXRlXS5jb3VudCB8fCAwLCBudW1zLCBwYW5lbENvbG9ycyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwYW5lbENvbG9ycyAmJiBwYW5lbENvbG9yc1swXSkge1xuICAgICAgICAgICAgICAgICAgZGF5UHJvcHMuZmlsbCA9IHBhbmVsQ29sb3JzWzBdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocmVuZGVyUmVjdCAmJiB0eXBlb2YgcmVuZGVyUmVjdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgY29uc3QgZWxtID0gcmVuZGVyUmVjdChkYXlQcm9wcyk7XG4gICAgICAgICAgICAgICAgICBpZiAoZWxtICYmIFJlYWN0LmlzVmFsaWRFbGVtZW50KGVsbSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVsbTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxSZWN0RGF5IHsuLi5kYXlQcm9wc30gLz47XG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICk7XG4gICAgICAgIH0pfVxuICAgICAgPC9nPlxuICAgIDwvc3ZnPlxuICApO1xufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TVkcudHN4Il0sIm5hbWVzIjpbIm9uZURheVRpbWUiLCJTVkciLCJwcm9wcyIsInJlY3RTaXplIiwic3BhY2UiLCJzdGFydERhdGUiLCJEYXRlIiwiZW5kRGF0ZSIsInJlY3RQcm9wcyIsInJlbmRlclJlY3QiLCJ2YWx1ZSIsIndlZWtMYWJsZXMiLCJtb250aExhYmxlcyIsInBhbmVsQ29sb3JzIiwib3RoZXIiLCJncmlkTnVtIiwic2V0R3JpZE51bSIsImxlZnRQYWQiLCJzZXRMZWZ0UGFkIiwic3ZnUmVmIiwiUmVhY3QiLCJjcmVhdGVSZWYiLCJudW1zIiwiT2JqZWN0Iiwia2V5cyIsIm1hcCIsIml0ZW0iLCJwYXJzZUludCIsImRhdGEiLCJjdXJyZW50Iiwid2lkdGgiLCJjbGllbnRXaWR0aCIsIk1hdGgiLCJmbG9vciIsImluaXRTdGFydERhdGUiLCJnZXREYXkiLCJnZXRUaW1lIiwibmV3RGF0ZSIsIkFycmF5IiwiXyIsImlkeCIsImNpZHgiLCJkYXlQcm9wcyIsImtleSIsInJvdyIsImNvbHVtbiIsImZpbGwiLCJjdXJyZW50RGF0ZSIsImRhdGUiLCJsZW5ndGgiLCJjb3VudCIsImVsbSIsImlzVmFsaWRFbGVtZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxJQUFNQSxVQUFVLEdBQUcsS0FBSyxFQUFMLEdBQVUsRUFBVixHQUFlLElBQWxDOztBQXVCZSxTQUFTQyxHQUFULENBQWFDLEtBQWIsRUFBOEI7QUFDM0MsYUFZSUEsS0FBSyxJQUFJLEVBWmI7QUFBQSwyQkFDRUMsUUFERjtBQUFBLE1BQ0VBLFFBREYsOEJBQ2EsRUFEYjtBQUFBLHdCQUVFQyxLQUZGO0FBQUEsTUFFRUEsS0FGRiwyQkFFVSxDQUZWO0FBQUEsNEJBR0VDLFNBSEY7QUFBQSxNQUdFQSxTQUhGLCtCQUdjLElBQUlDLElBQUosRUFIZDtBQUFBLE1BSUVDLE9BSkYsUUFJRUEsT0FKRjtB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QUF3QjdCLE9BQU8sQ0FBQzZCLE9BQVIsRUFBdkQsRUFBMEU7QUFDeEUsZUFBTyxJQUFQO0FBQ0Q7O0FBQ0QsVUFBSU0sUUFBUSxDQUFDTSxJQUFULElBQWlCcEIsSUFBSSxDQUFDYyxRQUFRLENBQUNNLElBQVYsQ0FBckIsSUFBd0NuQyxXQUF4QyxJQUF1RFUsTUFBTSxDQUFDQyxJQUFQLENBQVlYLFdBQVosRUFBeUJvQyxNQUF6QixHQUFrQyxDQUE3RixFQUFnRztBQUM5RlAsUUFBQUEsUUFBUSxDQUFDSSxJQUFULEdBQWdCLHVCQUFXbEIsSUFBSSxDQUFDYyxRQUFRLENBQUNNLElBQVYsQ0FBSixDQUFvQkUsS0FBcEIsSUFBNkIsQ0FBeEMsRUFBMkM1QixJQUEzQyxFQUFpRFQsV0FBakQsQ0FBaEI7QUFDRCxPQUZELE1BRU8sSUFBSUEsV0FBVyxJQUFJQSxXQUFXLENBQUMsQ0FBRCxDQUE5QixFQUFtQztBQUN4QzZCLFFBQUFBLFFBQVEsQ0FBQ0ksSUFBVCxHQUFnQmpDLFdBQVcsQ0FBQyxDQUFELENBQTNCO0FBQ0Q7O0FBQ0QsVUFBSUosVUFBVSxJQUFJLE9BQU9BLFVBQVAsS0FBc0IsVUFBeEMsRUFBb0Q7QUFDbEQsWUFBTTBDLEdBQUcsR0FBRzFDLFVBQVUsQ0FBQ2lDLFFBQUQsQ0FBdEI7O0FBQ0EsWUFBSVMsR0FBRyxpQkFBSS9CLGVBQU1nQyxjQUFOLENBQXFCRCxHQUFyQixDQUFYLEVBQXNDO0FBQ3BDLGlCQUFPQSxHQUFQO0FBQ0Q7QUFDRjs7QUFDRCwwQkFBTyw2QkFBQyxnQkFBRCxFQUFhVCxRQUFiLENBQVA7QUFDRCxLQTNCQSxDQURILENBREY7QUFnQ0QsR0FqQ0EsQ0FESCxDQUZGLENBREY7QUF5Q0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFdlZWtMYWJsZXMgfSBmcm9tICcuL1dlZWtMYWJsZXMnO1xuaW1wb3J0IHsgUmVjdERheSwgUmVjdERheURlZmF1bHRQcm9wcyB9IGZyb20gJy4vUmVjdERheSc7XG5pbXBvcnQgeyBmb3JtYXREYXRhLCBnZXREYXRlVG9TdHJpbmcsIGV4aXN0Q29sb3IsIG51bWJlclNvcnQsIGlzVmFsaWREYXRlIH0gZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IG9uZURheVRpbWUgPSAyNCAqIDYwICogNjAgKiAxMDAwO1xuXG5leHBvcnQgdHlwZSBIZWF0TWFwVmFsdWUgPSB7XG4gIGRhdGU6IHN0cmluZztcbiAgY29udGVudDogc3RyaW5nIHwgc3RyaW5nW10gfCBSZWFjdC5SZWFjdE5vZGU7XG4gIGNvdW50OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBSZWN0RGF5RWxlbWVudDxUID0gU1ZHUmVjdEVsZW1lbnQ+ID0gUmVjdERheURlZmF1bHRQcm9wcyAmIFJlYWN0LlNWR1Byb3BzPFQ+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFNWR1Byb3BzIGV4dGVuZHMgUmVhY3QuU1ZHUHJvcHM8U1ZHU1ZHRWxlbWVudD4ge1xuICBzdGFydERhdGU/OiBEYXRlO1xuICBlbmREYXRlPzogRGF0ZTtcbiAgcmVjdFNpemU/OiBudW1iZXI7XG4gIHNwYWNlPzogbnVtYmVyO1xuICByZWN0UHJvcHM/OiBSZWN0RGF5RWxlbWVudCB8IFJlY3REYXlEZWZhdWx0UHJvcHM7XG4gIHJlbmRlclJlY3Q/OiA8RSA9IFNWR1JlY3RFbGVtZW50PihkYXRhOiBFICYgUmVjdERheURlZmF1bHRQcm9wcyAmIHsgZmlsbD86IHN0cmluZyB9KSA9PiBSZWFjdC5SZWFjdEVsZW1lbnQgfCB2b2lkO1xuICB2YWx1ZT86IEFycmF5PEhlYXRNYXBWYWx1ZT47XG4gIHdlZWtMYWJsZXM/OiBzdHJpbmdbXSB8IGZhbHNlO1xuICBtb250aExhYmxlcz86IHN0cmluZ1tdO1xuICBwYW5lbENvbG9ycz86IFJlY29yZDxudW1iZXIsIHN0cmluZz47XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFNWRyhwcm9wczogU1ZHUHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIHJlY3RTaXplID0gMTEsXG4gICAgc3BhY2UgPSAyLFxuICAgIHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKCksXG4gICAgZW5kRGF0ZSxcbiAgICByZWN0UHJvcHMsXG4gICAgcmVuZGVyUmVjdCxcbiAgICB2YWx1ZSA9IFtdLFxuICAgIHdlZWtMYWJsZXMgPSBbJ1N1bicsICdNb24nLCAnVHVlJywgJ1dlZCcsICdUaHUnLCAnRnJpJywgJ1NhdCddLFxuICAgIG1vbnRoTGFibGVzID0gWydKYW4nLCAnRmViJywgJ01hcicsICdBcHInLCAnTWF5JywgJ0p1bicsICdKdWwnLCAnQXVnJywgJ1NlcCcsICdPY3QnLCAnTm92JywgJ0RlYyddLFxuICAgIHBhbmVsQ29sb3JzID0geyAwOiAnI0VCRURGMCcsIDg6ICcjN0JDOTZGJywgNDogJyNDNkU0OEInLCAxMjogJyMyMzlBM0InLCAzMjogJyMxOTYxMjcnIH0sXG4gICAgLi4ub3RoZXJcbiAgfSA9IHByb3BzIHx8IHt9O1xuICBjb25zdCBbZ3JpZE51bSwgc2V0R3JpZE51bV0gPSB1c2VTdGF0ZSgwKTtcbiAgY29uc3QgW2xlZnRQYWQsIHNldExlZnRQYWRdID0gdXNlU3RhdGUoISF3ZWVrTGFibGVzID8gMjggOiA1KTtcbiAgY29uc3Qgc3ZnUmVmID0gUmVhY3QuY3JlYXRlUmVmPFNWR1NWR0VsZW1lbnQ+KCk7XG4gIGNvbnN0IG51bXMgPSB1c2VNZW1vKCgpID0+IG51bWJlclNvcnQoT2JqZWN0LmtleXMocGFuZWxDb2xvcnMpLm1hcCgoaXRlbSkgPT4gcGFyc2VJbnQoaXRlbSwgMTApKSksIFtwYW5lbENvbG9yc10pO1xuICBjb25zdCBkYXRhID0gdXNlTWVtbygoKSA9PiBmb3JtYXREYXRhKHZhbHVlKSwgW3ZhbHVlXSk7XG4gIHVzZUVmZmVjdCgoKSA9PiBzZXRMZWZ0UGFkKCEhd2Vla0xhYmxlcyA/IDI4IDogNSksIFt3ZWVrTGFibGVzXSk7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHN2Z1JlZi5jdXJyZW50KSB7XG4gICAgICBjb25zdCB3aWR0aCA9IHN2Z1JlZi5jdXJyZW50LmNsaWVudFdpZHRoIC0gbGVmdFBhZCB8fCAwO1xuICAgICAgc2V0R3JpZE51bShNYXRoLmZsb29yKHdpZHRoIC8gKHJlY3RTaXplICsgc3BhY2UpKSB8fCAwKTtcbiAgICB9XG4gIH0sIFtyZWN0U2l6ZSwgc3ZnUmVmLCBzcGFjZSwgbGVmdFBhZF0pO1xuXG4gIGNvbnN0IGluaXRTdGFydERhdGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNWYWxpZERhdGUoc3RhcnREYXRlKSkge1xuICAgICAgcmV0dXJuICFzdGFydERhdGUuZ2V0RGF5KCkgPyBzdGFydERhdGUgOiBuZXcgRGF0ZShzdGFydERhdGUuZ2V0VGltZSgpIC0gc3RhcnREYXRlLmdldERheSgpICogb25lRGF5VGltZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG5ld0RhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKG5ld0RhdGUuZ2V0VGltZSgpIC0gbmV3RGF0ZS5nZXREYXkoKSAqIG9uZURheVRpbWUpO1xuICAgIH1cbiAgfSwgW3N0YXJ0RGF0ZV0pO1xuXG4gIHJldHVybiAoXG4gICAgPHN2ZyByZWY9e3N2Z1JlZn0gey4uLm90aGVyfT5cbiAgICAgIDxXZWVrTGFibGVzIHdlZWtMYWJsZXM9e3dlZWtMYWJsZXN9IHJlY3RTaXplPXtyZWN0U2l6ZX0gc3BhY2U9e3NwYWNlfSAvPlxuICAgICAgPGcgdHJhbnNmb3JtPXtgdHJhbnNsYXRlKCR7bGVmdFBhZH0sIDIwKWB9PlxuICAgICAgICB7Wy4uLkFycmF5KGdyaWROdW0pXS5tYXAoKF8sIGlkeCkgPT4ge1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZyBrZXk9e2lkeH0gZGF0YS1jb2x1bW49e2lkeH0+XG4gICAgICAgICAgICAgIHtbLi4uQXJyYXkoNyldLm1hcCgoXywgY2lkeCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRheVByb3BzOiBSZWN0RGF5RWxlbWVudCA9IHtcbiAgICAgICAgICAgICAgICAgIC4uLnJlY3RQcm9wcyxcbiAgICAgICAgICAgICAgICAgIHJlY3RTaXplLFxuICAgICAgICAgICAgICAgICAgc3BhY2UsXG4gICAgICAgICAgICAgICAgICBrZXk6IGNpZHgsXG4gICAgICAgICAgICAgICAgICByb3c6IGNpZHgsXG4gICAgICAgICAgICAgICAgICBjb2x1bW46IGlkeCxcbiAgICAgICAgICAgICAgICAgIGZpbGw6ICcjRUJFREYwJyxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoaW5pdFN0YXJ0RGF0ZS5nZXRUaW1lKCkgKyBvbmVEYXlUaW1lICogKGlkeCAqIDcgKyBjaWR4KSk7XG4gICAgICAgICAgICAgICAgZGF5UHJvcHMuZGF0ZSA9IGdldERhdGVUb1N0cmluZyhjdXJyZW50RGF0ZSk7XG4gICAgICAgICAgICAgICAgaWYgKGVuZERhdGUgaW5zdGFuY2VvZiBEYXRlICYmIGN1cnJlbnREYXRlLmdldFRpbWUoKSA+IGVuZERhdGUuZ2V0VGltZSgpKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGRheVByb3BzLmRhdGUgJiYgZGF0YVtkYXlQcm9wcy5kYXRlXSAmJiBwYW5lbENvbG9ycyAmJiBPYmplY3Qua2V5cyhwYW5lbENvbG9ycykubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgZGF5UHJvcHMuZmlsbCA9IGV4aXN0Q29sb3IoZGF0YVtkYXlQcm9wcy5kYXRlXS5jb3VudCB8fCAwLCBudW1zLCBwYW5lbENvbG9ycyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwYW5lbENvbG9ycyAmJiBwYW5lbENvbG9yc1swXSkge1xuICAgICAgICAgICAgICAgICAgZGF5UHJvcHMuZmlsbCA9IHBhbmVsQ29sb3JzWzBdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocmVuZGVyUmVjdCAmJiB0eXBlb2YgcmVuZGVyUmVjdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgY29uc3QgZWxtID0gcmVuZGVyUmVjdChkYXlQcm9wcyk7XG4gICAgICAgICAgICAgICAgICBpZiAoZWxtICYmIFJlYWN0LmlzVmFsaWRFbGVtZW50KGVsbSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVsbTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxSZWN0RGF5IHsuLi5kYXlQcm9wc30gLz47XG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICk7XG4gICAgICAgIH0pfVxuICAgICAgPC9nPlxuICAgIDwvc3ZnPlxuICApO1xufVxuIl19
import { SVGProps, HeatMapValue } from './SVG';
export declare function isValidDate(date: Date): boolean;
export declare function getDateToString(date: Date): string;

@@ -3,0 +4,0 @@ export declare function formatData(data?: SVGProps['value']): Record<string, HeatMapValue>;

@@ -6,2 +6,3 @@ "use strict";

});
exports.isValidDate = isValidDate;
exports.getDateToString = getDateToString;

@@ -59,2 +60,2 @@ exports.formatData = formatData;

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy50cyJdLCJuYW1lcyI6WyJpc1ZhbGlkRGF0ZSIsImRhdGUiLCJEYXRlIiwiaXNOYU4iLCJnZXRUaW1lIiwiZ2V0RGF0ZVRvU3RyaW5nIiwiZ2V0RnVsbFllYXIiLCJnZXRNb250aCIsImdldERhdGUiLCJmb3JtYXREYXRhIiwiZGF0YSIsInJlc3VsdCIsImZvckVhY2giLCJpdGVtIiwibnVtYmVyU29ydCIsImtleXMiLCJzb3J0IiwieCIsInkiLCJleGlzdENvbG9yIiwibnVtIiwibnVtcyIsInBhbmVsQ29sb3JzIiwiY29sb3IiLCJhIiwibGVuZ3RoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBRUEsU0FBU0EsV0FBVCxDQUFxQkMsSUFBckIsRUFBaUM7QUFDL0IsU0FBT0EsSUFBSSxZQUFZQyxJQUFoQixJQUF3QixDQUFDQyxLQUFLLENBQUNGLElBQUksQ0FBQ0csT0FBTCxFQUFELENBQXJDO0FBQ0Q7O0FBRU0sU0FBU0MsZUFBVCxDQUF5QkosSUFBekIsRUFBcUM7QUFDMUMsbUJBQVVBLElBQUksQ0FBQ0ssV0FBTCxFQUFWLGNBQWdDTCxJQUFJLENBQUNNLFFBQUwsS0FBa0IsQ0FBbEQsY0FBdUROLElBQUksQ0FBQ08sT0FBTCxFQUF2RDtBQUNEOztBQUVNLFNBQVNDLFVBQVQsR0FBa0Q7QUFBQSxNQUE5QkMsSUFBOEIsdUVBQUosRUFBSTtBQUN2RCxNQUFNQyxNQUFvQyxHQUFHLEVBQTdDO0FBQ0FELEVBQUFBLElBQUksQ0FBQ0UsT0FBTCxDQUFhLFVBQUNDLElBQUQsRUFBVTtBQUNyQixRQUFJQSxJQUFJLENBQUNaLElBQUwsSUFBYUQsV0FBVyxDQUFDLElBQUlFLElBQUosQ0FBU1csSUFBSSxDQUFDWixJQUFkLENBQUQsQ0FBNUIsRUFBbUQ7QUFDakRZLE1BQUFBLElBQUksQ0FBQ1osSUFBTCxHQUFZSSxlQUFlLENBQUMsSUFBSUgsSUFBSixDQUFTVyxJQUFJLENBQUNaLElBQWQsQ0FBRCxDQUEzQjtBQUNBVSxNQUFBQSxNQUFNLENBQUNFLElBQUksQ0FBQ1osSUFBTixDQUFOLEdBQW9CWSxJQUFwQjtBQUNEO0FBQ0YsR0FMRDtBQU1BLFNBQU9GLE1BQVA7QUFDRDtBQUVEOzs7QUFDTyxTQUFTRyxVQUFULEdBQXlDO0FBQUEsTUFBckJDLElBQXFCLHVFQUFKLEVBQUk7QUFDOUMsU0FBT0EsSUFBSSxDQUFDQyxJQUFMLENBQVUsVUFBQ0MsQ0FBRCxFQUFJQyxDQUFKLEVBQVU7QUFDekIsUUFBSUQsQ0FBQyxHQUFHQyxDQUFSLEVBQVcsT0FBTyxDQUFDLENBQVIsQ0FBWCxLQUNLLElBQUlELENBQUMsR0FBR0MsQ0FBUixFQUFXLE9BQU8sQ0FBUDtBQUNoQixXQUFPLENBQVA7QUFDRCxHQUpNLENBQVA7QUFLRDs7QUFFTSxTQUFTQyxVQUFULEdBQStGO0FBQUEsTUFBM0VDLEdBQTJFLHVFQUE3RCxDQUE2RDtBQUFBLE1BQTFEQyxJQUEwRDtBQUFBLE1BQTFDQyxXQUEwQyx1RUFBSixFQUFJO0FBQ3BHLE1BQUlDLEtBQUssR0FBRyxFQUFaOztBQUNBLE9BQUssSUFBSUMsQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBR0gsSUFBSSxDQUFDSSxNQUF6QixFQUFpQ0QsQ0FBQyxJQUFJLENBQXRDLEVBQXlDO0FBQ3ZDLFFBQUlILElBQUksQ0FBQ0csQ0FBRCxDQUFKLEdBQVVKLEdBQWQsRUFBbUI7QUFDakJHLE1BQUFBLEtBQUssR0FBR0QsV0FBVyxDQUFDRCxJQUFJLENBQUNHLENBQUQsQ0FBTCxDQUFuQjtBQUNBO0FBQ0Q7O0FBQ0RELElBQUFBLEtBQUssR0FBR0QsV0FBVyxDQUFDRCxJQUFJLENBQUNHLENBQUQsQ0FBTCxDQUFuQjtBQUNEOztBQUNELFNBQU9ELEtBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNWR1Byb3BzLCBIZWF0TWFwVmFsdWUgfSBmcm9tICcuL1NWRyc7XG5cbmZ1bmN0aW9uIGlzVmFsaWREYXRlKGRhdGU6IERhdGUpIHtcbiAgcmV0dXJuIGRhdGUgaW5zdGFuY2VvZiBEYXRlICYmICFpc05hTihkYXRlLmdldFRpbWUoKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREYXRlVG9TdHJpbmcoZGF0ZTogRGF0ZSkge1xuICByZXR1cm4gYCR7ZGF0ZS5nZXRGdWxsWWVhcigpfS8ke2RhdGUuZ2V0TW9udGgoKSArIDF9LyR7ZGF0ZS5nZXREYXRlKCl9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdERhdGEoZGF0YTogU1ZHUHJvcHNbJ3ZhbHVlJ10gPSBbXSkge1xuICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIEhlYXRNYXBWYWx1ZT4gPSB7fTtcbiAgZGF0YS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgaWYgKGl0ZW0uZGF0ZSAmJiBpc1ZhbGlkRGF0ZShuZXcgRGF0ZShpdGVtLmRhdGUpKSkge1xuICAgICAgaXRlbS5kYXRlID0gZ2V0RGF0ZVRvU3RyaW5nKG5ldyBEYXRlKGl0ZW0uZGF0ZSkpO1xuICAgICAgcmVzdWx0W2l0ZW0uZGF0ZV0gPSBpdGVtO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKiDmjpLluo8g5q+U6L6D5Ye95pWwICovXG5leHBvcnQgZnVuY3Rpb24gbnVtYmVyU29ydChrZXlzOiBudW1iZXJbXSA9IFtdKSB7XG4gIHJldHVybiBrZXlzLnNvcnQoKHgsIHkpID0+IHtcbiAgICBpZiAoeCA8IHkpIHJldHVybiAtMTtcbiAgICBlbHNlIGlmICh4ID4geSkgcmV0dXJuIDE7XG4gICAgcmV0dXJuIDA7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhpc3RDb2xvcihudW06IG51bWJlciA9IDAsIG51bXM6IG51bWJlcltdLCBwYW5lbENvbG9yczogUmVjb3JkPG51bWJlciwgc3RyaW5nPiA9IHt9KSB7XG4gIGxldCBjb2xvciA9ICcnO1xuICBmb3IgKGxldCBhID0gMDsgYSA8IG51bXMubGVuZ3RoOyBhICs9IDEpIHtcbiAgICBpZiAobnVtc1thXSA+IG51bSkge1xuICAgICAgY29sb3IgPSBwYW5lbENvbG9yc1tudW1zW2FdXTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjb2xvciA9IHBhbmVsQ29sb3JzW251bXNbYV1dO1xuICB9XG4gIHJldHVybiBjb2xvcjtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy50cyJdLCJuYW1lcyI6WyJpc1ZhbGlkRGF0ZSIsImRhdGUiLCJEYXRlIiwiaXNOYU4iLCJnZXRUaW1lIiwiZ2V0RGF0ZVRvU3RyaW5nIiwiZ2V0RnVsbFllYXIiLCJnZXRNb250aCIsImdldERhdGUiLCJmb3JtYXREYXRhIiwiZGF0YSIsInJlc3VsdCIsImZvckVhY2giLCJpdGVtIiwibnVtYmVyU29ydCIsImtleXMiLCJzb3J0IiwieCIsInkiLCJleGlzdENvbG9yIiwibnVtIiwibnVtcyIsInBhbmVsQ29sb3JzIiwiY29sb3IiLCJhIiwibGVuZ3RoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUVPLFNBQVNBLFdBQVQsQ0FBcUJDLElBQXJCLEVBQWlDO0FBQ3RDLFNBQU9BLElBQUksWUFBWUMsSUFBaEIsSUFBd0IsQ0FBQ0MsS0FBSyxDQUFDRixJQUFJLENBQUNHLE9BQUwsRUFBRCxDQUFyQztBQUNEOztBQUVNLFNBQVNDLGVBQVQsQ0FBeUJKLElBQXpCLEVBQXFDO0FBQzFDLG1CQUFVQSxJQUFJLENBQUNLLFdBQUwsRUFBVixjQUFnQ0wsSUFBSSxDQUFDTSxRQUFMLEtBQWtCLENBQWxELGNBQXVETixJQUFJLENBQUNPLE9BQUwsRUFBdkQ7QUFDRDs7QUFFTSxTQUFTQyxVQUFULEdBQWtEO0FBQUEsTUFBOUJDLElBQThCLHVFQUFKLEVBQUk7QUFDdkQsTUFBTUMsTUFBb0MsR0FBRyxFQUE3QztBQUNBRCxFQUFBQSxJQUFJLENBQUNFLE9BQUwsQ0FBYSxVQUFDQyxJQUFELEVBQVU7QUFDckIsUUFBSUEsSUFBSSxDQUFDWixJQUFMLElBQWFELFdBQVcsQ0FBQyxJQUFJRSxJQUFKLENBQVNXLElBQUksQ0FBQ1osSUFBZCxDQUFELENBQTVCLEVBQW1EO0FBQ2pEWSxNQUFBQSxJQUFJLENBQUNaLElBQUwsR0FBWUksZUFBZSxDQUFDLElBQUlILElBQUosQ0FBU1csSUFBSSxDQUFDWixJQUFkLENBQUQsQ0FBM0I7QUFDQVUsTUFBQUEsTUFBTSxDQUFDRSxJQUFJLENBQUNaLElBQU4sQ0FBTixHQUFvQlksSUFBcEI7QUFDRDtBQUNGLEdBTEQ7QUFNQSxTQUFPRixNQUFQO0FBQ0Q7QUFFRDs7O0FBQ08sU0FBU0csVUFBVCxHQUF5QztBQUFBLE1BQXJCQyxJQUFxQix1RUFBSixFQUFJO0FBQzlDLFNBQU9BLElBQUksQ0FBQ0MsSUFBTCxDQUFVLFVBQUNDLENBQUQsRUFBSUMsQ0FBSixFQUFVO0FBQ3pCLFFBQUlELENBQUMsR0FBR0MsQ0FBUixFQUFXLE9BQU8sQ0FBQyxDQUFSLENBQVgsS0FDSyxJQUFJRCxDQUFDLEdBQUdDLENBQVIsRUFBVyxPQUFPLENBQVA7QUFDaEIsV0FBTyxDQUFQO0FBQ0QsR0FKTSxDQUFQO0FBS0Q7O0FBRU0sU0FBU0MsVUFBVCxHQUErRjtBQUFBLE1BQTNFQyxHQUEyRSx1RUFBN0QsQ0FBNkQ7QUFBQSxNQUExREMsSUFBMEQ7QUFBQSxNQUExQ0MsV0FBMEMsdUVBQUosRUFBSTtBQUNwRyxNQUFJQyxLQUFLLEdBQUcsRUFBWjs7QUFDQSxPQUFLLElBQUlDLENBQUMsR0FBRyxDQUFiLEVBQWdCQSxDQUFDLEdBQUdILElBQUksQ0FBQ0ksTUFBekIsRUFBaUNELENBQUMsSUFBSSxDQUF0QyxFQUF5QztBQUN2QyxRQUFJSCxJQUFJLENBQUNHLENBQUQsQ0FBSixHQUFVSixHQUFkLEVBQW1CO0FBQ2pCRyxNQUFBQSxLQUFLLEdBQUdELFdBQVcsQ0FBQ0QsSUFBSSxDQUFDRyxDQUFELENBQUwsQ0FBbkI7QUFDQTtBQUNEOztBQUNERCxJQUFBQSxLQUFLLEdBQUdELFdBQVcsQ0FBQ0QsSUFBSSxDQUFDRyxDQUFELENBQUwsQ0FBbkI7QUFDRDs7QUFDRCxTQUFPRCxLQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTVkdQcm9wcywgSGVhdE1hcFZhbHVlIH0gZnJvbSAnLi9TVkcnO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZERhdGUoZGF0ZTogRGF0ZSkge1xuICByZXR1cm4gZGF0ZSBpbnN0YW5jZW9mIERhdGUgJiYgIWlzTmFOKGRhdGUuZ2V0VGltZSgpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERhdGVUb1N0cmluZyhkYXRlOiBEYXRlKSB7XG4gIHJldHVybiBgJHtkYXRlLmdldEZ1bGxZZWFyKCl9LyR7ZGF0ZS5nZXRNb250aCgpICsgMX0vJHtkYXRlLmdldERhdGUoKX1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RGF0YShkYXRhOiBTVkdQcm9wc1sndmFsdWUnXSA9IFtdKSB7XG4gIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgSGVhdE1hcFZhbHVlPiA9IHt9O1xuICBkYXRhLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICBpZiAoaXRlbS5kYXRlICYmIGlzVmFsaWREYXRlKG5ldyBEYXRlKGl0ZW0uZGF0ZSkpKSB7XG4gICAgICBpdGVtLmRhdGUgPSBnZXREYXRlVG9TdHJpbmcobmV3IERhdGUoaXRlbS5kYXRlKSk7XG4gICAgICByZXN1bHRbaXRlbS5kYXRlXSA9IGl0ZW07XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqIOaOkuW6jyDmr5TovoPlh73mlbAgKi9cbmV4cG9ydCBmdW5jdGlvbiBudW1iZXJTb3J0KGtleXM6IG51bWJlcltdID0gW10pIHtcbiAgcmV0dXJuIGtleXMuc29ydCgoeCwgeSkgPT4ge1xuICAgIGlmICh4IDwgeSkgcmV0dXJuIC0xO1xuICAgIGVsc2UgaWYgKHggPiB5KSByZXR1cm4gMTtcbiAgICByZXR1cm4gMDtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleGlzdENvbG9yKG51bTogbnVtYmVyID0gMCwgbnVtczogbnVtYmVyW10sIHBhbmVsQ29sb3JzOiBSZWNvcmQ8bnVtYmVyLCBzdHJpbmc+ID0ge30pIHtcbiAgbGV0IGNvbG9yID0gJyc7XG4gIGZvciAobGV0IGEgPSAwOyBhIDwgbnVtcy5sZW5ndGg7IGEgKz0gMSkge1xuICAgIGlmIChudW1zW2FdID4gbnVtKSB7XG4gICAgICBjb2xvciA9IHBhbmVsQ29sb3JzW251bXNbYV1dO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNvbG9yID0gcGFuZWxDb2xvcnNbbnVtc1thXV07XG4gIH1cbiAgcmV0dXJuIGNvbG9yO1xufVxuIl19

@@ -9,3 +9,3 @@ import _extends from "@babel/runtime/helpers/extends";

import { RectDay } from './RectDay';
import { formatData, getDateToString, existColor, numberSort } from './utils';
import { formatData, getDateToString, existColor, numberSort, isValidDate } from './utils';
var oneDayTime = 24 * 60 * 60 * 1000;

@@ -67,2 +67,10 @@ export default function SVG(props) {

}, [rectSize, svgRef, space, leftPad]);
var initStartDate = useMemo(function () {
if (isValidDate(startDate)) {
return !startDate.getDay() ? startDate : new Date(startDate.getTime() - startDate.getDay() * oneDayTime);
} else {
var newDate = new Date();
return new Date(newDate.getTime() - newDate.getDay() * oneDayTime);
}
}, [startDate]);
return /*#__PURE__*/React.createElement("svg", _extends({

@@ -90,9 +98,7 @@ ref: svgRef

if (startDate instanceof Date) {
var currentDate = new Date(startDate.getTime() + oneDayTime * (idx * 7 + cidx));
dayProps.date = getDateToString(currentDate);
var currentDate = new Date(initStartDate.getTime() + oneDayTime * (idx * 7 + cidx));
dayProps.date = getDateToString(currentDate);
if (endDate instanceof Date && currentDate.getTime() > endDate.getTime()) {
return null;
}
if (endDate instanceof Date && currentDate.getTime() > endDate.getTime()) {
return null;
}

@@ -118,2 +124,2 @@

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TVkcudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVN0YXRlIiwiV2Vla0xhYmxlcyIsIlJlY3REYXkiLCJmb3JtYXREYXRhIiwiZ2V0RGF0ZVRvU3RyaW5nIiwiZXhpc3RDb2xvciIsIm51bWJlclNvcnQiLCJvbmVEYXlUaW1lIiwiU1ZHIiwicHJvcHMiLCJyZWN0U2l6ZSIsInNwYWNlIiwic3RhcnREYXRlIiwiRGF0ZSIsImVuZERhdGUiLCJyZWN0UHJvcHMiLCJyZW5kZXJSZWN0IiwidmFsdWUiLCJ3ZWVrTGFibGVzIiwibW9udGhMYWJsZXMiLCJwYW5lbENvbG9ycyIsIm90aGVyIiwiZ3JpZE51bSIsInNldEdyaWROdW0iLCJsZWZ0UGFkIiwic2V0TGVmdFBhZCIsInN2Z1JlZiIsImNyZWF0ZVJlZiIsIm51bXMiLCJPYmplY3QiLCJrZXlzIiwibWFwIiwiaXRlbSIsInBhcnNlSW50IiwiZGF0YSIsImN1cnJlbnQiLCJ3aWR0aCIsImNsaWVudFdpZHRoIiwiTWF0aCIsImZsb29yIiwiQXJyYXkiLCJfIiwiaWR4IiwiY2lkeCIsImRheVByb3BzIiwia2V5Iiwicm93IiwiY29sdW1uIiwiZmlsbCIsImN1cnJlbnREYXRlIiwiZ2V0VGltZSIsImRhdGUiLCJsZW5ndGgiLCJjb3VudCIsImVsbSIsImlzVmFsaWRFbGVtZW50Il0sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU9BLEtBQVAsSUFBZ0JDLFNBQWhCLEVBQTJCQyxPQUEzQixFQUFvQ0MsUUFBcEMsUUFBb0QsT0FBcEQ7QUFDQSxTQUFTQyxVQUFULFFBQTJCLGNBQTNCO0FBQ0EsU0FBU0MsT0FBVCxRQUE2QyxXQUE3QztBQUNBLFNBQVNDLFVBQVQsRUFBcUJDLGVBQXJCLEVBQXNDQyxVQUF0QyxFQUFrREMsVUFBbEQsUUFBb0UsU0FBcEU7QUFFQSxJQUFNQyxVQUFVLEdBQUcsS0FBSyxFQUFMLEdBQVUsRUFBVixHQUFlLElBQWxDO0FBdUJB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QUN4RSxpQkFBTyxJQUFQO0FBQ0Q7QUFDRjs7QUFDRCxVQUFJTixRQUFRLENBQUNPLElBQVQsSUFBaUJqQixJQUFJLENBQUNVLFFBQVEsQ0FBQ08sSUFBVixDQUFyQixJQUF3Qy9CLFdBQXhDLElBQXVEUyxNQUFNLENBQUNDLElBQVAsQ0FBWVYsV0FBWixFQUF5QmdDLE1BQXpCLEdBQWtDLENBQTdGLEVBQWdHO0FBQzlGUixRQUFBQSxRQUFRLENBQUNJLElBQVQsR0FBZ0IzQyxVQUFVLENBQUM2QixJQUFJLENBQUNVLFFBQVEsQ0FBQ08sSUFBVixDQUFKLENBQW9CRSxLQUFwQixJQUE2QixDQUE5QixFQUFpQ3pCLElBQWpDLEVBQXVDUixXQUF2QyxDQUExQjtBQUNELE9BRkQsTUFFTyxJQUFJQSxXQUFXLElBQUlBLFdBQVcsQ0FBQyxDQUFELENBQTlCLEVBQW1DO0FBQ3hDd0IsUUFBQUEsUUFBUSxDQUFDSSxJQUFULEdBQWdCNUIsV0FBVyxDQUFDLENBQUQsQ0FBM0I7QUFDRDs7QUFDRCxVQUFJSixVQUFVLElBQUksT0FBT0EsVUFBUCxLQUFzQixVQUF4QyxFQUFvRDtBQUNsRCxZQUFNc0MsR0FBRyxHQUFHdEMsVUFBVSxDQUFDNEIsUUFBRCxDQUF0Qjs7QUFDQSxZQUFJVSxHQUFHLGlCQUFJekQsS0FBSyxDQUFDMEQsY0FBTixDQUFxQkQsR0FBckIsQ0FBWCxFQUFzQztBQUNwQyxpQkFBT0EsR0FBUDtBQUNEO0FBQ0Y7O0FBQ0QsMEJBQU8sb0JBQUMsT0FBRCxFQUFhVixRQUFiLENBQVA7QUFDRCxLQTdCQSxDQURILENBREY7QUFrQ0QsR0FuQ0EsQ0FESCxDQUZGLENBREY7QUEyQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFdlZWtMYWJsZXMgfSBmcm9tICcuL1dlZWtMYWJsZXMnO1xuaW1wb3J0IHsgUmVjdERheSwgUmVjdERheURlZmF1bHRQcm9wcyB9IGZyb20gJy4vUmVjdERheSc7XG5pbXBvcnQgeyBmb3JtYXREYXRhLCBnZXREYXRlVG9TdHJpbmcsIGV4aXN0Q29sb3IsIG51bWJlclNvcnQgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3Qgb25lRGF5VGltZSA9IDI0ICogNjAgKiA2MCAqIDEwMDA7XG5cbmV4cG9ydCB0eXBlIEhlYXRNYXBWYWx1ZSA9IHtcbiAgZGF0ZTogc3RyaW5nO1xuICBjb250ZW50OiBzdHJpbmcgfCBzdHJpbmdbXSB8IFJlYWN0LlJlYWN0Tm9kZTtcbiAgY291bnQ6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFJlY3REYXlFbGVtZW50PFQgPSBTVkdSZWN0RWxlbWVudD4gPSBSZWN0RGF5RGVmYXVsdFByb3BzICYgUmVhY3QuU1ZHUHJvcHM8VD47XG5cbmV4cG9ydCBpbnRlcmZhY2UgU1ZHUHJvcHMgZXh0ZW5kcyBSZWFjdC5TVkdQcm9wczxTVkdTVkdFbGVtZW50PiB7XG4gIHN0YXJ0RGF0ZT86IERhdGU7XG4gIGVuZERhdGU/OiBEYXRlO1xuICByZWN0U2l6ZT86IG51bWJlcjtcbiAgc3BhY2U/OiBudW1iZXI7XG4gIHJlY3RQcm9wcz86IFJlY3REYXlFbGVtZW50IHwgUmVjdERheURlZmF1bHRQcm9wcztcbiAgcmVuZGVyUmVjdD86IDxFID0gU1ZHUmVjdEVsZW1lbnQ+KGRhdGE6IEUgJiBSZWN0RGF5RGVmYXVsdFByb3BzICYgeyBmaWxsPzogc3RyaW5nIH0pID0+IFJlYWN0LlJlYWN0RWxlbWVudCB8IHZvaWQ7XG4gIHZhbHVlPzogQXJyYXk8SGVhdE1hcFZhbHVlPjtcbiAgd2Vla0xhYmxlcz86IHN0cmluZ1tdIHwgZmFsc2U7XG4gIG1vbnRoTGFibGVzPzogc3RyaW5nW107XG4gIHBhbmVsQ29sb3JzPzogUmVjb3JkPG51bWJlciwgc3RyaW5nPjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU1ZHKHByb3BzOiBTVkdQcm9wcykge1xuICBjb25zdCB7XG4gICAgcmVjdFNpemUgPSAxMSxcbiAgICBzcGFjZSA9IDIsXG4gICAgc3RhcnREYXRlID0gbmV3IERhdGUoKSxcbiAgICBlbmREYXRlLFxuICAgIHJlY3RQcm9wcyxcbiAgICByZW5kZXJSZWN0LFxuICAgIHZhbHVlID0gW10sXG4gICAgd2Vla0xhYmxlcyA9IFsnU3VuJywgJ01vbicsICdUdWUnLCAnV2VkJywgJ1RodScsICdGcmknLCAnU2F0J10sXG4gICAgbW9udGhMYWJsZXMgPSBbJ0phbicsICdGZWInLCAnTWFyJywgJ0FwcicsICdNYXknLCAnSnVuJywgJ0p1bCcsICdBdWcnLCAnU2VwJywgJ09jdCcsICdOb3YnLCAnRGVjJ10sXG4gICAgcGFuZWxDb2xvcnMgPSB7IDA6ICcjRUJFREYwJywgODogJyM3QkM5NkYnLCA0OiAnI0M2RTQ4QicsIDEyOiAnIzIzOUEzQicsIDMyOiAnIzE5NjEyNycgfSxcbiAgICAuLi5vdGhlclxuICB9ID0gcHJvcHMgfHwge307XG4gIGNvbnN0IFtncmlkTnVtLCBzZXRHcmlkTnVtXSA9IHVzZVN0YXRlKDApO1xuICBjb25zdCBbbGVmdFBhZCwgc2V0TGVmdFBhZF0gPSB1c2VTdGF0ZSghIXdlZWtMYWJsZXMgPyAyOCA6IDUpO1xuICBjb25zdCBzdmdSZWYgPSBSZWFjdC5jcmVhdGVSZWY8U1ZHU1ZHRWxlbWVudD4oKTtcbiAgY29uc3QgbnVtcyA9IHVzZU1lbW8oKCkgPT4gbnVtYmVyU29ydChPYmplY3Qua2V5cyhwYW5lbENvbG9ycykubWFwKChpdGVtKSA9PiBwYXJzZUludChpdGVtLCAxMCkpKSwgW3BhbmVsQ29sb3JzXSk7XG4gIGNvbnN0IGRhdGEgPSB1c2VNZW1vKCgpID0+IGZvcm1hdERhdGEodmFsdWUpLCBbdmFsdWVdKTtcbiAgdXNlRWZmZWN0KCgpID0+IHNldExlZnRQYWQoISF3ZWVrTGFibGVzID8gMjggOiA1KSwgW3dlZWtMYWJsZXNdKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoc3ZnUmVmLmN1cnJlbnQpIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gc3ZnUmVmLmN1cnJlbnQuY2xpZW50V2lkdGggLSBsZWZ0UGFkIHx8IDA7XG4gICAgICBzZXRHcmlkTnVtKE1hdGguZmxvb3Iod2lkdGggLyAocmVjdFNpemUgKyBzcGFjZSkpIHx8IDApO1xuICAgIH1cbiAgfSwgW3JlY3RTaXplLCBzdmdSZWYsIHNwYWNlLCBsZWZ0UGFkXSk7XG4gIHJldHVybiAoXG4gICAgPHN2ZyByZWY9e3N2Z1JlZn0gey4uLm90aGVyfT5cbiAgICAgIDxXZWVrTGFibGVzIHdlZWtMYWJsZXM9e3dlZWtMYWJsZXN9IHJlY3RTaXplPXtyZWN0U2l6ZX0gc3BhY2U9e3NwYWNlfSAvPlxuICAgICAgPGcgdHJhbnNmb3JtPXtgdHJhbnNsYXRlKCR7bGVmdFBhZH0sIDIwKWB9PlxuICAgICAgICB7Wy4uLkFycmF5KGdyaWROdW0pXS5tYXAoKF8sIGlkeCkgPT4ge1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZyBrZXk9e2lkeH0gZGF0YS1jb2x1bW49e2lkeH0+XG4gICAgICAgICAgICAgIHtbLi4uQXJyYXkoNyldLm1hcCgoXywgY2lkeCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRheVByb3BzOiBSZWN0RGF5RWxlbWVudCA9IHtcbiAgICAgICAgICAgICAgICAgIC4uLnJlY3RQcm9wcyxcbiAgICAgICAgICAgICAgICAgIHJlY3RTaXplLFxuICAgICAgICAgICAgICAgICAgc3BhY2UsXG4gICAgICAgICAgICAgICAgICBrZXk6IGNpZHgsXG4gICAgICAgICAgICAgICAgICByb3c6IGNpZHgsXG4gICAgICAgICAgICAgICAgICBjb2x1bW46IGlkeCxcbiAgICAgICAgICAgICAgICAgIGZpbGw6ICcjRUJFREYwJyxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGlmIChzdGFydERhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKHN0YXJ0RGF0ZS5nZXRUaW1lKCkgKyBvbmVEYXlUaW1lICogKGlkeCAqIDcgKyBjaWR4KSk7XG4gICAgICAgICAgICAgICAgICBkYXlQcm9wcy5kYXRlID0gZ2V0RGF0ZVRvU3RyaW5nKGN1cnJlbnREYXRlKTtcbiAgICAgICAgICAgICAgICAgIGlmIChlbmREYXRlIGluc3RhbmNlb2YgRGF0ZSAmJiBjdXJyZW50RGF0ZS5nZXRUaW1lKCkgPiBlbmREYXRlLmdldFRpbWUoKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGRheVByb3BzLmRhdGUgJiYgZGF0YVtkYXlQcm9wcy5kYXRlXSAmJiBwYW5lbENvbG9ycyAmJiBPYmplY3Qua2V5cyhwYW5lbENvbG9ycykubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgZGF5UHJvcHMuZmlsbCA9IGV4aXN0Q29sb3IoZGF0YVtkYXlQcm9wcy5kYXRlXS5jb3VudCB8fCAwLCBudW1zLCBwYW5lbENvbG9ycyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwYW5lbENvbG9ycyAmJiBwYW5lbENvbG9yc1swXSkge1xuICAgICAgICAgICAgICAgICAgZGF5UHJvcHMuZmlsbCA9IHBhbmVsQ29sb3JzWzBdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocmVuZGVyUmVjdCAmJiB0eXBlb2YgcmVuZGVyUmVjdCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgY29uc3QgZWxtID0gcmVuZGVyUmVjdChkYXlQcm9wcyk7XG4gICAgICAgICAgICAgICAgICBpZiAoZWxtICYmIFJlYWN0LmlzVmFsaWRFbGVtZW50KGVsbSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVsbTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxSZWN0RGF5IHsuLi5kYXlQcm9wc30gLz47XG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICk7XG4gICAgICAgIH0pfVxuICAgICAgPC9nPlxuICAgIDwvc3ZnPlxuICApO1xufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TVkcudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVN0YXRlIiwiV2Vla0xhYmxlcyIsIlJlY3REYXkiLCJmb3JtYXREYXRhIiwiZ2V0RGF0ZVRvU3RyaW5nIiwiZXhpc3RDb2xvciIsIm51bWJlclNvcnQiLCJpc1ZhbGlkRGF0ZSIsIm9uZURheVRpbWUiLCJTVkciLCJwcm9wcyIsInJlY3RTaXplIiwic3BhY2UiLCJzdGFydERhdGUiLCJEYXRlIiwiZW5kRGF0ZSIsInJlY3RQcm9wcyIsInJlbmRlclJlY3QiLCJ2YWx1ZSIsIndlZWtMYWJsZXMiLCJtb250aExhYmxlcyIsInBhbmVsQ29sb3JzIiwib3RoZXIiLCJncmlkTnVtIiwic2V0R3JpZE51bSIsImxlZnRQYWQiLCJzZXRMZWZ0UGFkIiwic3ZnUmVmIiwiY3JlYXRlUmVmIiwibnVtcyIsIk9iamVjdCIsImtleXMiLCJtYXAiLCJpdGVtIiwicGFyc2VJbnQiLCJkYXRhIiwiY3VycmVudCIsIndpZHRoIiwiY2xpZW50V2lkdGgiLCJNYXRoIiwiZmxvb3IiLCJpbml0U3RhcnREYXRlIiwiZ2V0RGF5IiwiZ2V0VGltZSIsIm5ld0RhdGUiLCJBcnJheSIsIl8iLCJpZHgiLCJjaWR4IiwiZGF5UHJvcHMiLCJrZXkiLCJyb3ciLCJjb2x1bW4iLCJmaWxsIiwiY3VycmVudERhdGUiLCJkYXRlIiwibGVuZ3RoIiwiY291bnQiLCJlbG0iLCJpc1ZhbGlkRWxlbWVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPQSxLQUFQLElBQWdCQyxTQUFoQixFQUEyQkMsT0FBM0IsRUFBb0NDLFFBQXBDLFFBQW9ELE9BQXBEO0FBQ0EsU0FBU0MsVUFBVCxRQUEyQixjQUEzQjtBQUNBLFNBQVNDLE9BQVQsUUFBNkMsV0FBN0M7QUFDQSxTQUFTQyxVQUFULEVBQXFCQyxlQUFyQixFQUFzQ0MsVUFBdEMsRUFBa0RDLFVBQWxELEVBQThEQyxXQUE5RCxRQUFpRixTQUFqRjtBQUVBLElBQU1DLFVBQVUsR0FBRyxLQUFLLEVBQUwsR0FBVSxFQUFWLEdBQWUsSUFBbEM7QUF1QkEsZUFBZSxTQUFTQyxHQUFULENBQWFDLEtBQWIsRUFBOEI7QUFDM0MsYUFZSUEsS0FBSyxJQUFJLEVBWmI7QUFBQSwyQkFDRUMsUUFERjtBQUFBLE1BQ0VBLFFBREYsOEJBQ2EsRUFEYjtBQUFBLHdCQUVFQyxLQUZGO0FBQUEsTUFFRUEsS0FGRiwyQkFFVSxDQUZWO0FBQUEsNEJBR0VDLFNBSEY7QUFBQSxNQUdFQSxTQUhGLCtCQUdjLElBQUlDLElBQUosRUFIZDtBQUFBLE1BSUVDLE9BSkYsUUFJRUEsT0FKRjtBQUFBLE1BS0VDLFNBTEYsUUFLRUEsU0FMRjtBQUFBLE1BTUVDLFVBTkYsUUFNRUEsVUFORjtBQUFBLHdCQU9FQyxLQVBGO0FBQUEsTUFPRUEsS0FQRiwyQkFPVSxFQVBWO0FBQUEsNkJBUUVDLFVBUkY7QUFBQSxNQVFFQSxVQVJGLGdDQVFlLENBQUMsS0FBRCxFQUFRLEtBQVIsRUFBZSxLQUFmLEVBQXNCLEtBQXRCLEVBQTZCLEtBQTdCLEVBQW9DLEtBQXBDLEVBQTJDLEtBQTNDLENBUmY7QUFBQSw4QkFTRUMsV0FURjtBQUFBLE1BU0VBLFdBVEYsaUNBU2dCLENBQUMsS0FBRCxFQUFRLEtBQVIsRUFBZSxLQUFmLEVBQXNCLEtBQXRCLEVBQTZCLEtBQTdCLEVBQW9DLEtBQXBDLEVBQTJDLEtBQTNDLEVBQWtELEtBQWxELEVBQXlELEtBQXpELEVBQWdFLEtBQWhFLEVBQXVFLEtBQXZFLEVBQThFLEtBQTlFLENBVGhCO0FBQUEsOEJBVUVDLFdBVkY7QUFBQSxNQVVFQSxXQVZGLGlDQVVnQjtBQUFFLE9BQUcsU0FBTDtBQUFnQixPQUFHLFNBQW5CO0FBQThCLE9BQUcsU0FBakM7QUFBNEMsUUFBSSxTQUFoRDtBQUEyRCxRQUFJO0FBQS9ELEdBVmhCO0FBQUEsTUFXS0MsS0FYTDs7QUFhQSxrQkFBOEJ0QixRQUFRLENBQUMsQ0FBRCxDQUF0QztBQUFBO0FBQUEsTUFBT3VCLE9BQVA7QUFBQSxNQUFnQkMsVUFBaEI7O0FBQ0EsbUJBQThCeEIsUUFBUSxDQUFDLENBQUMsQ0FBQ21CLFVBQUYsR0FBZSxFQUFmLEdBQW9CLENBQXJCLENBQXRDO0FBQUE7QUFBQSxNQUFPTSxPQUFQO0FBQUEsTUFBZ0JDLFVBQWhCOztBQUNBLE1BQU1DLE1BQU0sZ0JBQUc5QixLQUFLLENBQUMrQixTQUFOLEVBQWY7QUFDQSxNQUFNQyxJQUFJLEdBQUc5QixPQUFPLENBQUM7QUFBQSxXQUFNTyxVQUFVLENBQUN3QixNQUFNLENBQUNDLElBQVAsQ0FBWVYsV0FBWixFQUF5QlcsR0FBekIsQ0FBNkIsVUFBQ0MsSUFBRDtBQUFBLGFBQVVDLFFBQVEsQ0FBQ0QsSUFBRCxFQUFPLEVBQVAsQ0FBbEI7QUFBQSxLQUE3QixDQUFELENBQWhCO0FBQUEsR0FBRCxFQUErRSxDQUFDWixXQUFELENBQS9FLENBQXBCO0FBQ0EsTUFBTWMsSUFBSSxHQUFHcEMsT0FBTyxDQUFDO0FBQUEsV0FBTUksVUFBVSxDQUFDZSxLQUFELENBQWhCO0FBQUEsR0FBRCxFQUEwQixDQUFDQSxLQUFELENBQTFCLENBQXBCO0FBQ0FwQixFQUFBQSxTQUFTLENBQUM7QUFBQSxXQUFNNEIsVUFBVSxDQUFDLENBQUMsQ0FBQ1AsVUFBRixHQUFlLEVBQWYsR0FBb0IsQ0FBckIsQ0FBaEI7QUFBQSxHQUFELEVBQTBDLENBQUNBLFVBQUQsQ0FBMUMsQ0FBVDtBQUNBckIsRUFBQUEsU0FBUyxDQUFDLFlBQU07QUFDZCxRQUFJNkIsTUFBTSxDQUFDUyxPQUFYLEVBQW9CO0FBQ2xCLFVBQU1DLEtBQUssR0FBR1YsTUFBTSxDQUFDUyxPQUFQLENBQWVFLFdBQWYsR0FBNkJiLE9BQTdCLElBQXdDLENBQXREO0FBQ0FELE1BQUFBLFVBQVUsQ0FBQ2UsSUFBSSxDQUFDQyxLQUFMLENBQVdILEtBQUssSUFBSTFCLFFBQVEsR0FBR0MsS0FBZixDQUFoQixLQUEwQyxDQUEzQyxDQUFWO0FBQ0Q7QUFDRixHQUxRLEVBS04sQ0FBQ0QsUUFBRCxFQUFXZ0IsTUFBWCxFQUFtQmYsS0FBbkIsRUFBMEJhLE9BQTFCLENBTE0sQ0FBVDtBQU9BLE1BQU1nQixhQUFhLEdBQUcxQyxPQUFPLENBQUMsWUFBTTtBQUNsQyxRQUFJUSxXQUFXLENBQUNNLFNBQUQsQ0FBZixFQUE0QjtBQUMxQixhQUFPLENBQUNBLFNBQVMsQ0FBQzZCLE1BQVYsRUFBRCxHQUFzQjdCLFNBQXRCLEdBQWtDLElBQUlDLElBQUosQ0FBU0QsU0FBUyxDQUFDOEIsT0FBVixLQUFzQjlCLFNBQVMsQ0FBQzZCLE1BQVYsS0FBcUJsQyxVQUFwRCxDQUF6QztBQUNELEtBRkQsTUFFTztBQUNMLFVBQU1vQyxPQUFPLEdBQUcsSUFBSTlCLElBQUosRUFBaEI7QUFDQSxhQUFPLElBQUlBLElBQUosQ0FBUzhCLE9BQU8sQ0FBQ0QsT0FBUixLQUFvQkMsT0FBTyxDQUFDRixNQUFSLEtBQW1CbEMsVUFBaEQsQ0FBUDtBQUNEO0FBQ0YsR0FQNEIsRUFPMUIsQ0FBQ0ssU0FBRCxDQVAwQixDQUE3QjtBQVNBLHNCQUNFO0FBQUssSUFBQSxHQUFHLEVBQUVjO0FBQVYsS0FBc0JMLEtBQXRCLGdCQUNFLG9CQUFDLFVBQUQ7QUFBWSxJQUFBLFVBQVUsRUFBRUgsVUFBeEI7QUFBb0MsSUFBQSxRQUFRLEVBQUVSLFFBQTlDO0FBQXdELElBQUEsS0FBSyxFQUFFQztBQUEvRCxJQURGLGVBRUU7QUFBRyxJQUFBLFNBQVMsc0JBQWVhLE9BQWY7QUFBWixLQUNHLG1CQUFJb0IsS0FBSyxDQUFDdEIsT0FBRCxDQUFULEVBQW9CUyxHQUFwQixDQUF3QixVQUFDYyxDQUFELEVBQUlDLEdBQUosRUFBWTtBQUNuQyx3QkFDRTtBQUFHLE1BQUEsR0FBRyxFQUFFQSxHQUFSO0FBQWEscUJBQWFBO0FBQTFCLE9BQ0csbUJBQUlGLEtBQUssQ0FBQyxDQUFELENBQVQsRUFBY2IsR0FBZCxDQUFrQixVQUFDYyxDQUFELEVBQUlFLElBQUosRUFBYTtBQUM5QixVQUFNQyxRQUF3QixtQ0FDekJqQyxTQUR5QjtBQUU1QkwsUUFBQUEsUUFBUSxFQUFSQSxRQUY0QjtBQUc1QkMsUUFBQUEsS0FBSyxFQUFMQSxLQUg0QjtBQUk1QnNDLFFBQUFBLEdBQUcsRUFBRUYsSUFKdUI7QUFLNUJHLFFBQUFBLEdBQUcsRUFBRUgsSUFMdUI7QUFNNUJJLFFBQUFBLE1BQU0sRUFBRUwsR0FOb0I7QUFPNUJNLFFBQUFBLElBQUksRUFBRTtBQVBzQixRQUE5Qjs7QUFTQSxVQUFNQyxXQUFXLEdBQUcsSUFBSXhDLElBQUosQ0FBUzJCLGFBQWEsQ0FBQ0UsT0FBZCxLQUEwQm5DLFVBQVUsSUFBSXVDLEdBQUcsR0FBRyxDQUFOLEdBQVVDLElBQWQsQ0FBN0MsQ0FBcEI7QUFDQUMsTUFBQUEsUUFBUSxDQUFDTSxJQUFULEdBQWdCbkQsZUFBZSxDQUFDa0QsV0FBRCxDQUEvQjs7QUFDQSxVQUFJdkMsT0FBTyxZQUFZRCxJQUFuQixJQUEyQndDLFdBQVcsQ0FBQ1gsT0FBWixLQUF3QjVCLE9BQU8sQ0FBQzRCLE9BQVIsRUFBdkQsRUFBMEU7QUFDeEUsZUFBTyxJQUFQO0FBQ0Q7O0FBQ0QsVUFBSU0sUUFBUSxDQUFDTSxJQUFULElBQWlCcEIsSUFBSSxDQUFDYyxRQUFRLENBQUNNLElBQVYsQ0FBckIsSUFBd0NsQyxXQUF4QyxJQUF1RFMsTUFBTSxDQUFDQyxJQUFQLENBQVlWLFdBQVosRUFBeUJtQyxNQUF6QixHQUFrQyxDQUE3RixFQUFnRztBQUM5RlAsUUFBQUEsUUFBUSxDQUFDSSxJQUFULEdBQWdCaEQsVUFBVSxDQUFDOEIsSUFBSSxDQUFDYyxRQUFRLENBQUNNLElBQVYsQ0FBSixDQUFvQkUsS0FBcEIsSUFBNkIsQ0FBOUIsRUFBaUM1QixJQUFqQyxFQUF1Q1IsV0FBdkMsQ0FBMUI7QUFDRCxPQUZELE1BRU8sSUFBSUEsV0FBVyxJQUFJQSxXQUFXLENBQUMsQ0FBRCxDQUE5QixFQUFtQztBQUN4QzRCLFFBQUFBLFFBQVEsQ0FBQ0ksSUFBVCxHQUFnQmhDLFdBQVcsQ0FBQyxDQUFELENBQTNCO0FBQ0Q7O0FBQ0QsVUFBSUosVUFBVSxJQUFJLE9BQU9BLFVBQVAsS0FBc0IsVUFBeEMsRUFBb0Q7QUFDbEQsWUFBTXlDLEdBQUcsR0FBR3pDLFVBQVUsQ0FBQ2dDLFFBQUQsQ0FBdEI7O0FBQ0EsWUFBSVMsR0FBRyxpQkFBSTdELEtBQUssQ0FBQzhELGNBQU4sQ0FBcUJELEdBQXJCLENBQVgsRUFBc0M7QUFDcEMsaUJBQU9BLEdBQVA7QUFDRDtBQUNGOztBQUNELDBCQUFPLG9CQUFDLE9BQUQsRUFBYVQsUUFBYixDQUFQO0FBQ0QsS0EzQkEsQ0FESCxDQURGO0FBZ0NELEdBakNBLENBREgsQ0FGRixDQURGO0FBeUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBXZWVrTGFibGVzIH0gZnJvbSAnLi9XZWVrTGFibGVzJztcbmltcG9ydCB7IFJlY3REYXksIFJlY3REYXlEZWZhdWx0UHJvcHMgfSBmcm9tICcuL1JlY3REYXknO1xuaW1wb3J0IHsgZm9ybWF0RGF0YSwgZ2V0RGF0ZVRvU3RyaW5nLCBleGlzdENvbG9yLCBudW1iZXJTb3J0LCBpc1ZhbGlkRGF0ZSB9IGZyb20gJy4vdXRpbHMnO1xuXG5jb25zdCBvbmVEYXlUaW1lID0gMjQgKiA2MCAqIDYwICogMTAwMDtcblxuZXhwb3J0IHR5cGUgSGVhdE1hcFZhbHVlID0ge1xuICBkYXRlOiBzdHJpbmc7XG4gIGNvbnRlbnQ6IHN0cmluZyB8IHN0cmluZ1tdIHwgUmVhY3QuUmVhY3ROb2RlO1xuICBjb3VudDogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgUmVjdERheUVsZW1lbnQ8VCA9IFNWR1JlY3RFbGVtZW50PiA9IFJlY3REYXlEZWZhdWx0UHJvcHMgJiBSZWFjdC5TVkdQcm9wczxUPjtcblxuZXhwb3J0IGludGVyZmFjZSBTVkdQcm9wcyBleHRlbmRzIFJlYWN0LlNWR1Byb3BzPFNWR1NWR0VsZW1lbnQ+IHtcbiAgc3RhcnREYXRlPzogRGF0ZTtcbiAgZW5kRGF0ZT86IERhdGU7XG4gIHJlY3RTaXplPzogbnVtYmVyO1xuICBzcGFjZT86IG51bWJlcjtcbiAgcmVjdFByb3BzPzogUmVjdERheUVsZW1lbnQgfCBSZWN0RGF5RGVmYXVsdFByb3BzO1xuICByZW5kZXJSZWN0PzogPEUgPSBTVkdSZWN0RWxlbWVudD4oZGF0YTogRSAmIFJlY3REYXlEZWZhdWx0UHJvcHMgJiB7IGZpbGw/OiBzdHJpbmcgfSkgPT4gUmVhY3QuUmVhY3RFbGVtZW50IHwgdm9pZDtcbiAgdmFsdWU/OiBBcnJheTxIZWF0TWFwVmFsdWU+O1xuICB3ZWVrTGFibGVzPzogc3RyaW5nW10gfCBmYWxzZTtcbiAgbW9udGhMYWJsZXM/OiBzdHJpbmdbXTtcbiAgcGFuZWxDb2xvcnM/OiBSZWNvcmQ8bnVtYmVyLCBzdHJpbmc+O1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBTVkcocHJvcHM6IFNWR1Byb3BzKSB7XG4gIGNvbnN0IHtcbiAgICByZWN0U2l6ZSA9IDExLFxuICAgIHNwYWNlID0gMixcbiAgICBzdGFydERhdGUgPSBuZXcgRGF0ZSgpLFxuICAgIGVuZERhdGUsXG4gICAgcmVjdFByb3BzLFxuICAgIHJlbmRlclJlY3QsXG4gICAgdmFsdWUgPSBbXSxcbiAgICB3ZWVrTGFibGVzID0gWydTdW4nLCAnTW9uJywgJ1R1ZScsICdXZWQnLCAnVGh1JywgJ0ZyaScsICdTYXQnXSxcbiAgICBtb250aExhYmxlcyA9IFsnSmFuJywgJ0ZlYicsICdNYXInLCAnQXByJywgJ01heScsICdKdW4nLCAnSnVsJywgJ0F1ZycsICdTZXAnLCAnT2N0JywgJ05vdicsICdEZWMnXSxcbiAgICBwYW5lbENvbG9ycyA9IHsgMDogJyNFQkVERjAnLCA4OiAnIzdCQzk2RicsIDQ6ICcjQzZFNDhCJywgMTI6ICcjMjM5QTNCJywgMzI6ICcjMTk2MTI3JyB9LFxuICAgIC4uLm90aGVyXG4gIH0gPSBwcm9wcyB8fCB7fTtcbiAgY29uc3QgW2dyaWROdW0sIHNldEdyaWROdW1dID0gdXNlU3RhdGUoMCk7XG4gIGNvbnN0IFtsZWZ0UGFkLCBzZXRMZWZ0UGFkXSA9IHVzZVN0YXRlKCEhd2Vla0xhYmxlcyA/IDI4IDogNSk7XG4gIGNvbnN0IHN2Z1JlZiA9IFJlYWN0LmNyZWF0ZVJlZjxTVkdTVkdFbGVtZW50PigpO1xuICBjb25zdCBudW1zID0gdXNlTWVtbygoKSA9PiBudW1iZXJTb3J0KE9iamVjdC5rZXlzKHBhbmVsQ29sb3JzKS5tYXAoKGl0ZW0pID0+IHBhcnNlSW50KGl0ZW0sIDEwKSkpLCBbcGFuZWxDb2xvcnNdKTtcbiAgY29uc3QgZGF0YSA9IHVzZU1lbW8oKCkgPT4gZm9ybWF0RGF0YSh2YWx1ZSksIFt2YWx1ZV0pO1xuICB1c2VFZmZlY3QoKCkgPT4gc2V0TGVmdFBhZCghIXdlZWtMYWJsZXMgPyAyOCA6IDUpLCBbd2Vla0xhYmxlc10pO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChzdmdSZWYuY3VycmVudCkge1xuICAgICAgY29uc3Qgd2lkdGggPSBzdmdSZWYuY3VycmVudC5jbGllbnRXaWR0aCAtIGxlZnRQYWQgfHwgMDtcbiAgICAgIHNldEdyaWROdW0oTWF0aC5mbG9vcih3aWR0aCAvIChyZWN0U2l6ZSArIHNwYWNlKSkgfHwgMCk7XG4gICAgfVxuICB9LCBbcmVjdFNpemUsIHN2Z1JlZiwgc3BhY2UsIGxlZnRQYWRdKTtcblxuICBjb25zdCBpbml0U3RhcnREYXRlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGlzVmFsaWREYXRlKHN0YXJ0RGF0ZSkpIHtcbiAgICAgIHJldHVybiAhc3RhcnREYXRlLmdldERheSgpID8gc3RhcnREYXRlIDogbmV3IERhdGUoc3RhcnREYXRlLmdldFRpbWUoKSAtIHN0YXJ0RGF0ZS5nZXREYXkoKSAqIG9uZURheVRpbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBuZXdEYXRlID0gbmV3IERhdGUoKTtcbiAgICAgIHJldHVybiBuZXcgRGF0ZShuZXdEYXRlLmdldFRpbWUoKSAtIG5ld0RhdGUuZ2V0RGF5KCkgKiBvbmVEYXlUaW1lKTtcbiAgICB9XG4gIH0sIFtzdGFydERhdGVdKTtcblxuICByZXR1cm4gKFxuICAgIDxzdmcgcmVmPXtzdmdSZWZ9IHsuLi5vdGhlcn0+XG4gICAgICA8V2Vla0xhYmxlcyB3ZWVrTGFibGVzPXt3ZWVrTGFibGVzfSByZWN0U2l6ZT17cmVjdFNpemV9IHNwYWNlPXtzcGFjZX0gLz5cbiAgICAgIDxnIHRyYW5zZm9ybT17YHRyYW5zbGF0ZSgke2xlZnRQYWR9LCAyMClgfT5cbiAgICAgICAge1suLi5BcnJheShncmlkTnVtKV0ubWFwKChfLCBpZHgpID0+IHtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGcga2V5PXtpZHh9IGRhdGEtY29sdW1uPXtpZHh9PlxuICAgICAgICAgICAgICB7Wy4uLkFycmF5KDcpXS5tYXAoKF8sIGNpZHgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXlQcm9wczogUmVjdERheUVsZW1lbnQgPSB7XG4gICAgICAgICAgICAgICAgICAuLi5yZWN0UHJvcHMsXG4gICAgICAgICAgICAgICAgICByZWN0U2l6ZSxcbiAgICAgICAgICAgICAgICAgIHNwYWNlLFxuICAgICAgICAgICAgICAgICAga2V5OiBjaWR4LFxuICAgICAgICAgICAgICAgICAgcm93OiBjaWR4LFxuICAgICAgICAgICAgICAgICAgY29sdW1uOiBpZHgsXG4gICAgICAgICAgICAgICAgICBmaWxsOiAnI0VCRURGMCcsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKGluaXRTdGFydERhdGUuZ2V0VGltZSgpICsgb25lRGF5VGltZSAqIChpZHggKiA3ICsgY2lkeCkpO1xuICAgICAgICAgICAgICAgIGRheVByb3BzLmRhdGUgPSBnZXREYXRlVG9TdHJpbmcoY3VycmVudERhdGUpO1xuICAgICAgICAgICAgICAgIGlmIChlbmREYXRlIGluc3RhbmNlb2YgRGF0ZSAmJiBjdXJyZW50RGF0ZS5nZXRUaW1lKCkgPiBlbmREYXRlLmdldFRpbWUoKSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChkYXlQcm9wcy5kYXRlICYmIGRhdGFbZGF5UHJvcHMuZGF0ZV0gJiYgcGFuZWxDb2xvcnMgJiYgT2JqZWN0LmtleXMocGFuZWxDb2xvcnMpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgIGRheVByb3BzLmZpbGwgPSBleGlzdENvbG9yKGRhdGFbZGF5UHJvcHMuZGF0ZV0uY291bnQgfHwgMCwgbnVtcywgcGFuZWxDb2xvcnMpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocGFuZWxDb2xvcnMgJiYgcGFuZWxDb2xvcnNbMF0pIHtcbiAgICAgICAgICAgICAgICAgIGRheVByb3BzLmZpbGwgPSBwYW5lbENvbG9yc1swXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHJlbmRlclJlY3QgJiYgdHlwZW9mIHJlbmRlclJlY3QgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGVsbSA9IHJlbmRlclJlY3QoZGF5UHJvcHMpO1xuICAgICAgICAgICAgICAgICAgaWYgKGVsbSAmJiBSZWFjdC5pc1ZhbGlkRWxlbWVudChlbG0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlbG07XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiA8UmVjdERheSB7Li4uZGF5UHJvcHN9IC8+O1xuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICApO1xuICAgICAgICB9KX1cbiAgICAgIDwvZz5cbiAgICA8L3N2Zz5cbiAgKTtcbn1cbiJdfQ==
import { SVGProps, HeatMapValue } from './SVG';
export declare function isValidDate(date: Date): boolean;
export declare function getDateToString(date: Date): string;

@@ -3,0 +4,0 @@ export declare function formatData(data?: SVGProps['value']): Record<string, HeatMapValue>;

@@ -1,5 +0,4 @@

function isValidDate(date) {
export function isValidDate(date) {
return date instanceof Date && !isNaN(date.getTime());
}
export function getDateToString(date) {

@@ -45,2 +44,2 @@ return "".concat(date.getFullYear(), "/").concat(date.getMonth() + 1, "/").concat(date.getDate());

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy50cyJdLCJuYW1lcyI6WyJpc1ZhbGlkRGF0ZSIsImRhdGUiLCJEYXRlIiwiaXNOYU4iLCJnZXRUaW1lIiwiZ2V0RGF0ZVRvU3RyaW5nIiwiZ2V0RnVsbFllYXIiLCJnZXRNb250aCIsImdldERhdGUiLCJmb3JtYXREYXRhIiwiZGF0YSIsInJlc3VsdCIsImZvckVhY2giLCJpdGVtIiwibnVtYmVyU29ydCIsImtleXMiLCJzb3J0IiwieCIsInkiLCJleGlzdENvbG9yIiwibnVtIiwibnVtcyIsInBhbmVsQ29sb3JzIiwiY29sb3IiLCJhIiwibGVuZ3RoIl0sIm1hcHBpbmdzIjoiQUFFQSxTQUFTQSxXQUFULENBQXFCQyxJQUFyQixFQUFpQztBQUMvQixTQUFPQSxJQUFJLFlBQVlDLElBQWhCLElBQXdCLENBQUNDLEtBQUssQ0FBQ0YsSUFBSSxDQUFDRyxPQUFMLEVBQUQsQ0FBckM7QUFDRDs7QUFFRCxPQUFPLFNBQVNDLGVBQVQsQ0FBeUJKLElBQXpCLEVBQXFDO0FBQzFDLG1CQUFVQSxJQUFJLENBQUNLLFdBQUwsRUFBVixjQUFnQ0wsSUFBSSxDQUFDTSxRQUFMLEtBQWtCLENBQWxELGNBQXVETixJQUFJLENBQUNPLE9BQUwsRUFBdkQ7QUFDRDtBQUVELE9BQU8sU0FBU0MsVUFBVCxHQUFrRDtBQUFBLE1BQTlCQyxJQUE4Qix1RUFBSixFQUFJO0FBQ3ZELE1BQU1DLE1BQW9DLEdBQUcsRUFBN0M7QUFDQUQsRUFBQUEsSUFBSSxDQUFDRSxPQUFMLENBQWEsVUFBQ0MsSUFBRCxFQUFVO0FBQ3JCLFFBQUlBLElBQUksQ0FBQ1osSUFBTCxJQUFhRCxXQUFXLENBQUMsSUFBSUUsSUFBSixDQUFTVyxJQUFJLENBQUNaLElBQWQsQ0FBRCxDQUE1QixFQUFtRDtBQUNqRFksTUFBQUEsSUFBSSxDQUFDWixJQUFMLEdBQVlJLGVBQWUsQ0FBQyxJQUFJSCxJQUFKLENBQVNXLElBQUksQ0FBQ1osSUFBZCxDQUFELENBQTNCO0FBQ0FVLE1BQUFBLE1BQU0sQ0FBQ0UsSUFBSSxDQUFDWixJQUFOLENBQU4sR0FBb0JZLElBQXBCO0FBQ0Q7QUFDRixHQUxEO0FBTUEsU0FBT0YsTUFBUDtBQUNEO0FBRUQ7O0FBQ0EsT0FBTyxTQUFTRyxVQUFULEdBQXlDO0FBQUEsTUFBckJDLElBQXFCLHVFQUFKLEVBQUk7QUFDOUMsU0FBT0EsSUFBSSxDQUFDQyxJQUFMLENBQVUsVUFBQ0MsQ0FBRCxFQUFJQyxDQUFKLEVBQVU7QUFDekIsUUFBSUQsQ0FBQyxHQUFHQyxDQUFSLEVBQVcsT0FBTyxDQUFDLENBQVIsQ0FBWCxLQUNLLElBQUlELENBQUMsR0FBR0MsQ0FBUixFQUFXLE9BQU8sQ0FBUDtBQUNoQixXQUFPLENBQVA7QUFDRCxHQUpNLENBQVA7QUFLRDtBQUVELE9BQU8sU0FBU0MsVUFBVCxHQUErRjtBQUFBLE1BQTNFQyxHQUEyRSx1RUFBN0QsQ0FBNkQ7QUFBQSxNQUExREMsSUFBMEQ7QUFBQSxNQUExQ0MsV0FBMEMsdUVBQUosRUFBSTtBQUNwRyxNQUFJQyxLQUFLLEdBQUcsRUFBWjs7QUFDQSxPQUFLLElBQUlDLENBQUMsR0FBRyxDQUFiLEVBQWdCQSxDQUFDLEdBQUdILElBQUksQ0FBQ0ksTUFBekIsRUFBaUNELENBQUMsSUFBSSxDQUF0QyxFQUF5QztBQUN2QyxRQUFJSCxJQUFJLENBQUNHLENBQUQsQ0FBSixHQUFVSixHQUFkLEVBQW1CO0FBQ2pCRyxNQUFBQSxLQUFLLEdBQUdELFdBQVcsQ0FBQ0QsSUFBSSxDQUFDRyxDQUFELENBQUwsQ0FBbkI7QUFDQTtBQUNEOztBQUNERCxJQUFBQSxLQUFLLEdBQUdELFdBQVcsQ0FBQ0QsSUFBSSxDQUFDRyxDQUFELENBQUwsQ0FBbkI7QUFDRDs7QUFDRCxTQUFPRCxLQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTVkdQcm9wcywgSGVhdE1hcFZhbHVlIH0gZnJvbSAnLi9TVkcnO1xuXG5mdW5jdGlvbiBpc1ZhbGlkRGF0ZShkYXRlOiBEYXRlKSB7XG4gIHJldHVybiBkYXRlIGluc3RhbmNlb2YgRGF0ZSAmJiAhaXNOYU4oZGF0ZS5nZXRUaW1lKCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0ZVRvU3RyaW5nKGRhdGU6IERhdGUpIHtcbiAgcmV0dXJuIGAke2RhdGUuZ2V0RnVsbFllYXIoKX0vJHtkYXRlLmdldE1vbnRoKCkgKyAxfS8ke2RhdGUuZ2V0RGF0ZSgpfWA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXREYXRhKGRhdGE6IFNWR1Byb3BzWyd2YWx1ZSddID0gW10pIHtcbiAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBIZWF0TWFwVmFsdWU+ID0ge307XG4gIGRhdGEuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgIGlmIChpdGVtLmRhdGUgJiYgaXNWYWxpZERhdGUobmV3IERhdGUoaXRlbS5kYXRlKSkpIHtcbiAgICAgIGl0ZW0uZGF0ZSA9IGdldERhdGVUb1N0cmluZyhuZXcgRGF0ZShpdGVtLmRhdGUpKTtcbiAgICAgIHJlc3VsdFtpdGVtLmRhdGVdID0gaXRlbTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKiog5o6S5bqPIOavlOi+g+WHveaVsCAqL1xuZXhwb3J0IGZ1bmN0aW9uIG51bWJlclNvcnQoa2V5czogbnVtYmVyW10gPSBbXSkge1xuICByZXR1cm4ga2V5cy5zb3J0KCh4LCB5KSA9PiB7XG4gICAgaWYgKHggPCB5KSByZXR1cm4gLTE7XG4gICAgZWxzZSBpZiAoeCA+IHkpIHJldHVybiAxO1xuICAgIHJldHVybiAwO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4aXN0Q29sb3IobnVtOiBudW1iZXIgPSAwLCBudW1zOiBudW1iZXJbXSwgcGFuZWxDb2xvcnM6IFJlY29yZDxudW1iZXIsIHN0cmluZz4gPSB7fSkge1xuICBsZXQgY29sb3IgPSAnJztcbiAgZm9yIChsZXQgYSA9IDA7IGEgPCBudW1zLmxlbmd0aDsgYSArPSAxKSB7XG4gICAgaWYgKG51bXNbYV0gPiBudW0pIHtcbiAgICAgIGNvbG9yID0gcGFuZWxDb2xvcnNbbnVtc1thXV07XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY29sb3IgPSBwYW5lbENvbG9yc1tudW1zW2FdXTtcbiAgfVxuICByZXR1cm4gY29sb3I7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy50cyJdLCJuYW1lcyI6WyJpc1ZhbGlkRGF0ZSIsImRhdGUiLCJEYXRlIiwiaXNOYU4iLCJnZXRUaW1lIiwiZ2V0RGF0ZVRvU3RyaW5nIiwiZ2V0RnVsbFllYXIiLCJnZXRNb250aCIsImdldERhdGUiLCJmb3JtYXREYXRhIiwiZGF0YSIsInJlc3VsdCIsImZvckVhY2giLCJpdGVtIiwibnVtYmVyU29ydCIsImtleXMiLCJzb3J0IiwieCIsInkiLCJleGlzdENvbG9yIiwibnVtIiwibnVtcyIsInBhbmVsQ29sb3JzIiwiY29sb3IiLCJhIiwibGVuZ3RoIl0sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLFNBQVNBLFdBQVQsQ0FBcUJDLElBQXJCLEVBQWlDO0FBQ3RDLFNBQU9BLElBQUksWUFBWUMsSUFBaEIsSUFBd0IsQ0FBQ0MsS0FBSyxDQUFDRixJQUFJLENBQUNHLE9BQUwsRUFBRCxDQUFyQztBQUNEO0FBRUQsT0FBTyxTQUFTQyxlQUFULENBQXlCSixJQUF6QixFQUFxQztBQUMxQyxtQkFBVUEsSUFBSSxDQUFDSyxXQUFMLEVBQVYsY0FBZ0NMLElBQUksQ0FBQ00sUUFBTCxLQUFrQixDQUFsRCxjQUF1RE4sSUFBSSxDQUFDTyxPQUFMLEVBQXZEO0FBQ0Q7QUFFRCxPQUFPLFNBQVNDLFVBQVQsR0FBa0Q7QUFBQSxNQUE5QkMsSUFBOEIsdUVBQUosRUFBSTtBQUN2RCxNQUFNQyxNQUFvQyxHQUFHLEVBQTdDO0FBQ0FELEVBQUFBLElBQUksQ0FBQ0UsT0FBTCxDQUFhLFVBQUNDLElBQUQsRUFBVTtBQUNyQixRQUFJQSxJQUFJLENBQUNaLElBQUwsSUFBYUQsV0FBVyxDQUFDLElBQUlFLElBQUosQ0FBU1csSUFBSSxDQUFDWixJQUFkLENBQUQsQ0FBNUIsRUFBbUQ7QUFDakRZLE1BQUFBLElBQUksQ0FBQ1osSUFBTCxHQUFZSSxlQUFlLENBQUMsSUFBSUgsSUFBSixDQUFTVyxJQUFJLENBQUNaLElBQWQsQ0FBRCxDQUEzQjtBQUNBVSxNQUFBQSxNQUFNLENBQUNFLElBQUksQ0FBQ1osSUFBTixDQUFOLEdBQW9CWSxJQUFwQjtBQUNEO0FBQ0YsR0FMRDtBQU1BLFNBQU9GLE1BQVA7QUFDRDtBQUVEOztBQUNBLE9BQU8sU0FBU0csVUFBVCxHQUF5QztBQUFBLE1BQXJCQyxJQUFxQix1RUFBSixFQUFJO0FBQzlDLFNBQU9BLElBQUksQ0FBQ0MsSUFBTCxDQUFVLFVBQUNDLENBQUQsRUFBSUMsQ0FBSixFQUFVO0FBQ3pCLFFBQUlELENBQUMsR0FBR0MsQ0FBUixFQUFXLE9BQU8sQ0FBQyxDQUFSLENBQVgsS0FDSyxJQUFJRCxDQUFDLEdBQUdDLENBQVIsRUFBVyxPQUFPLENBQVA7QUFDaEIsV0FBTyxDQUFQO0FBQ0QsR0FKTSxDQUFQO0FBS0Q7QUFFRCxPQUFPLFNBQVNDLFVBQVQsR0FBK0Y7QUFBQSxNQUEzRUMsR0FBMkUsdUVBQTdELENBQTZEO0FBQUEsTUFBMURDLElBQTBEO0FBQUEsTUFBMUNDLFdBQTBDLHVFQUFKLEVBQUk7QUFDcEcsTUFBSUMsS0FBSyxHQUFHLEVBQVo7O0FBQ0EsT0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBYixFQUFnQkEsQ0FBQyxHQUFHSCxJQUFJLENBQUNJLE1BQXpCLEVBQWlDRCxDQUFDLElBQUksQ0FBdEMsRUFBeUM7QUFDdkMsUUFBSUgsSUFBSSxDQUFDRyxDQUFELENBQUosR0FBVUosR0FBZCxFQUFtQjtBQUNqQkcsTUFBQUEsS0FBSyxHQUFHRCxXQUFXLENBQUNELElBQUksQ0FBQ0csQ0FBRCxDQUFMLENBQW5CO0FBQ0E7QUFDRDs7QUFDREQsSUFBQUEsS0FBSyxHQUFHRCxXQUFXLENBQUNELElBQUksQ0FBQ0csQ0FBRCxDQUFMLENBQW5CO0FBQ0Q7O0FBQ0QsU0FBT0QsS0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU1ZHUHJvcHMsIEhlYXRNYXBWYWx1ZSB9IGZyb20gJy4vU1ZHJztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWREYXRlKGRhdGU6IERhdGUpIHtcbiAgcmV0dXJuIGRhdGUgaW5zdGFuY2VvZiBEYXRlICYmICFpc05hTihkYXRlLmdldFRpbWUoKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREYXRlVG9TdHJpbmcoZGF0ZTogRGF0ZSkge1xuICByZXR1cm4gYCR7ZGF0ZS5nZXRGdWxsWWVhcigpfS8ke2RhdGUuZ2V0TW9udGgoKSArIDF9LyR7ZGF0ZS5nZXREYXRlKCl9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdERhdGEoZGF0YTogU1ZHUHJvcHNbJ3ZhbHVlJ10gPSBbXSkge1xuICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIEhlYXRNYXBWYWx1ZT4gPSB7fTtcbiAgZGF0YS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgaWYgKGl0ZW0uZGF0ZSAmJiBpc1ZhbGlkRGF0ZShuZXcgRGF0ZShpdGVtLmRhdGUpKSkge1xuICAgICAgaXRlbS5kYXRlID0gZ2V0RGF0ZVRvU3RyaW5nKG5ldyBEYXRlKGl0ZW0uZGF0ZSkpO1xuICAgICAgcmVzdWx0W2l0ZW0uZGF0ZV0gPSBpdGVtO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKiDmjpLluo8g5q+U6L6D5Ye95pWwICovXG5leHBvcnQgZnVuY3Rpb24gbnVtYmVyU29ydChrZXlzOiBudW1iZXJbXSA9IFtdKSB7XG4gIHJldHVybiBrZXlzLnNvcnQoKHgsIHkpID0+IHtcbiAgICBpZiAoeCA8IHkpIHJldHVybiAtMTtcbiAgICBlbHNlIGlmICh4ID4geSkgcmV0dXJuIDE7XG4gICAgcmV0dXJuIDA7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhpc3RDb2xvcihudW06IG51bWJlciA9IDAsIG51bXM6IG51bWJlcltdLCBwYW5lbENvbG9yczogUmVjb3JkPG51bWJlciwgc3RyaW5nPiA9IHt9KSB7XG4gIGxldCBjb2xvciA9ICcnO1xuICBmb3IgKGxldCBhID0gMDsgYSA8IG51bXMubGVuZ3RoOyBhICs9IDEpIHtcbiAgICBpZiAobnVtc1thXSA+IG51bSkge1xuICAgICAgY29sb3IgPSBwYW5lbENvbG9yc1tudW1zW2FdXTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjb2xvciA9IHBhbmVsQ29sb3JzW251bXNbYV1dO1xuICB9XG4gIHJldHVybiBjb2xvcjtcbn1cbiJdfQ==
{
"name": "@uiw/react-heat-map",
"version": "1.0.2",
"version": "1.0.3",
"description": "React component create calendar heatmap to visualize time series data, a la github contribution graph.",

@@ -64,6 +64,6 @@ "homepage": "https://uiwjs.github.io/react-heat-map/",

"@types/react-dom": "17.0.5",
"@uiw/react-code-preview": "1.11.13",
"@uiw/react-github-corners": "1.2.0",
"@uiw/react-markdown-preview": "3.0.6",
"@uiw/reset.css": "1.0.4",
"@uiw/react-markdown-preview": "3.0.6",
"@uiw/react-github-corners": "1.2.0",
"@uiw/react-code-preview": "1.11.13",
"compile-less-cli": "1.7.0",

@@ -76,2 +76,3 @@ "husky": "4.3.8",

"react-dom": "17.0.2",
"rehype-attr": "^1.2.0",
"tsbb": "2.1.2"

@@ -78,0 +79,0 @@ },

@@ -30,7 +30,9 @@ HeatMap 日历热图

const value = [
{ date: '2016/01/11', count:2, content:['一条消息来了!','一条消息来了!'] },
{ date: '2016/04/11', count:2, content:['一条消息来了!'] },
{ date: '2016/05/01', count:5, content:['需要显示的数据'] },
{ date: '2016/05/02', count:5, content:['空的没有消息'] },
{ date: '2016/05/04', count:11, content:['些放弃的人会这样想'] },
{ date: '2016/01/11', count: 2 },
{ date: '2016/01/12', count: 20 },
{ date: '2016/01/13', count: 10 },
{ date: '2016/04/11', count: 2 },
{ date: '2016/05/01', count: 5 },
{ date: '2016/05/02', count: 5 },
{ date: '2016/05/04', count: 11 },
];

@@ -46,2 +48,32 @@ return (

## Set Color
<!--rehype:bgWhite=true&codeSandbox=true&codePen=true-->
```jsx
import ReactDOM from 'react-dom';
import HeatMap from '@uiw/react-heat-map';
const Demo = () => {
const value = [
{ date: '2016/01/11', count:2 },
{ date: '2016/04/12', count:2 },
{ date: '2016/05/01', count:5 },
{ date: '2016/05/02', count:5 },
{ date: '2016/05/03', count:1 },
{ date: '2016/05/04', count:11 },
{ date: '2016/05/08', count:32 },
];
return (
<HeatMap
value={value}
width={600}
style={{ color: 'red' }}
startDate={new Date('2016/01/01')}
panelColors={{ 0: '#f4decd', 2: '#e4b293', 4: '#d48462', 10: '#c2533a', 20: '#ad001d' }}
/>
)
};
ReactDOM.render(<Demo />, _mount_);
```
## Props

@@ -48,0 +80,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc