@progress/kendo-react-dateinputs
Version:
KendoReact Date Inputs package
153 lines • 6.15 kB
JavaScript
;
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