UNPKG

@progress/kendo-react-dateinputs

Version:
153 lines • 6.15 kB
"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __assign = (this && this.__assign) || Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; Object.defineProperty(exports, "__esModule", { value: true }); var React = require("react"); var PropTypes = require("prop-types"); var kendo_react_intl_1 = require("@progress/kendo-react-intl"); var kendo_date_math_1 = require("@progress/kendo-date-math"); var kendo_react_common_1 = require("@progress/kendo-react-common"); var CalendarHeaderTitle_1 = require("./CalendarHeaderTitle"); var messages_1 = require("../../messages"); var utils_1 = require("../../utils"); var defaults_1 = require("../../defaults"); /** * @hidden */ var Header = /** @class */ (function (_super) { __extends(Header, _super); function Header() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.getTitle = function () { if (!_this.props.currentDate) { return ''; } var take = _this.rangeLength - 1; var title = _this.props.service.title(_this.props.currentDate); var nextDate = _this.props.service.addToDate(_this.props.currentDate, take); if (take < 1 || !_this.props.service.isInRange(nextDate, _this.min, _this.max)) { return title; } return title + " - " + _this.props.service.title(nextDate); }; _this.handleTitleClick = function (event) { if (!_this.navigate) { return; } _this.props.bus.moveUp(_this.props.activeView, event); }; _this.handleTodayClick = function (event) { if (!_this.todayIsInRange) { return; } _this.props.bus.moveToBottom(_this.props.activeView); var onTodayClick = _this.props.onTodayClick; if (onTodayClick) { var args = { syntheticEvent: event, nativeEvent: event.nativeEvent, value: utils_1.dateInRange(utils_1.getToday(), _this.min, _this.max), target: _this }; onTodayClick.call(undefined, args); } }; return _this; } Object.defineProperty(Header.prototype, "min", { get: function () { return this.props.min !== undefined ? this.props.min : Header.defaultProps.min; }, enumerable: true, configurable: true }); Object.defineProperty(Header.prototype, "max", { get: function () { return this.props.max !== undefined ? this.props.max : Header.defaultProps.max; }, enumerable: true, configurable: true }); Object.defineProperty(Header.prototype, "rangeLength", { get: function () { return this.props.rangeLength !== undefined ? this.props.rangeLength : Header.defaultProps.rangeLength; }, enumerable: true, configurable: true }); Object.defineProperty(Header.prototype, "navigate", { get: function () { return this.props.bus.canMoveUp(this.props.activeView); }, enumerable: true, configurable: true }); Object.defineProperty(Header.prototype, "todayIsInRange", { get: function () { return utils_1.isInRange(utils_1.getToday(), kendo_date_math_1.getDate(this.min), kendo_date_math_1.getDate(this.max)); }, enumerable: true, configurable: true }); Header.prototype.render = function () { this.localization = kendo_react_intl_1.provideLocalizationService(this); var todayMessage = this.localization.toLanguageString(messages_1.today, messages_1.messages[messages_1.today]); var title = this.getTitle(); var titleClassNames = kendo_react_common_1.classNames('k-button k-bare k-title', { 'k-state-disabled': !this.navigate }); var todayClassNames = kendo_react_common_1.classNames('k-today', { 'k-state-disabled': !this.todayIsInRange }); var headerTitleProps = { children: title, value: title, view: this.props.activeView, className: titleClassNames, onClick: this.handleTitleClick }; var headerTitle = this.props.headerTitle ? React.createElement(this.props.headerTitle, __assign({}, headerTitleProps), title) : React.createElement(CalendarHeaderTitle_1.CalendarHeaderTitle, __assign({}, headerTitleProps), title); return (React.createElement("div", { className: "k-calendar-header" }, headerTitle, React.createElement("span", { className: todayClassNames, onClick: this.handleTodayClick }, todayMessage))); }; Header.propTypes = { activeView: PropTypes.number.isRequired, currentDate: PropTypes.instanceOf(Date).isRequired, max: PropTypes.instanceOf(Date).isRequired, min: PropTypes.instanceOf(Date).isRequired, onTodayClick: PropTypes.func, rangeLength: PropTypes.number }; Header.defaultProps = { rangeLength: 1, min: defaults_1.MIN_DATE, max: utils_1.MAX_DATE }; return Header; }(React.Component)); exports.Header = Header; kendo_react_intl_1.registerForLocalization(Header); //# sourceMappingURL=Header.js.map