UNPKG

@progress/kendo-react-dateinputs

Version:
151 lines 5.91 kB
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; }; import * as React from 'react'; import * as PropTypes from 'prop-types'; import { registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl'; import { getDate } from '@progress/kendo-date-math'; import { classNames } from '@progress/kendo-react-common'; import { CalendarHeaderTitle } from './CalendarHeaderTitle'; import { messages, today } from '../../messages'; import { getToday, isInRange, dateInRange, MAX_DATE } from '../../utils'; import { MIN_DATE } from '../../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: dateInRange(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 isInRange(getToday(), getDate(this.min), getDate(this.max)); }, enumerable: true, configurable: true }); Header.prototype.render = function () { this.localization = provideLocalizationService(this); var todayMessage = this.localization.toLanguageString(today, messages[today]); var title = this.getTitle(); var titleClassNames = classNames('k-button k-bare k-title', { 'k-state-disabled': !this.navigate }); var todayClassNames = 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, __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: MIN_DATE, max: MAX_DATE }; return Header; }(React.Component)); export { Header }; registerForLocalization(Header); //# sourceMappingURL=Header.js.map