{"version":3,"file":"static/js/7506.635ca597.chunk.js","mappings":"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","sources":["../node_modules/@progress/kendo-react-buttons/dist/es/ButtonGroup.js","../node_modules/@progress/kendo-react-buttons/dist/es/util.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/virtualization/Virtualization.js","../node_modules/@progress/kendo-date-math/dist/es/clone-date.js","../node_modules/@progress/kendo-date-math/dist/es/adjust-dst.js","../node_modules/@progress/kendo-date-math/dist/es/create-date.js","../node_modules/@progress/kendo-date-math/dist/es/get-date.js","../node_modules/@progress/kendo-date-math/dist/es/is-equal.js","../node_modules/@progress/kendo-date-math/dist/es/is-equal-date.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/package-metadata.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/virtualization/services/RowHeightService.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/virtualization/services/ScrollerService.js","../node_modules/@progress/kendo-date-math/dist/es/day.enum.js","../node_modules/@progress/kendo-date-math/dist/es/add-days.js","../node_modules/@progress/kendo-date-math/dist/es/direction.enum.js","../node_modules/@progress/kendo-date-math/dist/es/day-of-week.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/models/CalendarViewEnum.js","../node_modules/@progress/kendo-date-math/dist/es/week-in-year.js","../node_modules/@progress/kendo-date-math/dist/es/prev-day-of-week.js","../node_modules/@progress/kendo-date-math/dist/es/constants.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/CalendarCell.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/CalendarWeekCell.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/models/SelectionRange.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/utils.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/services/WeekNamesService.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/View.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/messages/index.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/CalendarHeaderTitle.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/Header.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/TodayCommand.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/ViewList.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/CalendarNavigationItem.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/models/NavigationAction.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/services/CenturyViewService.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/Navigation.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/services/DOMService.js","../node_modules/@progress/kendo-date-math/dist/es/last-day-of-month.js","../node_modules/@progress/kendo-date-math/dist/es/add-months.js","../node_modules/@progress/kendo-date-math/dist/es/set-year.js","../node_modules/@progress/kendo-date-math/dist/es/add-years.js","../node_modules/@progress/kendo-date-math/dist/es/add-decades.js","../node_modules/@progress/kendo-date-math/dist/es/add-centuries.js","../node_modules/@progress/kendo-date-math/dist/es/normalize-year.js","../node_modules/@progress/kendo-date-math/dist/es/first-decade-of-century.js","../node_modules/@progress/kendo-date-math/dist/es/last-decade-of-century.js","../node_modules/@progress/kendo-date-math/dist/es/first-year-of-decade.js","../node_modules/@progress/kendo-date-math/dist/es/duration-in-centuries.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/services/DecadeViewService.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/services/MonthViewService.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/services/YearViewService.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/services/BusViewService.js","../node_modules/@progress/kendo-date-math/dist/es/last-year-of-decade.js","../node_modules/@progress/kendo-date-math/dist/es/duration-in-decades.js","../node_modules/@progress/kendo-date-math/dist/es/add-weeks.js","../node_modules/@progress/kendo-date-math/dist/es/first-day-of-month.js","../node_modules/@progress/kendo-date-math/dist/es/duration-in-months.js","../node_modules/@progress/kendo-date-math/dist/es/set-month.js","../node_modules/@progress/kendo-date-math/dist/es/first-month-of-year.js","../node_modules/@progress/kendo-date-math/dist/es/last-month-of-year.js","../node_modules/@progress/kendo-date-math/dist/es/duration-in-years.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/services/NavigationService.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/services/ScrollSyncService.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/Calendar.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/dateinput/models/mask.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/dateinput/utils.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/dateinput/models/kendo-date.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/timepicker/models/TimePart.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/timepicker/utils.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/dateinput/DateInput.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/datepicker/ToggleButton.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/common/PickerWrap.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/hooks/usePickerFloatingLabel.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/common/AdaptiveMode.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/common/constants.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/datepicker/DatePicker.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/timepicker/services/DayPeriodService.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/timepicker/services/HoursService.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/timepicker/TimeList.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/timepicker/services/MinutesService.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/timepicker/services/SecondsService.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/timepicker/services/DOMService.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/timepicker/TimePart.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/timepicker/TimeSelector.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/timepicker/TimePicker.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/HorizontalViewList.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/calendar/components/MultiViewCalendar.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/daterangepicker/DateRangePicker.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/datetimepicker/DateTimeSelector.js","../node_modules/@progress/kendo-react-dateinputs/dist/es/datetimepicker/DateTimePicker.js","../node_modules/@progress/kendo-react-labels/dist/es/FloatingLabel.js","../node_modules/@progress/kendo-react-labels/dist/es/messages/index.js","../node_modules/@progress/kendo-react-labels/dist/es/package-metadata.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '@progress/kendo-react-common';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from './package-metadata';\nimport util from './util';\nvar styles = util.styles;\nvar ButtonGroup = /** @class */ (function (_super) {\n __extends(ButtonGroup, _super);\n function ButtonGroup(props) {\n var _this = _super.call(this, props) || this;\n _this._element = null;\n validatePackage(packageMetadata);\n return _this;\n }\n /**\n * @hidden\n */\n ButtonGroup.prototype.render = function () {\n var _a;\n var _this = this;\n var buttons = this.mapButtons(this.props.children);\n var groupClasses = classNames([styles['button-group']], (_a = {},\n _a['k-disabled'] = this.props.disabled,\n _a[styles['button-group-stretched']] = !!this.props.width,\n _a), this.props.className);\n var groupProps = {\n className: groupClasses,\n style: { 'width': \"\".concat(this.props.width) },\n dir: this.props.dir,\n // Accessibility properties\n role: 'group',\n 'aria-disabled': this.props.disabled\n };\n return (React.createElement(\"div\", __assign({ ref: function (div) { _this._element = div; } }, groupProps, { className: groupClasses }), buttons));\n };\n ButtonGroup.prototype.mapButtons = function (children) {\n var _this = this;\n var count = React.Children.count(children);\n var rtl = this.props.dir !== undefined\n ? this.props.dir === 'rtl'\n : (this._element && (getComputedStyle(this._element).direction === 'rtl') || false);\n return React.Children.map(children, function (child, index) {\n if (React.isValidElement(child)) {\n return _this.renderButton(child, index, (index === count - 1), rtl);\n }\n return child;\n });\n };\n ButtonGroup.prototype.renderButton = function (child, index, isLast, isRtl) {\n var _a;\n var className = classNames(child.props.className, (_a = {},\n _a[styles['group-start']] = isRtl ? isLast : index === 0,\n _a[styles['group-end']] = isRtl ? index === 0 : isLast,\n _a));\n var style = __assign(__assign({}, (this.props.width ? { width: this.props.width } : {})), (child.props.style || {}));\n var disabled = this.props.disabled || child.props.disabled;\n var buttonProps = __assign(__assign(__assign(__assign({}, child.props), (className ? { className: className } : {})), (Object.keys(style).length ? { style: style } : {})), (disabled !== undefined ? { disabled: disabled } : {}));\n return React.Children.count(child.props.children) > 0 ?\n React.cloneElement(child, buttonProps, child.props.children) :\n React.cloneElement(child, buttonProps);\n };\n /**\n * @hidden\n */\n ButtonGroup.propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.element), PropTypes.element]),\n className: PropTypes.string,\n disabled: PropTypes.bool,\n width: PropTypes.string,\n dir: PropTypes.string\n };\n return ButtonGroup;\n}(React.Component));\nexport { ButtonGroup };\n","/**\n * @hidden\n */\nvar styles = {\n button: 'k-button',\n 'flat': 'k-flat',\n 'outline': 'k-outline',\n 'clear': 'k-button-clear',\n 'primary': 'k-primary',\n 'state-selected': 'k-selected',\n 'button-icon': 'k-button-icon',\n 'button-icontext': 'k-button-icontext',\n 'state-disabled': 'k-disabled',\n 'group-start': 'k-group-start',\n 'group-end': 'k-group-end',\n 'button-group': 'k-button-group',\n 'button-group-stretched': 'k-button-group-stretched',\n 'ltr': 'k-ltr',\n 'rtl': 'k-rtl'\n};\n// const notDisabled = ':not(.k-disabled):not([disabled]):not([disabled=\"true\"])';\nvar noInnerButton = ':not(.k-dropdownlist button):not(.k-colorpicker button):not(.k-split-button .k-split-button-arrow)';\n/**\n * @hidden\n */\nexport var toolbarButtons = [\n 'button' + noInnerButton,\n '.k-button-group > button' + noInnerButton,\n '.k-colorpicker',\n '.k-dropdownlist'\n];\n/**\n * @hidden\n */\nexport default {\n styles: styles\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar _a, _b, _c;\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '@progress/kendo-react-common';\nimport { RowHeightService, ScrollerService } from './services';\n/**\n * @hidden\n */\nexport var ScrollDirection;\n(function (ScrollDirection) {\n ScrollDirection[ScrollDirection[\"Backward\"] = 0] = \"Backward\";\n ScrollDirection[ScrollDirection[\"Forward\"] = 1] = \"Forward\";\n})(ScrollDirection || (ScrollDirection = {}));\nvar differenceToScroll = function (scrollTop, staticOffset, maxScrollDifference) {\n return Math.min(Math.abs(staticOffset - scrollTop), maxScrollDifference);\n};\nvar FRAME_DURATION = 17;\nvar MIN_SCROLL_STEP = 10;\nvar scrollModifiers = (_a = {},\n _a[ScrollDirection.Forward] = function (step) { return function (value) { return value + step; }; },\n _a[ScrollDirection.Backward] = function (step) { return function (value) { return value - step; }; },\n _a);\nvar scrollNormalizers = (_b = {},\n _b[ScrollDirection.Forward] = function (end) { return function (value) { return Math.min(value, end); }; },\n _b[ScrollDirection.Backward] = function (end) { return function (value) { return Math.max(value, end); }; },\n _b);\nvar scrollValidators = (_c = {},\n _c[ScrollDirection.Forward] = function (end) { return function (start) { return start < end; }; },\n _c[ScrollDirection.Backward] = function (end) { return function (start) { return start > end; }; },\n _c);\n/**\n * @hidden\n */\nvar Virtualization = /** @class */ (function (_super) {\n __extends(Virtualization, _super);\n function Virtualization(props) {\n var _this = _super.call(this, props) || this;\n _this.rowHeightService = null;\n _this.scrollContainer = null;\n _this.lastDirection = null;\n _this.lastTotal = 0;\n _this.lastTake = 0;\n _this.animationInProgress = false;\n _this.restrictScroll = false;\n _this.scrollTo = function (value) {\n var scrollProperty = _this.direction === 'vertical' ? 'scrollTop' : 'scrollLeft';\n if (!_this.scrollContainer) {\n return;\n }\n var current = _this.scrollContainer[scrollProperty];\n if (_this.restrictScroll && scrollProperty === 'scrollTop' &&\n (!Number.isInteger(current) || !Number.isInteger(value)) && Math.abs(current - value) < MIN_SCROLL_STEP) {\n return;\n }\n _this.scrollContainer[scrollProperty] = value;\n };\n _this.scrollToIndex = function (index) {\n _this.animationInProgress = false;\n if (_this.rowHeightService) {\n _this.scrollTo(_this.rowHeightService.offset(index));\n }\n };\n _this.animateToIndex = function (index) {\n if (!_this.rowHeightService || !window) {\n return;\n }\n window.cancelAnimationFrame(_this.cancelAnimation);\n var indexOffset = _this.rowHeightService.offset(index);\n var direction = _this.getContainerScrollDirection(indexOffset);\n var _a = _this.scrollRange(indexOffset, direction), start = _a.start, end = _a.end;\n if (start === end) {\n return;\n }\n var step = _this.scrollStep(start, end);\n var modifyScroll = scrollModifiers[direction](step);\n var normalizeScroll = scrollNormalizers[direction](end);\n var isScrollValid = scrollValidators[direction](modifyScroll(end));\n var animate = function (progress) {\n _this.animationInProgress = true;\n var next = modifyScroll(progress);\n _this.scrollTo(normalizeScroll(next));\n isScrollValid(next)\n ? _this.cancelAnimation = window.requestAnimationFrame(function () { animate(next); })\n : _this.animationInProgress = false;\n };\n _this.cancelAnimation = window.requestAnimationFrame(function () { animate(start); });\n };\n _this.scrollToBottom = function () {\n if (!_this.rowHeightService) {\n return;\n }\n _this.scrollTo(_this.rowHeightService.totalHeight() + _this.props.bottomOffset);\n };\n _this.scrollStep = function (start, end) {\n var duration = _this.props.scrollDuration || Virtualization.defaultProps.scrollDuration;\n return Math.abs(end - start) / (duration / FRAME_DURATION);\n };\n _this.scrollRange = function (indexOffset, direction) {\n var containerScroll = _this.containerScrollPosition;\n if (parseInt(\"\".concat(indexOffset), 10) === parseInt(\"\".concat(containerScroll), 10)) {\n return { start: indexOffset, end: indexOffset };\n }\n var maxScroll = _this.containerMaxScroll();\n var sign = direction === ScrollDirection.Backward ? 1 : -1;\n var difference = differenceToScroll(containerScroll, indexOffset, _this.props.maxScrollDifference || 0);\n var end = Math.min(indexOffset, maxScroll);\n var start = Math.min(Math.max(end + (sign * difference), 0), maxScroll);\n return { start: start, end: end };\n };\n _this.containerMaxScroll = function () {\n return _this.containerScrollSize - _this.containerOffsetSize;\n };\n _this.getContainerScrollDirection = function (indexOffset) {\n return indexOffset < _this.containerScrollPosition ? ScrollDirection.Backward : ScrollDirection.Forward;\n };\n _this.initServices = function (props) {\n if (props === void 0) { props = _this.props; }\n var dimension = _this.direction === 'vertical' ? props.itemHeight : props.itemWidth;\n if (dimension === undefined) {\n return;\n }\n _this.rowHeightService = new RowHeightService(props.total, dimension, 0);\n _this.scrollerService.create(_this.rowHeightService, props.skip, props.take, props.total, props.topOffset, _this.scrollOffsetSize, _this.direction);\n };\n _this.getContainerProperty = function (propertyName) {\n if (!_this.scrollContainer) {\n return 0;\n }\n return _this.scrollContainer[propertyName];\n };\n _this.handleScroll = function (event) {\n if (!_this.scrollContainer || !_this.rowHeightService) {\n return;\n }\n var target = event.target;\n _this.scrollerService.onScroll({\n scrollLeft: target.scrollLeft,\n scrollTop: target.scrollTop,\n offsetHeight: target.offsetHeight,\n offsetWidth: target.offsetWidth\n });\n var index = _this.rowHeightService.index(_this.containerScrollPosition - _this.props.topOffset);\n var onScrollAction = _this.props.onScrollAction;\n var args = {\n index: index,\n target: target,\n scrollAction: _this.scrollAction,\n pageAction: _this.pageAction,\n animationInProgress: _this.animationInProgress\n };\n if (_this.props.onScroll) {\n _this.props.onScroll.call(undefined, event);\n }\n if (onScrollAction) {\n onScrollAction.call(undefined, args);\n }\n _this.scrollAction = undefined;\n _this.pageAction = undefined;\n };\n _this.handleScrollAction = function (action) {\n _this.scrollAction = action;\n };\n _this.handlePageAction = function (action) {\n _this.pageAction = action;\n };\n _this.scrollerService = new ScrollerService(_this.handleScrollAction, _this.handlePageAction);\n _this.restrictScroll = Number.parseFloat(React.version) > 17;\n return _this;\n }\n Object.defineProperty(Virtualization.prototype, \"element\", {\n get: function () {\n return this.scrollContainer;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Virtualization.prototype, \"containerOffsetSize\", {\n get: function () {\n return this.getContainerProperty(this.direction === 'vertical' ? 'offsetHeight' : 'offsetWidth');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Virtualization.prototype, \"containerScrollSize\", {\n get: function () {\n return this.getContainerProperty(this.direction === 'vertical' ? 'scrollHeight' : 'scrollWidth');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Virtualization.prototype, \"containerScrollPosition\", {\n get: function () {\n return this.getContainerProperty(this.direction === 'vertical' ? 'scrollTop' : 'scrollLeft');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Virtualization.prototype, \"direction\", {\n get: function () {\n return this.props.direction !== undefined ? this.props.direction : Virtualization.defaultProps.direction;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Virtualization.prototype, \"scrollOffsetSize\", {\n get: function () {\n return this.props.scrollOffsetSize !== undefined\n ? this.props.scrollOffsetSize : Virtualization.defaultProps.scrollOffsetSize;\n },\n enumerable: false,\n configurable: true\n });\n Virtualization.prototype.activeIndex = function () {\n return this.itemIndex(Math.ceil(this.containerScrollPosition));\n };\n Virtualization.prototype.itemIndex = function (offset) {\n if (!this.rowHeightService) {\n return 0;\n }\n return this.rowHeightService.index(offset);\n };\n Virtualization.prototype.itemOffset = function (index) {\n if (!this.rowHeightService) {\n return 0;\n }\n return this.rowHeightService.offset(index);\n };\n Virtualization.prototype.isIndexVisible = function (index) {\n if (!this.rowHeightService) {\n return false;\n }\n var containerTop = this.containerScrollPosition;\n var containerBottom = containerTop + this.containerOffsetSize;\n var top = this.rowHeightService.offset(index);\n var bottom = top + this.rowHeightService.height(index);\n return top >= containerTop && bottom <= containerBottom;\n };\n Virtualization.prototype.isListScrolled = function (index) {\n if (!this.rowHeightService) {\n return false;\n }\n return this.containerScrollPosition !== this.rowHeightService.offset(index);\n };\n Virtualization.prototype.componentDidMount = function () {\n var onMount = this.props.onMount;\n if (onMount) {\n onMount.call(undefined, this);\n }\n };\n Virtualization.prototype.render = function () {\n var _this = this;\n if (this.lastTotal !== this.props.total\n || this.lastDirection !== this.direction\n || this.lastTake !== this.props.take) {\n this.initServices();\n this.lastTotal = this.props.total;\n this.lastDirection = this.direction;\n this.lastTake = this.props.take;\n }\n var vertexLength = \"\".concat((this.rowHeightService ? this.rowHeightService.totalHeight() : 0) + this.props.bottomOffset);\n var placeholderStyle = this.direction === 'vertical'\n ? { height: \"\".concat(vertexLength, \"px\") }\n : { width: \"\".concat(vertexLength, \"px\") };\n var rootClassNames = classNames('k-content k-scrollable', {\n 'k-scrollable-horizontal': this.direction === 'horizontal'\n }, this.props.className);\n var scrollableClassNames = classNames('k-scrollable-placeholder', {\n 'k-scrollable-horizontal-placeholder': this.direction === 'horizontal'\n });\n return (React.createElement(\"div\", { ref: function (el) { _this.scrollContainer = el; }, onScroll: this.handleScroll, className: rootClassNames, tabIndex: this.props.tabIndex, role: this.props.role },\n this.props.children,\n React.createElement(\"div\", { style: placeholderStyle, className: scrollableClassNames })));\n };\n Virtualization.propTypes = {\n bottomOffset: PropTypes.number.isRequired,\n className: PropTypes.string,\n direction: PropTypes.oneOf(['horizontal', 'vertical']),\n forceScroll: PropTypes.bool,\n itemHeight: PropTypes.number,\n itemWidth: PropTypes.number,\n maxScrollDifference: PropTypes.number,\n onScroll: PropTypes.func,\n onScrollAction: PropTypes.func,\n scrollDuration: PropTypes.number,\n scrollOffsetSize: PropTypes.number,\n skip: PropTypes.number.isRequired,\n tabIndex: PropTypes.number,\n take: PropTypes.number.isRequired,\n topOffset: PropTypes.number.isRequired,\n total: PropTypes.number.isRequired,\n role: PropTypes.string\n };\n Virtualization.defaultProps = {\n direction: 'vertical',\n forceScroll: false,\n scrollOffsetSize: 0,\n maxScrollDifference: 100,\n scrollDuration: 100\n };\n return Virtualization;\n}(React.Component));\nexport { Virtualization };\n","/**\n * A function that clones the passed date. The parameter could be `null`.\n *\n * @param date - The initial date value.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * cloneDate(new Date(2016, 0, 1)); // returns new Date(2016, 0, 1);\n * cloneDate(null); // returns null\n * ```\n */\nexport var cloneDate = function (date) { return date ? new Date(date.getTime()) : null; };\n","import { cloneDate } from './clone-date';\n/**\n * @hidden\n */\nexport var adjustDST = function (date, hour) {\n var newDate = cloneDate(date);\n if (hour === 0 && newDate.getHours() === 23) {\n newDate.setHours(newDate.getHours() + 2);\n }\n return newDate;\n};\n","import { adjustDST } from './adjust-dst';\n/**\n * A function which returns a new `Date` instance.\n *\n * @param year - The year value.\n * @param month - The month value.\n * @param day - The day value.\n * @param hours - The hours value.\n * @param minutes - The minutes value.\n * @param seconds - The seconds value.\n * @param milliseconds - milliseconds value.\n * @returns The date instance.\n *\n * @example\n * ```ts-no-run\n * createDate(2016, 0, 15); // 2016-01-15 00:00:00\n * createDate(2016, 0, 15, 22, 22, 20); // 2016-01-15 22:22:20\n * ```\n */\nexport var createDate = function (year, month, day, hours, minutes, seconds, milliseconds) {\n if (hours === void 0) { hours = 0; }\n if (minutes === void 0) { minutes = 0; }\n if (seconds === void 0) { seconds = 0; }\n if (milliseconds === void 0) { milliseconds = 0; }\n var date = new Date(year, month, day, hours, minutes, seconds, milliseconds);\n if (year > -1 && year < 100) {\n date.setFullYear(date.getFullYear() - 1900);\n }\n return adjustDST(date, hours);\n};\n","import { createDate } from './create-date';\n/**\n * A function which returns the passed date with a midnight time portion.\n *\n * @param date - The initial date.\n * @returns - The date with a midnight time portion.\n *\n * @example\n * ```ts-no-run\n * getDate(new Date(2016, 0, 15, 14, 30, 30)); // 2016-01-15 00:00:00\n * ```\n */\nexport var getDate = function (date) {\n return createDate(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);\n};\n","/**\n * A function that compares two dates. The comparison also includes the time portion.\n *\n * @param candidate - The candidate date.\n * @param expected - The expected date.\n * @returns - A Boolean value indicating whether the values are equal.\n *\n * @example\n * ```ts-no-run\n * isEqual(new Date(2016, 0, 1), new Date(2016, 0, 1)); // true\n * isEqual(new Date(2016, 0, 1), new Date(2016, 0, 2)); // false\n * isEqual(new Date(2016, 0, 1, 10), new Date(2016, 0, 1, 20)); // false\n * ```\n */\nexport var isEqual = function (candidate, expected) {\n if (!candidate && !expected) {\n return true;\n }\n return candidate && expected && candidate.getTime() === expected.getTime();\n};\n","import { getDate } from './get-date';\nimport { isEqual } from './is-equal';\n/**\n * A function that compares the date portions of 2 dates.\n *\n * @param candidate - The candidate date.\n * @param expected - The expected date.\n * @returns - A Boolean value whether the values are equal.\n *\n * @example\n * ```ts-no-run\n * isEqualDate(new Date(2016, 0, 1, 10), new Date(2016, 0, 1, 20)); // true\n * isEqualDate(new Date(2016, 0, 1, 10), new Date(2016, 0, 2, 10)); // false\n * ```\n */\nexport var isEqualDate = function (candidate, expected) {\n if (!candidate && !expected) {\n return true;\n }\n return candidate && expected && isEqual(getDate(candidate), getDate(expected));\n};\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-dateinputs',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1700063843,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\n/**\n * @hidden\n */\nvar update = function (arr, idx, value) { return (__spreadArray(__spreadArray([], arr.slice(0, idx + 1), true), (arr.slice(idx + 1).map(function (x) { return x + value; })), true)); };\n/**\n * @hidden\n */\nvar RowHeightService = /** @class */ (function () {\n function RowHeightService(total, rowHeight, detailRowHeight) {\n if (total === void 0) { total = 0; }\n this.total = total;\n this.rowHeight = rowHeight;\n this.detailRowHeight = detailRowHeight;\n this.offsets = [];\n this.heights = [];\n var agg = 0;\n for (var idx = 0; idx < total; idx++) {\n this.offsets.push(agg);\n agg += rowHeight;\n this.heights.push(rowHeight);\n }\n }\n RowHeightService.prototype.height = function (rowIndex) {\n return this.heights[rowIndex];\n };\n RowHeightService.prototype.expandDetail = function (rowIndex) {\n if (this.height(rowIndex) === this.rowHeight) {\n this.updateRowHeight(rowIndex, this.detailRowHeight);\n }\n };\n RowHeightService.prototype.collapseDetail = function (rowIndex) {\n if (this.height(rowIndex) > this.rowHeight) {\n this.updateRowHeight(rowIndex, this.detailRowHeight * -1);\n }\n };\n RowHeightService.prototype.index = function (position) {\n for (var i = 0; i < this.offsets.length; i++) {\n if (position === this.offsets[i]) {\n return i;\n }\n if (position < this.offsets[i]) {\n return i - 1;\n }\n }\n return this.total - 1;\n };\n RowHeightService.prototype.offset = function (rowIndex) {\n return this.offsets[rowIndex];\n };\n RowHeightService.prototype.totalHeight = function () {\n return this.heights.reduce(function (prev, curr) { return prev + curr; }, 0);\n };\n RowHeightService.prototype.updateRowHeight = function (rowIndex, value) {\n this.heights[rowIndex] += value;\n this.offsets = update(this.offsets, rowIndex, value);\n };\n return RowHeightService;\n}());\nexport { RowHeightService };\n","var normalize = function (x) { return Math.max(x, 0); };\n/**\n * @hidden\n */\nvar ScrollAction = /** @class */ (function () {\n function ScrollAction(offset) {\n this.offset = offset;\n }\n return ScrollAction;\n}());\nexport { ScrollAction };\n/**\n * @hidden\n */\nvar PageAction = /** @class */ (function () {\n function PageAction(skip) {\n this.skip = skip;\n }\n return PageAction;\n}());\nexport { PageAction };\n/**\n * @hidden\n */\nvar ScrollerService = /** @class */ (function () {\n function ScrollerService(onScrollAction, onPageAction) {\n this.onScrollAction = onScrollAction;\n this.onPageAction = onPageAction;\n this.direction = 'vertical';\n this.firstLoaded = 0;\n this.lastLoaded = 0;\n this.lastScrollTop = 0;\n this.take = 0;\n this.total = 0;\n this.rowHeightService = null;\n this.bottomOffset = 0;\n this.topOffset = 0;\n }\n ScrollerService.prototype.create = function (rowHeightService, skip, take, total, topOffset, bottomOffset, direction) {\n if (topOffset === void 0) { topOffset = 0; }\n if (bottomOffset === void 0) { bottomOffset = 0; }\n if (direction === void 0) { direction = 'vertical'; }\n this.rowHeightService = rowHeightService;\n this.firstLoaded = skip;\n this.lastLoaded = skip + take;\n this.take = take;\n this.total = total;\n this.lastScrollTop = 0;\n this.topOffset = topOffset;\n this.bottomOffset = bottomOffset;\n this.direction = direction;\n var offsetBufferRows = this.rowsForHeight(topOffset);\n var skipWithOffset = normalize(skip - offsetBufferRows);\n this.onScrollAction(new ScrollAction(this.rowOffset(skipWithOffset)));\n this.onPageAction(new PageAction(skipWithOffset));\n };\n ScrollerService.prototype.onScroll = function (_a) {\n var scrollLeft = _a.scrollLeft, scrollTop = _a.scrollTop, offsetHeight = _a.offsetHeight, offsetWidth = _a.offsetWidth;\n var scrollPosition = this.direction === 'vertical' ? scrollTop : scrollLeft;\n var offsetSize = this.direction === 'vertical' ? offsetHeight : offsetWidth;\n if (this.lastScrollTop === scrollPosition || !this.rowHeightService) {\n return;\n }\n var up = this.lastScrollTop >= scrollPosition;\n this.lastScrollTop = scrollPosition;\n var firstItemIndex = this.rowHeightService.index(normalize(scrollPosition - this.topOffset));\n var lastItemIndex = this.rowHeightService.index(normalize(scrollPosition + offsetSize - this.bottomOffset));\n if (!up && lastItemIndex >= this.lastLoaded && this.lastLoaded < this.total) {\n this.firstLoaded = firstItemIndex;\n this.onScrollAction(new ScrollAction(this.rowOffset(firstItemIndex)));\n this.lastLoaded = Math.min(this.firstLoaded + this.take, this.total);\n this.onPageAction(new PageAction(this.firstLoaded));\n }\n if (up && firstItemIndex <= this.firstLoaded) {\n var nonVisibleBuffer = Math.floor(this.take * 0.3);\n this.firstLoaded = normalize(firstItemIndex - nonVisibleBuffer);\n this.onScrollAction(new ScrollAction(this.rowOffset(this.firstLoaded)));\n this.lastLoaded = Math.min(this.firstLoaded + this.take, this.total);\n this.onPageAction(new PageAction(this.firstLoaded));\n }\n };\n ScrollerService.prototype.rowOffset = function (index) {\n return this.rowHeightService ? this.rowHeightService.offset(index) + this.topOffset : 0;\n };\n ScrollerService.prototype.rowsForHeight = function (height) {\n return this.rowHeightService ? Math.ceil(height / this.rowHeightService.height(0)) : 0;\n };\n return ScrollerService;\n}());\nexport { ScrollerService };\n","/**\n * Enumeration which represents the week days.\n */\nexport var Day;\n(function (Day) {\n /**\n * The Sunday value with an underlying `0` number value.\n */\n Day[Day[\"Sunday\"] = 0] = \"Sunday\";\n /**\n * The Monday value with an underlying `1` number value.\n */\n Day[Day[\"Monday\"] = 1] = \"Monday\";\n /**\n * The Tuesday value with an underlying `2` number value.\n */\n Day[Day[\"Tuesday\"] = 2] = \"Tuesday\";\n /**\n * The Wednesday value with an underlying `3` number value.\n */\n Day[Day[\"Wednesday\"] = 3] = \"Wednesday\";\n /**\n * The Thursday value with an underlying `4` number value.\n */\n Day[Day[\"Thursday\"] = 4] = \"Thursday\";\n /**\n * The Friday value with an underlying `5` number value.\n */\n Day[Day[\"Friday\"] = 5] = \"Friday\";\n /**\n * The Saturday value with an underlying `6` number value.\n */\n Day[Day[\"Saturday\"] = 6] = \"Saturday\";\n})(Day || (Day = {}));\n","import { adjustDST } from './adjust-dst';\nimport { cloneDate } from './clone-date';\n/**\n * A function that adds and subtracts days from a `Date` object.\n *\n * @param date - The initial date value.\n * @param offset - The number of days to add and subtract from the date.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * addDays(new Date(2016, 0, 1), 5); // 2016-1-6\n * addDays(new Date(2016, 0, 1), -5); // 2015-12-26\n * ```\n */\nexport var addDays = function (date, offset) {\n var newDate = cloneDate(date);\n newDate.setDate(newDate.getDate() + offset);\n return adjustDST(newDate, date.getHours());\n};\n","// tslint:disable:max-line-length\n/**\n * An enumeration which represents the horizontal direction. The `Forward` option moves forward. The `Backward` option moves backward.\n */\nexport var Direction;\n(function (Direction) {\n /**\n * The `Forward` value with an underlying `1` number value.\n */\n Direction[Direction[\"Forward\"] = 1] = \"Forward\";\n /**\n * The `Backward` value with an underlying `-1` (minus one) number value.\n */\n Direction[Direction[\"Backward\"] = -1] = \"Backward\";\n})(Direction || (Direction = {}));\n// tslint:enable:max-line-length\n","import { Direction } from \"./direction.enum\";\nimport { adjustDST } from \"./adjust-dst\";\nimport { cloneDate } from './clone-date';\n/**\n * @hidden\n *\n * A function which returns the next or previous date for a specific week day. For example, `Day.Monday`.\n *\n * @param date - The date to calculate from.\n * @param weekDay - The `Day` enum specifying the desired week day.\n * @param direction - The `Direction` enum specifying the calculation direction.\n * @returns - A `Date` instance.\n *\n * @example\n * ```ts-no-run\n * dayOfWeek(new Date(2016, 0, 1), Day.Wednesday, Direction.Forward); // 2016-01-06, Wednesday\n * dayOfWeek(new Date(2016, 0, 1), Day.Wednesday, Direction.Backward); // 2015-12-30, Wednesday\n * ```\n */\nexport var dayOfWeek = function (date, weekDay, direction) {\n if (direction === void 0) { direction = Direction.Forward; }\n var newDate = cloneDate(date);\n var newDay = ((weekDay - newDate.getDay()) + (7 * direction)) % 7;\n newDate.setDate(newDate.getDate() + newDay);\n return adjustDST(newDate, date.getHours());\n};\n","/**\n * The Enum which defines all possible Calendar view types.\n */\nexport var CalendarViewEnum;\n(function (CalendarViewEnum) {\n CalendarViewEnum[CalendarViewEnum[\"month\"] = 0] = \"month\";\n CalendarViewEnum[CalendarViewEnum[\"year\"] = 1] = \"year\";\n CalendarViewEnum[CalendarViewEnum[\"decade\"] = 2] = \"decade\";\n CalendarViewEnum[CalendarViewEnum[\"century\"] = 3] = \"century\";\n})(CalendarViewEnum || (CalendarViewEnum = {}));\n","import { Day } from './day.enum';\nimport { addDays } from './add-days';\nimport { createDate } from './create-date';\nimport { prevDayOfWeek } from './prev-day-of-week';\nimport { MS_PER_DAY } from './constants';\nimport { getDate } from './get-date';\nvar moveDateToWeekStart = function (date, weekStartDay) {\n if (weekStartDay !== Day.Monday) {\n return addDays(prevDayOfWeek(date, weekStartDay), 4);\n }\n return addDays(date, (4 - (date.getDay() || 7)));\n};\nvar calcWeekInYear = function (date, weekStartDay) {\n var firstWeekInYear = createDate(date.getFullYear(), 0, 1, -6);\n var newDate = moveDateToWeekStart(date, weekStartDay);\n var diffInMS = newDate.getTime() - firstWeekInYear.getTime();\n var days = Math.floor(diffInMS / MS_PER_DAY);\n return 1 + Math.floor(days / 7);\n};\n/**\n * A function that returns the number of the week within a year, which is calculated in relation to the date.\n *\n * For more information, refer to the [**ISO week date**](https://en.wikipedia.org/wiki/ISO_week_date) article.\n *\n * @param date - The date used for the week number calculation.\n * @param weekStartDay - The first day of the week. By default, the first week day is Monday.\n * @returns - The number of the week within the year.\n *\n * @example\n * ```ts-no-run\n * weekInYear(new Date(2016, 0, 1)); // Week 53, 2015\n * weekInYear(new Date(2016, 0, 5)); // Week 1, 2016\n * weekInYear(new Date(2017, 0, 1)); // Week 52, 2016\n * weekInYear(new Date(2017, 0, 2)); // Week 1, 2017\n * ```\n */\nexport var weekInYear = function (date, weekStartDay) {\n if (weekStartDay === void 0) { weekStartDay = Day.Monday; }\n date = getDate(date);\n var prevWeekDate = addDays(date, -7);\n var nextWeekDate = addDays(date, 7);\n var weekNumber = calcWeekInYear(date, weekStartDay);\n if (weekNumber === 0) {\n return calcWeekInYear(prevWeekDate, weekStartDay) + 1;\n }\n if (weekNumber === 53 && calcWeekInYear(nextWeekDate, weekStartDay) > 1) {\n return 1;\n }\n return weekNumber;\n};\n","import { Direction } from \"./direction.enum\";\nimport { dayOfWeek } from './day-of-week';\n/**\n * A function which returns a date by a specific week name. For example, `Day.Monday`.\n *\n * @param date - The date to calculate from.\n * @param weekDay - The `Day` enum specifying the desired week day.\n * @returns - A `Date` instance.\n *\n * @example\n * ```ts-no-run\n * prevDayOfWeek(new Date(2016, 0, 1), Day.Wednesday); // 2015-12-30, Wednesday\n * ```\n */\nexport var prevDayOfWeek = function (date, weekDay) {\n return dayOfWeek(date, weekDay, Direction.Backward);\n};\n","/**\n * The number of milliseconds in one minute.\n */\nexport var MS_PER_MINUTE = 60000;\n/**\n * The number of milliseconds in one hour.\n */\nexport var MS_PER_HOUR = 3600000;\n/**\n * The number of milliseconds in one standard day.\n */\nexport var MS_PER_DAY = 86400000;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { classNames } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar compareProps = function (x, y) {\n var xProps = Object.getOwnPropertyNames(x);\n var yProps = Object.getOwnPropertyNames(y);\n if (xProps.length !== yProps.length) {\n return false;\n }\n for (var i = 0; i < xProps.length; i++) {\n var propName = xProps[i];\n if (x[propName] !== y[propName]) {\n return false;\n }\n }\n return true;\n};\n/**\n * The `CalendarCell` component is internally used for rendering the items in the current view. Also be used as a custom `cell` of the [Calendar]({% slug api_dateinputs_calendarprops %}#toc-cell) and the [MultiViewCalendar]({% slug api_dateinputs_multiviewcalendarprops %}#toc-cell).\n *\n * * [Customizing the cells inside the Calendar view]({% slug custom_rendering_calendar %}#toc-cells-inside-the-view)\n * * [Customizing the cells inside the MultiViewCalendar view]({% slug custom_rendering_multiviewcalendar %}#toc-cells-inside-the-view)\n */\nvar CalendarCell = /** @class */ (function (_super) {\n __extends(CalendarCell, _super);\n function CalendarCell() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // tslint:enable:max-line-length\n _this.handleClick = function (event) {\n var _a = _this.props, onClick = _a.onClick, value = _a.value;\n if (onClick) {\n onClick.call(undefined, value, event);\n }\n };\n _this.handleMouseEnter = function () {\n var _a = _this.props, onMouseEnter = _a.onMouseEnter, value = _a.value;\n if (onMouseEnter) {\n onMouseEnter.call(undefined, value);\n }\n };\n _this.handleMouseLeave = function () {\n var _a = _this.props, onMouseLeave = _a.onMouseLeave, value = _a.value;\n if (onMouseLeave) {\n onMouseLeave.call(undefined, value);\n }\n };\n return _this;\n }\n // Manually checking if the component needs an update\n // due to date object being compared by instance\n // and new Date object is created\n // every time and fails the shallow compare of the React.PureComponent.\n /**\n * @hidden\n */\n CalendarCell.prototype.shouldComponentUpdate = function (nextProps) {\n var _a = this.props, value = _a.value, props = __rest(_a, [\"value\"]);\n var newValue = nextProps.value, newProps = __rest(nextProps, [\"value\"]);\n var valueEqual = !(value && newValue) || value.getTime() === newValue.getTime();\n return !(valueEqual && compareProps(props, newProps));\n };\n /* eslint-disable max-len */\n /**\n * @return\n * Returns a `<td />` element with a `<span className=\"k-link\" />` inside to apply the styles. The text inside is the [`formattedValue`]({% slug api_dateinputs_calendarcellprops %}#toc-formattedvalue) of the `cell`.\n */\n CalendarCell.prototype.render = function () {\n var _a = this.props, className = _a.className, formattedValue = _a.formattedValue, isWeekend = _a.isWeekend, isFocused = _a.isFocused, isInRange = _a.isInRange, isSelected = _a.isSelected, isRangeStart = _a.isRangeStart, isRangeMid = _a.isRangeMid, isRangeEnd = _a.isRangeEnd, isRangeSplitStart = _a.isRangeSplitStart, isRangeSplitEnd = _a.isRangeSplitEnd, isToday = _a.isToday, isDisabled = _a.isDisabled, view = _a.view, value = _a.value, other = __rest(_a, [\"className\", \"formattedValue\", \"isWeekend\", \"isFocused\", \"isInRange\", \"isSelected\", \"isRangeStart\", \"isRangeMid\", \"isRangeEnd\", \"isRangeSplitStart\", \"isRangeSplitEnd\", \"isToday\", \"isDisabled\", \"view\", \"value\"]);\n var isEndActive = this.props.activeRangeEnd === 'end' && isRangeEnd;\n var isStartActive = this.props.activeRangeEnd === 'start' && isRangeStart;\n var rootClassName = classNames('k-calendar-td', {\n 'k-range-end': isRangeEnd,\n 'k-range-mid': isRangeMid,\n 'k-range-split-end': isRangeSplitEnd,\n 'k-range-split-start': isRangeSplitStart,\n 'k-range-start': isRangeStart,\n 'k-active': isStartActive || isEndActive,\n 'k-state-pending-focus': isFocused,\n 'k-selected': isSelected || isRangeStart || isRangeEnd,\n 'k-today': isToday,\n 'k-weekend': isWeekend,\n 'k-disabled': isDisabled\n }, className);\n return (React.createElement(\"td\", __assign({}, other, { className: rootClassName, onClick: this.handleClick, onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave }),\n React.createElement(\"span\", { className: \"k-link\" }, this.props.children)));\n };\n return CalendarCell;\n}(React.Component));\nexport { CalendarCell };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { classNames } from '@progress/kendo-react-common';\n/**\n * The `CalendarWeekCell` component is internally used for rendering the week cells inside the `month` view of the Calendar. Also used as a [custom week cell for the Calendar]({% slug api_dateinputs_calendarprops %}#toc-weekcell) and the [MultiViewCalendar]({% slug api_dateinputs_multiviewcalendarprops %}#toc-weekcell) components.\n *\n * * [Customizing week-column cells in the Calendar]({% slug custom_rendering_calendar %}#toc-cells-inside-the-week-column)\n * * [Customizing week-column cells in the MultiViewCalendar]({% slug custom_rendering_multiviewcalendar %}#toc-cells-inside-the-week-column)\n */\nvar CalendarWeekCell = /** @class */ (function (_super) {\n __extends(CalendarWeekCell, _super);\n function CalendarWeekCell() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @return\n * Returns a `<td />` element with the [`value`]({% slug api_dateinputs_calendarweekcellprops %}#toc-value) as a child.\n */\n CalendarWeekCell.prototype.render = function () {\n var _a = this.props, className = _a.className, firstDate = _a.firstDate, other = __rest(_a, [\"className\", \"firstDate\"]);\n return (React.createElement(\"td\", __assign({ className: classNames('k-calendar-td', className) }, other), this.props.children));\n };\n return CalendarWeekCell;\n}(React.Component));\nexport { CalendarWeekCell };\n","/**\n * @hidden\n */\nexport var EMPTY_SELECTIONRANGE = { start: null, end: null };\n","var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { cloneDate, isEqual } from '@progress/kendo-date-math';\nimport { getDate } from '@progress/kendo-date-math';\nimport { EMPTY_SELECTIONRANGE } from './calendar/models/SelectionRange';\n/**\n * @hidden\n */\nexport var isEqualRange = function (initial, updated) {\n var _a = initial || EMPTY_SELECTIONRANGE, initialStart = _a.start, initialEnd = _a.end;\n var _b = updated || EMPTY_SELECTIONRANGE, updatedStart = _b.start, updatedEnd = _b.end;\n if (initialStart === null || initialEnd === null || updatedStart === null || updatedEnd === null) {\n return false;\n }\n return isEqual(initialStart, updatedStart) && isEqual(initialEnd, updatedEnd);\n};\n// Polyfill for PropTypes.null\n/**\n * @hidden\n */\nexport function nullable(subRequirement) {\n var check = function (required, props, key) {\n var rest = [];\n for (var _i = 3; _i < arguments.length; _i++) {\n rest[_i - 3] = arguments[_i];\n }\n if (props[key] === null) {\n return null;\n }\n var sub = required ? subRequirement.isRequired : subRequirement;\n return sub.apply(void 0, __spreadArray([props, key], rest, false));\n };\n var fn = check.bind(null, false);\n fn.isRequired = check.bind(null, true);\n return fn;\n}\n/**\n * @hidden\n */\nexport var viewInRange = function (candidate, min, max) {\n if (min === undefined || max === undefined) {\n return candidate;\n }\n return min <= candidate && candidate <= max\n ? candidate\n : candidate < min\n ? min\n : max;\n};\n/**\n * @hidden\n */\nexport var MIDNIGHT_DATE = new Date(1980, 0, 1);\n/**\n * @hidden\n */\nexport var MIN_DATE = new Date(1900, 0, 1);\n/**\n * @hidden\n */\nexport var MAX_DATE = new Date(2099, 11, 31);\n/**\n * @hidden\n */\nexport var MIN_TIME = new Date(1980, 0, 1);\n/**\n * @hidden\n */\nexport var MAX_TIME = new Date(1980, 0, 1, 23, 59, 59);\nvar isSet = function (value) { return value !== null && value !== undefined; };\n/**\n * @hidden\n */\nexport var isValidRange = function (min, max) { return (!isSet(min) || !isSet(max) || min <= max); };\n/**\n * @hidden\n */\nexport var setTime = function (origin, candidate) {\n var date = cloneDate(origin);\n date.setHours(candidate.getHours(), candidate.getMinutes(), candidate.getSeconds(), candidate.getMilliseconds());\n return date;\n};\n/**\n * @hidden\n */\nexport var getToday = function () { return getDate(new Date()); };\n/**\n * @hidden\n */\nexport var isInRange = function (candidate, min, max) { return (!candidate || !((min && min > candidate) || (max && max < candidate))); };\n/**\n * @hidden\n */\nexport var isInDateRange = function (candidate, min, max) { return (candidate === null\n || !((min && getDate(min) > getDate(candidate))\n || (max && getDate(max) < getDate(candidate)))); };\n/**\n * @hidden\n */\nexport var isInSelectionRange = function (value, selectionRange) {\n var _a = selectionRange || EMPTY_SELECTIONRANGE, start = _a.start, end = _a.end;\n if (!start || !end) {\n return false;\n }\n return start < value && value < end;\n};\n/**\n * @hidden\n */\nexport var range = function (start, end, step) {\n if (step === void 0) { step = 1; }\n var result = [];\n for (var i = start; i < end; i = i + step) {\n result.push(i);\n }\n return result;\n};\n/**\n * @hidden\n */\nexport var intersects = function (date, min, max) {\n return min.getTime() <= date.getTime() && date.getTime() <= max.getTime();\n};\n/**\n * @hidden\n */\nexport var shiftWeekNames = function (names, offset) { return (names.slice(offset).concat(names.slice(0, offset))); };\n/**\n * @hidden\n */\nexport var dateInRange = function (candidate, min, max) {\n if (!candidate) {\n return candidate;\n }\n if (min && candidate < min) {\n return cloneDate(min);\n }\n if (max && candidate > max) {\n return cloneDate(max);\n }\n return candidate;\n};\n/**\n * @hidden\n */\nexport var domContainerFactory = function (type) { return function (children, classes, styles) {\n if (classes === void 0) { classes = ''; }\n if (styles === void 0) { styles = {}; }\n var container = document.createElement(type);\n container.className = classes;\n Object.keys(styles).map(function (key) { return container.style[key] = styles[key]; });\n if (typeof children === 'string') {\n container.innerHTML = children || '';\n }\n else {\n (children || []).forEach(function (child) { return child && container.appendChild(child); });\n }\n return container;\n}; };\n/**\n * @hidden\n */\nexport function debounce(func, wait, options) {\n if (options === void 0) { options = {}; }\n var lastArgs;\n var lastThis;\n var maxWait = options.maxWait;\n var result;\n var timerId;\n var lastCallTime;\n var root = window;\n var lastInvokeTime = 0;\n var leading = false;\n var maxing = false;\n var trailing = true;\n // Bypass `requestAnimationFrame` by explicitly setting `wait=0`.\n var useRAF = (!wait && wait !== 0 && typeof root.requestAnimationFrame === 'function');\n if (typeof func !== 'function') {\n throw new TypeError('Expected a function');\n }\n wait = +wait || 0;\n function invokeFunc(time) {\n var args = lastArgs;\n var thisArg = lastThis;\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n function startTimer(pendingFunc, tmr) {\n if (useRAF) {\n root.cancelAnimationFrame(timerId);\n return root.requestAnimationFrame(pendingFunc);\n }\n return setTimeout(pendingFunc, tmr);\n }\n function cancelTimer(id) {\n if (useRAF) {\n return root.cancelAnimationFrame(id);\n }\n clearTimeout(id);\n }\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = startTimer(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime;\n var timeSinceLastInvoke = time - lastInvokeTime;\n var timeWaiting = wait - timeSinceLastCall;\n return maxing\n ? Math.min(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime;\n var timeSinceLastInvoke = time - lastInvokeTime;\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n function timerExpired() {\n var time = Date.now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = startTimer(timerExpired, remainingWait(time));\n }\n function trailingEdge(time) {\n timerId = undefined;\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n function cancel() {\n if (timerId !== undefined) {\n cancelTimer(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n function flush() {\n return timerId === undefined ? result : trailingEdge(Date.now());\n }\n function pending() {\n return timerId !== undefined;\n }\n function debounced() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var time = Date.now();\n var isInvoking = shouldInvoke(time);\n lastArgs = args;\n /* @ts-ignore */\n lastThis = this;\n lastCallTime = time;\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = startTimer(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = startTimer(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n debounced.pending = pending;\n return debounced;\n}\n/**\n * @hidden\n */\nexport function throttle(func, wait) {\n return debounce(func, wait, {\n leading: true,\n trailing: true,\n 'maxWait': wait\n });\n}\n","import { shiftWeekNames } from '../../utils';\n/**\n * @hidden\n */\nvar WeekNamesService = /** @class */ (function () {\n function WeekNamesService(intl) {\n this.intl = intl;\n }\n WeekNamesService.prototype.getWeekNames = function (includeWeekNumber) {\n if (includeWeekNumber === void 0) { includeWeekNumber = false; }\n var weekNames = shiftWeekNames(this.intl.dateFormatNames({ nameType: 'short', type: 'days' }), this.intl.firstDay());\n return includeWeekNumber ? [''].concat(weekNames) : weekNames;\n };\n return WeekNamesService;\n}());\nexport { WeekNamesService };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { weekInYear, cloneDate } from '@progress/kendo-date-math';\nimport { registerForIntl, provideIntlService } from '@progress/kendo-react-intl';\nimport { CalendarCell } from './CalendarCell';\nimport { CalendarWeekCell } from './CalendarWeekCell';\nimport { CalendarViewEnum } from '../models';\nimport { setTime, getToday } from '../../utils';\nimport { WeekNamesService } from '../services';\n// In case we decide to render content for the next month in the empty cells,\n// add k-other-month class to all cells and k-weekend for weekend cells.\n// tslint:disable-next-line jsx-use-translation-function\nvar emptyCell = function (idx) { return (React.createElement(\"td\", { key: idx, className: 'k-calendar-td' }, \"\\u00A0\")); };\n/**\n * @hidden\n */\nvar View = /** @class */ (function (_super) {\n __extends(View, _super);\n function View() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.intl = null;\n _this.weekService = null;\n _this.buildWeekNumber = function (row, idx) {\n var firstDayOfWeek = _this.firstDate(row);\n if (!firstDayOfWeek) {\n return emptyCell(\"week-cell-\".concat(idx));\n }\n var firstDate = _this.firstDate(row);\n var weekCellValue = _this.getWeekNumber(firstDate);\n var uniqueID = \"kendo-react-calendar-week-cell-\".concat(weekCellValue);\n var cellProps = {\n className: 'k-alt',\n value: weekCellValue,\n firstDate: firstDate\n };\n return _this.props.weekCell\n ? React.createElement(_this.props.weekCell, __assign({}, cellProps, { key: uniqueID }), weekCellValue)\n : React.createElement(CalendarWeekCell, __assign({}, cellProps, { key: uniqueID }), weekCellValue);\n };\n _this.buildRow = function (row) {\n return row.map(function (cell, idx) {\n if (!cell) {\n return emptyCell(idx);\n }\n var aria = { 'aria-selected': cell.isSelected };\n var uniqueID = \"kendo-react-calendar-cell-\".concat(cell.value.getTime());\n var cellProps = __assign(__assign(__assign({}, aria), cell), { isDisabled: !cell.isInRange, view: _this.props.activeView, onClick: _this.handleClick, onMouseEnter: _this.handleMouseEnter, onMouseLeave: _this.handleMouseLeave });\n return _this.props.cell\n ? (React.createElement(_this.props.cell, __assign({}, cellProps, { key: uniqueID }), cell.formattedValue))\n : (React.createElement(CalendarCell, __assign({}, cellProps, { key: uniqueID }), cell.formattedValue));\n });\n };\n _this.firstDate = function (row) {\n var cell = _this.firstWeekDateContext(row);\n return cell ? cell.value : null;\n };\n _this.firstWeekDateContext = function (rowCtx) {\n if (!_this.weekNumber) {\n return null;\n }\n var idx = 0;\n var ctx = rowCtx[idx];\n while (!ctx && idx < rowCtx.length) {\n ctx = rowCtx[++idx];\n }\n return ctx;\n };\n _this.handleClick = function (value, event) {\n var onChange = _this.props.onChange;\n if (onChange && event) {\n var args = {\n value: cloneDate(value),\n target: _this,\n nativeEvent: event && event.nativeEvent,\n syntheticEvent: event\n };\n onChange.call(undefined, args);\n }\n };\n _this.handleMouseEnter = function (value) {\n var onCellEnter = _this.props.onCellEnter;\n if (onCellEnter) {\n onCellEnter.call(undefined, cloneDate(value));\n }\n };\n _this.handleMouseLeave = function (value) {\n var onCellLeave = _this.props.onCellLeave;\n if (onCellLeave) {\n onCellLeave.call(undefined, cloneDate(value));\n }\n };\n return _this;\n }\n Object.defineProperty(View.prototype, \"min\", {\n get: function () {\n return this.props.min;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(View.prototype, \"max\", {\n get: function () {\n return this.props.max;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(View.prototype, \"isHorizontal\", {\n get: function () {\n return this.props.direction === 'horizontal';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(View.prototype, \"isMonthView\", {\n get: function () {\n return this.props.activeView === CalendarViewEnum.month;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(View.prototype, \"weekNumber\", {\n get: function () {\n return Boolean(this.props.showWeekNumbers && this.props.activeView === CalendarViewEnum.month);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(View.prototype, \"selectedDate\", {\n get: function () {\n return this.props.selectedDate !== undefined ? this.props.selectedDate : View.defaultProps.selectedDate;\n },\n enumerable: false,\n configurable: true\n });\n View.prototype.render = function () {\n var _this = this;\n this.intl = provideIntlService(this);\n this.weekService = new WeekNamesService(this.intl);\n var weekNames = this.weekService.getWeekNames(this.weekNumber);\n var colSpan = this.props.service.rowLength(this.weekNumber);\n var title = this.props.service.title(this.props.viewDate);\n var time = getToday();\n var viewDate = setTime(this.props.viewDate, time);\n var data = this.props.service.data({\n cellUID: this.props.cellUID,\n min: this.min,\n max: this.max,\n focusedDate: this.props.focusedDate,\n isActiveView: !this.props.bus.canMoveDown(this.props.activeView),\n selectedDate: this.selectedDate,\n selectionRange: this.props.selectionRange,\n viewDate: viewDate\n });\n return (React.createElement(React.Fragment, null,\n (this.isMonthView && this.isHorizontal) && (React.createElement(\"thead\", { role: \"rowgroup\", className: \"k-calendar-thead\" },\n React.createElement(\"tr\", { role: \"row\", className: \"k-calendar-tr\" }, weekNames.map(function (name, idx) { return (React.createElement(\"th\", { key: idx, className: \"k-calendar-th\" }, name)); })))),\n React.createElement(\"tbody\", { role: \"rowgroup\", className: \"k-calendar-tbody\" },\n !this.isHorizontal && (React.createElement(\"tr\", { role: \"presentation\", className: \"k-calendar-tr\" },\n React.createElement(\"th\", { scope: \"col\", colSpan: colSpan, className: \"k-calendar-caption\" }, title))),\n data.map(function (row, idx) {\n return (React.createElement(\"tr\", { role: \"row\", className: \"k-calendar-tr\", key: idx },\n _this.weekNumber && _this.buildWeekNumber(row, idx),\n _this.buildRow(row)));\n }))));\n };\n View.prototype.getWeekNumber = function (date) {\n if (!this.weekNumber || !this.intl) {\n return null;\n }\n return weekInYear(date, this.intl.firstDay());\n };\n View.propTypes = {\n activeRangeEnd: PropTypes.oneOf(['start', 'end', null]),\n activeView: PropTypes.number.isRequired,\n cellUID: PropTypes.string.isRequired,\n direction: PropTypes.oneOf(['horizontal', 'vertical']),\n focusedDate: PropTypes.instanceOf(Date).isRequired,\n max: PropTypes.instanceOf(Date).isRequired,\n min: PropTypes.instanceOf(Date).isRequired,\n onChange: PropTypes.func,\n selectedDate: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.arrayOf(PropTypes.instanceOf(Date))]),\n showWeekNumbers: PropTypes.bool,\n viewDate: PropTypes.instanceOf(Date).isRequired\n };\n View.defaultProps = {\n direction: 'vertical',\n selectedDate: getToday(),\n showWeekNumbers: false\n };\n return View;\n}(React.Component));\nexport { View };\nregisterForIntl(View);\n","var _a;\n/**\n * @hidden\n */\nexport var prevView = 'multiviewcalendar.prevView';\n/**\n * @hidden\n */\nexport var nextView = 'multiviewcalendar.nextView';\n/**\n * @hidden\n */\nexport var increaseValue = 'dateinput.increment';\n/**\n * @hidden\n */\nexport var decreaseValue = 'dateinput.decrement';\n/**\n * @hidden\n */\nexport var today = 'calendar.today';\n/**\n * @hidden\n */\nexport var toggleCalendar = 'datepicker.toggleCalendar';\n/**\n * @hidden\n */\nexport var swapStartEnd = 'daterangepicker.swapStartEnd';\n/**\n * @hidden\n */\nexport var start = 'daterangepicker.start';\n/**\n * @hidden\n */\nexport var end = 'daterangepicker.end';\n/**\n * @hidden\n */\nexport var separator = 'daterangepicker.separator';\n/**\n * @hidden\n */\nexport var toggleDateTimeSelector = 'datetimepicker.toggleDateTimeSelector';\n/**\n * @hidden\n */\nexport var now = 'timepicker.now';\n/**\n * @hidden\n */\nexport var selectNow = 'timepicker.selectNow';\n/**\n * @hidden\n */\nexport var timePickerCancel = 'timepicker.cancel';\n/**\n * @hidden\n */\nexport var timePickerSet = 'timepicker.set';\n/**\n * @hidden\n */\nexport var toggleTimeSelector = 'timepicker.toggleTimeSelector';\n/**\n * @hidden\n */\nexport var toggleClock = 'timepicker.toggleClock';\n/**\n * @hidden\n */\nexport var date = 'datetimepicker.date';\n/**\n * @hidden\n */\nexport var time = 'datetimepicker.time';\n/**\n * @hidden\n */\nexport var dateTimePickerCancel = 'datetimepicker.cancel';\n/**\n * @hidden\n */\nexport var dateTimePickerSet = 'datetimepicker.set';\n/**\n * @hidden\n */\nexport var dateRangePickerCancel = 'daterangepicker.cancel';\n/**\n * @hidden\n */\nexport var dateRangePickerSet = 'daterangepicker.set';\n/**\n * @hidden\n */\nexport var messages = (_a = {},\n _a[today] = 'TODAY',\n _a[now] = 'NOW',\n _a[timePickerSet] = 'Set',\n _a[timePickerCancel] = 'Cancel',\n _a[date] = 'Date',\n _a[time] = 'Time',\n _a[dateTimePickerCancel] = 'Cancel',\n _a[dateTimePickerSet] = 'Set',\n _a[dateRangePickerCancel] = 'Cancel',\n _a[dateRangePickerSet] = 'Set',\n _a[start] = 'Start',\n _a[end] = 'End',\n _a[separator] = ' ',\n _a[selectNow] = 'Select Now',\n _a[toggleTimeSelector] = 'Toggle TimeSelector',\n _a[toggleClock] = 'Toggle Clock',\n _a[increaseValue] = 'Increase value',\n _a[decreaseValue] = 'Decrease value',\n _a[toggleCalendar] = 'Toggle calendar',\n _a[prevView] = 'Navigate to previous view',\n _a[nextView] = 'Navigate to next view',\n _a[swapStartEnd] = 'Swap start and end values',\n _a[toggleDateTimeSelector] = 'Toggle date-time selector',\n _a);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { Button } from '@progress/kendo-react-buttons';\nimport * as React from 'react';\n/**\n * The `CalendarHeaderTitle` component is internally used for rendering the title of the current calendar view. Also used as a custom `headerTitle` for the [Calendar]({% slug api_dateinputs_calendarprops %}#toc-headertitle) and the [MultiViewCalendar]({% slug api_dateinputs_multiviewcalendarprops %}#toc-headertitle) components.\n *\n * * [Customizing the title for the current Calendar view]({% slug custom_rendering_calendar %}#toc-cells-inside-the-view)\n * * [Customizing the title for the current MultiViewCalendar view]({% slug custom_rendering_multiviewcalendar %}#toc-cells-inside-the-view)\n */\nvar CalendarHeaderTitle = /** @class */ (function (_super) {\n __extends(CalendarHeaderTitle, _super);\n function CalendarHeaderTitle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @return\n * Returns a `<span />` element with the [`value`]({% slug api_dateinputs_calendarheadertitleprops %}#toc-value) of the title as a child.\n */\n CalendarHeaderTitle.prototype.render = function () {\n var _a = this.props, view = _a.view, props = __rest(_a, [\"view\"]);\n return (React.createElement(Button, __assign({ type: \"button\", fillMode: \"flat\" }, props), this.props.children));\n };\n return CalendarHeaderTitle;\n}(React.PureComponent));\nexport { CalendarHeaderTitle };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { registerForLocalization } from '@progress/kendo-react-intl';\nimport { classNames } from '@progress/kendo-react-common';\nimport { CalendarHeaderTitle } from './CalendarHeaderTitle';\nimport { MIN_DATE, MAX_DATE } from '../../utils';\n/**\n * @hidden\n */\nvar Header = /** @class */ (function (_super) {\n __extends(Header, _super);\n function Header() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.getTitle = function () {\n if (!_this.props.currentDate) {\n return '';\n }\n var take = _this.rangeLength - 1;\n var title = _this.props.service.title(_this.props.currentDate);\n var nextDate = _this.props.service.addToDate(_this.props.currentDate, take);\n if (take < 1 || !_this.props.service.isInRange(nextDate, _this.min, _this.max)) {\n return title;\n }\n return \"\".concat(title, \" - \").concat(_this.props.service.title(nextDate));\n };\n _this.handleTitleClick = function (event) {\n if (!_this.canMoveUp) {\n return;\n }\n _this.props.bus.moveUp(_this.props.activeView, event);\n };\n return _this;\n }\n Object.defineProperty(Header.prototype, \"min\", {\n get: function () {\n return this.props.min !== undefined\n ? this.props.min\n : Header.defaultProps.min;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Header.prototype, \"max\", {\n get: function () {\n return this.props.max !== undefined\n ? this.props.max\n : Header.defaultProps.max;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Header.prototype, \"rangeLength\", {\n get: function () {\n return this.props.rangeLength !== undefined ? this.props.rangeLength : Header.defaultProps.rangeLength;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Header.prototype, \"canMoveUp\", {\n get: function () {\n return this.props.bus.canMoveUp(this.props.activeView);\n },\n enumerable: false,\n configurable: true\n });\n Header.prototype.render = function () {\n var title = this.getTitle();\n var titleClassNames = classNames('k-calendar-title');\n var headerTitleProps = {\n children: title,\n value: title,\n view: this.props.activeView,\n className: titleClassNames,\n onClick: this.handleTitleClick,\n disabled: !this.canMoveUp\n };\n var headerTitle = this.props.headerTitle\n ? React.createElement(this.props.headerTitle, __assign({}, headerTitleProps), title)\n : React.createElement(CalendarHeaderTitle, __assign({}, headerTitleProps), title);\n return (React.createElement(\"div\", { className: classNames('k-calendar-header', {\n 'k-vstack': this.props.verticalView,\n 'k-hstack': !this.props.verticalView\n }) },\n headerTitle,\n React.createElement(\"span\", { className: \"k-spacer\" }),\n React.createElement(\"span\", { className: \"k-calendar-nav k-hstack\" }, this.props.commands)));\n };\n Header.propTypes = {\n activeView: PropTypes.number.isRequired,\n currentDate: PropTypes.instanceOf(Date).isRequired,\n max: PropTypes.instanceOf(Date).isRequired,\n min: PropTypes.instanceOf(Date).isRequired,\n rangeLength: PropTypes.number\n };\n Header.defaultProps = {\n rangeLength: 1,\n min: MIN_DATE,\n max: MAX_DATE\n };\n return Header;\n}(React.Component));\nexport { Header };\nregisterForLocalization(Header);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { provideLocalizationService, registerForLocalization } from '@progress/kendo-react-intl';\nimport { classNames } from '@progress/kendo-react-common';\nimport { Button } from '@progress/kendo-react-buttons';\nimport { getDate } from '@progress/kendo-date-math';\nimport { messages, today } from '../../messages';\nimport { dateInRange, getToday, isInRange } from '../../utils';\nimport { MIN_DATE, MAX_DATE } from '../../utils';\nvar TodayCommand = /** @class */ (function (_super) {\n __extends(TodayCommand, _super);\n function TodayCommand() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.localization = null;\n _this.handleClick = function (syntheticEvent) {\n if (!_this.todayIsInRange) {\n return;\n }\n if (_this.props.onClick) {\n var event_1 = {\n syntheticEvent: syntheticEvent,\n nativeEvent: syntheticEvent.nativeEvent,\n value: dateInRange(getToday(), _this.min, _this.max),\n target: _this,\n isTodayClick: true\n };\n _this.props.onClick.call(undefined, event_1);\n }\n };\n return _this;\n }\n Object.defineProperty(TodayCommand.prototype, \"min\", {\n get: function () {\n return this.props.min !== undefined\n ? this.props.min\n : TodayCommand.defaultProps.min;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TodayCommand.prototype, \"max\", {\n get: function () {\n return this.props.max !== undefined\n ? this.props.max\n : TodayCommand.defaultProps.max;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TodayCommand.prototype, \"todayIsInRange\", {\n get: function () {\n return isInRange(getToday(), getDate(this.min), getDate(this.max));\n },\n enumerable: false,\n configurable: true\n });\n TodayCommand.prototype.render = function () {\n this.localization = provideLocalizationService(this);\n var todayMessage = this.localization.toLanguageString(today, messages[today]);\n var todayClassNames = classNames('k-calendar-nav-today', {\n 'k-disabled': this.props.disabled\n });\n return (React.createElement(Button, { className: todayClassNames, onClick: this.handleClick, tabIndex: this.props.tabIndex, fillMode: 'flat' }, todayMessage));\n };\n TodayCommand.propTypes = {\n max: PropTypes.instanceOf(Date).isRequired,\n min: PropTypes.instanceOf(Date).isRequired,\n onClick: PropTypes.func,\n disabled: PropTypes.bool\n };\n TodayCommand.defaultProps = {\n min: MIN_DATE,\n max: MAX_DATE\n };\n return TodayCommand;\n}(React.Component));\nexport { TodayCommand };\nregisterForLocalization(TodayCommand);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '@progress/kendo-react-common';\nimport { cloneDate, getDate, isEqualDate } from '@progress/kendo-date-math';\nimport { registerForIntl, provideIntlService } from '@progress/kendo-react-intl';\nimport { Virtualization } from '../../virtualization/Virtualization';\nimport { View } from './View';\nimport { Header } from './Header';\nimport { dateInRange, getToday, isInRange, shiftWeekNames } from '../../utils';\nimport { CalendarViewEnum } from '../models';\nimport { TodayCommand } from './TodayCommand';\nvar VIEWS_COUNT = 5;\n/**\n * @hidden\n */\nvar ViewList = /** @class */ (function (_super) {\n __extends(ViewList, _super);\n function ViewList(props) {\n var _this = _super.call(this, props) || this;\n _this.virtualization = null;\n _this.calendarView = null;\n _this.table = null;\n _this.intl = null;\n _this.bottomOffset = 0;\n _this.viewOffset = 0;\n _this.viewHeight = 0;\n _this._element = null;\n _this.isActive = false;\n _this.animateToIndex = true;\n _this.shouldScroll = false;\n _this.focusActiveDate = function () {\n if (!_this._element) {\n return;\n }\n var focusedCell = _this._element.querySelector('td.k-focus');\n var nextActiveCell = _this._element.querySelector('.k-state-pending-focus');\n if (focusedCell && focusedCell[0]) {\n focusedCell[0].classList.remove('k-focus');\n }\n if (nextActiveCell) {\n nextActiveCell.classList.add('k-focus');\n }\n _this.isActive = true;\n };\n _this.blurActiveDate = function () {\n if (!_this._element) {\n return;\n }\n var focusedCell = _this._element.querySelector('td.k-focus');\n if (focusedCell) {\n focusedCell.classList.remove('k-focus');\n }\n _this.isActive = false;\n };\n _this.handleVirtualizationMount = function (virtualization) {\n _this.virtualization = virtualization;\n if (_this.virtualization && _this.table) {\n _this.table.style.transform = \"translateY(\".concat(_this.viewOffset, \"px)\");\n var viewDate = dateInRange(_this.props.focusedDate, _this.props.min, _this.props.max);\n var indexToScroll = _this.props.service.skip(viewDate, _this.props.min);\n _this.virtualization.scrollToIndex(indexToScroll);\n }\n };\n _this.buildMonthView = function (cols, weekNames) {\n return (React.createElement(\"table\", { key: \"calendar-view-list-weekdays\", className: \"k-calendar-table k-calendar-weekdays\", role: \"grid\", tabIndex: _this.props.tabIndex },\n React.createElement(\"colgroup\", null, cols.map(function (_, idx) { return (React.createElement(\"col\", { key: idx })); })),\n React.createElement(\"thead\", { className: \"k-calendar-thead\" },\n React.createElement(\"tr\", { className: \"k-calendar-tr\" }, weekNames.map(function (name, idx) { return (React.createElement(\"th\", { key: idx, className: \"k-calendar-th\" }, name)); })))));\n };\n _this.buildDates = function (cols, dates) {\n var cellUID = _this.props.cellUID;\n return (React.createElement(\"table\", { className: \"k-calendar-table\", ref: function (table) { return _this.table = table; }, role: \"grid\", tabIndex: _this.props.tabIndex, \"aria-activedescendant\": cellUID + _this.props.focusedDate.getTime() },\n React.createElement(\"colgroup\", null, cols.map(function (_, idx) { return (React.createElement(\"col\", { key: idx })); })),\n dates.map(function (date) { return (React.createElement(View, { ref: function (el) { if (!_this.calendarView) {\n _this.calendarView = el;\n } }, key: date.getTime(), activeView: _this.props.activeView, viewDate: date, min: _this.props.min, max: _this.props.max, cellUID: cellUID, focusedDate: _this.props.focusedDate, cell: _this.props.cell, selectedDate: _this.props.value, showWeekNumbers: _this.weekNumber, onChange: _this.handleDateChange, bus: _this.props.bus, service: _this.props.service, weekCell: _this.props.weekCell })); })));\n };\n _this.calculateHeights = function () {\n if (!_this.props.dom) {\n return;\n }\n var scrollableHeight = _this.props.activeView === CalendarViewEnum.month ?\n _this.props.dom.scrollableContentHeight :\n _this.props.dom.scrollableYearContentHeight;\n _this.bottomOffset = scrollableHeight - _this.props.dom.viewHeight(_this.props.activeView);\n _this.viewOffset = -1 * _this.props.dom.headerHeight;\n _this.viewHeight = _this.props.dom.viewHeight(_this.props.activeView) || 1;\n };\n _this.getTake = function (skip, total) {\n return Math.min(total - skip, _this.take);\n };\n _this.handleScrollAction = function (_a) {\n var index = _a.index, scrollAction = _a.scrollAction, pageAction = _a.pageAction;\n var skip = pageAction ? pageAction.skip : _this.state.skip;\n if (_this.state.index !== index || _this.state.skip !== skip) {\n _this.setState({ index: index, skip: skip });\n }\n if (_this.table && scrollAction) {\n var translate = \"translateY(\".concat(scrollAction.offset, \"px)\");\n _this.table.style.transform = translate;\n }\n };\n _this.handleTodayClick = function (event) {\n _this.shouldScroll = true;\n _this.handleDateChange.call(undefined, event, true);\n };\n _this.handleDateChange = function (event, isTodayClick) {\n if (isTodayClick === void 0) { isTodayClick = false; }\n var onChange = _this.props.onChange;\n if (onChange) {\n var args = {\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n value: cloneDate(event.value),\n target: _this,\n isTodayClick: isTodayClick\n };\n onChange.call(undefined, args);\n }\n };\n _this.lastView = _this.props.activeView;\n _this.lastFocus = _this.props.focusedDate;\n _this.state = {\n skip: _this.props.service.skip(_this.props.focusedDate, _this.props.min),\n index: _this.props.service.skip(_this.props.focusedDate, _this.props.min)\n };\n return _this;\n }\n Object.defineProperty(ViewList.prototype, \"element\", {\n get: function () {\n return this._element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ViewList.prototype, \"weekNames\", {\n get: function () {\n this.intl = provideIntlService(this);\n var weekNames = shiftWeekNames(this.intl.dateFormatNames({ nameType: 'short', type: 'days' }), this.intl.firstDay());\n return this.weekNumber ? [''].concat(weekNames) : weekNames;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ViewList.prototype, \"weekNumber\", {\n get: function () {\n return Boolean(this.props.showWeekNumbers && this.props.activeView === CalendarViewEnum.month);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ViewList.prototype, \"take\", {\n get: function () {\n return this.props.take !== undefined ? this.props.take : ViewList.defaultProps.take;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ViewList.prototype, \"animate\", {\n get: function () {\n return Boolean(this.props.smoothScroll && this.animateToIndex);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ViewList.prototype, \"todayIsInRange\", {\n get: function () {\n return isInRange(getToday(), getDate(this.props.min), getDate(this.props.max));\n },\n enumerable: false,\n configurable: true\n });\n ViewList.prototype.componentDidUpdate = function (_prevProps, _prevState) {\n this.shouldScroll = false;\n if (this.indexToScroll !== undefined && this.virtualization) {\n this.virtualization[this.animate ? 'animateToIndex' : 'scrollToIndex'](this.indexToScroll);\n }\n if (this.isActive) {\n this.focusActiveDate();\n }\n this.lastView = this.props.activeView;\n // this.lastFocus = this.props.focusedDate;\n this.indexToScroll = undefined;\n };\n ViewList.prototype.render = function () {\n var _this = this;\n this.calculateHeights();\n var didViewChange = this.lastView !== this.props.activeView;\n var focusedDate = dateInRange(this.props.focusedDate, this.props.min, this.props.max);\n var skip = !didViewChange ? this.state.skip : this.props.service.skip(focusedDate, this.props.min);\n var total = this.props.service.total(this.props.min, this.props.max);\n var take = this.getTake(skip, total);\n var viewDate = this.props.service.addToDate(this.props.min, skip);\n var activeDate = this.props.service.addToDate(this.props.min, this.state.index);\n var cols = new Array(this.props.service.rowLength(this.weekNumber)).fill('');\n var didViewChanged = this.props.activeView !== this.lastView;\n this.animateToIndex = !didViewChanged;\n if (didViewChanged\n || !isEqualDate(this.lastFocus, focusedDate)\n || this.shouldScroll\n || (!this.props.shouldScroll || this.props.shouldScroll())) {\n this.indexToScroll = this.props.service.skip(focusedDate, this.props.min);\n }\n this.lastFocus = focusedDate;\n var rootClassNames = classNames('k-calendar-view k-vstack', {\n 'k-calendar-monthview': this.props.activeView === CalendarViewEnum.month,\n 'k-calendar-yearview': this.props.activeView === CalendarViewEnum.year,\n 'k-calendar-decadeview': this.props.activeView === CalendarViewEnum.decade,\n 'k-calendar-centuryview': this.props.activeView === CalendarViewEnum.century\n });\n var dates = this.buildDates(cols, this.props.service.datesList(viewDate, take));\n var viewListBody = (React.createElement(React.Fragment, null,\n React.createElement(Header, { key: \"calendar-view-list-header\", currentDate: activeDate, min: this.props.min, max: this.props.max, activeView: this.props.activeView, bus: this.props.bus, service: this.props.service, headerTitle: this.props.headerTitle, commands: (React.createElement(React.Fragment, null,\n React.createElement(TodayCommand, { min: this.props.min, max: this.props.max, onClick: this.handleTodayClick, disabled: !this.todayIsInRange, tabIndex: this.props.tabIndex }))) }),\n this.props.activeView === CalendarViewEnum.month && this.buildMonthView(cols, this.weekNames),\n React.createElement(Virtualization, { key: \"calendar-view-list-content\", skip: skip, take: this.take, total: total, itemHeight: this.viewHeight, topOffset: this.viewOffset, bottomOffset: this.bottomOffset, scrollOffsetSize: this.viewOffset, maxScrollDifference: this.viewHeight, onScroll: this.props.onScroll, onScrollAction: this.handleScrollAction, onMount: this.handleVirtualizationMount, children: dates, tabIndex: this.props.tabIndex })));\n return (React.createElement(\"div\", { ref: function (el) { _this._element = el; }, className: rootClassNames }, this.props.dom.didCalculate ? viewListBody : null));\n };\n ViewList.propTypes = {\n activeView: PropTypes.number.isRequired,\n bottomOffset: PropTypes.number,\n cellUID: PropTypes.string.isRequired,\n focusedDate: PropTypes.instanceOf(Date).isRequired,\n max: PropTypes.instanceOf(Date).isRequired,\n min: PropTypes.instanceOf(Date).isRequired,\n onChange: PropTypes.func,\n showWeekNumbers: PropTypes.bool,\n smoothScroll: PropTypes.bool,\n take: PropTypes.number,\n value: PropTypes.instanceOf(Date),\n viewHeight: PropTypes.number,\n viewOffset: PropTypes.number,\n tabIndex: PropTypes.number\n };\n ViewList.defaultProps = {\n take: VIEWS_COUNT,\n showWeekNumbers: false,\n smoothScroll: true\n };\n return ViewList;\n}(React.Component));\nexport { ViewList };\nregisterForIntl(ViewList);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { classNames } from '@progress/kendo-react-common';\n/**\n * The `CalendarNavigationItem` component is internally used for rendering the items in the side navigation of the Calendar. Also used as a custom navigation item for the [Calendar]({% slug api_dateinputs_calendarprops %}#toc-navigationitem) ([see example]({% slug custom_rendering_calendar %}#toc-items-in-the-side-navigation)).\n */\nvar CalendarNavigationItem = /** @class */ (function (_super) {\n __extends(CalendarNavigationItem, _super);\n function CalendarNavigationItem() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.handleClick = function (event) {\n var _a = _this.props, onClick = _a.onClick, value = _a.value;\n if (onClick) {\n onClick.call(undefined, value, event);\n }\n };\n return _this;\n }\n /**\n * @return\n * Returns a `<li />` element with a `<span />` inside. The text inside represents the [`value`]({% slug api_dateinputs_calendarnavigationitemprops %}#toc-value) of the `navigationItem`.\n */\n CalendarNavigationItem.prototype.render = function () {\n var _a = this.props, isRangeStart = _a.isRangeStart, value = _a.value, text = _a.text, other = __rest(_a, [\"isRangeStart\", \"value\", \"text\"]);\n return (React.createElement(\"li\", __assign({}, other, { onClick: this.handleClick }),\n React.createElement(\"span\", { className: classNames({ 'k-calendar-navigation-marker': isRangeStart }) }, this.props.children)));\n };\n return CalendarNavigationItem;\n}(React.Component));\nexport { CalendarNavigationItem };\n","/**\n * @hidden\n */\nexport var Action;\n(function (Action) {\n Action[Action[\"Left\"] = 0] = \"Left\";\n Action[Action[\"Right\"] = 1] = \"Right\";\n Action[Action[\"Up\"] = 2] = \"Up\";\n Action[Action[\"Down\"] = 3] = \"Down\";\n Action[Action[\"PrevView\"] = 4] = \"PrevView\";\n Action[Action[\"NextView\"] = 5] = \"NextView\";\n Action[Action[\"FirstInView\"] = 6] = \"FirstInView\";\n Action[Action[\"LastInView\"] = 7] = \"LastInView\";\n Action[Action[\"LowerView\"] = 8] = \"LowerView\";\n Action[Action[\"UpperView\"] = 9] = \"UpperView\";\n})(Action || (Action = {}));\n","var _a;\n/* tslint:disable:object-literal-sort-keys */\nimport { addDecades, addCenturies, cloneDate, durationInCenturies, firstYearOfDecade, firstDecadeOfCentury, lastDecadeOfCentury } from '@progress/kendo-date-math';\nimport { Action, EMPTY_SELECTIONRANGE } from '../models';\nimport { getToday, isInRange, isInSelectionRange, range, intersects } from '../../utils';\nvar EMPTY_DATA = [[]];\nvar CELLS_LENGTH = 4;\nvar ROWS_LENGTH = 3;\nvar ACTIONS = (_a = {},\n _a[Action.Left] = function (date) { return addDecades(date, -1); },\n _a[Action.Up] = function (date) { return addDecades(date, -5); },\n _a[Action.Right] = function (date) { return addDecades(date, 1); },\n _a[Action.Down] = function (date) { return addDecades(date, 5); },\n _a[Action.PrevView] = function (date) { return addCenturies(date, -1); },\n _a[Action.NextView] = function (date) { return addCenturies(date, 1); },\n _a[Action.FirstInView] = function (date) { return firstDecadeOfCentury(date); },\n _a[Action.LastInView] = function (date) { return lastDecadeOfCentury(date); },\n _a);\n/**\n * @hidden\n */\nvar CenturyViewService = /** @class */ (function () {\n function CenturyViewService() {\n }\n CenturyViewService.prototype.addToDate = function (min, skip) {\n return addCenturies(min, skip);\n };\n CenturyViewService.prototype.datesList = function (start, count) {\n return range(0, count).map(function (i) { return addCenturies(start, i); });\n };\n CenturyViewService.prototype.data = function (options) {\n var _this = this;\n var cellUID = options.cellUID, focusedDate = options.focusedDate, isActiveView = options.isActiveView, max = options.max, min = options.min, selectedDate = options.selectedDate, _a = options.selectionRange, selectionRange = _a === void 0 ? EMPTY_SELECTIONRANGE : _a, viewDate = options.viewDate;\n if (!viewDate) {\n return EMPTY_DATA;\n }\n var cells = range(0, CELLS_LENGTH);\n var firstDate = firstDecadeOfCentury(viewDate);\n var lastDate = lastDecadeOfCentury(viewDate);\n var today = getToday();\n return range(0, ROWS_LENGTH).map(function (rowOffset) {\n var baseDate = addDecades(firstDate, rowOffset * CELLS_LENGTH);\n return cells.map(function (cellOffset) {\n var cellDate = _this.normalize(addDecades(baseDate, cellOffset), min, max);\n var isRangeStart = _this.isEqual(cellDate, selectionRange.start);\n var isRangeEnd = _this.isEqual(cellDate, selectionRange.end);\n var isInMiddle = !isRangeStart && !isRangeEnd;\n var isRangeMid = isInMiddle && isInSelectionRange(cellDate, selectionRange);\n var isSelected = isActiveView && (!Array.isArray(selectedDate)\n ? isInRange(selectedDate, min, max) && _this.isEqual(cellDate, selectedDate)\n : _this.isSelectedFromArray(cellDate, selectedDate, min, max));\n return intersects(cellDate, firstDate, lastDate) ? ({\n formattedValue: _this.value(cellDate),\n id: \"\".concat(cellUID).concat(cellDate.getTime()),\n isFocused: _this.isEqual(cellDate, focusedDate),\n isSelected: isSelected,\n isWeekend: false,\n isInRange: isInRange(cellDate, min, max),\n isRangeStart: isRangeStart,\n isRangeMid: isRangeMid,\n isRangeEnd: isRangeEnd,\n isRangeSplitEnd: isRangeMid && _this.isEqual(cellDate, lastDate),\n isRangeSplitStart: isRangeMid && _this.isEqual(cellDate, firstDate),\n isToday: _this.isEqual(cellDate, today),\n title: _this.cellTitle(cellDate),\n value: cellDate\n }) : null;\n });\n });\n };\n CenturyViewService.prototype.isSelectedFromArray = function (candidate, dates, min, max) {\n var _this = this;\n var result = false;\n dates.forEach(function (date) {\n if (isInRange(candidate, min, max) && _this.isEqual(candidate, date)) {\n result = true;\n }\n });\n return result;\n };\n CenturyViewService.prototype.isEqual = function (candidate, expected) {\n if (!candidate || !expected) {\n return false;\n }\n // TODO: double-check this!\n return firstYearOfDecade(candidate).getFullYear() === firstYearOfDecade(expected).getFullYear();\n };\n CenturyViewService.prototype.isInArray = function (date, dates) {\n if (!dates.length) {\n return false;\n }\n var year = date.getFullYear();\n return dates[0].getFullYear() <= year && year <= (dates[dates.length - 1].getFullYear() + 99);\n };\n CenturyViewService.prototype.isInRange = function (candidate, min, max) {\n var year = firstYearOfDecade(candidate).getFullYear();\n var aboveMin = !min || firstYearOfDecade(min).getFullYear() <= year;\n var belowMax = !max || year <= firstYearOfDecade(max).getFullYear();\n return aboveMin && belowMax;\n };\n CenturyViewService.prototype.isInSameView = function (candidate, value) {\n return durationInCenturies(candidate, value) === 0;\n };\n CenturyViewService.prototype.isRangeStart = function (value) {\n return value.getFullYear() % 1000 === 0;\n };\n CenturyViewService.prototype.move = function (value, action) {\n var modifier = ACTIONS[action];\n if (!modifier) {\n return value;\n }\n return modifier(value);\n };\n CenturyViewService.prototype.cellTitle = function (value) {\n return firstYearOfDecade(value).getFullYear().toString();\n };\n CenturyViewService.prototype.navigationTitle = function (value) {\n return value ? firstDecadeOfCentury(value).getFullYear().toString() : '';\n };\n CenturyViewService.prototype.title = function (value) {\n if (!value) {\n return '';\n }\n return \"\".concat(firstDecadeOfCentury(value).getFullYear(), \" - \").concat(lastDecadeOfCentury(value).getFullYear());\n };\n CenturyViewService.prototype.rowLength = function (_) {\n return CELLS_LENGTH;\n };\n CenturyViewService.prototype.skip = function (value, min) {\n return durationInCenturies(min, value);\n };\n CenturyViewService.prototype.total = function (min, max) {\n return durationInCenturies(min, max) + 1;\n };\n CenturyViewService.prototype.value = function (current) {\n return current ? firstYearOfDecade(current).getFullYear().toString() : '';\n };\n CenturyViewService.prototype.viewDate = function (date, max, border) {\n if (border === void 0) { border = 1; }\n var renderTwoViews = durationInCenturies(date, max) < border;\n return renderTwoViews ? addCenturies(date, -1) : date;\n };\n CenturyViewService.prototype.normalize = function (cellDate, min, max) {\n if (cellDate < min && this.isEqual(cellDate, min)) {\n return cloneDate(min);\n }\n if (cellDate > max && this.isEqual(cellDate, max)) {\n return cloneDate(max);\n }\n return cellDate;\n };\n return CenturyViewService;\n}());\nexport { CenturyViewService };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { cloneDate, isEqual } from '@progress/kendo-date-math';\nimport { CalendarNavigationItem } from './CalendarNavigationItem';\nimport { dateInRange } from '../../utils';\nimport { Virtualization } from '../../virtualization/Virtualization';\nvar ITEMS_COUNT = 30;\n/**\n * @hidden\n */\nvar Navigation = /** @class */ (function (_super) {\n __extends(Navigation, _super);\n function Navigation(props) {\n var _this = _super.call(this, props) || this;\n _this.virtualization = null;\n _this.list = null;\n _this.itemHeight = 0;\n _this.topOffset = 0;\n _this.maxViewHeight = 0;\n _this.bottomOffset = 0;\n _this.handleVirtualizationMount = function (virtualization) {\n _this.virtualization = virtualization;\n if (_this.virtualization && _this.list) {\n _this.list.style.transform = \"translateY(\".concat(_this.topOffset, \"px)\");\n var viewDate = dateInRange(_this.props.focusedDate, _this.props.min, _this.props.max);\n var indexToScroll = _this.props.service.skip(viewDate, _this.props.min);\n _this.virtualization.scrollToIndex(indexToScroll);\n }\n };\n _this.buildNavigationItem = function (date) {\n var text = _this.props.service.navigationTitle(date);\n var isRangeStart = _this.props.service.isRangeStart(date);\n var uniqueID = \"kendo-react-calendar-nav-item-\".concat(date.getTime());\n var navigationItemProps = {\n text: text,\n value: date,\n isRangeStart: isRangeStart,\n view: _this.props.activeView,\n onClick: _this.handleDateChange\n };\n return _this.props.navigationItem\n ? (React.createElement(_this.props.navigationItem, __assign({}, navigationItemProps, { key: uniqueID }), text))\n : (React.createElement(CalendarNavigationItem, __assign({}, navigationItemProps, { key: uniqueID }), text));\n };\n _this.calculateHeights = function () {\n var calendarHeight = _this.props.dom.calendarHeight;\n _this.itemHeight = _this.props.dom.navigationItemHeight || 1;\n _this.maxViewHeight = _this.props.dom.monthViewHeight;\n _this.topOffset = (calendarHeight - _this.itemHeight) / 2;\n _this.bottomOffset = calendarHeight - _this.itemHeight;\n };\n _this.handleDateChange = function (value, event) {\n var onChange = _this.props.onChange;\n if (onChange && event) {\n var args = {\n value: cloneDate(value),\n target: _this,\n nativeEvent: event && event.nativeEvent,\n syntheticEvent: event\n };\n onChange.call(undefined, args);\n }\n };\n _this.handleScrollAction = function (_a) {\n var scrollAction = _a.scrollAction, pageAction = _a.pageAction;\n var skip = pageAction ? pageAction.skip : _this.state.skip;\n if (_this.state.skip !== skip) {\n _this.setState({ skip: skip });\n }\n if (_this.list && scrollAction) {\n var translate = \"translateY(\".concat(scrollAction.offset, \"px)\");\n _this.list.style.transform = translate;\n }\n };\n _this.lastView = _this.props.activeView;\n _this.lastFocus = _this.props.focusedDate;\n var skip = _this.props.service.skip(_this.props.focusedDate, _this.props.min);\n var total = _this.props.service.total(_this.props.min, _this.props.max);\n _this.state = {\n skip: (skip - _this.getTake(skip, total) > 0) ? skip : 0\n };\n return _this;\n }\n Object.defineProperty(Navigation.prototype, \"take\", {\n get: function () {\n return this.props.take !== undefined\n ? this.props.take\n : Navigation.defaultProps.take;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n Navigation.prototype.componentDidUpdate = function (_prevProps, _prevState) {\n if (this.indexToScroll !== undefined && this.virtualization) {\n this.virtualization.scrollToIndex(this.indexToScroll);\n }\n this.lastView = this.props.activeView;\n this.lastFocus = this.props.focusedDate;\n this.indexToScroll = undefined;\n };\n Navigation.prototype.render = function () {\n var _this = this;\n this.calculateHeights();\n var didViewChange = this.lastView !== this.props.activeView;\n var focusedDate = dateInRange(this.props.focusedDate, this.props.min, this.props.max);\n var skip = !didViewChange ? this.state.skip : this.props.service.skip(focusedDate, this.props.min);\n var total = this.props.service.total(this.props.min, this.props.max);\n var take = this.getTake(skip, total);\n var viewDate = this.props.service.addToDate(this.props.min, skip);\n var dates = this.props.service.datesList(viewDate, take);\n if (this.props.activeView !== this.lastView\n || !isEqual(focusedDate, this.lastFocus)) {\n this.indexToScroll = this.props.service.skip(focusedDate, this.props.min);\n }\n var navigationBody = (React.createElement(Virtualization, { skip: skip, take: this.take, total: total, itemHeight: this.itemHeight, topOffset: this.topOffset, bottomOffset: this.bottomOffset, onScroll: this.props.onScroll, maxScrollDifference: this.maxViewHeight, onScrollAction: this.handleScrollAction, onMount: this.handleVirtualizationMount, tabIndex: this.props.tabIndex },\n React.createElement(\"ul\", { ref: function (el) { _this.list = el; }, className: \"k-reset\" }, dates.map(function (date) { return (_this.buildNavigationItem(date)); }))));\n return (React.createElement(\"div\", { className: \"k-calendar-navigation\" },\n React.createElement(\"span\", { className: \"k-calendar-navigation-highlight\" }),\n this.props.dom.didCalculate ? navigationBody : null));\n };\n Navigation.prototype.getTake = function (skip, total) {\n return Math.min(total - skip, this.take);\n };\n Navigation.propTypes = {\n activeView: PropTypes.number.isRequired,\n focusedDate: PropTypes.instanceOf(Date).isRequired,\n max: PropTypes.instanceOf(Date).isRequired,\n min: PropTypes.instanceOf(Date).isRequired,\n onChange: PropTypes.func,\n take: PropTypes.number,\n tabIndex: PropTypes.number\n };\n Navigation.defaultProps = {\n take: ITEMS_COUNT\n };\n return Navigation;\n}(React.Component));\nexport { Navigation };\n","import { CalendarViewEnum } from '../models/CalendarViewEnum';\nimport { domContainerFactory as containerFactory } from '../../utils';\nimport { canUseDOM } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar DOMService = /** @class */ (function () {\n function DOMService() {\n // heights\n this.calendarHeight = 0;\n this.headerHeight = 0;\n this.monthViewHeight = 0;\n this.yearViewHeight = 0;\n this.decadeViewHeight = 0;\n this.centuryViewHeight = 0;\n this.navigationItemHeight = 0;\n this.scrollableContentHeight = 0;\n this.scrollableYearContentHeight = 0;\n // widths\n this.calendarWidth = 0;\n this.monthViewWidth = 0;\n this.yearViewWidth = 0;\n this.decadeViewWidth = 0;\n this.centuryViewWidth = 0;\n this.scrollableContentWidth = 0;\n this.didCalculate = false;\n this.hostContainer = null;\n }\n DOMService.prototype.ensureHeights = function () {\n if (this.calendarHeight !== undefined) {\n return;\n }\n this.calculateHeights();\n };\n DOMService.prototype.calculateHeights = function (container) {\n var _this = this;\n if (!canUseDOM) {\n return;\n }\n var div = containerFactory('div');\n var ul = containerFactory('ul');\n var li = containerFactory('li');\n var td = containerFactory('td');\n var th = containerFactory('th');\n var tr = containerFactory('tr');\n var tbody = containerFactory('tbody');\n var thead = containerFactory('thead');\n var table = containerFactory('table');\n var monthHeader = function () { return (div(\"\\n <span class=\\\"k-button k-button-md k-button-rectangle k-button-solid k-button-solid-base k-button-flat k-calendar-title\\\">\\n <span className=\\\"k-button-text\\\">March 2017</span>\\n </span>\\n <span class=\\\"k-spacer\\\"></span>\\n <span class=\\\"k-calendar-nav k-hstack\\\"><button class=\\\"k-calendar-nav-today\\\">TODAY</button></span>\\n \", 'k-calendar-header k-hstack')); };\n var monthWeekHeader = function () { return (table([\n thead([\n tr([th('MO', 'k-calendar-th')], 'k-calendar-tr')\n ], 'k-calendar-thead')\n ], 'k-calendar-table k-calendar-weekdays')); };\n var repeat = function (count, mapper) { return new Array(count).fill('1').map(mapper); };\n var content = function (rows, cells) {\n if (cells === void 0) { cells = 1; }\n return (table([\n tbody([tr([td('1', 'k-calendar-td k-alt')])].concat(repeat(rows, function () { return tr(repeat(cells, function (c) { return td(\"<span class=\\\"k-link\\\">\".concat(c, \"</span>\"), 'k-calendar-td'); }), 'k-calendar-tr'); })), 'k-calendar-tbody')\n ], 'k-calendar-table'));\n };\n var scrollable = function (children) { return div(children, 'k-content k-scrollable'); };\n var view = function (contentElement, className, renderWeekHeader) { return (div(renderWeekHeader\n ? [\n monthHeader(),\n monthWeekHeader(),\n scrollable([contentElement, contentElement])\n ]\n : [\n monthHeader(),\n scrollable([contentElement, contentElement])\n ], className, { left: '-10000px', position: 'absolute' })); };\n var navigationList = (function () {\n var navElement;\n return function () {\n if (!canUseDOM) {\n return null;\n }\n if (!navElement) {\n navElement = div([scrollable([ul([li('<span>FEB</span>')])])], 'k-calendar-navigation', { left: '0px', position: 'absolute' });\n }\n return navElement;\n };\n })();\n var viewFactory = function (_a, className, renderWeekHeader) {\n var cells = _a.cells, rows = _a.rows;\n var viewElement;\n return function () {\n if (!canUseDOM) {\n return null;\n }\n if (!viewElement) {\n viewElement = view(content(rows, cells), className, renderWeekHeader);\n }\n return viewElement;\n };\n };\n var getScrollable = function (element) { return element.querySelector('.k-scrollable'); };\n var horizontal = function (element) {\n var scrollableElement = getScrollable(element);\n scrollableElement.className = \"\".concat(scrollableElement.className, \" k-scrollable-horizontal\");\n return element;\n };\n var monthView = viewFactory({ cells: 7, rows: 6 }, 'k-calendar-view k-calendar-monthview k-vstack', true);\n var yearView = viewFactory({ cells: 5, rows: 3 }, 'k-calendar-view k-calendar-yearview', false);\n var decadeView = viewFactory({ cells: 5, rows: 2 }, 'k-calendar-view k-calendar-decadeview', false);\n var horzMonthView = function () { return horizontal(monthView()); };\n var horzYearView = function () { return horizontal(yearView()); };\n var horzDecadeView = function () { return horizontal(decadeView()); };\n var height = function (element) { return (parseFloat(window.getComputedStyle(element).height) || element.offsetHeight); };\n var width = function (element) {\n var styles = window.getComputedStyle(element);\n var computed = parseFloat(styles.width)\n + parseFloat(styles.paddingLeft)\n + parseFloat(styles.paddingRight);\n return computed || element.offsetWidth;\n };\n var getBody = function (element) { return element.querySelector('tbody'); };\n this.didCalculate = true;\n if (container) {\n this.hostContainer = container;\n }\n this.batch(monthView(), function (contentElement) {\n var viewElement = getBody(contentElement);\n _this.calendarHeight = height(contentElement);\n _this.monthViewHeight = height(viewElement);\n _this.headerHeight = height(viewElement.children[0]);\n _this.scrollableContentHeight = height(getScrollable(contentElement));\n });\n this.batch(horzMonthView(), function (contentElement) {\n var viewElement = getBody(contentElement);\n _this.calendarWidth = width(contentElement);\n _this.monthViewWidth = width(viewElement);\n _this.scrollableContentWidth = width(getScrollable(contentElement));\n });\n this.batch(yearView(), function (contentElement) {\n _this.yearViewHeight = height(getBody(contentElement));\n _this.scrollableYearContentHeight = height(getScrollable(contentElement));\n });\n this.batch(horzYearView(), function (contentElement) {\n _this.yearViewWidth = width(getBody(contentElement));\n });\n this.batch(decadeView(), function (contentElement) {\n _this.decadeViewHeight = height(getBody(contentElement));\n _this.centuryViewHeight = _this.decadeViewHeight;\n });\n this.batch(horzDecadeView(), function (contentElement) {\n _this.decadeViewWidth = width(getBody(contentElement));\n _this.centuryViewWidth = _this.decadeViewWidth;\n });\n this.batch(navigationList(), function (contentElement) {\n _this.navigationItemHeight = height(contentElement.querySelector('li'));\n });\n };\n DOMService.prototype.viewHeight = function (viewType) {\n return this.viewDimension(viewType, 'height');\n };\n DOMService.prototype.viewWidth = function (viewType) {\n return this.viewDimension(viewType, 'width');\n };\n DOMService.prototype.viewDimension = function (viewType, dimension) {\n var viewProp = dimension === 'height' ? 'ViewHeight' : 'ViewWidth';\n switch (viewType) {\n case CalendarViewEnum.month:\n return this[\"month\".concat(viewProp)];\n case CalendarViewEnum.year:\n return this[\"year\".concat(viewProp)];\n case CalendarViewEnum.decade:\n return this[\"decade\".concat(viewProp)];\n case CalendarViewEnum.century:\n return this[\"century\".concat(viewProp)];\n default:\n return 1;\n }\n };\n DOMService.prototype.batch = function (contentElement, action) {\n var hostContainer = this.hostContainer || document.body;\n var appendedContent = hostContainer.appendChild(contentElement);\n action(appendedContent);\n hostContainer.removeChild(appendedContent);\n };\n return DOMService;\n}());\nexport { DOMService };\n","import { addDays } from './add-days';\nimport { createDate } from './create-date';\n/**\n * A function which returns the last date of the month.\n *\n * @param date - The initial date.\n * @returns - The last date of the initial date month.\n *\n * @example\n * ```ts-no-run\n * lastDayOfMonth(new Date(2016, 0, 15)); // 2016-01-31\n * ```\n */\nexport var lastDayOfMonth = function (date) {\n var newDate = createDate(date.getFullYear(), date.getMonth() + 1, 1, date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n return addDays(newDate, -1);\n};\n","import { adjustDST } from './adjust-dst';\nimport { cloneDate } from './clone-date';\nimport { lastDayOfMonth } from './last-day-of-month';\nvar MONTHS_LENGTH = 12;\nvar normalize = function (date, expectedMonth) { return (date.getMonth() !== expectedMonth ? lastDayOfMonth(addMonths(date, -1)) : date //tslint:disable-line:no-use-before-declare\n); };\n/**\n * A function that adds and subtracts months from a `Date` object.\n *\n * @param date - The initial date value.\n * @param offset - The number of months to add or subtract from the date.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * addMonths(new Date(2016, 5, 1), 5); // 2016-11-1\n * addMonths(new Date(2016, 5, 1), -5); // 2015-1-1\n * ```\n */\nexport var addMonths = function (date, offset) {\n var newDate = cloneDate(date);\n var diff = (newDate.getMonth() + offset) % MONTHS_LENGTH;\n var expectedMonth = (MONTHS_LENGTH + diff) % MONTHS_LENGTH;\n newDate.setMonth(newDate.getMonth() + offset);\n return normalize(adjustDST(newDate, date.getHours()), expectedMonth);\n};\n","import { addMonths } from './add-months';\nimport { createDate } from './create-date';\nimport { lastDayOfMonth } from './last-day-of-month';\n/**\n * @hidden\n */\nexport var setYear = function (value, year) {\n var month = value.getMonth();\n var candidate = createDate(year, month, value.getDate(), value.getHours(), value.getMinutes(), value.getSeconds(), value.getMilliseconds());\n return candidate.getMonth() === month ? candidate : lastDayOfMonth(addMonths(candidate, -1));\n};\n","import { adjustDST } from './adjust-dst';\nimport { setYear } from './set-year';\n/**\n * A function that adds and subtracts years from a `Date` object.\n *\n * @param date - The initial date value.\n * @param offset - The number of years to add or subtract from the date.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * addYears(new Date(2016, 5, 1), 5); // 2011-6-1\n * addYears(new Date(2016, 5, 1), -5); // 2021-6-1\n * ```\n */\nexport var addYears = function (value, offset) {\n return adjustDST(setYear(value, value.getFullYear() + offset), value.getHours());\n};\n","import { addYears } from './add-years';\n/**\n * A function that adds and subtracts decades from a `Date` object.\n *\n * @param date - The initial date value.\n * @param offset - The number of decades to add or subtract from the date.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * addDecades(new Date(2016, 5, 1), 5); // 2066-6-1\n * addDecades(new Date(2016, 5, 1), -5); // 1966-6-1\n * ```\n */\nexport var addDecades = function (value, offset) {\n return addYears(value, 10 * offset);\n};\n","import { addYears } from './add-years';\n/**\n * A function that adds and subtracts centuries from a `Date` object.\n *\n * @param date - The initial date value.\n * @param offset - The number of centuries to add or subtract from the date.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * addCenturies(new Date(2016, 5, 1), 5); // 2516-6-1\n * addCenturies(new Date(2016, 5, 1), -5); // 1516-6-1\n * ```\n */\nexport var addCenturies = function (value, offset) {\n return addYears(value, 100 * offset);\n};\n","import { setYear } from './set-year';\n/**\n * @hidden\n */\nexport var normalizeYear = function (value, year) { return (setYear(value, year(value.getFullYear()))); };\n","import { normalizeYear } from './normalize-year';\n/**\n * A function that returns a `Date` object of the first decade in a century.\n *\n * @param date - The start date value.\n * @returns - The first year in a century.\n *\n * @example\n * ```ts-no-run\n * firstDecadeOfCentury(new Date(2017, 0, 1)); // 2000-1-1\n * firstDecadeOfCentury(new Date(2007, 10, 22)); // 2000-11-22\n * firstDecadeOfCentury(new Date(2126, 0, 1)); // 2100-1-1\n * ```\n */\nexport var firstDecadeOfCentury = function (value) { return (normalizeYear(value, function (y) { return y - (y % 100); })); };\n","import { normalizeYear } from './normalize-year';\n/**\n * A function that returns a `Date` object of the last decade in a century.\n *\n * @param date - The start date value.\n * @returns - The last year in a decade.\n *\n * @example\n * ```ts-no-run\n * lastDecadeOfCentury(new Date(2017, 0, 1)); // 2090-1-1\n * lastDecadeOfCentury(new Date(2007, 10, 22)); // 2090-11-22\n * lastDecadeOfCentury(new Date(2126, 0, 1)); // 2190-1-1\n * ```\n */\nexport var lastDecadeOfCentury = function (value) { return (normalizeYear(value, function (y) { return y - (y % 100) + 90; })); };\n","import { normalizeYear } from './normalize-year';\n/**\n * A function that returns a `Date` object of the first year in a decade.\n *\n * @param date - The start date value.\n * @returns - The first year in a decade.\n *\n * @example\n * ```ts-no-run\n * firstYearOfDecade(new Date(2017, 0, 1)); // 2010-1-1\n * firstYearOfDecade(new Date(2007, 10, 22)); // 2000-11-22\n * firstYearOfDecade(new Date(2026, 0, 1)); // 2020-1-1\n * ```\n */\nexport var firstYearOfDecade = function (value) { return (normalizeYear(value, function (y) { return y - (y % 10); })); };\n","import { firstDecadeOfCentury } from './first-decade-of-century';\n/**\n * A function that calculates duration in centuries between two `Date` objects.\n *\n * @param start - The start date value.\n * @param end - The end date value.\n * @returns - The duration in months.\n *\n * @example\n * ```ts-no-run\n * durationInCenturies(new Date(2016, 0, 1), new Date(3216, 0, 1)); // 12\n * durationInCenturies(new Date(2016, 6, 1), new Date(2617, 0, 1)); // 6\n * durationInCenturies(new Date(2016, 0, 1), new Date(2016, 0, 1)); // 0\n * ```\n */\nexport var durationInCenturies = function (start, end) { return ((firstDecadeOfCentury(end).getFullYear() - firstDecadeOfCentury(start).getFullYear()) / 100); };\n","var _a;\nimport { addDecades, addYears, cloneDate, durationInDecades, firstYearOfDecade, lastYearOfDecade } from '@progress/kendo-date-math';\nimport { Action } from '../models/NavigationAction';\nimport { EMPTY_SELECTIONRANGE } from '../models/SelectionRange';\nimport { getToday, isInRange, isInSelectionRange, range, intersects } from '../../utils';\nvar EMPTY_DATA = [[]];\nvar CELLS_LENGTH = 4;\nvar ROWS_LENGTH = 3;\nvar ACTIONS = (_a = {},\n _a[Action.Left] = function (date) { return addYears(date, -1); },\n _a[Action.Up] = function (date) { return addYears(date, -5); },\n _a[Action.Right] = function (date) { return addYears(date, 1); },\n _a[Action.Down] = function (date) { return addYears(date, 5); },\n _a[Action.PrevView] = function (date) { return addDecades(date, -1); },\n _a[Action.NextView] = function (date) { return addDecades(date, 1); },\n _a[Action.FirstInView] = function (date) { return firstYearOfDecade(date); },\n _a[Action.LastInView] = function (date) { return lastYearOfDecade(date); },\n _a);\n/**\n * @hidden\n */\nvar DecadeViewService = /** @class */ (function () {\n function DecadeViewService() {\n }\n DecadeViewService.prototype.addToDate = function (min, skip) {\n return addDecades(min, skip);\n };\n DecadeViewService.prototype.datesList = function (start, count) {\n return range(0, count).map(function (i) { return addDecades(start, i); });\n };\n DecadeViewService.prototype.data = function (options) {\n var _this = this;\n var cellUID = options.cellUID, focusedDate = options.focusedDate, isActiveView = options.isActiveView, max = options.max, min = options.min, selectedDate = options.selectedDate, _a = options.selectionRange, selectionRange = _a === void 0 ? EMPTY_SELECTIONRANGE : _a, viewDate = options.viewDate;\n if (!viewDate) {\n return EMPTY_DATA;\n }\n var cells = range(0, CELLS_LENGTH);\n var firstDate = firstYearOfDecade(viewDate);\n var lastDate = lastYearOfDecade(viewDate);\n var today = getToday();\n return range(0, ROWS_LENGTH).map(function (rowOffset) {\n var baseDate = addYears(firstDate, rowOffset * CELLS_LENGTH);\n return cells.map(function (cellOffset) {\n var cellDate = _this.normalize(addYears(baseDate, cellOffset), min, max);\n var isRangeStart = _this.isEqual(cellDate, selectionRange.start);\n var isRangeEnd = _this.isEqual(cellDate, selectionRange.end);\n var isInMiddle = !isRangeStart && !isRangeEnd;\n var isRangeMid = isInMiddle && isInSelectionRange(cellDate, selectionRange);\n var isSelected = isActiveView && (!Array.isArray(selectedDate)\n ? isInRange(selectedDate, min, max) && _this.isEqual(cellDate, selectedDate)\n : _this.isSelectedFromArray(cellDate, selectedDate, min, max));\n return intersects(cellDate, firstDate, lastDate) ? ({\n formattedValue: _this.value(cellDate),\n id: \"\".concat(cellUID).concat(cellDate.getTime()),\n isFocused: _this.isEqual(cellDate, focusedDate),\n isSelected: isSelected,\n isWeekend: false,\n isInRange: isInRange(cellDate, min, max),\n isRangeStart: isRangeStart,\n isRangeMid: isRangeMid,\n isRangeEnd: isRangeEnd,\n isRangeSplitEnd: isRangeMid && _this.isEqual(cellDate, lastDate),\n isRangeSplitStart: isRangeMid && _this.isEqual(cellDate, firstDate),\n isToday: _this.isEqual(cellDate, today),\n title: _this.cellTitle(cellDate),\n value: cellDate\n }) : null;\n });\n });\n };\n DecadeViewService.prototype.isSelectedFromArray = function (candidate, dates, min, max) {\n var _this = this;\n var result = false;\n dates.forEach(function (date) {\n if (isInRange(candidate, min, max) && _this.isEqual(candidate, date)) {\n result = true;\n }\n });\n return result;\n };\n DecadeViewService.prototype.isEqual = function (candidate, expected) {\n if (!candidate || !expected) {\n return false;\n }\n return candidate.getFullYear() === expected.getFullYear();\n };\n DecadeViewService.prototype.isInArray = function (date, dates) {\n if (!dates.length) {\n return false;\n }\n var year = date.getFullYear();\n return dates[0].getFullYear() <= year && year <= (dates[dates.length - 1].getFullYear() + 9);\n };\n DecadeViewService.prototype.isInRange = function (candidate, min, max) {\n var year = candidate.getFullYear();\n var aboveMin = !min || min.getFullYear() <= year;\n var belowMax = !max || year <= max.getFullYear();\n return aboveMin && belowMax;\n };\n DecadeViewService.prototype.isRangeStart = function (value) {\n return value.getFullYear() % 100 === 0;\n };\n DecadeViewService.prototype.isInSameView = function (candidate, value) {\n return durationInDecades(candidate, value) === 0;\n };\n DecadeViewService.prototype.move = function (value, action) {\n var modifier = ACTIONS[action];\n if (!modifier) {\n return value;\n }\n return modifier(value);\n };\n DecadeViewService.prototype.cellTitle = function (value) {\n return value.getFullYear().toString();\n };\n DecadeViewService.prototype.navigationTitle = function (value) {\n return value ? firstYearOfDecade(value).getFullYear().toString() : '';\n };\n DecadeViewService.prototype.title = function (value) {\n if (!value) {\n return '';\n }\n return \"\".concat(firstYearOfDecade(value).getFullYear(), \" - \").concat(lastYearOfDecade(value).getFullYear());\n };\n DecadeViewService.prototype.rowLength = function (_) {\n return CELLS_LENGTH;\n };\n DecadeViewService.prototype.skip = function (value, min) {\n return durationInDecades(min, value);\n };\n DecadeViewService.prototype.total = function (min, max) {\n return durationInDecades(min, max) + 1;\n };\n DecadeViewService.prototype.value = function (current) {\n return current ? current.getFullYear().toString() : '';\n };\n DecadeViewService.prototype.viewDate = function (date, max, border) {\n if (border === void 0) { border = 1; }\n var renderTwoViews = durationInDecades(date, max) < border;\n return renderTwoViews ? addDecades(date, -1) : date;\n };\n DecadeViewService.prototype.normalize = function (cellDate, min, max) {\n if (cellDate < min && this.isEqual(cellDate, min)) {\n return cloneDate(min);\n }\n if (cellDate > max && this.isEqual(cellDate, max)) {\n return cloneDate(max);\n }\n return cellDate;\n };\n return DecadeViewService;\n}());\nexport { DecadeViewService };\n","var _a;\nimport { addDays, addWeeks, addMonths, dayOfWeek, durationInMonths, getDate, firstDayOfMonth, lastDayOfMonth } from '@progress/kendo-date-math';\nimport { Action } from '../models/NavigationAction';\nimport { EMPTY_SELECTIONRANGE } from '../models/SelectionRange';\nimport { getToday, isInRange, isInSelectionRange, range } from '../../utils';\nvar EMPTY_DATA = [[]];\nvar CELLS_LENGTH = 7;\nvar ROWS_LENGTH = 6;\nvar SATURDAY = 6;\nvar SUNDAY = 0;\nvar ACTIONS = (_a = {},\n _a[Action.Left] = function (date) { return addDays(date, -1); },\n _a[Action.Up] = function (date) { return addWeeks(date, -1); },\n _a[Action.Right] = function (date) { return addDays(date, 1); },\n _a[Action.Down] = function (date) { return addWeeks(date, 1); },\n _a[Action.PrevView] = function (date) { return addMonths(date, -1); },\n _a[Action.NextView] = function (date) { return addMonths(date, 1); },\n _a[Action.FirstInView] = function (date) { return firstDayOfMonth(date); },\n _a[Action.LastInView] = function (date) { return lastDayOfMonth(date); },\n _a);\n/**\n * @hidden\n */\nvar MonthViewService = /** @class */ (function () {\n function MonthViewService(intl) {\n this.intl = intl;\n }\n MonthViewService.prototype.addToDate = function (min, skip) {\n return addMonths(min, skip);\n };\n MonthViewService.prototype.datesList = function (start, count) {\n return range(0, count).map(function (i) { return addMonths(start, i); });\n };\n MonthViewService.prototype.data = function (options) {\n var _this = this;\n var cellUID = options.cellUID, focusedDate = options.focusedDate, isActiveView = options.isActiveView, max = options.max, min = options.min, selectedDate = options.selectedDate, _a = options.selectionRange, selectionRange = _a === void 0 ? EMPTY_SELECTIONRANGE : _a, viewDate = options.viewDate;\n if (!viewDate) {\n return EMPTY_DATA;\n }\n var firstMonthDate = firstDayOfMonth(viewDate);\n var lastMonthDate = lastDayOfMonth(viewDate);\n var backward = -1;\n var date = dayOfWeek(firstMonthDate, this.intl.firstDay(), backward);\n var cells = range(0, CELLS_LENGTH);\n var today = getToday();\n return range(0, ROWS_LENGTH).map(function (rowOffset) {\n var baseDate = addDays(date, rowOffset * CELLS_LENGTH);\n return cells.map(function (cellOffset) {\n var cellDate = _this.normalize(addDays(baseDate, cellOffset), min, max);\n var otherMonth = cellDate < firstMonthDate || cellDate > lastMonthDate;\n if (otherMonth) {\n return null;\n }\n var isRangeStart = _this.isEqual(cellDate, selectionRange.start);\n var isRangeEnd = _this.isEqual(cellDate, selectionRange.end);\n var isInMiddle = !isRangeStart && !isRangeEnd;\n var isRangeMid = isInMiddle && isInSelectionRange(cellDate, selectionRange);\n var isSelected = isActiveView && (!Array.isArray(selectedDate)\n ? isInRange(selectedDate, min, max) && _this.isEqual(cellDate, selectedDate)\n : _this.isSelectedFromArray(cellDate, selectedDate, min, max));\n var cell = {\n formattedValue: _this.value(cellDate),\n id: \"\".concat(cellUID).concat(cellDate.getTime()),\n isFocused: _this.isEqual(cellDate, focusedDate),\n isSelected: isSelected,\n isInRange: isInRange(cellDate, min, max),\n isWeekend: _this.isWeekend(cellDate),\n isRangeStart: isRangeStart,\n isRangeMid: isRangeMid,\n isRangeEnd: isRangeEnd,\n isRangeSplitStart: isRangeMid && _this.isEqual(cellDate, firstMonthDate),\n isRangeSplitEnd: isRangeMid && _this.isEqual(cellDate, lastMonthDate),\n isToday: _this.isEqual(cellDate, today),\n title: _this.cellTitle(cellDate),\n value: cellDate\n };\n return cell;\n });\n });\n };\n MonthViewService.prototype.isEqual = function (candidate, expected) {\n if (!candidate || !expected) {\n return false;\n }\n return getDate(candidate).getTime() === getDate(expected).getTime();\n };\n MonthViewService.prototype.isSelectedFromArray = function (candidate, dates, min, max) {\n var _this = this;\n var result = false;\n dates.forEach(function (date) {\n if (isInRange(candidate, min, max) && _this.isEqual(candidate, date)) {\n result = true;\n }\n });\n return result;\n };\n MonthViewService.prototype.isInArray = function (date, dates) {\n return !!dates.length && firstDayOfMonth(dates[0]) <= date && date <= lastDayOfMonth(dates[dates.length - 1]);\n };\n MonthViewService.prototype.isInRange = function (candidate, min, max) {\n var value = getDate(candidate);\n var aboveMin = !min || getDate(min) <= value;\n var belowMax = !max || value <= getDate(max);\n return aboveMin && belowMax;\n };\n MonthViewService.prototype.isInSameView = function (candidate, value) {\n return durationInMonths(candidate, value) === 0;\n };\n MonthViewService.prototype.isRangeStart = function (value) {\n return !value.getMonth();\n };\n MonthViewService.prototype.move = function (value, action) {\n var modifier = ACTIONS[action];\n if (!modifier) {\n return value;\n }\n return modifier(value);\n };\n MonthViewService.prototype.cellTitle = function (value) {\n return this.intl.formatDate(value, 'D');\n };\n MonthViewService.prototype.navigationTitle = function (value) {\n if (!value) {\n return '';\n }\n return this.isRangeStart(value) ? value.getFullYear().toString() : this.abbrMonthNames()[value.getMonth()];\n };\n MonthViewService.prototype.title = function (current) {\n return \"\".concat(this.wideMonthNames()[current.getMonth()], \" \").concat(current.getFullYear());\n };\n MonthViewService.prototype.rowLength = function (prependCell) {\n return CELLS_LENGTH + (prependCell ? 1 : 0);\n };\n MonthViewService.prototype.skip = function (value, min) {\n return durationInMonths(min, value);\n };\n MonthViewService.prototype.total = function (min, max) {\n return durationInMonths(min, max) + 1;\n };\n MonthViewService.prototype.value = function (current) {\n return current ? current.getDate().toString() : '';\n };\n MonthViewService.prototype.viewDate = function (date, max, border) {\n if (border === void 0) { border = 1; }\n var renderTwoViews = durationInMonths(date, max) < border;\n return renderTwoViews ? addMonths(date, -1) : date;\n };\n MonthViewService.prototype.isWeekend = function (date) {\n var day = date.getDay();\n return day === SATURDAY || day === SUNDAY;\n };\n MonthViewService.prototype.abbrMonthNames = function () {\n return this.intl.dateFormatNames({ nameType: 'abbreviated', type: 'months' });\n };\n MonthViewService.prototype.normalize = function (cellDate, min, max) {\n if (cellDate < min && this.isEqual(cellDate, min)) {\n return getDate(min);\n }\n if (cellDate > max && this.isEqual(cellDate, max)) {\n return getDate(max);\n }\n return cellDate;\n };\n MonthViewService.prototype.wideMonthNames = function () {\n return this.intl.dateFormatNames({ nameType: 'wide', type: 'months', standAlone: true });\n };\n return MonthViewService;\n}());\nexport { MonthViewService };\n","var _a;\nimport { addMonths, addYears, createDate, durationInYears, firstMonthOfYear, lastMonthOfYear } from '@progress/kendo-date-math';\nimport { Action } from '../models/NavigationAction';\nimport { getToday, isInRange, isInSelectionRange, range } from '../../utils';\nimport { EMPTY_SELECTIONRANGE } from '../models/SelectionRange';\nimport { cloneDate } from '@progress/kendo-date-math';\nvar EMPTY_DATA = [[]];\nvar CELLS_LENGTH = 4;\nvar ROWS_LENGTH = 3;\nvar upStep = function (month) {\n if (month > 4) {\n return -5;\n }\n if (month < 2) {\n return -2;\n }\n return -7;\n};\nvar downStep = function (month) {\n if (month < 7) {\n return 5;\n }\n if (month < 10) {\n return 7;\n }\n return 2;\n};\nvar ACTIONS = (_a = {},\n _a[Action.Left] = function (date) { return addMonths(date, -1); },\n _a[Action.Up] = function (date) { return addMonths(date, upStep(date.getMonth())); },\n _a[Action.Right] = function (date) { return addMonths(date, 1); },\n _a[Action.Down] = function (date) { return addMonths(date, downStep(date.getMonth())); },\n _a[Action.PrevView] = function (date) { return addYears(date, -1); },\n _a[Action.NextView] = function (date) { return addYears(date, 1); },\n _a[Action.FirstInView] = function (date) { return firstMonthOfYear(date); },\n _a[Action.LastInView] = function (date) { return lastMonthOfYear(date); },\n _a);\n/**\n * @hidden\n */\nvar YearViewService = /** @class */ (function () {\n function YearViewService(intl) {\n this._intl = intl;\n }\n YearViewService.prototype.addToDate = function (min, skip) {\n return addYears(min, skip);\n };\n YearViewService.prototype.datesList = function (start, count) {\n return range(0, count).map(function (i) { return addYears(start, i); });\n };\n YearViewService.prototype.data = function (options) {\n var _this = this;\n var cellUID = options.cellUID, focusedDate = options.focusedDate, isActiveView = options.isActiveView, max = options.max, min = options.min, selectedDate = options.selectedDate, _a = options.selectionRange, selectionRange = _a === void 0 ? EMPTY_SELECTIONRANGE : _a, viewDate = options.viewDate;\n if (!viewDate) {\n return EMPTY_DATA;\n }\n var months = this.abbrMonthNames();\n var firstDate = firstMonthOfYear(viewDate);\n var lastDate = lastMonthOfYear(viewDate);\n var currentYear = firstDate.getFullYear();\n var cells = range(0, CELLS_LENGTH);\n var today = getToday();\n return range(0, ROWS_LENGTH).map(function (rowOffset) {\n var baseDate = addMonths(firstDate, rowOffset * CELLS_LENGTH);\n return cells.map(function (cellOffset) {\n var cellDate = _this.normalize(addMonths(baseDate, cellOffset), min, max);\n var changedYear = currentYear < cellDate.getFullYear();\n if (changedYear) {\n return null;\n }\n var isRangeStart = _this.isEqual(cellDate, selectionRange.start);\n var isRangeEnd = _this.isEqual(cellDate, selectionRange.end);\n var isInMiddle = !isRangeStart && !isRangeEnd;\n var isRangeMid = isInMiddle && isInSelectionRange(cellDate, selectionRange);\n var isSelected = isActiveView && (!Array.isArray(selectedDate)\n ? isInRange(selectedDate, min, max) && _this.isEqual(cellDate, selectedDate)\n : _this.isSelectedFromArray(cellDate, selectedDate, min, max));\n return {\n formattedValue: months[cellDate.getMonth()],\n id: \"\".concat(cellUID).concat(cellDate.getTime()),\n isFocused: _this.isEqual(cellDate, focusedDate),\n isSelected: isSelected,\n isInRange: isInRange(cellDate, min, max),\n isWeekend: false,\n isRangeStart: isRangeStart,\n isRangeMid: isRangeMid,\n isRangeEnd: isRangeEnd,\n isRangeSplitEnd: isRangeMid && _this.isEqual(cellDate, lastDate),\n isRangeSplitStart: isRangeMid && _this.isEqual(cellDate, firstDate),\n isToday: _this.isEqual(cellDate, today),\n title: _this.cellTitle(cellDate),\n value: cellDate\n };\n });\n });\n };\n YearViewService.prototype.isSelectedFromArray = function (candidate, dates, min, max) {\n var _this = this;\n var result = false;\n dates.forEach(function (date) {\n if (isInRange(candidate, min, max) && _this.isEqual(candidate, date)) {\n result = true;\n }\n });\n return result;\n };\n YearViewService.prototype.isEqual = function (candidate, expected) {\n if (!candidate || !expected) {\n return false;\n }\n return candidate.getFullYear() === expected.getFullYear() &&\n candidate.getMonth() === expected.getMonth();\n };\n YearViewService.prototype.isInArray = function (date, dates) {\n if (!dates.length) {\n return false;\n }\n var year = date.getFullYear();\n return dates[0].getFullYear() <= year && year <= dates[dates.length - 1].getFullYear();\n };\n YearViewService.prototype.isInRange = function (candidate, min, max) {\n var candidateValue = createDate(candidate.getFullYear(), candidate.getMonth(), 1);\n var aboveMin = !min || createDate(min.getFullYear(), min.getMonth(), 1) <= candidateValue;\n var belowMax = !max || candidateValue <= createDate(max.getFullYear(), max.getMonth(), 1);\n return aboveMin && belowMax;\n };\n YearViewService.prototype.isInSameView = function (candidate, value) {\n return durationInYears(candidate, value) === 0;\n };\n YearViewService.prototype.isRangeStart = function (value) {\n return value.getFullYear() % 10 === 0;\n };\n YearViewService.prototype.move = function (value, action) {\n var modifier = ACTIONS[action];\n if (!modifier) {\n return value;\n }\n return modifier(value);\n };\n YearViewService.prototype.cellTitle = function (value) {\n return \"\".concat(value.getFullYear(), \" \").concat(this.value(value));\n };\n YearViewService.prototype.navigationTitle = function (value) {\n return this.title(value);\n };\n YearViewService.prototype.title = function (current) {\n return current ? current.getFullYear().toString() : '';\n };\n YearViewService.prototype.rowLength = function (_) {\n return CELLS_LENGTH;\n };\n YearViewService.prototype.skip = function (value, min) {\n return durationInYears(min, value);\n };\n YearViewService.prototype.total = function (min, max) {\n return durationInYears(min, max) + 1;\n };\n YearViewService.prototype.value = function (current) {\n return current ? this.abbrMonthNames()[current.getMonth()] : '';\n };\n YearViewService.prototype.viewDate = function (date, max, border) {\n if (border === void 0) { border = 1; }\n var renderTwoViews = durationInYears(date, max) < border;\n return renderTwoViews ? addYears(date, -1) : date;\n };\n YearViewService.prototype.abbrMonthNames = function () {\n return this._intl.dateFormatNames({ nameType: 'abbreviated', type: 'months' });\n };\n YearViewService.prototype.normalize = function (cellDate, min, max) {\n if (cellDate < min && this.isEqual(cellDate, min)) {\n return cloneDate(min);\n }\n if (cellDate > max && this.isEqual(cellDate, max)) {\n return cloneDate(max);\n }\n return cellDate;\n };\n return YearViewService;\n}());\nexport { YearViewService };\n","var _a;\nimport { CenturyViewService } from './CenturyViewService';\nimport { DecadeViewService } from './DecadeViewService';\nimport { MonthViewService } from './MonthViewService';\nimport { YearViewService } from './YearViewService';\nimport { CalendarViewEnum } from '../models/CalendarViewEnum';\nvar services = (_a = {},\n _a[CalendarViewEnum.month] = MonthViewService,\n _a[CalendarViewEnum.year] = YearViewService,\n _a[CalendarViewEnum.decade] = DecadeViewService,\n _a[CalendarViewEnum.century] = CenturyViewService,\n _a);\nvar viewOffset = function (view, offset) {\n var candidate = CalendarViewEnum[CalendarViewEnum[view + offset]];\n return candidate !== undefined ? candidate : view;\n};\n/**\n * @hidden\n */\nvar BusViewService = /** @class */ (function () {\n function BusViewService(onViewChanged) {\n this.bottom = CalendarViewEnum.month;\n this.top = CalendarViewEnum.century;\n this.onViewChanged = onViewChanged;\n }\n BusViewService.prototype.configure = function (bottom, top) {\n this.bottom = bottom;\n this.top = top;\n };\n BusViewService.prototype.service = function (view, intl) {\n return new services[\"\".concat(view)](intl);\n };\n BusViewService.prototype.moveDown = function (view, event) {\n this.move(view, -1, event);\n };\n BusViewService.prototype.moveUp = function (view, event) {\n this.move(view, 1, event);\n };\n BusViewService.prototype.moveToBottom = function (activeView) {\n if (activeView === this.bottom) {\n return;\n }\n this.onViewChanged({ view: this.bottom });\n };\n BusViewService.prototype.canMoveDown = function (view) {\n return this.bottom < view;\n };\n BusViewService.prototype.canMoveUp = function (view) {\n return view < this.top;\n };\n BusViewService.prototype.clamp = function (view) {\n if (view < this.bottom) {\n return this.bottom;\n }\n if (view > this.top) {\n return this.top;\n }\n return view;\n };\n BusViewService.prototype.move = function (view, offset, event) {\n var candidate = this.clamp(viewOffset(view, offset));\n if (candidate === view) {\n return;\n }\n this.onViewChanged({ view: candidate }, event);\n };\n return BusViewService;\n}());\nexport { BusViewService };\n","import { normalizeYear } from './normalize-year';\n/**\n * A function that returns a `Date` object of the last year in a decade.\n *\n * @param date - The start date value.\n * @returns - The last year in a decade.\n *\n * @example\n * ```ts-no-run\n * lastYearOfDecade(new Date(2017, 0, 1)); // 2019-1-1\n * lastYearOfDecade(new Date(2007, 10, 22)); // 2009-11-22\n * lastYearOfDecade(new Date(2026, 0, 1)); // 2029-1-1\n * ```\n */\nexport var lastYearOfDecade = function (value) { return (normalizeYear(value, function (y) { return y - (y % 10) + 9; })); };\n","import { firstYearOfDecade } from './first-year-of-decade';\n/**\n * A function that calculates duration in decades between two `Date` objects.\n *\n * @param start - The start date value.\n * @param end - The end date value.\n * @returns - The duration in months.\n *\n * @example\n * ```ts-no-run\n * durationInDecades(new Date(2016, 0, 1), new Date(2136, 0, 1)); // 12\n * durationInDecades(new Date(2016, 0, 1), new Date(2016, 0, 1)); // 0\n * ```\n */\nexport var durationInDecades = function (start, end) { return ((firstYearOfDecade(end).getFullYear() - firstYearOfDecade(start).getFullYear()) / 10); };\n","import { addDays } from './add-days';\n/**\n * A function that adds and subtracts weeks from a Date object.\n *\n * @param date - The initial date value.\n * @param offset - The number of weeks to add/subtract from the date.\n * @returns - A new `Date` instance.\n *\n * @example\n * ```ts-no-run\n * addWeeks(new Date(2016, 5, 1), 3); // 2016-6-22\n * addWeeks(new Date(2016, 5, 1), -3); // 2015-5-11\n * ```\n */\nexport var addWeeks = function (date, offset) {\n return addDays(date, offset * 7);\n};\n","import { createDate } from './create-date';\n/**\n * A function which returns the first date of the month.\n *\n * @param date - The initial date.\n * @returns - The first date of the initial date month.\n *\n * @example\n * ```ts-no-run\n * firstDayOfMonth(new Date(2016, 0, 15)); // 2016-01-01\n * ```\n */\nexport var firstDayOfMonth = function (date) {\n return createDate(date.getFullYear(), date.getMonth(), 1, date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n};\n","/**\n * A function that calculates duration in months between two `Date` objects.\n *\n * @param start - The start date value.\n * @param end - The end date value.\n * @returns - The duration in months.\n *\n * @example\n * ```ts-no-run\n * durationInMonths(new Date(2016, 0, 1), new Date(2017, 0, 1)); // 12\n * durationInMonths(new Date(2016, 6, 1), new Date(2017, 0, 1)); // 6\n * durationInMonths(new Date(2016, 0, 1), new Date(2016, 0, 1)); // 0\n * ```\n */\nexport var durationInMonths = function (start, end) { return (((end.getFullYear() - start.getFullYear())) * 12 + (end.getMonth() - start.getMonth())); };\n","import { addMonths } from './add-months';\nimport { createDate } from './create-date';\nimport { lastDayOfMonth } from './last-day-of-month';\n/**\n * @hidden\n */\nexport var setMonth = function (value, month) {\n var day = value.getDate();\n var candidate = createDate(value.getFullYear(), month, day, value.getHours(), value.getMinutes(), value.getSeconds(), value.getMilliseconds());\n return candidate.getDate() === day ? candidate : lastDayOfMonth(addMonths(candidate, -1));\n};\n","import { setMonth } from './set-month';\n/**\n * A function that returns a `Date` object of the first month in a year.\n *\n * @param date - The start date value.\n * @returns - The first month in a year.\n *\n * @example\n * ```ts-no-run\n * firstMonthOfYear(new Date(2017, 11, 1)); // 2017-1-1\n * firstMonthOfYear(new Date(2017, 0, 1)); // 2017-1-1\n * ```\n */\nexport var firstMonthOfYear = function (value) { return setMonth(value, 0); };\n","import { setMonth } from './set-month';\n/**\n * A function that returns a `Date` object of the last month in a year.\n *\n * @param date - The start date value.\n * @returns - The last month in a year.\n *\n * @example\n * ```ts-no-run\n * lastMonthOfYear(new Date(2017, 5, 3)); // 2017-12-3\n * lastMonthOfYear(new Date(2017, 11, 3)); // 2017-12-3\n * ```\n */\nexport var lastMonthOfYear = function (value) { return setMonth(value, 11); };\n","/**\n * A function that calculates duration in years between two `Date` objects.\n *\n * @param start - The start date value.\n * @param end - The end date value.\n * @returns - The duration in years.\n *\n * @example\n * ```ts-no-run\n * durationInYears(new Date(2016, 0, 1), new Date(2028, 0, 1)); // 12\n * durationInYears(new Date(2016, 0, 1), new Date(2022, 0, 1)); // 6\n * durationInYears(new Date(2016, 0, 1), new Date(2016, 0, 1)); // 0\n * ```\n */\nexport var durationInYears = function (start, end) { return (end.getFullYear() - start.getFullYear()); };\n","import { Action } from '../models/NavigationAction';\nvar KEY_TO_ACTION = {\n '33': Action.PrevView,\n '34': Action.NextView,\n '35': Action.LastInView,\n '36': Action.FirstInView,\n '37': Action.Left,\n '38': Action.Up,\n '39': Action.Right,\n '40': Action.Down,\n 'meta+38': Action.UpperView,\n 'meta+40': Action.LowerView\n};\n/**\n * @hidden\n */\nvar NavigationService = /** @class */ (function () {\n function NavigationService(bus) {\n this.bus = bus;\n }\n NavigationService.prototype.action = function (event) {\n var action = \"\".concat(event.ctrlKey || event.metaKey ? 'meta+' : '').concat(event.keyCode);\n return KEY_TO_ACTION[action];\n };\n NavigationService.prototype.move = function (value, action, activeView, service, event) {\n if (!service) {\n return value;\n }\n if (action === Action.UpperView && this.bus.canMoveUp(activeView)) {\n this.bus.moveUp(activeView, event);\n return value;\n }\n if (action === Action.LowerView && this.bus.canMoveDown(activeView)) {\n this.bus.moveDown(activeView, event);\n return value;\n }\n return service.move(value, action);\n };\n return NavigationService;\n}());\nexport { NavigationService };\n","var divideByMagnitude = function (magnitude) { return function (x) { return Math.floor(x / magnitude); }; };\nvar powerByMagnitude = function (magnitude) { return function (x) { return x * magnitude; }; };\n/**\n * @hidden\n */\nvar ScrollSyncService = /** @class */ (function () {\n function ScrollSyncService(dom) {\n this.dom = dom;\n this.divideByMagnitude = null;\n this.powerByMagnitude = null;\n this.navigator = null;\n this.view = null;\n this.monthScrolled = false;\n this.navScrolled = false;\n }\n ScrollSyncService.prototype.configure = function (activeView) {\n var magnitude = Math.max(this.dom.viewHeight(activeView) / this.dom.navigationItemHeight, 1);\n this.divideByMagnitude = divideByMagnitude(magnitude);\n this.powerByMagnitude = powerByMagnitude(magnitude);\n };\n ScrollSyncService.prototype.sync = function (navigator, view, e) {\n if (!navigator || !view) {\n return;\n }\n this.navigator = navigator;\n this.view = view;\n if (e.target === this.navigator.element) {\n if (this.monthScrolled) {\n this.monthScrolled = false;\n return;\n }\n this.navScrolled = true;\n this.scrollSiblingOf(this.navigator.element);\n }\n if (e.target === this.view.element) {\n if (this.navScrolled) {\n this.navScrolled = false;\n return;\n }\n this.monthScrolled = true;\n this.scrollSiblingOf(this.view.element);\n }\n };\n ScrollSyncService.prototype.scrollSiblingOf = function (scrolledElement) {\n var component = this.siblingComponent(scrolledElement);\n var scrollTop = this.calculateScroll(component, scrolledElement.scrollTop);\n component.scrollTo(scrollTop);\n };\n ScrollSyncService.prototype.siblingComponent = function (scrollableElement) {\n return this.navigator.element === scrollableElement ? this.view : this.navigator;\n };\n ScrollSyncService.prototype.calculateScroll = function (component, scrollTop) {\n var modifier = component === this.navigator ? this.divideByMagnitude : this.powerByMagnitude;\n return modifier ? modifier(scrollTop) : 0;\n };\n return ScrollSyncService;\n}());\nexport { ScrollSyncService };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames, guid, Keys, validatePackage, withPropsContext, createPropsContext, setScrollbarWidth } from '@progress/kendo-react-common';\nimport { cloneDate, getDate, isEqualDate } from '@progress/kendo-date-math';\nimport { provideIntlService, registerForIntl } from '@progress/kendo-react-intl';\nimport { packageMetadata } from '../../package-metadata';\nimport { ViewList } from './ViewList';\nimport { Navigation } from './Navigation';\nimport { CalendarViewEnum } from '../models';\nimport { getToday, dateInRange, isInRange, viewInRange, MIN_DATE, MAX_DATE } from '../../utils';\nimport { BusViewService, DOMService, ScrollSyncService, NavigationService } from '../services';\nvar virtualizationProp = function (x) { return x ? x.virtualization : null; };\nvar calculateValue = function (min, max, stateValue, propValue) {\n if (min === void 0) { min = CalendarWithoutContext.defaultProps.min; }\n if (max === void 0) { max = CalendarWithoutContext.defaultProps.max; }\n return propValue !== undefined\n ? propValue !== null && isInRange(getDate(propValue), min, max)\n ? propValue\n : null\n : stateValue !== null && isInRange(getDate(stateValue), min, max)\n ? stateValue\n : null;\n};\n/** @hidden */\nvar CalendarWithoutContext = /** @class */ (function (_super) {\n __extends(CalendarWithoutContext, _super);\n function CalendarWithoutContext(props) {\n var _this = _super.call(this, props) || this;\n _this.scrollSyncService = null;\n _this.focusedDate = null;\n _this.cellUID = guid();\n _this.id = guid();\n _this.Navigation = null;\n _this.calendarViewList = null;\n _this._element = null;\n _this.intl = null;\n _this.service = null;\n _this.isActive = false;\n _this.didNavigationChange = false;\n /**\n * @hidden\n */\n _this.focus = function () {\n if (_this._element) {\n _this._element.focus();\n }\n };\n _this.shouldScroll = function () { return _this.didNavigationChange; };\n _this.handleScroll = function (event) {\n if (!_this.scrollSyncService) {\n return;\n }\n _this.scrollSyncService.sync(virtualizationProp(_this.Navigation), virtualizationProp(_this.calendarViewList), event);\n };\n _this.handleNavigationChange = function (event) {\n if (_this.props.disabled) {\n return;\n }\n _this.didNavigationChange = true;\n var focusedDate = cloneDate(event.value);\n _this.setState({ focusedDate: focusedDate });\n };\n _this.handleViewChange = function (_a) {\n var view = _a.view;\n if (_this.scrollSyncService) {\n _this.scrollSyncService.configure(view);\n }\n _this.setState({ activeView: view });\n };\n _this.handleDateChange = function (event) {\n var value = cloneDate(event.value);\n var focusedDate = cloneDate(event.value);\n var canNavigateDown = _this.bus.canMoveDown(_this.state.activeView);\n if (_this.props.disabled) {\n return;\n }\n if (canNavigateDown) {\n if (event.isTodayClick) {\n _this.bus.moveToBottom(_this.state.activeView);\n }\n else {\n _this.bus.moveDown(_this.state.activeView, event.syntheticEvent);\n _this.setState({ focusedDate: focusedDate });\n return;\n }\n }\n _this.setState({ value: value, focusedDate: focusedDate });\n _this.valueDuringOnChange = value;\n var onChange = _this.props.onChange;\n if (onChange) {\n var args = {\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n value: value,\n target: _this\n };\n onChange.call(undefined, args);\n }\n _this.valueDuringOnChange = undefined;\n };\n _this.handleFocus = function (event) {\n _this.isActive = true;\n if (!_this.calendarViewList) {\n return;\n }\n _this.calendarViewList.focusActiveDate();\n var onFocus = _this.props.onFocus;\n if (onFocus) {\n onFocus.call(undefined, event);\n }\n };\n _this.handleBlur = function (event) {\n _this.isActive = false;\n if (!_this.calendarViewList) {\n return;\n }\n _this.calendarViewList.blurActiveDate();\n var onBlur = _this.props.onBlur;\n if (onBlur) {\n onBlur.call(undefined, event);\n }\n };\n _this.handleKeyDown = function (event) {\n var keyCode = event.keyCode;\n if (!_this.focusedDate || !_this.service) {\n return;\n }\n if (keyCode === Keys.enter) {\n if (_this.value !== null\n && isEqualDate(_this.focusedDate, _this.value)) {\n var viewDate = dateInRange(_this.focusedDate, _this.min, _this.max);\n virtualizationProp(_this.calendarViewList).scrollToIndex(_this.service.skip(viewDate, _this.min));\n }\n var args = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n value: _this.focusedDate,\n target: _this\n };\n _this.handleDateChange(args);\n }\n else {\n var candidate = dateInRange(_this.navigation.move(_this.focusedDate, _this.navigation.action(event), _this.state.activeView, _this.service, event), _this.min, _this.max);\n if (isEqualDate(_this.focusedDate, candidate)) {\n return;\n }\n _this.setState({ focusedDate: candidate });\n }\n event.preventDefault();\n };\n _this.handleMouseDown = function (event) {\n event.preventDefault();\n };\n _this.handleClick = function (_) {\n if (_this._element) {\n _this._element.focus({ preventScroll: true });\n }\n };\n validatePackage(packageMetadata);\n var value = calculateValue(_this.min, _this.max, _this.props.defaultValue || CalendarWithoutContext.defaultProps.defaultValue, _this.props.value);\n _this.state = {\n value: value,\n activeView: viewInRange(CalendarViewEnum[props.defaultActiveView], _this.bottomView, _this.topView),\n focusedDate: dateInRange(props.focusedDate\n || value\n || getToday(), _this.min, _this.max)\n };\n _this.dom = new DOMService();\n _this.bus = new BusViewService(_this.handleViewChange);\n _this.navigation = new NavigationService(_this.bus);\n _this.oldValue = value;\n return _this;\n }\n Object.defineProperty(CalendarWithoutContext.prototype, \"element\", {\n /**\n * Gets the wrapping element of the Calendar.\n */\n get: function () {\n return this._element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CalendarWithoutContext.prototype, \"value\", {\n /**\n * Gets the value of the Calendar.\n */\n get: function () {\n return this.valueDuringOnChange !== undefined\n ? this.valueDuringOnChange\n : this.props.value !== undefined\n ? this.props.value\n : this.state.value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CalendarWithoutContext.prototype, \"min\", {\n get: function () {\n return getDate(this.props.min !== undefined\n ? this.props.min\n : CalendarWithoutContext.defaultProps.min);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CalendarWithoutContext.prototype, \"max\", {\n get: function () {\n return getDate(this.props.max !== undefined\n ? this.props.max\n : CalendarWithoutContext.defaultProps.max);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CalendarWithoutContext.prototype, \"bottomView\", {\n get: function () {\n return CalendarViewEnum[this.props.bottomView !== undefined\n ? this.props.bottomView\n : CalendarWithoutContext.defaultProps.bottomView];\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CalendarWithoutContext.prototype, \"topView\", {\n get: function () {\n return CalendarViewEnum[this.props.topView !== undefined\n ? this.props.topView\n : CalendarWithoutContext.defaultProps.topView];\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n CalendarWithoutContext.prototype.componentDidMount = function () {\n var _this = this;\n // Async calculation of height to avoid animation cancellation\n Promise.resolve().then(function () {\n setScrollbarWidth();\n if (!_this._element) {\n return;\n }\n _this.dom.calculateHeights(_this._element);\n _this.scrollSyncService = new ScrollSyncService(_this.dom);\n _this.scrollSyncService.configure(_this.state.activeView);\n _this.forceUpdate();\n });\n };\n /**\n * @hidden\n */\n CalendarWithoutContext.prototype.componentDidUpdate = function (_, prevState) {\n setScrollbarWidth();\n if (prevState.activeView !== this.state.activeView && this.scrollSyncService) {\n this.scrollSyncService.configure(this.state.activeView);\n }\n if (this.calendarViewList) {\n (this.isActive ? this.calendarViewList.focusActiveDate : this.calendarViewList.blurActiveDate)();\n }\n this.didNavigationChange = false;\n this.oldValue = this.value;\n };\n /**\n * @hidden\n */\n CalendarWithoutContext.prototype.render = function () {\n var _this = this;\n if (this.props._ref) {\n this.props._ref(this);\n }\n var didValueChange = this.value !== null && this.oldValue !== null\n ? !isEqualDate(this.value, this.oldValue)\n : this.value !== this.oldValue;\n var activeView = viewInRange(this.state.activeView, CalendarViewEnum[this.props.bottomView !== undefined\n ? this.props.bottomView\n : CalendarWithoutContext.defaultProps.bottomView], CalendarViewEnum[this.props.topView !== undefined\n ? this.props.topView\n : CalendarWithoutContext.defaultProps.topView]);\n var value = calculateValue(this.min, this.max, this.value, this.value);\n var sanitizedValue = value ? getDate(value) : null;\n this.focusedDate = getDate(dateInRange(didValueChange && value !== null\n ? value\n : this.state.focusedDate, this.min, this.max));\n this.intl = provideIntlService(this);\n this.bus.configure(this.bottomView, this.topView);\n this.service = this.bus.service(activeView, this.intl);\n var _a = this.props.smoothScroll, smoothScroll = _a === void 0 ? Number.parseFloat(React.version) < 18 : _a;\n var rootClassNames = classNames('k-widget k-calendar k-calendar-infinite', {\n 'k-disabled': this.props.disabled,\n 'k-week-number': this.props.weekNumber,\n 'k-calendar-lg': this.props.mobileMode\n }, this.props.className);\n var calendarBody = [this.props.navigation && (React.createElement(Navigation, { key: 0, ref: function (el) { _this.Navigation = el; }, activeView: this.state.activeView, focusedDate: this.focusedDate, min: this.min, max: this.max, onScroll: this.handleScroll, onChange: this.handleNavigationChange, service: this.service, dom: this.dom, navigationItem: this.props.navigationItem, tabIndex: this.props.tabIndex })), (React.createElement(ViewList, { key: 1, ref: function (el) { _this.calendarViewList = el; }, activeView: this.state.activeView, focusedDate: this.focusedDate, min: this.min, max: this.max, bus: this.bus, shouldScroll: this.shouldScroll, onScroll: this.handleScroll, service: this.service, cell: this.props.cell, weekCell: this.props.weekCell, dom: this.dom, smoothScroll: smoothScroll, showWeekNumbers: this.props.weekNumber, onChange: this.handleDateChange, value: sanitizedValue, cellUID: this.cellUID, headerTitle: this.props.headerTitle, tabIndex: this.props.tabIndex }))];\n return (React.createElement(\"div\", { ref: function (el) { _this._element = el; }, className: rootClassNames, id: this.props.id || this.id, \"aria-labelledby\": this.props.ariaLabelledBy, \"aria-describedby\": this.props.ariaDescribedBy, \"aria-disabled\": this.props.disabled, tabIndex: !this.props.disabled ? this.props.tabIndex || 0 : undefined, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyDown: this.handleKeyDown, onMouseDown: this.handleMouseDown, onClick: this.handleClick }, calendarBody));\n };\n /**\n * @hidden\n */\n CalendarWithoutContext.displayName = 'Calendar';\n /**\n * @hidden\n */\n CalendarWithoutContext.propTypes = {\n className: PropTypes.string,\n defaultActiveView: PropTypes.oneOf(['month', 'year', 'decade', 'century']),\n defaultValue: PropTypes.instanceOf(Date),\n disabled: PropTypes.bool,\n focusedDate: PropTypes.instanceOf(Date),\n id: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n max: PropTypes.instanceOf(Date),\n min: PropTypes.instanceOf(Date),\n navigation: PropTypes.bool,\n smoothScroll: PropTypes.bool,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n tabIndex: PropTypes.number,\n value: PropTypes.instanceOf(Date),\n weekNumber: PropTypes.bool,\n topView: function (props, propName, componentName) {\n var prop = props[propName];\n var bottomView = props.bottomView;\n if (prop && bottomView && CalendarViewEnum[prop] < CalendarViewEnum[bottomView]) {\n return new Error(\"Invalid prop + \".concat(propName, \" suplied to \").concat(componentName, \".\\n \").concat(propName, \" can not be smaller than bottomView.\\n \"));\n }\n return null;\n },\n bottomView: function (props, propName, componentName) {\n var prop = props[propName];\n var topView = props.topView;\n if (prop && topView && CalendarViewEnum[prop] > CalendarViewEnum[topView]) {\n return new Error(\"Invalid prop + \".concat(propName, \" suplied to \").concat(componentName, \".\\n \").concat(propName, \" can not be bigger than topView.\\n \"));\n }\n return null;\n }\n };\n /**\n * @hidden\n */\n CalendarWithoutContext.defaultProps = {\n disabled: false,\n min: MIN_DATE,\n max: MAX_DATE,\n navigation: true,\n defaultActiveView: 'month',\n defaultValue: null,\n topView: 'century',\n bottomView: 'month'\n };\n return CalendarWithoutContext;\n}(React.Component));\nexport { CalendarWithoutContext };\n/**\n * Represents the PropsContext of the `Calendar` component.\n * Used for global configuration of all `Calendar` instances.\n *\n * For more information, refer to the [DateInputs Props Context]({% slug props-context_dateinputs %}) article.\n */\nexport var CalendarPropsContext = createPropsContext();\n/* eslint-disable @typescript-eslint/no-redeclare -- intentionally naming the component the same as the type */\n/**\n * Represents the KendoReact Calendar Component.\n *\n * Accepts properties of type [CalendarProps]({% slug api_dateinputs_calendarprops %}).\n * Obtaining the `ref` returns an object of type [CalendarHandle]({% slug api_dateinputs_calendarhandle %}).\n */\nexport var Calendar = withPropsContext(CalendarPropsContext, CalendarWithoutContext);\nCalendar.displayName = 'KendoReactCalendar';\nregisterForIntl(CalendarWithoutContext);\n","/**\n * @hidden\n */\nvar Mask = /** @class */ (function () {\n function Mask() {\n this.symbols = '';\n this.partMap = [];\n }\n return Mask;\n}());\nexport { Mask };\n","/**\n * @hidden\n */\nexport var defaultFormat = 'd';\n/**\n * @hidden\n */\nexport var defaultFormatPlaceholder = 'wide';\n/**\n * @hidden\n */\nexport var padZero = function (length) { return new Array(Math.max(length, 0)).fill('0').join(''); };\n/**\n * @hidden\n */\nexport var approximateStringMatching = function (oldTextOrigin, oldFormat, newTextOrigin, selectionStart) {\n /*\n Remove the right part of the cursor.\n oldFormat = oldFormat.substring(0, caret + oldText.length - newText.length);\n */\n var oldTextSeparator = oldTextOrigin[selectionStart + oldTextOrigin.length - newTextOrigin.length];\n var oldText = oldTextOrigin.substring(0, selectionStart + oldTextOrigin.length - newTextOrigin.length);\n var newText = newTextOrigin.substring(0, selectionStart);\n var diff = [];\n /* Handle the typing of a single character over the same selection. */\n if (oldText === newText && selectionStart > 0) {\n diff.push([oldFormat[selectionStart - 1], newText[selectionStart - 1]]);\n return diff;\n }\n if (oldText.indexOf(newText) === 0 &&\n (newText.length === 0 || oldFormat[newText.length - 1] !== oldFormat[newText.length])) {\n /* Handle Delete/Backspace. */\n var deletedSymbol = '';\n /*\n The whole text is replaced by the same character.\n A nasty patch is required to keep the selection in the first segment.\n */\n if (newText.length === 1) {\n diff.push([oldFormat[0], newText[0]]);\n }\n for (var i = newText.length; i < oldText.length; i++) {\n if (oldFormat[i] !== deletedSymbol && oldFormat[i] !== '_') {\n deletedSymbol = oldFormat[i];\n diff.push([deletedSymbol, '']);\n }\n }\n return diff;\n }\n /*\n Handle the insertion of the text (the new text is longer than the previous one).\n Handle the typing over a literal as well.\n */\n if (newText.indexOf(oldText) === 0 || oldFormat[selectionStart - 1] === '_') {\n var symbol = oldFormat[0];\n for (var i = Math.max(0, oldText.length - 1); i < oldFormat.length; i++) {\n if (oldFormat[i] !== '_') {\n symbol = oldFormat[i];\n break;\n }\n }\n return [[symbol, newText[selectionStart - 1]]];\n }\n /* Handle the entering of a space or a separator for navigating to the next item. */\n if (newText[newText.length - 1] === ' ' || newText[newText.length - 1] === oldTextSeparator) {\n return [[oldFormat[selectionStart - 1], '_']];\n }\n /* Handle typing over a correctly selected part. */\n return [[oldFormat[selectionStart - 1], newText[selectionStart - 1]]];\n};\n/**\n * @hidden\n */\nexport var dateSymbolMap = function (map, part) { map[part.pattern[0]] = part.type; return map; };\n/**\n * @hidden\n */\nexport var isInRange = function (candidate, min, max) { return (candidate === null || !((min && min > candidate) || (max && max < candidate))); };\n/**\n * @hidden\n */\nexport var invalidClasses = ['k-invalid'];\n/** @hidden */\nexport var wrapperClasses = ['k-widget', 'k-dateinput'];\n","import { addMonths, cloneDate, createDate, isEqual, getDate, lastDayOfMonth } from '@progress/kendo-date-math';\nimport { Mask } from './mask';\nimport { dateSymbolMap } from './../utils';\n/**\n * @hidden\n */\nvar KendoDate = /** @class */ (function () {\n function KendoDate(intlProvider, formatPlaceholder, format) {\n this.year = true;\n this.month = true;\n this.date = true;\n this.hours = true;\n this.minutes = true;\n this.seconds = true;\n this.milliseconds = true;\n this.leadingZero = null;\n this.typedMonthPart = '';\n this.knownParts = 'adHhmMsEy';\n this.symbols = {\n 'E': 'E',\n 'H': 'H',\n 'M': 'M',\n 'a': 'a',\n 'd': 'd',\n 'h': 'h',\n 'm': 'm',\n 's': 's',\n 'y': 'y'\n };\n this._value = getDate(new Date());\n this.intlProvider = intlProvider;\n this.formatPlaceholder = formatPlaceholder;\n this.format = format;\n this.monthNames = this.allFormatedMonths();\n }\n Object.defineProperty(KendoDate.prototype, \"intl\", {\n get: function () {\n return this.intlProvider();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(KendoDate.prototype, \"value\", {\n get: function () {\n return this._value;\n },\n enumerable: false,\n configurable: true\n });\n KendoDate.prototype.setValue = function (value) {\n if (!value) {\n this._value = getDate(new Date());\n this.modifyExisting(false);\n }\n else if (!isEqual(value, this._value)) {\n this._value = cloneDate(value);\n this.modifyExisting(true);\n }\n };\n KendoDate.prototype.hasValue = function () {\n var _this = this;\n var pred = function (a, p) { return a || p.type !== 'literal' && p.type !== 'dayperiod' && _this.getExisting(p.pattern[0]); };\n return this.intl.splitDateFormat(this.format).reduce(pred, false);\n };\n KendoDate.prototype.getDateObject = function () {\n for (var i = 0; i < this.knownParts.length; i++) {\n if (!this.getExisting(this.knownParts[i])) {\n return null;\n }\n }\n return cloneDate(this.value);\n };\n KendoDate.prototype.getTextAndFormat = function () {\n return this.merge(this.intl.formatDate(this.value, this.format), this.dateFormatString(this.value, this.format));\n };\n KendoDate.prototype.modifyExisting = function (value) {\n var sampleFormat = this.dateFormatString(this.value, this.format).symbols;\n for (var i = 0; i < sampleFormat.length; i++) {\n this.setExisting(sampleFormat[i], value);\n }\n };\n KendoDate.prototype.getExisting = function (symbol) {\n switch (symbol) {\n case 'y': return this.year;\n case 'M':\n case 'L': return this.month;\n case 'd': return this.date;\n case 'E': return this.date && this.month && this.year;\n case 'h':\n case 'H': return this.hours;\n case 'm': return this.minutes;\n case 's': return this.seconds;\n default: return true;\n }\n };\n KendoDate.prototype.setExisting = function (symbol, value) {\n switch (symbol) {\n case 'y':\n // allow 2/29 dates\n this.year = value;\n if (value === false) {\n this._value.setFullYear(2000);\n }\n break;\n case 'M':\n // make sure you can type 31 in the day part\n this.month = value;\n if (value === false) {\n this._value.setMonth(0);\n }\n break;\n case 'd':\n this.date = value;\n break;\n case 'h':\n case 'H':\n this.hours = value;\n break;\n case 'm':\n this.minutes = value;\n break;\n case 's':\n this.seconds = value;\n break;\n default: return;\n }\n };\n KendoDate.prototype.modifyPart = function (symbol, offset) {\n var newValue = cloneDate(this.value);\n switch (symbol) {\n case 'y':\n newValue.setFullYear(newValue.getFullYear() + offset);\n break;\n case 'M':\n newValue = addMonths(this.value, offset);\n break;\n case 'd':\n case 'E':\n newValue.setDate(newValue.getDate() + offset);\n break;\n case 'h':\n case 'H':\n newValue.setHours(newValue.getHours() + offset);\n break;\n case 'm':\n newValue.setMinutes(newValue.getMinutes() + offset);\n break;\n case 's':\n newValue.setSeconds(newValue.getSeconds() + offset);\n break;\n case 'a':\n newValue.setHours(newValue.getHours() + (12 * offset));\n break;\n default: break;\n }\n this.setExisting(symbol, true);\n this._value = newValue;\n };\n KendoDate.prototype.parsePart = function (symbol, currentChar) {\n var _a;\n this.resetLeadingZero();\n if (!currentChar) {\n this.setExisting(symbol, false);\n return { value: null };\n }\n var baseDate = this.intl.formatDate(this.value, this.format);\n var dateParts = this.dateFormatString(this.value, this.format);\n var baseFormat = dateParts.symbols;\n var replaced = false;\n var prefix = '';\n var current = '';\n var suffix = '';\n for (var i = 0; i < baseDate.length; i++) {\n if (baseFormat[i] === symbol) {\n current += this.getExisting(symbol) ? baseDate[i] : '0';\n replaced = true;\n }\n else if (!replaced) {\n prefix += baseDate[i];\n }\n else {\n suffix += baseDate[i];\n }\n }\n var parsedDate = null;\n var month = this.matchMonth(currentChar);\n while (current.length > 0 && current.charAt(0) === '0') {\n current = current.slice(1);\n }\n if (current.length >= 4) {\n current = '';\n }\n for (var i = 0; i < 2; i++) {\n var middle = current + currentChar;\n var middleNumber = parseInt(middle, 10);\n parsedDate = this.intl.parseDate(prefix + middle + suffix, this.format);\n if (!parsedDate && !isNaN(middleNumber) && !isNaN(parseInt(currentChar, 10))) {\n if (symbol === 'M' && !month) {\n var monthNumber = middleNumber - 1;\n if (monthNumber > -1 && monthNumber < 12) {\n parsedDate = cloneDate(this.value);\n parsedDate.setMonth(monthNumber);\n if (parsedDate.getMonth() !== monthNumber) {\n parsedDate = lastDayOfMonth(addMonths(parsedDate, -1));\n }\n }\n }\n if (symbol === 'y') {\n parsedDate = createDate(parseInt(middle, 10), this.month ? this.value.getMonth() : 0, this.date ? this.value.getDate() : 1, this.hours ? this.value.getHours() : 0, this.minutes ? this.value.getMinutes() : 0, this.seconds ? this.value.getSeconds() : 0, this.milliseconds ? this.value.getMilliseconds() : 0);\n if (this.date && parsedDate.getDate() !== this.value.getDate()) {\n parsedDate = lastDayOfMonth(addMonths(parsedDate, -1));\n }\n }\n }\n if (parsedDate) {\n this._value = parsedDate;\n this.setExisting(symbol, true);\n return { value: this.value };\n }\n current = '';\n }\n if (month) {\n parsedDate = this.intl.parseDate(prefix + month + suffix, this.format);\n if (parsedDate) {\n this._value = parsedDate;\n this.setExisting(symbol, true);\n return { value: this.value };\n }\n }\n if (currentChar === '0') {\n this.leadingZero = !this.isAbbrMonth(dateParts.partMap, symbol) ? (_a = {}, _a[symbol] = true, _a) : null;\n this.setExisting(symbol, false);\n }\n return { value: null };\n };\n KendoDate.prototype.symbolMap = function (symbol) {\n return this.intl.splitDateFormat(this.format).reduce(dateSymbolMap, {})[symbol];\n };\n KendoDate.prototype.resetLeadingZero = function () {\n var hasLeadingZero = this.leadingZero !== null;\n this.leadingZero = null;\n return hasLeadingZero;\n };\n KendoDate.prototype.isAbbrMonth = function (parts, symbol) {\n var pattern = this.partPattern(parts, symbol);\n return pattern.type === 'month' && pattern.names;\n };\n KendoDate.prototype.partPattern = function (parts, symbol) {\n return parts.filter(function (part) { return part.pattern.indexOf(symbol) !== -1; })[0];\n };\n KendoDate.prototype.matchMonth = function (typedChar) {\n this.typedMonthPart += typedChar.toLowerCase();\n if (this.monthNames.length === 0) {\n return '';\n }\n while (this.typedMonthPart.length > 0) {\n for (var i = 0; i < this.monthNames.length; i++) {\n if (this.monthNames[i].toLowerCase().indexOf(this.typedMonthPart) === 0) {\n return this.monthNames[i];\n }\n }\n var monthAsNum = parseInt(this.typedMonthPart, 10);\n /* ensure they exact match */\n if (monthAsNum >= 1 && monthAsNum <= 12 && monthAsNum.toString() === this.typedMonthPart) {\n return this.monthNames[monthAsNum - 1];\n }\n this.typedMonthPart = this.typedMonthPart.substring(1, this.typedMonthPart.length);\n }\n return '';\n };\n KendoDate.prototype.allFormatedMonths = function () {\n var dateFormatParts = this.intl.splitDateFormat(this.format);\n for (var i = 0; i < dateFormatParts.length; i++) {\n if (dateFormatParts[i].type === 'month' && dateFormatParts[i].names) {\n return this.intl.dateFormatNames(dateFormatParts[i].names);\n }\n }\n return [];\n };\n KendoDate.prototype.dateFormatString = function (date, format) {\n var dateFormatParts = this.intl.splitDateFormat(format);\n var parts = [];\n var partMap = [];\n for (var i = 0; i < dateFormatParts.length; i++) {\n var partLength = this.intl.formatDate(date, { pattern: dateFormatParts[i].pattern }).length;\n while (partLength > 0) {\n parts.push(this.symbols[dateFormatParts[i].pattern[0]] || '_');\n partMap.push(dateFormatParts[i]);\n partLength--;\n }\n }\n var returnValue = new Mask();\n returnValue.symbols = parts.join('');\n returnValue.partMap = partMap;\n return returnValue;\n };\n KendoDate.prototype.merge = function (text, mask) {\n // Important: right to left.\n var resultText = '';\n var resultFormat = '';\n var format = mask.symbols;\n for (var r = format.length - 1; r >= 0; r--) {\n if (this.knownParts.indexOf(format[r]) === -1 || this.getExisting(format[r])) {\n resultText = text[r] + resultText;\n resultFormat = format[r] + resultFormat;\n }\n else {\n var currentSymbol = format[r];\n while (r >= 0 && currentSymbol === format[r]) {\n r--;\n }\n r++;\n if (this.leadingZero && this.leadingZero[currentSymbol]) {\n resultText = '0' + resultText;\n }\n else {\n resultText = this.dateFieldName(mask.partMap[r]) + resultText;\n }\n while (resultFormat.length < resultText.length) {\n resultFormat = format[r] + resultFormat;\n }\n }\n }\n return { text: resultText, format: resultFormat };\n };\n KendoDate.prototype.dateFieldName = function (part) {\n var formatPlaceholder = (this.formatPlaceholder || 'wide');\n if (formatPlaceholder[part.type]) {\n return formatPlaceholder[part.type];\n }\n if (formatPlaceholder === 'formatPattern') {\n return part.pattern;\n }\n return this.intl.dateFieldName(Object.assign(part, { nameType: formatPlaceholder }));\n };\n return KendoDate;\n}());\nexport { KendoDate };\n","/**\n * @hidden\n */\nexport var TIME_PART = {\n dayperiod: 'dayperiod',\n hour: 'hour',\n millisecond: 'millisecond',\n minute: 'minute',\n second: 'second'\n};\n","import { cloneDate, addDays } from '@progress/kendo-date-math';\nimport { TIME_PART } from './models/TimePart';\nimport { MIDNIGHT_DATE, setTime } from '../utils';\nvar setter = function (method) { return function (date, value) {\n var clone = cloneDate(date);\n clone[method](value);\n return clone;\n}; };\nvar defaultGetters = [\n { type: TIME_PART.hour, getter: function (value) { return value.getHours(); } },\n { type: TIME_PART.minute, getter: function (value) { return value.getMinutes(); } },\n { type: TIME_PART.second, getter: function (value) { return value.getSeconds(); } },\n { type: TIME_PART.millisecond, getter: function (value) { return value.getMilliseconds(); } }\n];\nvar left = function (getter) { return function (origin, _) { return getter(origin); }; };\nvar right = function (getter) { return function (_, candidate) { return getter(candidate); }; };\nvar convertToObject = function (parts) { return parts.reduce(function (obj, p) { obj[p.type] = p.type; return obj; }, {}); };\nvar getterByPart = function (parts) { return function (g) { return parts[g.type] ? right(g.getter) : left(g.getter); }; };\nvar gettersFactory = function (getters) { return function (parts) { return (getters.map(getterByPart(convertToObject(parts)))); }; };\nvar snapValue = function (getter, step, min, type) { return function (date) {\n var value = getter(date);\n var minValue = getter(min);\n if (type === 'hour') {\n return value - ((value - minValue) % step);\n }\n if (date.getTime() <= min.getTime()\n && value !== 0\n && value <= minValue) {\n return (Math.ceil(value / step)) * step;\n }\n return value - (value % step);\n}; };\nvar snappersFactory = function (getters) { return function (steps, min) { return (getters.map(function (g) {\n var step = Math.floor(steps[g.type]);\n return step ? snapValue(g.getter, step, min, g.type) : g.getter;\n})); }; };\n/**\n * @hidden\n */\nexport var generateGetters = gettersFactory(defaultGetters);\n/**\n * @hidden\n */\nexport var generateSnappers = snappersFactory(defaultGetters);\n/**\n * @hidden\n */\nexport var valueMerger = function (getters) { return function (origin, candidate) {\n origin.setHours.apply(origin, getters.map(function (g) { return g(origin, candidate); }));\n return origin;\n}; };\n/**\n * @hidden\n */\nexport var snapTime = function (snappers) { return function (candidate) {\n var date = cloneDate(candidate);\n date.setHours.apply(date, snappers.map(function (s) { return s(date); }));\n return date;\n}; };\n/**\n * @hidden\n */\nexport var setHours = setter('setHours');\n/**\n * @hidden\n */\nexport var setMinutes = setter('setMinutes');\n/**\n * @hidden\n */\nexport var setSeconds = setter('setSeconds');\n/**\n * @hidden\n */\nexport var getNow = function () { return new Date(); };\n/**\n * @hidden\n */\nexport var range = function (start, end, step) {\n if (step === void 0) { step = 1; }\n var result = [];\n for (var i = start; i < end; i = i + step) {\n result.push(i);\n }\n return result;\n};\nvar normalizeTimes = function (candidate, min, max) { return ({\n candidateValue: setTime(MIDNIGHT_DATE, candidate),\n maxValue: addDays(setTime(MIDNIGHT_DATE, max), min.getHours() < max.getHours() ? 0 : 1),\n minValue: setTime(MIDNIGHT_DATE, min)\n}); };\n/**\n * @hidden\n */\nexport var timeInRange = function (candidate, min, max) {\n if (!candidate || !min || !max) {\n return candidate;\n }\n var _a = normalizeTimes(candidate, min, max), candidateValue = _a.candidateValue, minValue = _a.minValue, maxValue = _a.maxValue;\n if (candidateValue < minValue) {\n return setTime(candidate, min);\n }\n if (candidateValue > maxValue) {\n return setTime(candidate, max);\n }\n return candidate;\n};\n/**\n * @hidden\n */\nexport var isInTimeRange = function (candidate, min, max) {\n if (!candidate || !min || !max) {\n return true;\n }\n var _a = normalizeTimes(candidate, min, max), candidateValue = _a.candidateValue, minValue = _a.minValue, maxValue = _a.maxValue;\n return minValue <= candidateValue && candidateValue <= maxValue;\n};\n/**\n * @hidden\n */\nexport var isInRange = function (candidate, min, max) {\n if (candidate === null) {\n return true;\n }\n var _a = normalizeTimes(candidate, min, max), candidateValue = _a.candidateValue, minValue = _a.minValue, maxValue = _a.maxValue;\n return minValue <= candidateValue && candidateValue <= maxValue;\n};\n/**\n * @hidden\n */\nexport var isSmallerThanMin = function (val, min) {\n if (val === null || min === null) {\n return false;\n }\n var normalizedValue = setTime(MIDNIGHT_DATE, val);\n var normalizedMin = setTime(MIDNIGHT_DATE, min);\n return normalizedValue.getTime() < normalizedMin.getHours();\n};\n/**\n * @hidden\n */\nexport var isBiggerThanMax = function (val, max) {\n if (val === null || max === null) {\n return false;\n }\n var normalizedValue = setTime(MIDNIGHT_DATE, val);\n var normalizedMax = setTime(MIDNIGHT_DATE, max);\n return normalizedMax.getTime() < normalizedValue.getHours();\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { isEqual, cloneDate } from '@progress/kendo-date-math';\nimport { Button } from '@progress/kendo-react-buttons';\nimport { caretAltUpIcon, caretAltDownIcon } from '@progress/kendo-svg-icons';\nimport { registerForIntl, provideIntlService, registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { KendoDate } from './models';\nimport { guid, AsyncFocusBlur, noop, classNames, createPropsContext, withPropsContext, kendoThemeMaps, getActiveElement } from '@progress/kendo-react-common';\nimport { FloatingLabel } from '@progress/kendo-react-labels';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport { approximateStringMatching, defaultFormat, defaultFormatPlaceholder, isInRange, wrapperClasses } from './utils';\nimport { MAX_DATE, MIN_DATE } from './../utils';\nimport { messages, increaseValue, decreaseValue } from './../messages';\nimport { isInTimeRange } from '../timepicker/utils';\nimport { MIN_TIME, MAX_TIME } from '../utils';\nvar VALIDATION_MESSAGE = 'Please enter a valid value!';\n// tslint:enable:max-line-length\n/** @hidden */\nvar DateInputWithoutContext = /** @class */ (function (_super) {\n __extends(DateInputWithoutContext, _super);\n function DateInputWithoutContext(props) {\n var _this = _super.call(this, props) || this;\n _this.kendoDate = null;\n _this.currentFormat = '';\n _this.paste = false;\n _this._element = null;\n _this._wrapper = null;\n _this._inputId = guid();\n _this._lastSelectedSymbol = '';\n /**\n * @hidden\n */\n _this.focus = function () {\n if (_this._element) {\n _this._element.focus();\n }\n };\n /**\n * @hidden\n */\n _this.setValidity = function () {\n if (_this.element && _this.element.setCustomValidity) {\n _this.element.setCustomValidity(_this.validity.valid\n ? ''\n : _this.props.validationMessage || DateInputWithoutContext.defaultProps.validationMessage);\n }\n };\n _this.updateOnPaste = function (event) {\n if (!_this.element || !_this.kendoDate) {\n return;\n }\n var value = provideIntlService(_this).parseDate(_this.element.value, _this.props.format) || _this.value;\n var oldValue = _this.value;\n _this.kendoDate.setValue(value);\n _this.triggerChange(event, oldValue);\n };\n /* Handlers */\n _this.spinnersMouseDown = function (event) {\n /* do not steal focus from input when changing value with spinners */\n event.preventDefault();\n var activeElement = getActiveElement(document);\n /* manually focus the input in case the user clicks the spinners first */\n if (_this.element && activeElement !== _this.element) {\n _this.element.focus({ preventScroll: true });\n }\n };\n _this.handlePaste = function () {\n _this.paste = true;\n };\n _this.elementChange = function (event) {\n if (!_this.element || !_this.kendoDate) {\n return;\n }\n if (_this.paste) {\n _this.updateOnPaste(event);\n _this.paste = false;\n return;\n }\n var _a = _this.kendoDate.getTextAndFormat(), text = _a.text, currentFormat = _a.format;\n _this.currentFormat = currentFormat;\n var dateBeforeChange = _this.value;\n var diff = approximateStringMatching(text, _this.currentFormat, _this.element.value, _this.selection.start);\n var navigationOnly = (diff.length === 1 && diff[0][1] === '_');\n if (!navigationOnly) {\n for (var i = 0; i < diff.length; i++) {\n _this.kendoDate.parsePart(diff[i][0], diff[i][1]);\n }\n }\n if (diff.length && diff[0][0] !== '_') {\n _this.setSelection(_this.selectionBySymbol(diff[0][0]));\n }\n if (navigationOnly) {\n _this.switchDateSegment(1);\n }\n _this.triggerChange(event, dateBeforeChange);\n };\n _this.elementClick = function (_) {\n _this.setSelection(_this.selectionByIndex(_this.selection.start));\n };\n _this.nativeWheel = function (event) {\n var activeElement = getActiveElement(document);\n if (activeElement === _this.element) {\n event.preventDefault();\n }\n };\n _this.wheel = function (event) {\n var activeElement = getActiveElement(document);\n if (activeElement !== _this.element) {\n return;\n }\n if (event.nativeEvent.deltaY < 0) {\n _this.increasePart(event);\n }\n if (event.nativeEvent.deltaY > 0) {\n _this.decreasePart(event);\n }\n };\n _this.increasePart = function (event) {\n _this.modifyDateSegmentValue(1, event);\n };\n _this.decreasePart = function (event) {\n _this.modifyDateSegmentValue(-1, event);\n };\n _this.elementKeyDown = function (event) {\n if (event.altKey) {\n return;\n }\n switch (event.keyCode) {\n case 37:\n /*\n * Key: `Left Arrow`\n * Action: Switches to previous logical* segment.\n * (*) https://www.w3.org/International/articles/inline-bidi-markup/uba-basics\n */\n _this.switchDateSegment(-1);\n break;\n case (38):\n /*\n * Key: `Up Arrow`\n * Action: Increases the currently selected segment value.\n */\n _this.modifyDateSegmentValue(1, event);\n break;\n case 39:\n /*\n * Key: `Right Arrow`\n * Action: Switches to the next logical segment.\n */\n _this.switchDateSegment(1);\n break;\n case 40:\n /*\n * Key: `Down Arrow`\n * Action: Decreases the currently selected segment value.\n */\n _this.modifyDateSegmentValue(-1, event);\n break;\n default:\n /*\n * Key: any\n * Action: Does not prevent the default behavior.\n */\n return;\n }\n event.preventDefault();\n };\n _this.elementOnFocus = function (_) {\n if (_this.wrapper) {\n _this.wrapper.classList.add('k-focus');\n }\n _this.setState({ focused: true });\n };\n _this.elementOnBlur = function (_) {\n if (_this.wrapper) {\n _this.wrapper.classList.remove('k-focus');\n }\n _this.setState({ focused: false });\n };\n validatePackage(packageMetadata);\n _this.state = {\n focused: false\n };\n return _this;\n }\n /**\n * @hidden\n */\n DateInputWithoutContext.prototype.componentDidMount = function () {\n this.setValidity();\n if (this.wrapper) {\n this.wrapper.addEventListener('wheel', this.nativeWheel, { passive: false });\n }\n };\n /**\n * @hidden\n */\n DateInputWithoutContext.prototype.componentDidUpdate = function (_, prevState) {\n if (this._lastSelectedSymbol && prevState.focused === this.state.focused) {\n this.setSelection(this.selectionBySymbol(this._lastSelectedSymbol));\n }\n else if (this.props.placeholder !== undefined && this.selection.start === this.selection.end) {\n this.setSelection({ start: 0, end: this.currentFormat.length });\n }\n this.setValidity();\n };\n /**\n * @hidden\n */\n DateInputWithoutContext.prototype.componentWillUnmount = function () {\n if (this.wrapper) {\n this.wrapper.removeEventListener('wheel', this.nativeWheel);\n }\n };\n /**\n * @hidden\n */\n DateInputWithoutContext.prototype.render = function () {\n var _this = this;\n var _a = this.props, _b = _a.size, size = _b === void 0 ? DateInputWithoutContext.defaultProps.size : _b, _c = _a.fillMode, fillMode = _c === void 0 ? DateInputWithoutContext.defaultProps.fillMode : _c, _d = _a.rounded, rounded = _d === void 0 ? DateInputWithoutContext.defaultProps.rounded : _d;\n if (this.props._ref) {\n this.props._ref.current = this;\n }\n var localizationService = provideLocalizationService(this);\n var props = __assign(__assign({}, DateInputWithoutContext.defaultProps), this.props);\n var name = props.name, label = props.label, id = props.id;\n var currentText = this.text;\n var text = currentText === this.props.placeholder ? '' : currentText;\n var placeholder = currentText === this.props.placeholder ? currentText : undefined;\n var inputId = id || this._inputId;\n var isValid = !this.validityStyles || this.validity.valid;\n var wrapperClassesInstance = __spreadArray([], wrapperClasses, true);\n if (this.props.className) {\n wrapperClassesInstance.push(this.props.className);\n }\n var dateinput = (React.createElement(AsyncFocusBlur, { onFocus: this.elementOnFocus, onBlur: this.elementOnBlur }, function (_a) {\n var _b;\n var onFocus = _a.onFocus, onBlur = _a.onBlur;\n return (React.createElement(\"span\", { ref: function (span) { _this._wrapper = span; }, style: !label\n ? { width: _this.props.width }\n : undefined, dir: _this.props.dir, className: classNames('k-dateinput', 'k-input', (_b = {},\n _b[\"k-input-\".concat(kendoThemeMaps.sizeMap[size] || size)] = size,\n _b[\"k-input-\".concat(fillMode)] = fillMode,\n _b[\"k-rounded-\".concat(kendoThemeMaps.roundedMap[rounded] || rounded)] = rounded,\n _b['k-invalid'] = !isValid,\n _b['k-required'] = _this.required,\n _b['k-disabled'] = _this.props.disabled,\n _b), _this.props.className), onFocus: onFocus, onBlur: onBlur },\n React.createElement(\"input\", { role: _this.props.ariaRole || 'textbox', readOnly: _this.props.readonly, tabIndex: _this.props.tabIndex, disabled: _this.props.disabled, title: _this.props.title !== undefined ? _this.props.title : currentText, type: \"text\", spellCheck: false, autoComplete: \"off\", autoCorrect: \"off\", className: \"k-input-inner\", id: inputId, \"aria-label\": _this.props.ariaLabel, \"aria-labelledby\": _this.props.ariaLabelledBy, \"aria-describedby\": _this.props.ariaDescribedBy, \"aria-haspopup\": _this.props.ariaHasPopup, \"aria-disabled\": _this.props.disabled, \"aria-expanded\": _this.props.ariaExpanded, \"aria-controls\": _this.props.ariaControls, onWheel: _this.wheel, onClick: _this.elementClick, onInput: _this.elementChange, onPaste: _this.handlePaste, onKeyDown: _this.elementKeyDown, onChange: noop, value: text, placeholder: placeholder, name: name, ref: function (input) { return _this._element = input; } }),\n _this.props.children,\n _this.props.spinners && (React.createElement(\"span\", { className: \"k-input-spinner k-spin-button\", onMouseDown: _this.spinnersMouseDown },\n React.createElement(Button, { tabIndex: -1, type: \"button\", rounded: null, className: \"k-spinner-increase\", icon: 'caret-alt-up', svgIcon: caretAltUpIcon, \"aria-label\": localizationService.toLanguageString(increaseValue, messages[increaseValue]), title: localizationService.toLanguageString(increaseValue, messages[increaseValue]), onClick: _this.increasePart }),\n React.createElement(Button, { tabIndex: -1, type: \"button\", rounded: null, className: \"k-spinner-decrease\", icon: 'caret-alt-down', svgIcon: caretAltDownIcon, \"aria-label\": localizationService.toLanguageString(decreaseValue, messages[decreaseValue]), title: localizationService.toLanguageString(decreaseValue, messages[decreaseValue]), onClick: _this.decreasePart })))));\n }));\n return label\n ? (React.createElement(FloatingLabel, { label: label, editorId: inputId, editorValue: currentText, editorValid: isValid, editorDisabled: this.props.disabled, children: dateinput, style: { width: this.props.width } }))\n : dateinput;\n };\n Object.defineProperty(DateInputWithoutContext.prototype, \"value\", {\n /* Public Getters */\n /**\n * Gets the value of the DateInput.\n */\n get: function () {\n if (this.valueDuringOnChange !== undefined) {\n return this.valueDuringOnChange;\n }\n return this.kendoDate && this.kendoDate.getDateObject();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateInputWithoutContext.prototype, \"name\", {\n /**\n * Gets the `name` property of the DateInput.\n */\n get: function () {\n return this.props.name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateInputWithoutContext.prototype, \"min\", {\n get: function () {\n return this.props.min !== undefined\n ? this.props.min\n : DateInputWithoutContext.defaultProps.min;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateInputWithoutContext.prototype, \"max\", {\n get: function () {\n return this.props.max !== undefined\n ? this.props.max\n : DateInputWithoutContext.defaultProps.max;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateInputWithoutContext.prototype, \"text\", {\n /**\n * @hidden\n */\n get: function () {\n var props = __assign(__assign({}, DateInput.defaultProps), this.props);\n var _a = props.formatPlaceholder, formatPlaceholder = _a === void 0 ? DateInputWithoutContext.defaultProps.formatPlaceholder : _a, _b = props.format, format = _b === void 0 ? DateInputWithoutContext.defaultProps.format : _b, value = props.value, defaultValue = props.defaultValue;\n if (this.kendoDate === null) {\n this.kendoDate = new KendoDate(this.intl.bind(this), formatPlaceholder, format);\n this.kendoDate.setValue(value || defaultValue || null);\n }\n else {\n this.kendoDate.format = format;\n this.kendoDate.formatPlaceholder = formatPlaceholder;\n }\n if (value !== undefined && this.value !== value) {\n this.kendoDate.setValue(value);\n }\n var _c = this.kendoDate.getTextAndFormat(), currentText = _c.text, currentFormat = _c.format;\n this.currentFormat = currentFormat;\n return props.placeholder !== null && props.placeholder !== undefined\n && !this.state.focused\n && !this.kendoDate.hasValue()\n ? props.placeholder\n : currentText;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateInputWithoutContext.prototype, \"validity\", {\n /**\n * Represents the validity state into which the DateInput is set.\n */\n get: function () {\n var inRange = isInRange(this.value, this.min, this.max)\n && isInTimeRange(this.value, this.props.minTime, this.props.maxTime);\n var customError = this.props.validationMessage !== undefined;\n var isValid = (!this.required || this.value !== null) && inRange;\n var valid = this.props.valid !== undefined ? this.props.valid : isValid;\n return {\n customError: customError,\n rangeOverflow: (this.value && this.max.getTime() < this.value.getTime()) || false,\n rangeUnderflow: (this.value && this.value.getTime() < this.min.getTime()) || false,\n valid: valid,\n valueMissing: this.value === null\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateInputWithoutContext.prototype, \"element\", {\n /**\n * Gets the element of the DateInput.\n *\n * @return - An `HTMLInputElement`.\n *\n * @example\n * ```jsx\n * class App extends React.Component {\n * constructor(props) {\n * super(props);\n * }\n * element = null;\n * render() {\n * return (\n * <div>\n * <DateInput\n * ref={(dateInput) =>\n * this.element = dateInput ? dateInput.element : null}\n * />\n * <button onClick={() => console.log(this.element)}>console.log the element</button>\n * </div>\n * );\n * }\n * }\n *\n * ReactDOM.render(\n * <App />,\n * document.getElementsByTagName('my-app')[0]\n * );\n * ```\n */\n get: function () {\n return this._element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateInputWithoutContext.prototype, \"validityStyles\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.validityStyles !== undefined\n ? this.props.validityStyles\n : DateInputWithoutContext.defaultProps.validityStyles;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateInputWithoutContext.prototype, \"required\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.required !== undefined\n ? this.props.required\n : DateInputWithoutContext.defaultProps.required;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateInputWithoutContext.prototype, \"wrapper\", {\n /**\n * @hidden\n */\n get: function () {\n return this._wrapper;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n DateInputWithoutContext.prototype.intl = function () {\n return provideIntlService(this);\n };\n Object.defineProperty(DateInputWithoutContext.prototype, \"selection\", {\n /* end handlers */\n get: function () {\n var returnValue = { start: 0, end: 0 };\n if (this.element !== null && this.element.selectionStart !== undefined) {\n returnValue = { start: this.element.selectionStart, end: this.element.selectionEnd };\n }\n return returnValue;\n },\n enumerable: false,\n configurable: true\n });\n DateInputWithoutContext.prototype.setSelection = function (selection) {\n var _this = this;\n this._lastSelectedSymbol = this.currentFormat[selection.start];\n window.requestAnimationFrame(function () {\n var activeElement = getActiveElement(document);\n if (_this.element && activeElement === _this.element && !_this.props.disableSelection) {\n _this.element.setSelectionRange(selection.start, selection.end);\n }\n });\n };\n DateInputWithoutContext.prototype.triggerChange = function (event, oldValue) {\n this.valueDuringOnChange = this.value;\n this.forceUpdate();\n if (this.props.onChange\n && !isEqual(oldValue, this.value)) {\n // isEqual works with null\n this.props.onChange.call(undefined, {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n value: this.value,\n target: this\n // inRange: this.props.min && this.props.max ? isInRange(value, this.props.min, this.props.max) : true\n });\n }\n this.valueDuringOnChange = undefined;\n };\n DateInputWithoutContext.prototype.selectionBySymbol = function (symbol) {\n var start = -1;\n var end = 0;\n for (var i = 0; i < this.currentFormat.length; i++) {\n if (this.currentFormat[i] === symbol) {\n end = i + 1;\n if (start === -1) {\n start = i;\n }\n }\n }\n if (start < 0) {\n start = 0;\n }\n return { start: start, end: end };\n };\n DateInputWithoutContext.prototype.selectionByIndex = function (index) {\n // console.log(42, index);\n var selection = { start: index, end: index };\n for (var i = index, j = index - 1; i < this.currentFormat.length || j >= 0; i++, j--) {\n if (i < this.currentFormat.length && this.currentFormat[i] !== '_') {\n selection = this.selectionBySymbol(this.currentFormat[i]);\n break;\n }\n if (j >= 0 && this.currentFormat[j] !== '_') {\n selection = this.selectionBySymbol(this.currentFormat[j]);\n break;\n }\n }\n return selection;\n };\n DateInputWithoutContext.prototype.switchDateSegment = function (offset) {\n var _a = this.selection, selectionStart = _a.start, selectionEnd = _a.end;\n if (selectionStart < selectionEnd &&\n this.currentFormat[selectionStart] !== this.currentFormat[selectionEnd - 1]) {\n this.setSelection(this.selectionByIndex(offset > 0 ? selectionStart : selectionEnd - 1));\n return;\n }\n var previousFormatSymbol = this.currentFormat[selectionStart];\n var a = selectionStart + offset;\n while (a > 0 && a < this.currentFormat.length) {\n if (this.currentFormat[a] !== previousFormatSymbol &&\n this.currentFormat[a] !== '_') {\n break;\n }\n a += offset;\n }\n if (this.currentFormat[a] === '_') {\n // no known symbol is found\n return;\n }\n var b = a;\n while (b >= 0 && b < this.currentFormat.length) {\n if (this.currentFormat[b] !== this.currentFormat[a]) {\n break;\n }\n b += offset;\n }\n if (a > b && (b + 1 !== selectionStart || a + 1 !== selectionEnd)) {\n this.setSelection({ start: b + 1, end: a + 1 });\n }\n else if (a < b && (a !== selectionStart || b !== selectionEnd)) {\n this.setSelection({ start: a, end: b });\n }\n };\n DateInputWithoutContext.prototype.modifyDateSegmentValue = function (offset, event) {\n if (!this.kendoDate) {\n return;\n }\n var oldValue = this.value;\n var symbol = this.currentFormat[this.selection.start];\n var currentStepSymbol = this.kendoDate.symbolMap(symbol);\n var step = ((this.props.steps || {})[currentStepSymbol] || 1) * offset;\n this.kendoDate.modifyPart(symbol, step);\n this.triggerChange(event, oldValue);\n };\n /**\n * @hidden\n */\n DateInputWithoutContext.displayName = 'DateInput';\n /**\n * @hidden\n */\n DateInputWithoutContext.propTypes = {\n value: PropTypes.instanceOf(Date),\n format: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({\n skeleton: PropTypes.string,\n pattern: PropTypes.string,\n date: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n time: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n datetime: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n era: PropTypes.oneOf(['narrow', 'short', 'long']),\n year: PropTypes.oneOf(['numeric', '2-digit']),\n month: PropTypes.oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day: PropTypes.oneOf(['numeric', '2-digit']),\n weekday: PropTypes.oneOf(['narrow', 'short', 'long']),\n hour: PropTypes.oneOf(['numeric', '2-digit']),\n hour12: PropTypes.bool,\n minute: PropTypes.oneOf(['numeric', '2-digit']),\n second: PropTypes.oneOf(['numeric', '2-digit']),\n timeZoneName: PropTypes.oneOf(['short', 'long'])\n })\n ]),\n formatPlaceholder: PropTypes.oneOfType([\n PropTypes.oneOf(['wide', 'narrow', 'short', 'formatPattern']),\n PropTypes.shape({\n year: PropTypes.string,\n month: PropTypes.string,\n day: PropTypes.string,\n hour: PropTypes.string,\n minute: PropTypes.string,\n second: PropTypes.string\n })\n ]),\n width: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ]),\n tabIndex: PropTypes.number,\n title: PropTypes.string,\n steps: PropTypes.shape({\n year: PropTypes.number,\n month: PropTypes.number,\n day: PropTypes.number,\n hour: PropTypes.number,\n minute: PropTypes.number,\n second: PropTypes.number\n }),\n min: PropTypes.instanceOf(Date),\n max: PropTypes.instanceOf(Date),\n disabled: PropTypes.bool,\n spinners: PropTypes.bool,\n name: PropTypes.string,\n dir: PropTypes.string,\n label: PropTypes.string,\n id: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n ariaLabel: PropTypes.string,\n ariaRole: PropTypes.string,\n ariaHasPopup: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.string\n ]),\n ariaExpanded: PropTypes.oneOfType([\n PropTypes.bool\n ]),\n onChange: PropTypes.func,\n validationMessage: PropTypes.string,\n required: PropTypes.bool,\n validate: PropTypes.bool,\n valid: PropTypes.bool,\n size: PropTypes.oneOf([null, 'small', 'medium', 'large']),\n rounded: PropTypes.oneOf([null, 'small', 'medium', 'large', 'full']),\n fillMode: PropTypes.oneOf([null, 'solid', 'flat', 'outline'])\n };\n /**\n * @hidden\n */\n DateInputWithoutContext.defaultProps = {\n format: defaultFormat,\n size: 'medium',\n rounded: 'medium',\n fillMode: 'solid',\n formatPlaceholder: defaultFormatPlaceholder,\n // defaultValue: null as Date | null,\n spinners: false,\n disabled: false,\n max: cloneDate(MAX_DATE),\n min: cloneDate(MIN_DATE),\n minTime: cloneDate(MIN_TIME),\n maxTime: cloneDate(MAX_TIME),\n required: false,\n validityStyles: true,\n validationMessage: VALIDATION_MESSAGE,\n placeholder: null,\n // the rest of the properties are undefined by default\n ariaHasPopup: 'grid'\n };\n return DateInputWithoutContext;\n}(React.Component));\nexport { DateInputWithoutContext };\n/**\n * Represents the PropsContext of the `DateInput` component.\n * Used for global configuration of all `DateInput` instances.\n *\n * For more information, refer to the [DateInputs Props Context]({% slug props-context_dateinputs %}) article.\n */\nexport var DateInputPropsContext = createPropsContext();\n;\n/* eslint-disable @typescript-eslint/no-redeclare -- intentionally naming the component the same as the type */\n/**\n * Represents the KendoReact DateInput Component.\n *\n * Accepts properties of type [DateInputProps]({% slug api_dateinputs_dateinputprops %}).\n * Obtaining the `ref` returns an object of type [DateInputHandle]({% slug api_dateinputs_dateinputhandle %}).\n */\nexport var DateInput = withPropsContext(DateInputPropsContext, DateInputWithoutContext);\nDateInput.displayName = 'KendoReactDateInput';\nregisterForIntl(DateInputWithoutContext);\nregisterForLocalization(DateInputWithoutContext);\n","import { Button } from '@progress/kendo-react-buttons';\n/**\n * Represents the default `toggleButton` component rendered by the [KendoReact Scheduler DatePicker]({% slug overview_datepicker %}).\n */\nexport var ToggleButton = Button;\n","import * as React from 'react';\nimport { classNames } from '@progress/kendo-react-common';\n/**\n * @hidden\n * @deprecated\n */\nexport var PickerWrap = React.forwardRef(function (props, ref) {\n var _ref = props._ref;\n var element = React.useRef(null);\n React.useImperativeHandle(ref, function () { return element.current; });\n React.useImperativeHandle(_ref, function () { return element.current; });\n var className = React.useMemo(function () { return classNames(props.className, 'k-picker-wrap'); }, [props.className]);\n return (React.createElement(\"span\", { ref: element, id: props.id, style: props.style, className: className, tabIndex: props.tabIndex }, props.children));\n});\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { FloatingLabel } from '@progress/kendo-react-labels';\n/**\n * @hidden\n */\nexport var usePickerFloatingLabel = function (dateInput) {\n var _a = React.useState(false), show = _a[0], setShow = _a[1];\n var syncText = function () {\n if (dateInput.current) {\n setShow(Boolean(dateInput.current.text));\n }\n };\n React.useEffect(syncText);\n return {\n editorValue: show\n };\n};\n/**\n * @hidden\n */\nexport var PickerFloatingLabel = function (props) {\n var floatingLabelProps = usePickerFloatingLabel(props.dateInput);\n return (React.createElement(FloatingLabel, __assign({}, props, floatingLabelProps)));\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { ActionSheet, ActionSheetFooter, ActionSheetHeader } from '@progress/kendo-react-layout';\nimport { xIcon } from '@progress/kendo-svg-icons';\nimport { Button } from '@progress/kendo-react-buttons';\n/** @hidden */\nvar MOBILE_SMALL_DEVISE = 500;\n/** @hidden */\nexport var AdaptiveMode = function (props) {\n var footer = props.footer, children = props.children, _a = props.windowWidth, windowWidth = _a === void 0 ? 0 : _a, navigatable = props.navigatable, navigatableElements = props.navigatableElements, expand = props.expand, animation = props.animation, onClose = props.onClose, adaptiveTitle = props.adaptiveTitle, mobileFilter = props.mobileFilter;\n var defaultProps = {\n navigatable: navigatable || false,\n navigatableElements: navigatableElements || [],\n expand: expand,\n animation: animation === false ? false : true,\n onClose: onClose,\n animationStyles: windowWidth <= MOBILE_SMALL_DEVISE ? { top: 0, width: '100%', height: '100%' } : undefined,\n className: windowWidth <= MOBILE_SMALL_DEVISE\n ? 'k-adaptive-actionsheet k-actionsheet-fullscreen'\n : 'k-adaptive-actionsheet k-actionsheet-bottom'\n };\n return (React.createElement(ActionSheet, __assign({}, defaultProps),\n React.createElement(ActionSheetHeader, { className: 'k-text-center' },\n React.createElement(\"div\", { className: \"k-actionsheet-titlebar-group k-hbox\" },\n React.createElement(\"div\", { className: \"k-actionsheet-title\" },\n React.createElement(\"div\", null, adaptiveTitle)),\n React.createElement(\"div\", { className: \"k-actionsheet-actions\" },\n React.createElement(Button, { tabIndex: 0, \"aria-label\": \"Cancel\", \"aria-disabled\": \"false\", type: \"button\", fillMode: \"flat\", icon: 'x', svgIcon: xIcon, onClick: onClose }))),\n mobileFilter &&\n React.createElement(\"div\", { className: \"k-actionsheet-titlebar-group k-actionsheet-filter\" }, mobileFilter)),\n children,\n footer && React.createElement(ActionSheetFooter, { className: 'k-actions k-actions-stretched' },\n React.createElement(Button, { size: \"large\", tabIndex: 0, \"aria-label\": footer.cancelText, \"aria-disabled\": \"false\", type: \"button\", onClick: footer.onCancel }, footer.cancelText),\n React.createElement(Button, { tabIndex: 0, themeColor: \"primary\", size: \"large\", \"aria-label\": footer.applyText, \"aria-disabled\": \"false\", type: \"button\", onClick: footer.onApply }, footer.applyText))));\n};\n","/** @hidden */\nexport var MOBILE_SMALL_DEVISE = 500;\n/** @hidden */\nexport var MOBILE_MEDIUM_DEVISE = 768;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Popup } from '@progress/kendo-react-popup';\nimport { getDate, cloneDate } from '@progress/kendo-date-math';\nimport { classNames, guid, Keys, AsyncFocusBlur, createPropsContext, withPropsContext, validatePackage, kendoThemeMaps, canUseDOM } from '@progress/kendo-react-common';\nimport { calendarIcon } from '@progress/kendo-svg-icons';\nimport { packageMetadata } from '../package-metadata';\nimport { DateInput } from '../dateinput/DateInput';\nimport { Calendar } from '../calendar/components/Calendar';\nimport { MIN_DATE, MAX_DATE, setTime } from '../utils';\nimport { isInDateRange } from '../utils';\nimport { messages, toggleCalendar } from '../messages';\nimport { registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { ToggleButton } from './ToggleButton';\nimport { PickerWrap } from '../common/PickerWrap';\nimport { PickerFloatingLabel } from '../hooks/usePickerFloatingLabel';\nimport { ActionSheetContent } from '@progress/kendo-react-layout';\nimport { AdaptiveMode } from '../common/AdaptiveMode';\nimport { MOBILE_MEDIUM_DEVISE } from '../common/constants';\n/** @hidden */\nvar DatePickerWithoutContext = /** @class */ (function (_super) {\n __extends(DatePickerWithoutContext, _super);\n function DatePickerWithoutContext(props) {\n var _this = _super.call(this, props) || this;\n _this._popupId = guid();\n _this._element = null;\n _this._dateInput = React.createRef();\n _this._calendar = null;\n _this.shouldFocusDateInput = false;\n _this.prevShow = false;\n /**\n * @hidden\n */\n _this.focus = function () {\n if (_this.dateInput) {\n _this.dateInput.focus();\n }\n };\n _this.setCalendarRef = function (calendar) {\n _this._calendar = calendar;\n };\n _this.nextValue = function (nextProps, nextState) {\n return nextProps.value !== undefined\n ? nextProps.value\n : nextState.value;\n };\n _this.nextShow = function (nextProps, nextState) {\n return nextProps.show !== undefined\n ? nextProps.show\n : nextState.show;\n };\n _this.renderPopup = function () {\n var _a = _this.props, disabled = _a.disabled, min = _a.min, max = _a.max, weekNumber = _a.weekNumber, focusedDate = _a.focusedDate;\n var _b = _this.props.popupSettings, popupClass = _b.popupClass, otherPopupSettings = __rest(_b, [\"popupClass\"]);\n var show = _this.show;\n var value = _this.value;\n var sanitizedValue = value && getDate(value);\n var popupClassNames = classNames('k-calendar-container k-group k-reset', popupClass);\n var popupProps = __assign({ popupClass: 'k-datepicker-popup', show: show, anchor: _this._element, className: popupClassNames, id: _this._popupId, anchorAlign: {\n horizontal: 'left',\n vertical: 'bottom'\n }, popupAlign: {\n horizontal: 'left',\n vertical: 'top'\n } }, otherPopupSettings);\n var calendarProps = {\n disabled: disabled,\n value: sanitizedValue,\n min: min,\n max: max,\n weekNumber: weekNumber,\n focusedDate: focusedDate,\n className: _this.mobileMode ? 'k-calendar-lg' : '',\n navigation: _this.mobileMode ? false : true,\n onChange: _this.handleCalendarValueChange\n };\n if (_this.mobileMode) {\n return React.createElement(_this.calendarComp, __assign({ _ref: _this.setCalendarRef }, calendarProps));\n }\n return (React.createElement(_this.popupComp, __assign({}, popupProps),\n React.createElement(_this.calendarComp, __assign({ _ref: _this.setCalendarRef }, calendarProps))));\n };\n _this.renderAdaptivePopup = function () {\n var _a = _this.state.windowWidth, windowWidth = _a === void 0 ? 0 : _a;\n var actionSheetProps = {\n expand: _this.show,\n onClose: _this.handleBlur,\n adaptiveTitle: _this.props.adaptiveTitle,\n windowWidth: windowWidth\n };\n return (React.createElement(AdaptiveMode, __assign({}, actionSheetProps),\n React.createElement(ActionSheetContent, { className: '!k-overflow-hidden' }, _this.renderPopup())));\n };\n _this.handleInputValueChange = function (event) {\n _this.handleValueChange(event.value, event);\n };\n _this.handleCalendarValueChange = function (event) {\n var value = _this.mergeTime(event.value);\n _this.handleValueChange(value, event);\n };\n _this.handleValueChange = function (value, event) {\n _this.setState({\n value: cloneDate(value || undefined)\n });\n _this.valueDuringOnChange = value;\n _this.showDuringOnChange = false;\n if (!_this.mobileMode) {\n _this.shouldFocusDateInput = true;\n }\n var onChange = _this.props.onChange;\n if (onChange) {\n onChange.call(undefined, {\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n value: _this.value,\n show: _this.show,\n target: _this\n });\n }\n _this.valueDuringOnChange = undefined;\n _this.showDuringOnChange = undefined;\n _this.setShow(false);\n };\n _this.handleFocus = function () {\n _this.setState({ focused: true });\n };\n _this.handleBlur = function () {\n _this.setState({ focused: false });\n _this.setShow(false);\n };\n _this.handleIconClick = function () {\n if (_this.props.disabled) {\n return;\n }\n _this.shouldFocusDateInput = true;\n _this.setShow(!_this.show);\n };\n _this.handleIconMouseDown = function (event) {\n event.preventDefault();\n };\n _this.handleKeyDown = function (event) {\n var altKey = event.altKey, keyCode = event.keyCode;\n if (keyCode === Keys.esc) {\n _this.shouldFocusDateInput = true;\n _this.setShow(false);\n return;\n }\n if (altKey && (keyCode === Keys.up || keyCode === Keys.down)) {\n event.preventDefault();\n event.stopPropagation();\n _this.shouldFocusDateInput = keyCode === Keys.up;\n _this.setShow(keyCode === Keys.down);\n }\n };\n validatePackage(packageMetadata);\n _this.state = {\n value: _this.props.defaultValue || DatePickerWithoutContext.defaultProps.defaultValue,\n show: _this.props.defaultShow || DatePickerWithoutContext.defaultProps.defaultShow,\n focused: false\n };\n return _this;\n }\n Object.defineProperty(DatePickerWithoutContext.prototype, \"document\", {\n get: function () {\n if (!canUseDOM) {\n return;\n }\n // useful only for user actions\n return (this.element && this.element.ownerDocument) || document;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"element\", {\n /**\n * Gets the wrapping element of the DatePickerWithoutContext.\n */\n get: function () {\n return this._element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"mobileMode\", {\n /**\n * The mobile mode of the DatePicker.\n */\n get: function () {\n var isAdaptive = this.state.windowWidth && this.state.windowWidth <= MOBILE_MEDIUM_DEVISE && this.props.adaptive;\n return !!isAdaptive;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"dateInput\", {\n /**\n * Gets the DateInput component inside the DatePicker component.\n */\n get: function () {\n return this._dateInput.current;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"calendar\", {\n /**\n * Gets the Calendar component inside the DatePicker component.\n */\n get: function () {\n return this._calendar;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"value\", {\n /**\n * Gets the value of the DatePickerWithoutContext.\n */\n get: function () {\n var value = this.valueDuringOnChange !== undefined\n ? this.valueDuringOnChange\n : this.props.value !== undefined\n ? this.props.value\n : this.state.value;\n return (value !== null) ? cloneDate(value) : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"show\", {\n /**\n * Gets the popup state of the DatePickerWithoutContext.\n */\n get: function () {\n return this.showDuringOnChange !== undefined\n ? this.showDuringOnChange\n : this.props.show !== undefined\n ? this.props.show\n : this.state.show;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"name\", {\n /**\n * Gets the `name` property of the DatePickerWithoutContext.\n */\n get: function () {\n return this.props.name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"min\", {\n get: function () {\n return this.props.min !== undefined\n ? this.props.min\n : DatePickerWithoutContext.defaultProps.min;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"max\", {\n get: function () {\n return this.props.max !== undefined\n ? this.props.max\n : DatePickerWithoutContext.defaultProps.max;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"dateInputComp\", {\n get: function () {\n return this.props.dateInput || DatePickerWithoutContext.defaultProps.dateInput;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"toggleButtonComp\", {\n get: function () {\n return this.props.toggleButton || DatePickerWithoutContext.defaultProps.toggleButton;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"calendarComp\", {\n get: function () {\n return this.props.calendar || DatePickerWithoutContext.defaultProps.calendar;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"popupComp\", {\n get: function () {\n return this.props.popup || DatePickerWithoutContext.defaultProps.popup;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"pickerWrapComp\", {\n get: function () {\n return this.props.pickerWrap || DatePickerWithoutContext.defaultProps.pickerWrap;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"validity\", {\n /**\n * Represents the validity state into which the DatePicker is set.\n */\n get: function () {\n var inRange = isInDateRange(this.value, this.min, this.max);\n var customError = this.props.validationMessage !== undefined;\n var isValid = (!this.required || this.value !== null) && inRange;\n var valid = this.props.valid !== undefined ? this.props.valid : isValid;\n return {\n customError: customError,\n rangeOverflow: (this.value && this.max.getTime() < this.value.getTime()) || false,\n rangeUnderflow: (this.value && this.value.getTime() < this.min.getTime()) || false,\n valid: valid,\n valueMissing: this.value === null\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"validityStyles\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.validityStyles !== undefined\n ? this.props.validityStyles\n : DatePickerWithoutContext.defaultProps.validityStyles;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DatePickerWithoutContext.prototype, \"required\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.required !== undefined\n ? this.props.required\n : DatePickerWithoutContext.defaultProps.required;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n DatePickerWithoutContext.prototype.componentDidMount = function () {\n var _a;\n this.observerResize = canUseDOM && window.ResizeObserver && new window.ResizeObserver(this.calculateMedia.bind(this));\n if (this.show) {\n // If defaultShow is true during the initial render, the popup is not aligned.\n this.forceUpdate();\n }\n if (((_a = this.document) === null || _a === void 0 ? void 0 : _a.body) && this.observerResize) {\n this.observerResize.observe(this.document.body);\n }\n };\n /**\n * @hidden\n */\n DatePickerWithoutContext.prototype.componentDidUpdate = function () {\n if (this._calendar && this._calendar.element && this.show && !this.prevShow) {\n this._calendar.element.focus({ preventScroll: true });\n }\n if (this.dateInput\n && this.dateInput.element\n && !this.show\n && this.shouldFocusDateInput) {\n this.dateInput.element.focus({ preventScroll: true });\n }\n this.prevShow = this.show;\n this.shouldFocusDateInput = false;\n };\n /**\n * @hidden\n */\n DatePickerWithoutContext.prototype.componentWillUnmount = function () {\n var _a;\n clearTimeout(this.nextTickId);\n if (((_a = this.document) === null || _a === void 0 ? void 0 : _a.body) && this.observerResize) {\n this.observerResize.disconnect();\n }\n };\n /**\n * @hidden\n */\n DatePickerWithoutContext.prototype.render = function () {\n var _this = this;\n var _a = this.props, _b = _a.size, size = _b === void 0 ? DatePickerWithoutContext.defaultProps.size : _b, _c = _a.rounded, rounded = _c === void 0 ? DatePickerWithoutContext.defaultProps.rounded : _c, _d = _a.fillMode, fillMode = _d === void 0 ? DatePickerWithoutContext.defaultProps.fillMode : _d, disabled = _a.disabled, tabIndex = _a.tabIndex, title = _a.title, id = _a.id, format = _a.format, formatPlaceholder = _a.formatPlaceholder, min = _a.min, max = _a.max, className = _a.className, width = _a.width, name = _a.name, validationMessage = _a.validationMessage, required = _a.required, validityStyles = _a.validityStyles, ariaLabelledBy = _a.ariaLabelledBy, ariaDescribedBy = _a.ariaDescribedBy, ariaLabel = _a.ariaLabel;\n var show = this.show;\n var value = this.value;\n var isValid = !this.validityStyles || this.validity.valid;\n var dateInputProps = {\n disabled: disabled,\n format: format,\n formatPlaceholder: formatPlaceholder,\n id: id,\n ariaLabelledBy: ariaLabelledBy,\n ariaDescribedBy: ariaDescribedBy,\n ariaLabel: ariaLabel,\n max: max,\n min: min,\n name: name,\n onChange: this.handleInputValueChange,\n required: required,\n tabIndex: !show ? tabIndex : -1,\n title: title,\n valid: this.validity.valid,\n validationMessage: validationMessage,\n validityStyles: validityStyles,\n value: value,\n label: undefined,\n placeholder: !this.state.focused ? this.props.placeholder : null,\n ariaExpanded: this.show,\n size: null,\n fillMode: null,\n rounded: null\n };\n var toggleButtonTitle = provideLocalizationService(this)\n .toLanguageString(toggleCalendar, messages[toggleCalendar]);\n var datepicker = (React.createElement(AsyncFocusBlur, { onFocus: this.handleFocus, onBlur: this.mobileMode ? undefined : this.handleBlur, onSyncBlur: this.props.onBlur, onSyncFocus: this.props.onFocus }, function (_a) {\n var _b;\n var onFocus = _a.onFocus, onBlur = _a.onBlur;\n return (React.createElement(React.Fragment, null,\n React.createElement(\"span\", { ref: function (span) { _this._element = span; }, className: classNames('k-input', 'k-datepicker', (_b = {},\n _b[\"k-input-\".concat(kendoThemeMaps.sizeMap[size] || size)] = size,\n _b[\"k-rounded-\".concat(kendoThemeMaps.roundedMap[rounded] || rounded)] = rounded,\n _b[\"k-input-\".concat(fillMode)] = fillMode,\n _b['k-invalid'] = !isValid,\n _b['k-required'] = _this.required,\n _b['k-disabled'] = _this.props.disabled,\n _b), className), onKeyDown: _this.handleKeyDown, style: { width: width }, onFocus: onFocus, onBlur: onBlur, onClick: _this.mobileMode ? _this.handleIconClick : undefined },\n React.createElement(_this.dateInputComp, __assign({ _ref: _this._dateInput, ariaRole: 'combobox', readonly: _this.mobileMode, ariaExpanded: _this.show, ariaControls: _this._popupId }, dateInputProps)),\n React.createElement(_this.toggleButtonComp, { type: \"button\", icon: \"calendar\", svgIcon: calendarIcon, title: toggleButtonTitle, className: \"k-input-button\", rounded: null, onClick: _this.mobileMode ? undefined : _this.handleIconClick, \"aria-label\": toggleButtonTitle, onMouseDown: _this.handleIconMouseDown }),\n !_this.mobileMode && _this.renderPopup()),\n _this.mobileMode && _this.renderAdaptivePopup()));\n }));\n return this.props.label\n ? (React.createElement(PickerFloatingLabel, { dateInput: this._dateInput, label: this.props.label, editorId: id, editorValid: isValid, editorDisabled: this.props.disabled, children: datepicker, style: { width: this.props.width } }))\n : datepicker;\n };\n DatePickerWithoutContext.prototype.setShow = function (show) {\n var _a = this.props, onOpen = _a.onOpen, onClose = _a.onClose;\n if (this.show === show) {\n return;\n }\n this.setState({ show: show });\n if (show && onOpen) {\n onOpen.call(undefined, {\n target: this\n });\n }\n if (!show && onClose) {\n onClose.call(undefined, {\n target: this\n });\n }\n };\n DatePickerWithoutContext.prototype.mergeTime = function (value) {\n return this.value && value ? setTime(value, this.value) : value;\n };\n DatePickerWithoutContext.prototype.nextTick = function (f) {\n // XXX: use window.setTimeout due to async focus/blur events in IE, and missing relatedTarget prop.\n // XXX: https://github.com/facebook/react/issues/3751\n // Handles multiple focus events happening at the same time.\n clearTimeout(this.nextTickId);\n this.nextTickId = window.setTimeout(function () { return f(); });\n };\n DatePickerWithoutContext.prototype.calculateMedia = function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n this.setState({ windowWidth: entry.target.clientWidth });\n }\n ;\n };\n ;\n /**\n * @hidden\n */\n DatePickerWithoutContext.displayName = 'DatePicker';\n /**\n * @hidden\n */\n DatePickerWithoutContext.propTypes = {\n className: PropTypes.string,\n defaultShow: PropTypes.bool,\n defaultValue: PropTypes.instanceOf(Date),\n disabled: PropTypes.bool,\n focusedDate: PropTypes.instanceOf(Date),\n format: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({\n skeleton: PropTypes.string,\n pattern: PropTypes.string,\n date: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n time: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n datetime: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n era: PropTypes.oneOf(['narrow', 'short', 'long']),\n year: PropTypes.oneOf(['numeric', '2-digit']),\n month: PropTypes.oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day: PropTypes.oneOf(['numeric', '2-digit']),\n weekday: PropTypes.oneOf(['narrow', 'short', 'long']),\n hour: PropTypes.oneOf(['numeric', '2-digit']),\n hour12: PropTypes.bool,\n minute: PropTypes.oneOf(['numeric', '2-digit']),\n second: PropTypes.oneOf(['numeric', '2-digit']),\n timeZoneName: PropTypes.oneOf(['short', 'long'])\n })\n ]),\n formatPlaceholder: PropTypes.oneOfType([\n PropTypes.oneOf(['wide', 'narrow', 'short', 'formatPattern']),\n PropTypes.shape({\n year: PropTypes.string,\n month: PropTypes.string,\n day: PropTypes.string,\n hour: PropTypes.string,\n minute: PropTypes.string,\n second: PropTypes.string\n })\n ]),\n id: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n ariaLabel: PropTypes.string,\n min: PropTypes.instanceOf(Date),\n max: PropTypes.instanceOf(Date),\n name: PropTypes.string,\n popupSettings: PropTypes.shape({\n animate: PropTypes.bool,\n appendTo: PropTypes.any,\n popupClass: PropTypes.string\n }),\n show: PropTypes.bool,\n tabIndex: PropTypes.number,\n title: PropTypes.string,\n value: PropTypes.instanceOf(Date),\n weekNumber: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n validationMessage: PropTypes.string,\n required: PropTypes.bool,\n validate: PropTypes.bool,\n valid: PropTypes.bool,\n size: PropTypes.oneOf([null, 'small', 'medium', 'large']),\n rounded: PropTypes.oneOf([null, 'small', 'medium', 'large', 'full']),\n fillMode: PropTypes.oneOf([null, 'solid', 'flat', 'outline']),\n adaptive: PropTypes.bool,\n adaptiveTitle: PropTypes.string\n };\n /**\n * @hidden\n */\n DatePickerWithoutContext.defaultProps = {\n defaultShow: false,\n defaultValue: null,\n dateInput: DateInput,\n calendar: Calendar,\n toggleButton: ToggleButton,\n popup: Popup,\n pickerWrap: PickerWrap,\n disabled: false,\n format: 'd',\n max: MAX_DATE,\n min: MIN_DATE,\n popupSettings: {},\n tabIndex: 0,\n weekNumber: false,\n required: false,\n validityStyles: true,\n size: 'medium',\n rounded: 'medium',\n fillMode: 'solid'\n };\n return DatePickerWithoutContext;\n}(React.Component));\nexport { DatePickerWithoutContext };\n/**\n * Represents the PropsContext of the `DatePicker` component.\n * Used for global configuration of all `DatePicker` instances.\n *\n * For more information, refer to the [DateInputs Props Context]({% slug props-context_dateinputs %}) article.\n */\nexport var DatePickerPropsContext = createPropsContext();\n/* eslint-disable @typescript-eslint/no-redeclare */\n/**\n * Represents the KendoReact DatePicker Component.\n *\n * Accepts properties of type [DatePickerProps]({% slug api_dateinputs_datepickerprops %}).\n * Obtaining the `ref` returns an object of type [DatePickerHandle]({% slug api_dateinputs_datepickerhandle %}).\n */\nexport var DatePicker = withPropsContext(DatePickerPropsContext, DatePickerWithoutContext);\nDatePicker.displayName = 'KendoReactDatePicker';\nregisterForLocalization(DatePickerWithoutContext);\n","import { cloneDate } from '@progress/kendo-date-math';\nvar setHours = function (date, hours) {\n var clone = cloneDate(date);\n clone.setHours(hours);\n return clone;\n};\nvar isAM = function (value) { return value !== null && value < 12; };\nvar isPM = function (value) { return value !== null && (!value || value > 11); };\nvar inRange = function (value, min, max) { return ((!min && !max) || (value >= min && value <= max)); };\nvar inReverseRange = function (value, min, max) { return ((!min && !max) || value >= min || value <= max); };\n/**\n * @hidden\n */\nvar DayPeriodService = /** @class */ (function () {\n function DayPeriodService(intl) {\n this.intl = intl;\n this.min = null;\n this.max = null;\n this.part = null;\n }\n /**\n * @hidden\n */\n DayPeriodService.prototype.apply = function (value, candidate) {\n var hour = value.getHours();\n var hourAM = isAM(hour);\n var candidateAM = isAM(candidate.getHours());\n if ((hourAM && candidateAM) || (!hourAM && !candidateAM)) {\n return value;\n }\n var _a = this.normalizedRange(), min = _a[0], _b = _a[1], max = _b === void 0 ? 24 : _b;\n var result = hour + (candidateAM ? -12 : 12);\n return setHours(value, Math.min(Math.max(min, result), (max || 24)));\n };\n /**\n * @hidden\n */\n DayPeriodService.prototype.configure = function (settings) {\n var _a = settings.min, min = _a === void 0 ? this.min : _a, _b = settings.max, max = _b === void 0 ? this.max : _b, _c = settings.part, part = _c === void 0 ? this.part : _c;\n this.min = min;\n this.max = max;\n this.part = part;\n };\n /**\n * @hidden\n */\n DayPeriodService.prototype.data = function (_) {\n var names = this.part && this.part.names;\n if (!names || !this.min) {\n return [];\n }\n var data = [];\n var _a = this.normalizedRange(), min = _a[0], max = _a[1];\n var dayPeriod = this.intl.dateFormatNames(names);\n if (isAM(min)) {\n data.push({ text: dayPeriod.am, value: setHours(this.min, min) });\n }\n if (isPM(max)) {\n data.push({ text: dayPeriod.pm, value: setHours(this.min, Math.max(12, max)) });\n }\n return this.min.getHours() !== min ? data.reverse() : data;\n };\n /**\n * @hidden\n */\n DayPeriodService.prototype.isRangeChanged = function (_, __) {\n return false;\n };\n /**\n * @hidden\n */\n DayPeriodService.prototype.limitRange = function (min, max, _) {\n return [min, max];\n };\n /**\n * @hidden\n */\n DayPeriodService.prototype.total = function () {\n var _a = this.normalizedRange(), min = _a[0], max = _a[1];\n if (!min && !max) {\n return 2;\n }\n if (min > 11 || max < 12) {\n return 1;\n }\n return 2;\n };\n /**\n * @hidden\n */\n DayPeriodService.prototype.selectedIndex = function (value) {\n if (!this.valueInList(value) || !this.min) {\n return -1;\n }\n var index = Math.floor(value.getHours() / 12);\n return this.min.getHours() === this.normalizedRange()[0] ? index : (index === 0 ? 1 : 0);\n };\n /**\n * @hidden\n */\n DayPeriodService.prototype.valueInList = function (value) {\n if (!this.min || !this.max) {\n return false;\n }\n var reverse = this.min.getHours() !== this.normalizedRange()[0];\n var isInRange = reverse ? inReverseRange : inRange;\n return isInRange(value.getHours(), this.min.getHours(), this.max.getHours());\n };\n DayPeriodService.prototype.normalizedRange = function () {\n var minHour = this.min.getHours();\n var maxHour = this.max.getHours();\n return [\n Math.min(minHour, maxHour),\n Math.max(minHour, maxHour)\n ];\n };\n return DayPeriodService;\n}());\nexport { DayPeriodService };\n","import { getDate, isEqual } from '@progress/kendo-date-math';\nimport { MIDNIGHT_DATE } from '../../utils';\nimport { range, setHours } from '../utils';\nvar HOURS_IN_DAY = 24;\nvar clampToRange = function (rangeValue) { return function (value) { return value % rangeValue; }; };\nvar clamp = clampToRange(HOURS_IN_DAY);\nvar stepper = function (start, step) { return function (idx) { return clamp(start + (idx * step)); }; };\nvar distanceFromMin = function (value, min) { return clamp(HOURS_IN_DAY + value - min); };\nvar limit = function (borderValue) { return function (barrier, value) {\n var useBarrier = !value || getDate(barrier).getTime() === getDate(value).getTime();\n return useBarrier ? barrier : setHours(barrier, borderValue);\n}; };\nvar limitDown = limit(0);\nvar limitUp = limit(HOURS_IN_DAY - 1);\n/**\n * @hidden\n */\nvar HoursService = /** @class */ (function () {\n function HoursService(intl) {\n this.intl = intl;\n this.boundRange = false;\n this.insertUndividedMax = false;\n this.min = null;\n this.max = null;\n this.step = 0;\n this.toListItem = null;\n }\n HoursService.prototype.apply = function (value, candidate) {\n return setHours(value, candidate.getHours());\n };\n HoursService.prototype.configure = function (settings) {\n var _this = this;\n var _a = settings.boundRange, boundRange = _a === void 0 ? this.boundRange : _a, _b = settings.insertUndividedMax, insertUndividedMax = _b === void 0 ? this.insertUndividedMax : _b, _c = settings.min, min = _c === void 0 ? this.min : _c, _d = settings.max, max = _d === void 0 ? this.max : _d, part = settings.part, _e = settings.step, step = _e === void 0 ? this.step : _e;\n this.boundRange = boundRange;\n this.insertUndividedMax = insertUndividedMax;\n this.toListItem = function (hour) {\n var date = setHours(MIDNIGHT_DATE, hour);\n return {\n text: _this.intl.formatDate(date, part.pattern),\n value: date\n };\n };\n this.min = min;\n this.max = max;\n this.step = step;\n };\n HoursService.prototype.data = function (selectedValue) {\n var _this = this;\n var min = this.range(selectedValue)[0];\n var getHour = stepper(min, this.step);\n var convertToItem = function (idx) { return (_this.toListItem && _this.toListItem(getHour(idx))); };\n var data = range(0, this.countFromMin(selectedValue)).map(convertToItem);\n this.addLast(data);\n if (selectedValue) {\n this.addMissing(data, selectedValue);\n }\n return data;\n };\n HoursService.prototype.isRangeChanged = function (min, max) {\n if (!this.min || !this.max) {\n return false;\n }\n return !isEqual(this.min, min) || !isEqual(this.max, max);\n };\n HoursService.prototype.limitRange = function (min, max, value) {\n return this.boundRange ? [limitDown(min, value), limitUp(max, value)] : [min, max];\n };\n HoursService.prototype.total = function (value) {\n var last = this.insertUndividedMax && this.isLastMissing(value) ? 1 : 0;\n var missing = this.isMissing(value) ? 1 : 0;\n return this.countFromMin(value) + missing + last;\n };\n HoursService.prototype.selectedIndex = function (value) {\n return Math.ceil(this.divideByStep(value));\n };\n HoursService.prototype.valueInList = function (value) {\n if (!value) {\n return true;\n }\n var matchMax = this.insertUndividedMax && this.lastHour(value) === value.getHours();\n return matchMax || !this.isMissing(value);\n };\n HoursService.prototype.addLast = function (data, value) {\n if (this.insertUndividedMax && this.isLastMissing(value) && this.toListItem) {\n data.push(this.toListItem(this.lastHour(value)));\n }\n return data;\n };\n HoursService.prototype.addMissing = function (data, value) {\n if (this.valueInList(value)) {\n return data;\n }\n if (this.toListItem) {\n var missingItem = this.toListItem(value.getHours());\n data.splice(this.selectedIndex(value), 0, missingItem);\n }\n return data;\n };\n HoursService.prototype.countFromMin = function (value) {\n var _a = this.range(value), min = _a[0], max = _a[1];\n return Math.floor(distanceFromMin(max, min) / this.step) + 1; /* include min */\n };\n HoursService.prototype.isMissing = function (value) {\n if (!value) {\n return false;\n }\n return this.selectedIndex(value) !== this.divideByStep(value);\n };\n HoursService.prototype.isLastMissing = function (value) {\n return this.max !== null && this.isMissing(setHours(this.max, this.lastHour(value)));\n };\n HoursService.prototype.divideByStep = function (value) {\n return distanceFromMin(value.getHours(), this.min.getHours()) / this.step;\n };\n HoursService.prototype.lastHour = function (value) {\n return this.range(value)[1];\n };\n HoursService.prototype.range = function (value) {\n var _a = this.limitRange(this.min, this.max, value), min = _a[0], max = _a[1];\n return [min.getHours(), max.getHours()];\n };\n return HoursService;\n}());\nexport { HoursService };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar _a, _b;\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { cloneDate } from '@progress/kendo-date-math';\nimport { getActiveElement, Keys, noop } from '@progress/kendo-react-common';\nimport { provideIntlService, registerForIntl } from '@progress/kendo-react-intl';\nimport { Virtualization } from '../virtualization/Virtualization';\nimport { TIME_PART } from './models';\nimport { SecondsService, MinutesService, HoursService, DayPeriodService, DOMService } from './services';\nimport { debounce, MAX_TIME, MIDNIGHT_DATE } from '../utils';\nvar SCROLL_THRESHOLD = 2; // < 2px threshold\nvar SNAP_THRESHOLD = 0.05; // % of the item height\nvar SCROLL_THROTTLE = 100; // ms\nvar SKIP = 0;\nvar MOBILE_MODE_OFFSET = 9;\nvar getters = (_a = {},\n _a[Keys.end] = function (data, _) { return data[data.length - 1]; },\n _a[Keys.home] = function (data, _) { return data[0]; },\n _a[Keys.up] = function (data, index) { return data[index - 1]; },\n _a[Keys.down] = function (data, index) { return data[index + 1]; },\n _a);\nvar services = (_b = {},\n _b[TIME_PART.dayperiod] = DayPeriodService,\n _b[TIME_PART.hour] = HoursService,\n _b[TIME_PART.minute] = MinutesService,\n _b[TIME_PART.second] = SecondsService,\n _b);\n/**\n * @hidden\n */\nvar TimeList = /** @class */ (function (_super) {\n __extends(TimeList, _super);\n function TimeList(props) {\n var _this = _super.call(this, props) || this;\n _this.intl = null;\n _this._element = null;\n _this.service = null;\n _this.virtualization = null;\n _this.topOffset = 0;\n _this.bottomOffset = 0;\n _this.itemHeight = 0;\n _this.listHeight = 0;\n _this.topThreshold = 0;\n _this.bottomThreshold = 0;\n _this.animateToIndex = false;\n _this.focus = function (args) {\n Promise.resolve().then(function () {\n if (!_this.element) {\n return;\n }\n _this.element.focus(args);\n });\n };\n _this.itemOffset = function (scrollTop) {\n if (!_this.virtualization || !_this.service) {\n return -1;\n }\n var valueIndex = _this.service.selectedIndex(_this.props.value);\n var activeIndex = _this.virtualization.activeIndex();\n var offset = _this.virtualization.itemOffset(activeIndex);\n var distance = Math.abs(Math.ceil(scrollTop) - offset);\n if (valueIndex === activeIndex && distance < SCROLL_THRESHOLD) {\n return offset;\n }\n var scrollUp = valueIndex > activeIndex;\n var moveToNext = scrollUp && distance >= _this.bottomThreshold || !scrollUp && distance > _this.topThreshold;\n return moveToNext ? _this.virtualization.itemOffset(activeIndex + 1) : offset;\n };\n _this.calculateHeights = function () {\n if (!_this.dom.didCalculate) {\n return;\n }\n _this.itemHeight = _this.dom.itemHeight;\n _this.listHeight = _this.dom.timeListHeight;\n _this.topOffset = (_this.listHeight - _this.itemHeight) / 2;\n _this.bottomOffset = _this.listHeight - _this.itemHeight;\n if (_this.props.mobileMode) {\n _this.topOffset += MOBILE_MODE_OFFSET;\n _this.bottomOffset += MOBILE_MODE_OFFSET * 2;\n }\n _this.topThreshold = _this.itemHeight * SNAP_THRESHOLD;\n _this.bottomThreshold = _this.itemHeight * (1 - SNAP_THRESHOLD);\n };\n _this.configureServices = function (_a) {\n var _b = _a === void 0 ? _this.props : _a, min = _b.min, max = _b.max, value = _b.value;\n if (_this.service) {\n var _c = _this.service.limitRange(min || _this.min, max || _this.max, value || _this.props.value), newMin = _c[0], newMax = _c[1];\n _this.service.configure(_this.serviceSettings({ min: newMin, max: newMax }));\n }\n };\n _this.serviceSettings = function (settings) {\n var defaults = {\n boundRange: _this.props.boundRange || TimeList.defaultProps.boundRange,\n insertUndividedMax: false,\n min: cloneDate(_this.min),\n max: cloneDate(_this.max),\n part: _this.props.part,\n step: _this.step\n };\n var result = Object.assign({}, defaults, settings);\n result.boundRange = result.part.type !== 'hour' || _this.props.boundRange || TimeList.defaultProps.boundRange;\n return result;\n };\n _this.handleScrollAction = function (_a) {\n var target = _a.target, animationInProgress = _a.animationInProgress;\n if (!_this.virtualization || !_this.service) {\n return;\n }\n if (target && !animationInProgress) {\n _this.animateToIndex = false;\n var index = _this.virtualization.itemIndex(_this.itemOffset(target.scrollTop));\n var dataItem = _this.service.data(_this.props.value)[index];\n _this.handleChange(dataItem);\n }\n };\n _this.handleFocus = function (event) {\n var onFocus = _this.props.onFocus;\n if (onFocus) {\n onFocus.call(undefined, event);\n }\n };\n _this.handleBlur = function (event) {\n var onBlur = _this.props.onBlur;\n if (onBlur) {\n onBlur.call(undefined, event);\n }\n };\n _this.handleMouseOver = function () {\n if (!_this._element) {\n return;\n }\n var activeElement = getActiveElement(document);\n if (document && activeElement !== _this._element && _this.props.show) {\n _this._element.focus({ preventScroll: true });\n }\n };\n _this.handleKeyDown = function (event) {\n if (!_this.service) {\n return;\n }\n var keyCode = event.keyCode;\n if (keyCode === Keys.down\n || keyCode === Keys.up\n || keyCode === Keys.end\n || keyCode === Keys.home) {\n event.preventDefault();\n }\n var getter = getters[event.keyCode] || noop;\n var dataItem = getter(_this.service.data(_this.props.value), _this.service.selectedIndex(_this.props.value));\n if (dataItem) {\n _this.handleChange(dataItem);\n }\n };\n _this.handleChange = debounce(function (dataItem) {\n if (!_this.service) {\n return;\n }\n var candidate = _this.service.apply(_this.props.value, dataItem.value);\n if (_this.props.value.getTime() === candidate.getTime()) {\n return;\n }\n var onChange = _this.props.onChange;\n if (onChange) {\n onChange.call(undefined, candidate);\n }\n }, SCROLL_THROTTLE);\n _this.dom = new DOMService();\n return _this;\n }\n Object.defineProperty(TimeList.prototype, \"element\", {\n get: function () {\n return this._element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TimeList.prototype, \"animate\", {\n get: function () {\n return Boolean(this.props.smoothScroll && this.animateToIndex);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TimeList.prototype, \"min\", {\n get: function () {\n return this.props.min || TimeList.defaultProps.min;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TimeList.prototype, \"max\", {\n get: function () {\n return this.props.max || TimeList.defaultProps.max;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TimeList.prototype, \"step\", {\n get: function () {\n return this.props.step !== undefined && this.props.step !== 0\n ? Math.floor(this.props.step)\n : TimeList.defaultProps.step;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n TimeList.prototype.componentDidMount = function () {\n var _this = this;\n // Async calculation of height to avoid animation cancellation\n Promise.resolve().then(function () {\n if (!_this._element) {\n return;\n }\n _this.dom.calculateHeights(_this._element);\n _this.forceUpdate();\n });\n };\n /**\n * @hidden\n */\n TimeList.prototype.componentDidUpdate = function () {\n if (!this.virtualization || !this.service) {\n return;\n }\n var index = this.service.selectedIndex(this.props.value);\n this.virtualization[this.animate ? 'animateToIndex' : 'scrollToIndex'](index);\n this.animateToIndex = true;\n };\n /**\n * @hidden\n */\n TimeList.prototype.render = function () {\n var _this = this;\n if (!this.props.part.type || !services[this.props.part.type]) {\n return;\n }\n this.calculateHeights();\n this.intl = provideIntlService(this);\n this.service = new services[this.props.part.type](this.intl);\n this.configureServices();\n var data = this.service.data(this.props.value);\n var transform = 'translateY(' + this.topOffset + 'px)';\n var total = this.service.total(this.props.value);\n var list = (React.createElement(\"ul\", { style: { transform: transform, msTransform: transform }, className: \"k-reset\" }, data.map(function (item, idx) {\n return (React.createElement(\"li\", { key: idx, className: \"k-item\", onClick: function () { _this.handleChange(item); } },\n React.createElement(\"span\", null, item.text)));\n })));\n return (React.createElement(\"div\", { className: \"k-time-list\", id: String(this.props.id || ''), tabIndex: this.props.disabled ? -1 : 0, ref: function (el) { _this._element = el; }, onKeyDown: this.handleKeyDown, onFocus: this.handleFocus, onBlur: this.handleBlur, onMouseOver: this.handleMouseOver }, this.dom.didCalculate\n ? (React.createElement(Virtualization, { bottomOffset: this.bottomOffset, children: list, className: \"k-time-container\", itemHeight: this.itemHeight, maxScrollDifference: this.listHeight, onScrollAction: this.handleScrollAction, ref: function (el) { _this.virtualization = el; }, role: \"presentation\", skip: SKIP, tabIndex: -1, take: total, topOffset: this.topOffset, total: total }))\n : (React.createElement(\"div\", { className: \"k-time-container\" }, list))));\n };\n TimeList.propTypes = {\n id: PropTypes.number,\n max: PropTypes.instanceOf(Date),\n min: PropTypes.instanceOf(Date),\n part: function (props, propName, componentName) {\n var prop = props[propName];\n if (!prop || !services[prop.type]) {\n throw new Error(\"\\n Invalid prop '\".concat(propName, \"' supplied to \").concat(componentName, \".\\n Supported part types are hour|minute|second|dayperiod.\\n \"));\n }\n return null;\n },\n step: function (props, propName, componentName) {\n var prop = props[propName];\n if (prop !== undefined && prop <= 0) {\n throw new Error(\"\\n Invalid prop '\".concat(propName, \"' supplied to \").concat(componentName, \".\\n \").concat(propName, \" cannot be less than 1.\\n \"));\n }\n return null;\n },\n value: PropTypes.instanceOf(Date),\n smoothScroll: PropTypes.bool,\n show: PropTypes.bool\n };\n TimeList.defaultProps = {\n boundRange: false,\n max: MAX_TIME,\n min: MIDNIGHT_DATE,\n step: 1,\n smoothScroll: true\n };\n return TimeList;\n}(React.Component));\nexport { TimeList };\nregisterForIntl(TimeList);\n","import { isEqual } from '@progress/kendo-date-math';\nimport { MIDNIGHT_DATE } from '../../utils';\nimport { range, setMinutes } from '../utils';\nvar MINUTES_IN_HOUR = 60;\nvar clampToRange = function (rangeValue) { return function (value) { return value % rangeValue; }; };\nvar clamp = clampToRange(MINUTES_IN_HOUR);\nvar stepper = function (start, step) { return function (idx) { return clamp(start + (idx * step)); }; };\nvar distanceFromMin = function (value, min) { return clamp(MINUTES_IN_HOUR + value - min); };\nvar limit = function (borderValue) { return function (barrier, value) {\n var useBarrier = !value || barrier.getHours() === value.getHours();\n return useBarrier ? barrier : setMinutes(barrier, borderValue);\n}; };\nvar limitDown = limit(0);\nvar limitUp = limit(MINUTES_IN_HOUR - 1);\n/**\n * @hidden\n */\nvar MinutesService = /** @class */ (function () {\n function MinutesService(intl) {\n this.intl = intl;\n this.toListItem = null;\n this.min = null;\n this.max = null;\n this.step = 0;\n this.insertUndividedMax = false;\n }\n MinutesService.prototype.apply = function (value, candidate) {\n return setMinutes(value, candidate.getMinutes());\n };\n MinutesService.prototype.configure = function (settings) {\n var _this = this;\n var _a = settings.insertUndividedMax, insertUndividedMax = _a === void 0 ? this.insertUndividedMax : _a, _b = settings.min, min = _b === void 0 ? this.min : _b, _c = settings.max, max = _c === void 0 ? this.max : _c, part = settings.part, _d = settings.step, step = _d === void 0 ? this.step : _d;\n this.insertUndividedMax = insertUndividedMax;\n this.toListItem = function (minute) {\n var date = setMinutes(MIDNIGHT_DATE, minute);\n return {\n text: _this.intl.formatDate(date, part.pattern),\n value: date\n };\n };\n this.min = min;\n this.max = max;\n this.step = step;\n };\n MinutesService.prototype.data = function (selectedValue) {\n var _this = this;\n var min = this.range(selectedValue)[0];\n var getMinute = stepper(min, this.step);\n var convertToItem = function (idx) { return (_this.toListItem && _this.toListItem(getMinute(idx))); };\n var data = range(0, this.countFromMin(selectedValue)).map(convertToItem);\n this.addLast(data);\n if (selectedValue) {\n this.addMissing(data, selectedValue);\n }\n return data;\n };\n MinutesService.prototype.isRangeChanged = function (min, max) {\n return (this.min !== null && this.max !== null) && (!isEqual(this.min, min) || !isEqual(this.max, max));\n };\n MinutesService.prototype.limitRange = function (min, max, value) {\n return [limitDown(min, value), limitUp(max, value)];\n };\n MinutesService.prototype.total = function (value) {\n var last = this.insertUndividedMax && this.isLastMissing(value) ? 1 : 0;\n var missing = this.isMissing(value) ? 1 : 0;\n return this.countFromMin(value) + missing + last;\n };\n MinutesService.prototype.selectedIndex = function (value) {\n return Math.ceil(this.divideByStep(value));\n };\n MinutesService.prototype.valueInList = function (value) {\n if (!value) {\n return true;\n }\n var matchMax = this.insertUndividedMax && this.lastMinute(value) === value.getMinutes();\n return matchMax || !this.isMissing(value);\n };\n MinutesService.prototype.addLast = function (data, value) {\n if (this.insertUndividedMax && this.isLastMissing(value) && this.toListItem) {\n data.push(this.toListItem(this.lastMinute(value)));\n }\n return data;\n };\n MinutesService.prototype.addMissing = function (data, value) {\n if (this.valueInList(value)) {\n return data;\n }\n if (this.toListItem) {\n var missingItem = this.toListItem(value.getMinutes());\n data.splice(this.selectedIndex(value), 0, missingItem);\n }\n return data;\n };\n MinutesService.prototype.countFromMin = function (value) {\n var _a = this.range(value), min = _a[0], max = _a[1];\n return Math.floor(distanceFromMin(max, min) / this.step) + 1; /* include min */\n };\n MinutesService.prototype.isMissing = function (value) {\n if (!value) {\n return false;\n }\n return this.selectedIndex(value) !== this.divideByStep(value);\n };\n MinutesService.prototype.isLastMissing = function (value) {\n return this.max !== null && this.isMissing(setMinutes(this.max, this.lastMinute(value)));\n };\n MinutesService.prototype.divideByStep = function (value) {\n return distanceFromMin(value.getMinutes(), this.min.getMinutes()) / this.step;\n };\n MinutesService.prototype.lastMinute = function (value) {\n return this.range(value)[1];\n };\n MinutesService.prototype.range = function (value) {\n var _a = this.limitRange(this.min, this.max, value), min = _a[0], max = _a[1];\n return [min.getMinutes(), max.getMinutes()];\n };\n return MinutesService;\n}());\nexport { MinutesService };\n","import { isEqual } from '@progress/kendo-date-math';\nimport { MIDNIGHT_DATE } from '../../utils';\nimport { range, setSeconds } from '../utils';\nvar SECONDS_IN_HOUR = 60;\nvar clampToRange = function (rangeValue) { return function (value) { return value % rangeValue; }; };\nvar clamp = clampToRange(SECONDS_IN_HOUR);\nvar stepper = function (start, step) { return function (idx) { return clamp(start + (idx * step)); }; };\nvar distanceFromMin = function (value, min) { return clamp(SECONDS_IN_HOUR + value - min); };\nvar limit = function (borderValue) { return function (barrier, value) {\n var useBarrier = !value ||\n (barrier.getMinutes() === value.getMinutes() && barrier.getHours() === value.getHours());\n return useBarrier ? barrier : setSeconds(barrier, borderValue);\n}; };\nvar limitDown = limit(0);\nvar limitUp = limit(SECONDS_IN_HOUR - 1);\n/**\n * @hidden\n */\nvar SecondsService = /** @class */ (function () {\n function SecondsService(intl) {\n this.intl = intl;\n this.toListItem = null;\n this.min = null;\n this.max = null;\n this.step = 0;\n this.insertUndividedMax = false;\n }\n SecondsService.prototype.apply = function (value, candidate) {\n return setSeconds(value, candidate.getSeconds());\n };\n SecondsService.prototype.configure = function (settings) {\n var _this = this;\n var _a = settings.insertUndividedMax, insertUndividedMax = _a === void 0 ? this.insertUndividedMax : _a, _b = settings.min, min = _b === void 0 ? this.min : _b, _c = settings.max, max = _c === void 0 ? this.max : _c, part = settings.part, _d = settings.step, step = _d === void 0 ? this.step : _d;\n this.insertUndividedMax = insertUndividedMax;\n this.toListItem = function (minute) {\n var date = setSeconds(MIDNIGHT_DATE, minute);\n return {\n text: _this.intl.formatDate(date, part.pattern),\n value: date\n };\n };\n this.min = min;\n this.max = max;\n this.step = step;\n };\n SecondsService.prototype.data = function (selectedValue) {\n var _this = this;\n var min = this.range(selectedValue)[0];\n var getSecond = stepper(min, this.step);\n var convertToItem = function (idx) { return (_this.toListItem && _this.toListItem(getSecond(idx))); };\n var data = range(0, this.countFromMin(selectedValue)).map(convertToItem);\n this.addLast(data);\n if (selectedValue) {\n this.addMissing(data, selectedValue);\n }\n return data;\n };\n SecondsService.prototype.isRangeChanged = function (min, max) {\n return this.min !== null && this.max !== null && (!isEqual(this.min, min) || !isEqual(this.max, max));\n };\n SecondsService.prototype.limitRange = function (min, max, value) {\n return [limitDown(min, value), limitUp(max, value)];\n };\n SecondsService.prototype.total = function (value) {\n var last = this.insertUndividedMax && this.isLastMissing(value) ? 1 : 0;\n var missing = this.isMissing(value) ? 1 : 0;\n return this.countFromMin(value) + missing + last;\n };\n SecondsService.prototype.selectedIndex = function (value) {\n return Math.ceil(this.divideByStep(value));\n };\n SecondsService.prototype.valueInList = function (value) {\n if (!value) {\n return true;\n }\n var matchMax = this.insertUndividedMax && this.lastSecond(value) === value.getSeconds();\n return matchMax || !this.isMissing(value);\n };\n SecondsService.prototype.divideByStep = function (value) {\n return distanceFromMin(value.getSeconds(), this.min.getSeconds()) / this.step;\n };\n SecondsService.prototype.addLast = function (data, value) {\n if (this.insertUndividedMax && this.isLastMissing(value) && this.toListItem) {\n data.push(this.toListItem(this.lastSecond(value)));\n }\n return data;\n };\n SecondsService.prototype.addMissing = function (data, value) {\n if (this.valueInList(value)) {\n return data;\n }\n if (this.toListItem) {\n var missingItem = this.toListItem(value.getSeconds());\n data.splice(this.selectedIndex(value), 0, missingItem);\n }\n return data;\n };\n SecondsService.prototype.countFromMin = function (value) {\n var _a = this.range(value), min = _a[0], max = _a[1];\n return Math.floor(distanceFromMin(max, min) / this.step) + 1; /* include min */\n };\n SecondsService.prototype.isMissing = function (value) {\n if (!value) {\n return false;\n }\n return this.selectedIndex(value) !== this.divideByStep(value);\n };\n SecondsService.prototype.isLastMissing = function (value) {\n return this.max !== null && this.isMissing(setSeconds(this.max, this.lastSecond(value)));\n };\n SecondsService.prototype.lastSecond = function (value) {\n return this.range(value)[1];\n };\n SecondsService.prototype.range = function (value) {\n var _a = this.limitRange(this.min, this.max, value), min = _a[0], max = _a[1];\n return [min.getSeconds(), max.getSeconds()];\n };\n return SecondsService;\n}());\nexport { SecondsService };\n","import { domContainerFactory as containerFactory } from '../../utils';\nimport { canUseDOM } from '@progress/kendo-react-common';\n/**\n * @hidden\n */\nvar DOMService = /** @class */ (function () {\n function DOMService() {\n this.itemHeight = 0;\n this.timeListHeight = 0;\n this.didCalculate = false;\n }\n DOMService.prototype.ensureHeights = function () {\n if (this.timeListHeight !== undefined) {\n return;\n }\n this.calculateHeights();\n };\n DOMService.prototype.calculateHeights = function (container) {\n if (!canUseDOM) {\n return;\n }\n var div = containerFactory('div');\n var span = containerFactory('span');\n var ul = containerFactory('ul');\n var li = containerFactory('li');\n var listItem = function () { return li('<span>02</span>', 'k-item'); };\n var list = function () { return ul([listItem()], 'k-reset'); };\n var scrollable = function () { return (div([list()], 'k-content k-scrollable k-time-container')); };\n var timeListWrapper = function () {\n return div([\n span('minute', 'k-title'),\n div([scrollable()], 'k-time-list')\n ], 'k-time-list-wrapper', { left: '-10000px', position: 'absolute' });\n };\n var timeWrapper = timeListWrapper();\n var listContainer = container && container.querySelector('.k-time-container');\n var hostContainer = listContainer || document.body;\n var wrapper = hostContainer.appendChild(timeWrapper);\n this.timeListHeight = wrapper.querySelector('.k-scrollable').offsetHeight;\n this.itemHeight = wrapper.querySelector('li').offsetHeight;\n hostContainer.removeChild(wrapper);\n this.didCalculate = true;\n };\n return DOMService;\n}());\nexport { DOMService };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { cloneDate } from '@progress/kendo-date-math';\nimport { classNames, getActiveElement, Keys } from '@progress/kendo-react-common';\nimport { provideIntlService, provideLocalizationService, registerForIntl, registerForLocalization } from '@progress/kendo-react-intl';\nimport { messages, now, selectNow } from '../messages';\nimport { TimeList } from './TimeList';\nimport { MIDNIGHT_DATE, MIN_TIME, MAX_TIME } from '../utils';\nimport { TIME_PART } from './models/TimePart';\nimport { generateSnappers, getNow, isInTimeRange, snapTime, timeInRange } from './utils';\nimport { Button } from '@progress/kendo-react-buttons';\nvar formatRegExp = new RegExp(\"\".concat(TIME_PART.hour, \"|\").concat(TIME_PART.minute, \"|\").concat(TIME_PART.second, \"|\").concat(TIME_PART.dayperiod, \"|literal\"));\n/**\n * @hidden\n */\nexport var Direction;\n(function (Direction) {\n Direction[Direction[\"Left\"] = 0] = \"Left\";\n Direction[Direction[\"Right\"] = 1] = \"Right\";\n})(Direction || (Direction = {}));\n/**\n * @hidden\n */\nvar TimePart = /** @class */ (function (_super) {\n __extends(TimePart, _super);\n function TimePart(props) {\n var _this = _super.call(this, props) || this;\n _this._element = null;\n _this._nowButton = null;\n _this.dateFormatParts = [];\n _this.timeLists = [];\n _this.focus = function (args) {\n Promise.resolve().then(function () {\n var timeList = _this.timeLists[0];\n if ((_this.state.activeListIndex === -1) && !_this.hasActiveButton() && timeList && timeList.element) {\n timeList.focus(args);\n }\n });\n };\n _this.timeFormatReducer = function (acc, current) { return acc + current.pattern; };\n // Filtering only the time part of the format.\n // Literal types are added if the previous part is\n // part of a time format.\n _this.timeFormatFilter = function (part, index, all) {\n var prevItem = index >= 1 && all[index - 1];\n if (!prevItem) {\n return formatRegExp.test(part.type || '');\n }\n if (prevItem && part.type === 'literal') {\n return formatRegExp.test(prevItem.type || '');\n }\n return formatRegExp.test(part.type || '');\n };\n _this.focusList = function (dir) {\n if (!_this.timeLists.length) {\n return;\n }\n _this.timeLists.reduce(_this.listReducer, ([]))\n .map(function (state) { return dir === Direction.Right ? state.next : state.prev; })\n .map(function (list) { return list && list.element && list.element.focus({ preventScroll: true }); });\n };\n _this.listReducer = function (state, list, idx, all) {\n if (state.length || list.props.id !== _this.state.activeListIndex) {\n return state;\n }\n return [{\n next: all[idx + 1] || list,\n prev: all[idx - 1] || list\n }];\n };\n _this.showNowButton = function () {\n return !_this.hasSteps() && _this.props.nowButton && isInTimeRange(getNow(), _this.min, _this.max);\n };\n _this.handleKeyDown = function (event) {\n var keyCode = event.keyCode;\n switch (keyCode) {\n case Keys.left:\n event.preventDefault();\n _this.focusList(Direction.Left);\n return;\n case Keys.right:\n event.preventDefault();\n _this.focusList(Direction.Right);\n return;\n default:\n return;\n }\n };\n _this.handleListBlur = function () {\n _this.nextTick(function () {\n _this.setState({ activeListIndex: -1 });\n });\n };\n _this.handleListFocus = function (idx) {\n clearTimeout(_this.nextTickId);\n _this.setState({\n activeListIndex: idx\n });\n };\n _this.handleChange = function (candidate) {\n var onChange = _this.props.onChange;\n if (onChange) {\n onChange.call(undefined, candidate);\n }\n };\n _this.snapTime = snapTime(generateSnappers(_this.props.steps, _this.props.min || TimePart.defaultProps.min));\n _this.state = {\n activeListIndex: -1\n };\n _this.hasActiveButton = _this.hasActiveButton.bind(_this);\n return _this;\n }\n Object.defineProperty(TimePart.prototype, \"element\", {\n /**\n * @hidden\n */\n get: function () {\n return this._element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TimePart.prototype, \"value\", {\n get: function () {\n return timeInRange(this.snapTime(cloneDate(this.props.value || MIDNIGHT_DATE)), this.min, this.max);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TimePart.prototype, \"intl\", {\n get: function () {\n return provideIntlService(this);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TimePart.prototype, \"min\", {\n get: function () {\n return this.snapTime(this.props.min || TimePart.defaultProps.min);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TimePart.prototype, \"max\", {\n get: function () {\n return this.snapTime(this.props.max || TimePart.defaultProps.max);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TimePart.prototype, \"steps\", {\n get: function () {\n return this.props.steps || TimePart.defaultProps.steps;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TimePart.prototype, \"boundRange\", {\n get: function () {\n return this.props.boundRange !== undefined\n ? this.props.boundRange\n : TimePart.defaultProps.boundRange;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n TimePart.prototype.componentWillUnmount = function () {\n clearTimeout(this.nextTickId);\n };\n TimePart.prototype.componentDidMount = function () {\n var onMount = this.props.onMount;\n if (onMount) {\n onMount.call(undefined, this.value);\n }\n };\n /**\n * @hidden\n */\n TimePart.prototype.render = function () {\n var _this = this;\n var _a = this.props, format = _a.format, smoothScroll = _a.smoothScroll, onNowClick = _a.onNowClick, className = _a.className, disabled = _a.disabled, mobileMode = _a.mobileMode, show = _a.show;\n this.snapTime = snapTime(generateSnappers(this.steps, this.min));\n this.dateFormatParts = this.intl\n .splitDateFormat(format || TimePart.defaultProps.format)\n .filter(this.timeFormatFilter);\n var rootClassName = classNames({\n 'k-disabled': disabled,\n 'k-time-part': mobileMode\n }, className);\n this.timeLists = [];\n var localizationService = provideLocalizationService(this);\n var selectNowMessage = localizationService.toLanguageString(selectNow, messages[selectNow]);\n return (React.createElement(\"div\", { className: rootClassName },\n React.createElement(\"div\", { className: \"k-time-header\" },\n React.createElement(\"span\", { className: \"k-title\" }, this.intl.formatDate(this.value, this.dateFormatParts.reduce(this.timeFormatReducer, ''))),\n this.showNowButton() &&\n React.createElement(Button, __assign({ type: \"button\", ref: function (btn) { _this._nowButton = btn; }, className: \"k-time-now\", fillMode: \"flat\", themeColor: 'primary', title: selectNowMessage }, { 'aria-label': selectNowMessage }, { onClick: onNowClick, tabIndex: disabled ? -1 : 0 }), localizationService.toLanguageString(now, messages[now]))),\n React.createElement(\"div\", { className: \"k-time-list-container\", onKeyDown: this.handleKeyDown },\n React.createElement(\"span\", { className: \"k-time-highlight\" }),\n this.dateFormatParts.map(function (part, idx) {\n return (part.type !== 'literal'\n ? React.createElement(\"div\", { key: idx, className: classNames('k-time-list-wrapper', {\n 'k-focus': idx === _this.state.activeListIndex\n }), role: \"presentation\", tabIndex: -1 },\n React.createElement(\"span\", { className: \"k-title\", onMouseDown: function (e) { e.preventDefault(); } }, _this.intl.dateFieldName(part)),\n React.createElement(TimeList, { min: _this.min, max: _this.max, boundRange: _this.boundRange, part: part, step: part.type ? _this.steps[part.type] : 1, smoothScroll: smoothScroll, ref: function (el) { if (!el) {\n return;\n } _this.timeLists.push(el); }, id: idx, onFocus: function () { _this.handleListFocus(idx); }, onBlur: _this.handleListBlur, onChange: _this.handleChange, value: _this.value, disabled: disabled, show: show, mobileMode: mobileMode }))\n : React.createElement(\"div\", { key: idx, className: \"k-time-separator\" }, part.pattern));\n }))));\n };\n TimePart.prototype.nextTick = function (f) {\n // XXX: use window.setTimeout due to async focus/blur events in IE, and missing relatedTarget prop.\n // XXX: https://github.com/facebook/react/issues/3751\n clearTimeout(this.nextTickId);\n this.nextTickId = window.setTimeout(function () { return f(); });\n };\n TimePart.prototype.hasActiveButton = function () {\n var activeElement = getActiveElement(document);\n return (this._nowButton && activeElement === this._nowButton.element);\n };\n TimePart.prototype.hasSteps = function () {\n var _this = this;\n var keys = Object.keys(this.steps);\n return keys.length !== keys.reduce(function (acc, k) { return acc + _this.steps[k]; }, 0);\n };\n TimePart.propTypes = {\n cancelButton: PropTypes.bool,\n disabled: PropTypes.bool,\n format: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({\n skeleton: PropTypes.string,\n pattern: PropTypes.string,\n date: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n time: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n datetime: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n era: PropTypes.oneOf(['narrow', 'short', 'long']),\n year: PropTypes.oneOf(['numeric', '2-digit']),\n month: PropTypes.oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day: PropTypes.oneOf(['numeric', '2-digit']),\n weekday: PropTypes.oneOf(['narrow', 'short', 'long']),\n hour: PropTypes.oneOf(['numeric', '2-digit']),\n hour12: PropTypes.bool,\n minute: PropTypes.oneOf(['numeric', '2-digit']),\n second: PropTypes.oneOf(['numeric', '2-digit']),\n timeZoneName: PropTypes.oneOf(['short', 'long'])\n })\n ]),\n max: PropTypes.instanceOf(Date),\n min: PropTypes.instanceOf(Date),\n nowButton: PropTypes.bool,\n steps: PropTypes.shape({\n hour: PropTypes.number,\n minute: PropTypes.number,\n second: PropTypes.number\n }),\n smoothScroll: PropTypes.bool,\n tabIndex: PropTypes.number,\n value: PropTypes.instanceOf(Date),\n show: PropTypes.bool\n };\n TimePart.defaultProps = {\n value: null,\n disabled: false,\n nowButton: true,\n cancelButton: true,\n format: 'hh:mm a',\n min: MIN_TIME,\n max: MAX_TIME,\n steps: {},\n boundRange: false\n };\n return TimePart;\n}(React.Component));\nexport { TimePart };\nregisterForIntl(TimePart);\nregisterForLocalization(TimePart);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { cloneDate } from '@progress/kendo-date-math';\nimport { classNames, getActiveElement, Keys } from '@progress/kendo-react-common';\nimport { provideIntlService, registerForIntl, registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { messages, timePickerCancel, timePickerSet } from '../messages';\nimport { MIN_TIME, MAX_TIME, MIDNIGHT_DATE } from '../utils';\nimport { generateGetters, getNow, valueMerger } from './utils';\nimport { TimePart } from './TimePart';\nimport { Button } from '@progress/kendo-react-buttons';\n/**\n * @hidden\n */\nexport var Direction;\n(function (Direction) {\n Direction[Direction[\"Left\"] = 0] = \"Left\";\n Direction[Direction[\"Right\"] = 1] = \"Right\";\n})(Direction || (Direction = {}));\n/**\n * @hidden\n */\nvar TimeSelector = /** @class */ (function (_super) {\n __extends(TimeSelector, _super);\n function TimeSelector(props) {\n var _this = _super.call(this, props) || this;\n _this._element = null;\n _this._cancelButton = null;\n _this._acceptButton = null;\n _this.timePart = null;\n _this.focusActiveList = function () {\n if (!_this.timePart) {\n return;\n }\n _this.timePart.focus({ preventScroll: true });\n };\n _this.handleKeyDown = function (event) {\n var keyCode = event.keyCode;\n switch (keyCode) {\n case Keys.enter:\n if (!_this.hasActiveButton()) {\n _this.handleAccept(event);\n }\n return;\n default:\n return;\n }\n };\n _this.handleAccept = function (event) {\n var value = _this.mergeValue(cloneDate(_this.value || getNow()), _this.timePart ? _this.timePart.value : _this.current);\n _this.setState({ value: value });\n _this.valueDuringOnChange = value;\n var onChange = _this.props.onChange;\n if (onChange) {\n onChange.call(undefined, {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n value: _this.value,\n target: _this\n });\n }\n _this.valueDuringOnChange = undefined;\n };\n _this.handleReject = function (event) {\n _this.setState({ current: _this.value });\n var onReject = _this.props.onReject;\n if (onReject) {\n onReject.call(undefined, event);\n }\n };\n _this.handleNowClick = function (event) {\n var now = _this.mergeValue(cloneDate(_this.value || getNow()), getNow());\n _this.setState({\n current: now,\n value: now\n });\n _this.valueDuringOnChange = now;\n var onChange = _this.props.onChange;\n if (onChange) {\n onChange.call(undefined, {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n value: _this.value,\n target: _this\n });\n }\n _this.valueDuringOnChange = undefined;\n };\n _this.handleChange = function (candidate) {\n _this.setState({ current: candidate });\n var handleTimeChange = _this.props.handleTimeChange;\n if (handleTimeChange) {\n handleTimeChange.call(undefined, {\n time: candidate\n });\n }\n };\n _this.dateFormatParts = _this.intl.splitDateFormat(_this.props.format || TimeSelector.defaultProps.format);\n _this.mergeValue = valueMerger(generateGetters(_this.dateFormatParts));\n _this.hasActiveButton = _this.hasActiveButton.bind(_this);\n _this.state = {\n current: _this.props.value || MIDNIGHT_DATE,\n value: _this.props.value || TimeSelector.defaultProps.value\n };\n return _this;\n }\n Object.defineProperty(TimeSelector.prototype, \"element\", {\n /**\n * @hidden\n */\n get: function () {\n return this._element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TimeSelector.prototype, \"value\", {\n get: function () {\n var value = this.valueDuringOnChange !== undefined\n ? this.valueDuringOnChange\n : this.props.value !== undefined\n ? this.props.value\n : this.state.value;\n return (value !== null)\n ? cloneDate(value)\n : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TimeSelector.prototype, \"intl\", {\n get: function () {\n return provideIntlService(this);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TimeSelector.prototype, \"current\", {\n get: function () {\n return this.state.current !== null\n ? cloneDate(this.state.current)\n : null;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n TimeSelector.prototype.componentWillUnmount = function () {\n clearTimeout(this.nextTickId);\n };\n /**\n * @hidden\n */\n TimeSelector.prototype.render = function () {\n var _this = this;\n var _a = this.props, format = _a.format, cancelButton = _a.cancelButton, disabled = _a.disabled, tabIndex = _a.tabIndex, className = _a.className, smoothScroll = _a.smoothScroll, min = _a.min, max = _a.max, boundRange = _a.boundRange, nowButton = _a.nowButton, steps = _a.steps, show = _a.show, mobileMode = _a.mobileMode;\n var localizationService = provideLocalizationService(this);\n var cancelMessage = localizationService.toLanguageString(timePickerCancel, messages[timePickerCancel]);\n var setMessage = localizationService.toLanguageString(timePickerSet, messages[timePickerSet]);\n return (React.createElement(\"div\", { ref: function (el) { _this._element = el; }, tabIndex: !disabled ? tabIndex || 0 : undefined, className: classNames('k-timeselector', className, {\n 'k-disabled': disabled\n }), onKeyDown: this.handleKeyDown },\n React.createElement(TimePart, { ref: function (el) { _this.timePart = el; }, value: this.current, onChange: this.handleChange, onNowClick: this.handleNowClick, format: format, smoothScroll: smoothScroll, min: min, max: max, boundRange: boundRange, disabled: disabled, nowButton: nowButton, steps: steps, show: show, mobileMode: mobileMode }),\n this.props.footer && React.createElement(\"div\", { className: \"k-time-footer k-actions k-actions-stretched\" },\n cancelButton &&\n React.createElement(Button, __assign({ type: \"button\", ref: function (btn) { _this._cancelButton = btn; }, className: \"k-time-cancel\", onClick: this.handleReject, title: cancelMessage }, { 'aria-label': cancelMessage }), cancelMessage),\n React.createElement(Button, __assign({ type: \"button\", ref: function (btn) { _this._acceptButton = btn; }, className: \"k-time-accept\", themeColor: 'primary', onClick: this.handleAccept, title: setMessage }, { 'aria-label': setMessage }), setMessage))));\n };\n TimeSelector.prototype.nextTick = function (f) {\n // XXX: use window.setTimeout due to async focus/blur events in IE, and missing relatedTarget prop.\n // XXX: https://github.com/facebook/react/issues/3751\n clearTimeout(this.nextTickId);\n this.nextTickId = window.setTimeout(function () { return f(); });\n };\n TimeSelector.prototype.hasActiveButton = function () {\n if (!this._acceptButton || !this._acceptButton.element) {\n return false;\n }\n var activeElement = getActiveElement(document);\n return (this._acceptButton && activeElement === this._acceptButton.element)\n || (this._cancelButton && activeElement === this._cancelButton.element);\n };\n TimeSelector.propTypes = {\n cancelButton: PropTypes.bool,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n format: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({\n skeleton: PropTypes.string,\n pattern: PropTypes.string,\n date: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n time: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n datetime: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n era: PropTypes.oneOf(['narrow', 'short', 'long']),\n year: PropTypes.oneOf(['numeric', '2-digit']),\n month: PropTypes.oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day: PropTypes.oneOf(['numeric', '2-digit']),\n weekday: PropTypes.oneOf(['narrow', 'short', 'long']),\n hour: PropTypes.oneOf(['numeric', '2-digit']),\n hour12: PropTypes.bool,\n minute: PropTypes.oneOf(['numeric', '2-digit']),\n second: PropTypes.oneOf(['numeric', '2-digit']),\n timeZoneName: PropTypes.oneOf(['short', 'long'])\n })\n ]),\n max: PropTypes.instanceOf(Date),\n min: PropTypes.instanceOf(Date),\n nowButton: PropTypes.bool,\n steps: PropTypes.shape({\n hour: PropTypes.number,\n minute: PropTypes.number,\n second: PropTypes.number\n }),\n smoothScroll: PropTypes.bool,\n tabIndex: PropTypes.number,\n value: PropTypes.instanceOf(Date),\n show: PropTypes.bool\n };\n TimeSelector.defaultProps = {\n value: null,\n disabled: false,\n cancelButton: true,\n format: 't',\n min: MIN_TIME,\n max: MAX_TIME,\n boundRange: false,\n footer: true\n };\n return TimeSelector;\n}(React.Component));\nexport { TimeSelector };\nregisterForIntl(TimeSelector);\nregisterForLocalization(TimeSelector);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Popup } from '@progress/kendo-react-popup';\nimport { cloneDate } from '@progress/kendo-date-math';\nimport { classNames, guid, Keys, AsyncFocusBlur, createPropsContext, withPropsContext, kendoThemeMaps, canUseDOM } from '@progress/kendo-react-common';\nimport { clockIcon } from '@progress/kendo-svg-icons';\nimport { registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport { messages, toggleTimeSelector, toggleClock, timePickerSet, timePickerCancel } from '../messages';\nimport { DateInput } from '../dateinput/DateInput';\nimport { TimeSelector } from './TimeSelector';\nimport { MIDNIGHT_DATE, MIN_TIME, MAX_TIME, setTime } from '../utils';\nimport { isInRange, isSmallerThanMin, isBiggerThanMax } from './utils';\nimport { PickerFloatingLabel } from '../hooks/usePickerFloatingLabel';\nimport { Button } from '@progress/kendo-react-buttons';\nimport { MOBILE_MEDIUM_DEVISE } from '../common/constants';\nimport { AdaptiveMode } from '../common/AdaptiveMode';\nimport { ActionSheetContent } from '@progress/kendo-react-layout';\n/** @hidden */\nvar TimePickerWithoutContext = /** @class */ (function (_super) {\n __extends(TimePickerWithoutContext, _super);\n function TimePickerWithoutContext(props) {\n var _this = _super.call(this, props) || this;\n _this._popupId = guid();\n _this._element = null;\n _this._dateInput = React.createRef();\n _this._timeSelector = null;\n _this.shouldFocusDateInput = false;\n _this.prevShow = false;\n /**\n * @hidden\n */\n _this.focus = function () {\n if (_this.dateInput) {\n _this.dateInput.focus();\n }\n };\n _this.renderTimeSelector = function () {\n var _a = _this.props, smoothScroll = _a.smoothScroll, cancelButton = _a.cancelButton, nowButton = _a.nowButton, disabled = _a.disabled, format = _a.format, steps = _a.steps;\n return (React.createElement(TimeSelector, { ref: _this.setTimeSelectorRef, className: _this.mobileMode ? 'k-reset k-timeselector-lg' : '', mobileMode: _this.mobileMode, show: _this.show, cancelButton: cancelButton, disabled: disabled, nowButton: nowButton, format: format, min: _this.min, max: _this.max, steps: steps, smoothScroll: smoothScroll, value: _this.value, footer: _this.mobileMode ? false : true, handleTimeChange: _this.mobileMode && _this.handleTimeChange, onChange: _this.handleValueChange, onReject: _this.handleValueReject }));\n };\n _this.renderPopup = function () {\n var _a = _this.popupSettings, popupClass = _a.popupClass, otherPopupSettings = __rest(_a, [\"popupClass\"]);\n var popupClassNames = classNames('k-group k-reset', popupClass);\n var popupProps = __assign({ popupClass: 'k-timepicker-popup', show: _this.show, animate: _this.element !== null, anchor: _this.element, className: popupClassNames, id: _this._popupId, anchorAlign: {\n horizontal: 'left',\n vertical: 'bottom'\n }, popupAlign: {\n horizontal: 'left',\n vertical: 'top'\n } }, otherPopupSettings);\n return (_this.props.popup\n ? React.createElement(_this.props.popup, __assign({}, popupProps), _this.renderTimeSelector())\n : React.createElement(Popup, __assign({}, popupProps), _this.renderTimeSelector()));\n };\n _this.renderAdaptivePopup = function () {\n var _a = _this.state.windowWidth, windowWidth = _a === void 0 ? 0 : _a;\n var actionSheetProps = {\n expand: _this.show,\n onClose: _this.handleBlur,\n adaptiveTitle: _this.props.adaptiveTitle,\n windowWidth: windowWidth,\n footer: {\n cancelText: _this.localizationService.toLanguageString(toggleClock, messages[timePickerCancel]),\n onCancel: _this.handleValueReject,\n applyText: _this.localizationService.toLanguageString(timePickerSet, messages[timePickerSet]),\n onApply: function (event) { return _this.handleValueChange(event); }\n }\n };\n return (React.createElement(AdaptiveMode, __assign({}, actionSheetProps),\n React.createElement(ActionSheetContent, { className: '!k-overflow-hidden' }, _this.renderTimeSelector())));\n };\n _this.setTimeSelectorRef = function (timeSelector) {\n _this._timeSelector = timeSelector;\n };\n _this.nextValue = function (nextProps, nextState) {\n return nextProps.value !== undefined\n ? nextProps.value\n : nextState.value;\n };\n _this.nextShow = function (nextProps, nextState) {\n return nextProps.show !== undefined\n ? nextProps.show\n : nextState.show;\n };\n _this.handleInputValueChange = function (event) {\n var value = _this.mergeTime(event.value);\n _this.handleValueChange(__assign(__assign({}, event), { value: value }));\n };\n _this.handleTimeChange = function (date) {\n _this.setState({ candidate: date.time });\n };\n _this.handleValueChange = function (event) {\n _this.setState({\n value: cloneDate(event.value || _this.state.candidate)\n });\n _this.valueDuringOnChange = event.value;\n _this.showDuringOnChange = false;\n _this.shouldFocusDateInput = true;\n var onChange = _this.props.onChange;\n var value = _this.value || _this.state.candidate;\n if (onChange) {\n onChange.call(undefined, {\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n value: value,\n show: _this.show,\n target: _this\n });\n }\n _this.valueDuringOnChange = undefined;\n _this.showDuringOnChange = undefined;\n _this.setShow(false);\n };\n _this.handleFocus = function () {\n _this.setState({ focused: true });\n };\n _this.handleBlur = function () {\n _this.setState({ focused: false });\n _this.setShow(false);\n };\n _this.handleValueReject = function (_) {\n _this.setShow(false);\n };\n _this.handleIconClick = function (_) {\n if (_this.props.disabled) {\n return;\n }\n _this.shouldFocusDateInput = true;\n _this.setShow(!_this.show);\n };\n _this.handleIconMouseDown = function (event) {\n event.preventDefault();\n };\n _this.handleKeyDown = function (event) {\n var altKey = event.altKey, keyCode = event.keyCode;\n if (keyCode === Keys.esc) {\n _this.shouldFocusDateInput = true;\n _this.setShow(false);\n return;\n }\n if (altKey && (keyCode === Keys.up || keyCode === Keys.down)) {\n event.preventDefault();\n event.stopPropagation();\n _this.shouldFocusDateInput = keyCode === Keys.up;\n _this.setShow(keyCode === Keys.down);\n }\n };\n validatePackage(packageMetadata);\n _this.state = {\n value: _this.props.defaultValue || TimePickerWithoutContext.defaultProps.defaultValue,\n show: _this.props.defaultShow || TimePickerWithoutContext.defaultProps.defaultShow,\n focused: false,\n candidate: null\n };\n _this.normalizeTime = _this.normalizeTime.bind(_this);\n _this.setShow = _this.setShow.bind(_this);\n _this.mergeTime = _this.mergeTime.bind(_this);\n return _this;\n }\n Object.defineProperty(TimePickerWithoutContext.prototype, \"document\", {\n get: function () {\n if (!canUseDOM) {\n return;\n }\n // useful only for user actions\n return (this.element && this.element.ownerDocument) || document;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TimePickerWithoutContext.prototype, \"element\", {\n /**\n * Gets the wrapping element of the TimePicker.\n */\n get: function () {\n return this._element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TimePickerWithoutContext.prototype, \"dateInput\", {\n /**\n * Gets the DateInput component inside the TimePicker component.\n */\n get: function () {\n return this._dateInput.current;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TimePickerWithoutContext.prototype, \"timeSelector\", {\n /**\n * Gets the TimeSelector component inside the TimePicker component.\n */\n get: function () {\n return this._timeSelector;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TimePickerWithoutContext.prototype, \"value\", {\n /**\n * Gets the value of the TimePicker.\n */\n get: function () {\n var value = this.valueDuringOnChange !== undefined\n ? this.valueDuringOnChange\n : this.props.value !== undefined\n ? this.props.value\n : this.state.value;\n return (value !== null) ? cloneDate(value) : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TimePickerWithoutContext.prototype, \"show\", {\n /**\n * Gets the popup state of the TimeSelector.\n */\n get: function () {\n return this.showDuringOnChange !== undefined\n ? this.showDuringOnChange\n : this.props.show !== undefined\n ? this.props.show\n : this.state.show;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TimePickerWithoutContext.prototype, \"name\", {\n /**\n * Gets the `name` property of the TimePicker.\n */\n get: function () {\n return this.props.name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TimePickerWithoutContext.prototype, \"validity\", {\n /**\n * Represents the validity state into which the TimePicker is set.\n */\n get: function () {\n var value = this.value && this.normalizeTime(this.value);\n var min = this.normalizeTime(this.min);\n var max = this.normalizeTime(this.max);\n var inRange = isInRange(value, min, max);\n var customError = this.props.validationMessage !== undefined;\n var isValid = (!this.required || this.value !== null) && inRange;\n var valid = this.props.valid !== undefined ? this.props.valid : isValid;\n return {\n customError: customError,\n rangeOverflow: isBiggerThanMax(value, max),\n rangeUnderflow: isSmallerThanMin(value, min),\n valid: valid,\n valueMissing: this.value === null\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TimePickerWithoutContext.prototype, \"mobileMode\", {\n /**\n * The mobile mode of the ComboBox.\n */\n get: function () {\n var isAdaptive = this.state.windowWidth && this.state.windowWidth <= MOBILE_MEDIUM_DEVISE && this.props.adaptive;\n return !!isAdaptive;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TimePickerWithoutContext.prototype, \"validityStyles\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.validityStyles !== undefined\n ? this.props.validityStyles\n : TimePickerWithoutContext.defaultProps.validityStyles;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TimePickerWithoutContext.prototype, \"required\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.required !== undefined\n ? this.props.required\n : TimePickerWithoutContext.defaultProps.required;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TimePickerWithoutContext.prototype, \"popupSettings\", {\n get: function () {\n return this.props.popupSettings || TimePickerWithoutContext.defaultProps.popupSettings;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TimePickerWithoutContext.prototype, \"min\", {\n get: function () {\n return this.props.min !== undefined ? this.props.min : TimePickerWithoutContext.defaultProps.min;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TimePickerWithoutContext.prototype, \"max\", {\n get: function () {\n return this.props.max !== undefined ? this.props.max : TimePickerWithoutContext.defaultProps.max;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TimePickerWithoutContext.prototype, \"dateInputComp\", {\n get: function () {\n return this.props.dateInput || TimePickerWithoutContext.defaultProps.dateInput;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TimePickerWithoutContext.prototype, \"localizationService\", {\n get: function () {\n return provideLocalizationService(this);\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n TimePickerWithoutContext.prototype.componentDidMount = function () {\n var _a;\n this.observerResize = canUseDOM && window.ResizeObserver && new window.ResizeObserver(this.calculateMedia.bind(this));\n if (this.show) {\n // If defaultShow is true during the initial render, the popup is not aligned.\n this.forceUpdate();\n }\n if (((_a = this.document) === null || _a === void 0 ? void 0 : _a.body) && this.observerResize) {\n this.observerResize.observe(this.document.body);\n }\n };\n /**\n * @hidden\n */\n TimePickerWithoutContext.prototype.componentDidUpdate = function () {\n if (this._timeSelector && this.show && !this.prevShow) {\n this._timeSelector.focusActiveList();\n }\n else if (this.dateInput\n && this.dateInput.element\n && !this.show\n && this.shouldFocusDateInput) {\n this.dateInput.element.focus({ preventScroll: true });\n }\n this.prevShow = this.show;\n this.shouldFocusDateInput = false;\n };\n /**\n * @hidden\n */\n TimePickerWithoutContext.prototype.componentWillUnmount = function () {\n var _a;\n if (((_a = this.document) === null || _a === void 0 ? void 0 : _a.body) && this.observerResize) {\n this.observerResize.disconnect();\n }\n };\n ;\n /**\n * @hidden\n */\n TimePickerWithoutContext.prototype.render = function () {\n var _this = this;\n var _a = this.props, _b = _a.size, size = _b === void 0 ? TimePickerWithoutContext.defaultProps.size : _b, _c = _a.rounded, rounded = _c === void 0 ? TimePickerWithoutContext.defaultProps.rounded : _c, _d = _a.fillMode, fillMode = _d === void 0 ? TimePickerWithoutContext.defaultProps.fillMode : _d, disabled = _a.disabled, tabIndex = _a.tabIndex, title = _a.title, id = _a.id, className = _a.className, format = _a.format, formatPlaceholder = _a.formatPlaceholder, width = _a.width, name = _a.name, steps = _a.steps, validationMessage = _a.validationMessage, required = _a.required, validityStyles = _a.validityStyles, ariaLabelledBy = _a.ariaLabelledBy, ariaDescribedBy = _a.ariaDescribedBy;\n var isValid = !this.validityStyles || this.validity.valid;\n var dateInputProps = {\n disabled: disabled,\n format: format,\n formatPlaceholder: formatPlaceholder,\n id: id,\n ariaLabelledBy: ariaLabelledBy,\n ariaDescribedBy: ariaDescribedBy,\n max: this.normalizeTime(this.max),\n min: this.normalizeTime(this.min),\n name: name,\n onChange: this.handleInputValueChange,\n required: required,\n steps: steps,\n tabIndex: !this.show ? tabIndex : -1,\n title: title,\n valid: this.validity.valid,\n validationMessage: validationMessage,\n validityStyles: validityStyles,\n value: this.value && this.normalizeTime(this.value),\n label: undefined,\n placeholder: !this.state.focused ? this.props.placeholder : null,\n ariaHasPopup: 'dialog',\n ariaExpanded: this.show,\n size: null,\n fillMode: null,\n rounded: null,\n readonly: this.mobileMode\n };\n var toggleClockMessage = this.localizationService.toLanguageString(toggleClock, messages[toggleClock]);\n var toggleTimeMessage = this.localizationService\n .toLanguageString(toggleTimeSelector, messages[toggleTimeSelector]);\n var timepicker = (React.createElement(AsyncFocusBlur, { onFocus: this.handleFocus, onBlur: !this.mobileMode ? this.handleBlur : undefined, onSyncBlur: this.props.onBlur, onSyncFocus: this.props.onFocus }, function (_a) {\n var _b;\n var onFocus = _a.onFocus, onBlur = _a.onBlur;\n return (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { ref: function (span) { _this._element = span; }, className: classNames('k-input', 'k-timepicker', (_b = {},\n _b[\"k-input-\".concat(kendoThemeMaps.sizeMap[size] || size)] = size,\n _b[\"k-rounded-\".concat(kendoThemeMaps.roundedMap[rounded] || rounded)] = rounded,\n _b[\"k-input-\".concat(fillMode)] = fillMode,\n _b['k-invalid'] = !isValid,\n _b['k-required'] = _this.required,\n _b['k-disabled'] = _this.props.disabled,\n _b), className), onKeyDown: _this.handleKeyDown, style: { width: width }, onFocus: onFocus, onBlur: onBlur, onClick: _this.mobileMode ? _this.handleIconClick : undefined },\n React.createElement(_this.dateInputComp, __assign({ _ref: _this._dateInput, ariaRole: \"combobox\", ariaControls: _this._popupId }, dateInputProps)),\n React.createElement(Button, __assign({ tabIndex: -1, type: \"button\", icon: 'clock', svgIcon: clockIcon, onMouseDown: _this.handleIconMouseDown, onClick: _this.mobileMode ? undefined : _this.handleIconClick, title: toggleTimeMessage, className: \"k-input-button\", rounded: null }, {\n 'aria-label': toggleClockMessage\n })),\n !_this.mobileMode && _this.renderPopup()),\n _this.mobileMode && _this.renderAdaptivePopup()));\n }));\n return this.props.label\n ? (React.createElement(PickerFloatingLabel, { dateInput: this._dateInput, label: this.props.label, editorId: id, editorValid: isValid, editorDisabled: this.props.disabled, children: timepicker, style: { width: this.props.width } }))\n : timepicker;\n };\n TimePickerWithoutContext.prototype.normalizeTime = function (date) {\n return setTime(MIDNIGHT_DATE, date);\n };\n TimePickerWithoutContext.prototype.setShow = function (show) {\n var _a = this.props, onOpen = _a.onOpen, onClose = _a.onClose;\n if (this.show === show) {\n return;\n }\n this.setState({ show: show });\n if (show && onOpen) {\n onOpen.call(undefined, {\n target: this\n });\n }\n if (!show && onClose) {\n onClose.call(undefined, {\n target: this\n });\n }\n };\n TimePickerWithoutContext.prototype.mergeTime = function (value) {\n return this.value && value ? setTime(this.value, value) : value;\n };\n TimePickerWithoutContext.prototype.calculateMedia = function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n this.setState({ windowWidth: entry.target.clientWidth });\n }\n ;\n };\n ;\n /**\n * @hidden\n */\n TimePickerWithoutContext.displayName = 'TimePicker';\n /**\n * @hidden\n */\n TimePickerWithoutContext.propTypes = {\n className: PropTypes.string,\n cancelButton: PropTypes.bool,\n nowButton: PropTypes.bool,\n defaultShow: PropTypes.bool,\n defaultValue: PropTypes.instanceOf(Date),\n disabled: PropTypes.bool,\n format: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({\n skeleton: PropTypes.string,\n pattern: PropTypes.string,\n date: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n time: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n datetime: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n era: PropTypes.oneOf(['narrow', 'short', 'long']),\n year: PropTypes.oneOf(['numeric', '2-digit']),\n month: PropTypes.oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day: PropTypes.oneOf(['numeric', '2-digit']),\n weekday: PropTypes.oneOf(['narrow', 'short', 'long']),\n hour: PropTypes.oneOf(['numeric', '2-digit']),\n hour12: PropTypes.bool,\n minute: PropTypes.oneOf(['numeric', '2-digit']),\n second: PropTypes.oneOf(['numeric', '2-digit']),\n timeZoneName: PropTypes.oneOf(['short', 'long'])\n })\n ]),\n formatPlaceholder: PropTypes.oneOfType([\n PropTypes.oneOf(['wide', 'narrow', 'short', 'formatPattern']),\n PropTypes.shape({\n year: PropTypes.string,\n month: PropTypes.string,\n day: PropTypes.string,\n hour: PropTypes.string,\n minute: PropTypes.string,\n second: PropTypes.string\n })\n ]),\n id: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n min: PropTypes.instanceOf(Date),\n max: PropTypes.instanceOf(Date),\n name: PropTypes.string,\n popupSettings: PropTypes.shape({\n animate: PropTypes.bool,\n appendTo: PropTypes.any,\n popupClass: PropTypes.string\n }),\n show: PropTypes.bool,\n steps: PropTypes.shape({\n hour: PropTypes.number,\n minute: PropTypes.number,\n second: PropTypes.number\n }),\n smoothScroll: PropTypes.bool,\n tabIndex: PropTypes.number,\n title: PropTypes.string,\n value: PropTypes.instanceOf(Date),\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n validationMessage: PropTypes.string,\n required: PropTypes.bool,\n validate: PropTypes.bool,\n valid: PropTypes.bool,\n size: PropTypes.oneOf([null, 'small', 'medium', 'large']),\n rounded: PropTypes.oneOf([null, 'small', 'medium', 'large', 'full']),\n fillMode: PropTypes.oneOf([null, 'solid', 'flat', 'outline'])\n };\n /**\n * @hidden\n */\n TimePickerWithoutContext.defaultProps = {\n defaultShow: false,\n defaultValue: null,\n disabled: false,\n format: 't',\n max: MAX_TIME,\n min: MIN_TIME,\n popupSettings: {},\n tabIndex: 0,\n steps: {},\n required: false,\n validityStyles: true,\n dateInput: DateInput,\n size: 'medium',\n rounded: 'medium',\n fillMode: 'solid'\n };\n return TimePickerWithoutContext;\n}(React.Component));\nexport { TimePickerWithoutContext };\n/**\n * Represents the PropsContext of the `TimePicker` component.\n * Used for global configuration of all `TimePicker` instances.\n *\n * For more information, refer to the [DateInputs Props Context]({% slug props-context_dateinputs %}) article.\n */\nexport var TimePickerPropsContext = createPropsContext();\n/* eslint-disable @typescript-eslint/no-redeclare */\n/**\n * Represents the KendoReact TimePicker Component.\n *\n * Accepts properties of type [TimePicker]({% slug api_dateinputs_timepickerprops %}).\n * Obtaining the `ref` returns an object of type [TimePickerHandle]({% slug api_dateinputs_timepickerhandle %}).\n */\nexport var TimePicker = withPropsContext(TimePickerPropsContext, TimePickerWithoutContext);\nTimePicker.displayName = 'KendoReactTimePicker';\nregisterForLocalization(TimePickerWithoutContext);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { View } from './View';\nimport { CalendarViewEnum } from '../models';\nimport { classNames } from '@progress/kendo-react-common';\nimport { cloneDate } from '@progress/kendo-date-math';\nimport { MAX_DATE, MIN_DATE } from '../../utils';\nvar DEFAULT_FETCH_MONTHS_COUNT = 2;\n/**\n * @hidden\n */\nvar HorizontalViewList = /** @class */ (function (_super) {\n __extends(HorizontalViewList, _super);\n function HorizontalViewList(props) {\n var _this = _super.call(this, props) || this;\n _this._element = null;\n _this.isActive = false;\n _this.focusActiveDate = function () {\n if (!_this._element) {\n return;\n }\n var focusedCell = _this._element.querySelector('td.k-focus');\n var nextActiveCell = _this._element.querySelector('.k-state-pending-focus');\n if (focusedCell && focusedCell[0]) {\n focusedCell[0].classList.remove('k-focus');\n }\n if (nextActiveCell) {\n nextActiveCell.classList.add('k-focus');\n }\n _this.isActive = true;\n };\n _this.blurActiveDate = function () {\n if (!_this._element) {\n return;\n }\n var focusedCell = _this._element.querySelector('td.k-focus');\n if (focusedCell) {\n focusedCell.classList.remove('k-focus');\n }\n _this.isActive = false;\n };\n _this.rotateSelectionRange = function (selectionRange) {\n if (selectionRange.start === null || selectionRange.end === null) {\n return selectionRange;\n }\n var needRotate = selectionRange.end < selectionRange.start;\n return {\n start: needRotate ? selectionRange.end : selectionRange.start,\n end: needRotate ? selectionRange.start : selectionRange.end\n };\n };\n _this.handleDateChange = function (event, isTodayClick) {\n if (isTodayClick === void 0) { isTodayClick = false; }\n var onChange = _this.props.onChange;\n if (onChange) {\n var args = {\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n value: cloneDate(event.value),\n target: _this,\n isTodayClick: isTodayClick\n };\n onChange.call(undefined, args);\n }\n };\n return _this;\n }\n Object.defineProperty(HorizontalViewList.prototype, \"element\", {\n get: function () {\n return this._element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HorizontalViewList.prototype, \"weekNumber\", {\n get: function () {\n return Boolean(this.props.showWeekNumbers && this.props.activeView === CalendarViewEnum.month);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HorizontalViewList.prototype, \"min\", {\n get: function () {\n return this.props.min !== undefined\n ? this.props.min\n : HorizontalViewList.defaultProps.min;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HorizontalViewList.prototype, \"max\", {\n get: function () {\n return this.props.max !== undefined\n ? this.props.max\n : HorizontalViewList.defaultProps.max;\n },\n enumerable: false,\n configurable: true\n });\n HorizontalViewList.prototype.componentDidUpdate = function () {\n if (this.isActive) {\n this.focusActiveDate();\n }\n };\n HorizontalViewList.prototype.render = function () {\n var _this = this;\n var selectionRange = this.props.allowReverse\n ? this.rotateSelectionRange(this.props.selectionRange)\n : this.props.selectionRange;\n var rootClassNames = classNames('k-calendar-view k-align-items-start k-justify-content-center', {\n 'k-vstack': this.props.verticalView,\n 'k-hstack': !this.props.verticalView,\n 'k-calendar-monthview': this.props.activeView === CalendarViewEnum.month,\n 'k-calendar-yearview': this.props.activeView === CalendarViewEnum.year,\n 'k-calendar-decadeview': this.props.activeView === CalendarViewEnum.decade,\n 'k-calendar-centuryview': this.props.activeView === CalendarViewEnum.century\n });\n return (React.createElement(\"div\", { ref: function (el) { _this._element = el; }, className: rootClassNames }, this.props.dates.map(function (date) { return (React.createElement(\"table\", { className: \"k-calendar-table k-content\", key: date.getTime(), role: \"grid\" },\n React.createElement(View, { bus: _this.props.bus, service: _this.props.service, key: date.getTime(), direction: \"horizontal\", activeView: _this.props.activeView, cellUID: _this.props.cellUID, viewDate: date, min: _this.min, max: _this.max, focusedDate: _this.props.focusedDate, selectionRange: selectionRange, selectedDate: _this.props.value, showWeekNumbers: _this.weekNumber, onChange: _this.handleDateChange, onCellEnter: _this.props.onCellEnter, cell: _this.props.cell, weekCell: _this.props.weekCell }))); })));\n };\n HorizontalViewList.defaultProps = {\n showWeekNumbers: false,\n views: DEFAULT_FETCH_MONTHS_COUNT,\n take: DEFAULT_FETCH_MONTHS_COUNT,\n allowReverse: true,\n min: MIN_DATE,\n max: MAX_DATE\n };\n return HorizontalViewList;\n}(React.Component));\nexport { HorizontalViewList };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { registerForIntl, provideIntlService, registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { classNames, guid, Keys, createPropsContext, withPropsContext } from '@progress/kendo-react-common';\nimport { cloneDate, isEqualDate, getDate, firstDayOfMonth, lastDayOfMonth } from '@progress/kendo-date-math';\nimport { Button } from '@progress/kendo-react-buttons';\nimport { chevronLeftIcon, chevronRightIcon } from '@progress/kendo-svg-icons';\nimport { Action, CalendarViewEnum, EMPTY_SELECTIONRANGE } from '../models';\nimport { Header } from './Header';\nimport { MIN_DATE, MAX_DATE } from '../../utils';\nimport { messages, prevView, nextView } from '../../messages';\nimport { BusViewService, NavigationService } from '../services';\nimport { dateInRange, isInRange, viewInRange, getToday, nullable } from '../../utils';\nimport { HorizontalViewList } from './HorizontalViewList';\nimport { TodayCommand } from './TodayCommand';\nvar extractDateFromValue = function (min, max, value) {\n if (min === void 0) { min = MultiViewCalendarWithoutContext.defaultProps.min; }\n if (max === void 0) { max = MultiViewCalendarWithoutContext.defaultProps.max; }\n return value instanceof Date && !Array.isArray(value) && isInRange(getDate(value), min, max)\n ? getDate(value)\n : null;\n};\nvar extractMultipleFromValue = function (min, max, value) {\n if (min === void 0) { min = MultiViewCalendarWithoutContext.defaultProps.min; }\n if (max === void 0) { max = MultiViewCalendarWithoutContext.defaultProps.max; }\n return Array.isArray(value)\n ? value.filter(function (date) { return isInRange(date, min, max); }).map(function (date) { return getDate(date); })\n : null;\n};\nvar extractRangeFromValue = function (value) {\n return typeof value === 'object' && !(value instanceof Date) && value !== null && !Array.isArray(value)\n ? value\n : EMPTY_SELECTIONRANGE;\n};\nvar extractFocusedDate = function (single, multiple, range) {\n return single || (multiple && multiple[0]) || (range && range.start);\n};\nvar extractActiveRange = function (range, single) {\n return range.start === null && single === null\n ? 'start'\n : range.end === null\n ? 'end'\n : 'start';\n};\n/** @hidden */\nvar MultiViewCalendarWithoutContext = /** @class */ (function (_super) {\n __extends(MultiViewCalendarWithoutContext, _super);\n function MultiViewCalendarWithoutContext(props) {\n var _this = _super.call(this, props) || this;\n _this.dates = [];\n _this.selectedDate = null;\n _this.selectedMultiple = null;\n _this.selectedRange = EMPTY_SELECTIONRANGE;\n _this._focusedDate = new Date();\n _this.cellUID = guid();\n _this.activeRangeEnd = 'start';\n _this._element = null;\n _this.intl = null;\n _this.localization = null;\n _this.service = null;\n _this.wrapperID = guid();\n _this.calendarViewList = null;\n _this.isActive = false;\n _this.calculateFocusFromValue = true;\n /**\n * @hidden\n */\n _this.focus = function () {\n if (_this._element) {\n _this._element.focus();\n }\n };\n _this.clampRange = function (value) { return ({ start: value, end: null }); };\n _this.rangeWithFocused = function (range, focusedDate) {\n return {\n start: range.start,\n end: range.end === null && range.start !== null && _this.isActive ? focusedDate : range.end\n };\n };\n _this.generateRange = function (candidate, value) {\n var end = value.end, start = value.start;\n var shouldSwap = value.start !== null && candidate.getTime() <= value.start.getTime();\n if (!_this.props.allowReverse && shouldSwap) {\n return { start: candidate, end: _this.selectedRange.start };\n }\n return _this.activeRange !== 'end'\n ? ({ start: candidate, end: end })\n : ({ start: start || _this.selectedDate, end: candidate });\n };\n _this.canNavigate = function (action) {\n if (!_this.service) {\n return false;\n }\n var candidate = _this.service.move(_this.focusedDate, action);\n return (_this.min <= candidate && candidate <= _this.max)\n || _this.service.isInSameView(candidate, _this.min)\n || _this.service.isInSameView(candidate, _this.max);\n };\n _this.navigate = function (action, date) {\n _this.calculateFocusFromValue = false;\n var candidate = _this.move(action, date);\n _this.setState({ navigateDate: candidate, focusedDate: candidate });\n };\n _this.move = function (action, date) {\n return _this.clampDate(_this.service.move(date, action));\n };\n _this.clampDate = function (value) {\n return dateInRange(value, _this.min, _this.max);\n };\n _this.shouldAutoCorrect = function (candidate, value) {\n var end = value.end, start = value.start;\n if (_this.activeRange !== 'end') {\n return end !== null && candidate > end;\n }\n else {\n return start !== null && candidate < start;\n }\n };\n _this.handleCellEnter = function (value) {\n if (_this.props.mode === 'range') {\n _this.calculateFocusFromValue = false;\n _this.setState({\n focusedDate: value\n });\n }\n };\n _this.handleMouseDown = function (event) {\n event.preventDefault();\n };\n _this.handleClick = function (_) {\n if (!_this._element) {\n return;\n }\n _this._element.focus({ preventScroll: true });\n };\n _this.handleFocus = function (event) {\n _this.isActive = true;\n if (!_this.calendarViewList) {\n return;\n }\n _this.calendarViewList.focusActiveDate();\n var onFocus = _this.props.onFocus;\n if (onFocus) {\n onFocus.call(undefined, event);\n }\n };\n _this.handleBlur = function (event) {\n _this.isActive = false;\n if (!_this.calendarViewList) {\n return;\n }\n _this.calendarViewList.blurActiveDate();\n var onBlur = _this.props.onBlur;\n if (onBlur) {\n onBlur.call(undefined, event);\n }\n };\n _this.handleTodayClick = function (event) {\n if (!_this.todayIsInRange) {\n return;\n }\n _this.handleDateChange(event);\n };\n _this.handlePrevButtonClick = function () {\n var action = Action.PrevView;\n if (_this.state.activeView > 0 && _this.focusedDate.getFullYear() > _this.dates[0].getFullYear()) {\n _this.navigate(action, _this.move(action, _this.focusedDate));\n }\n else {\n var inMonthDate = _this.isInMonth(_this.focusedDate, _this.dates[1])\n ? _this.move(action, _this.focusedDate)\n : _this.focusedDate;\n _this.navigate(action, inMonthDate);\n }\n };\n _this.handleNextButtonClick = function () {\n _this.navigate(Action.NextView, _this.focusedDate);\n };\n _this.handleKeyDown = function (event) {\n var keyCode = event.keyCode;\n if (keyCode === Keys.enter) {\n var args = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n value: _this.focusedDate,\n target: _this\n };\n _this.handleDateChange(args);\n }\n else {\n var candidate = dateInRange(_this.navigation.move(_this.focusedDate, _this.navigation.action(event), _this.state.activeView, _this.service, event), _this.min, _this.max);\n if (isEqualDate(_this.focusedDate, candidate)) {\n return;\n }\n if (_this.dates && _this.service && !_this.service.isInArray(candidate, _this.dates)) {\n _this.setState({ navigateDate: candidate });\n }\n ;\n _this.calculateFocusFromValue = false;\n _this.setState({ focusedDate: candidate });\n }\n event.preventDefault();\n };\n _this.handleViewChange = function (_a) {\n var view = _a.view;\n _this.calculateFocusFromValue = false;\n _this.setState(function (state) { return ({ activeView: view, navigateDate: state.focusedDate }); });\n };\n _this.handleDateChange = function (event) {\n var focusedDate = cloneDate(event.value);\n var canNavigateDown = _this.bus.canMoveDown(_this.state.activeView);\n if (_this.props.disabled) {\n return;\n }\n if (canNavigateDown) {\n if (event.isTodayClick) {\n _this.bus.moveToBottom(_this.state.activeView);\n }\n else {\n _this.bus.moveDown(_this.state.activeView, event.syntheticEvent);\n _this.setState({ focusedDate: focusedDate });\n return;\n }\n }\n _this.calculateFocusFromValue = true;\n var value;\n switch (_this.props.mode) {\n case 'single':\n value = cloneDate(event.value);\n break;\n case 'multiple':\n if (Array.isArray(_this.selectedMultiple)) {\n var result = _this.selectedMultiple.slice();\n var index_1 = -1;\n result.forEach(function (date, idx) {\n if (isEqualDate(date, event.value)) {\n index_1 = idx;\n }\n });\n index_1 !== -1\n ? result.splice(index_1, 1)\n : result.push(cloneDate(event.value));\n value = result.slice();\n }\n else {\n if (_this.selectedDate) {\n value = [cloneDate(_this.selectedDate), cloneDate(event.value)];\n }\n else {\n value = [cloneDate(event.value)];\n }\n }\n break;\n case 'range':\n var hasSelection = _this.selectedRange.start !== null\n && _this.selectedRange.end !== null\n && _this.activeRange === 'start';\n value = hasSelection\n ? _this.clampRange(event.value)\n : _this.generateRange(event.value, _this.selectedRange);\n _this.activeRangeEnd = _this.activeRange !== 'end' ? 'end' : 'start';\n break;\n default:\n value = cloneDate(event.value);\n break;\n }\n _this.valueDuringOnChange = value;\n if (event.isTodayClick) {\n _this.setState({ navigateDate: focusedDate });\n }\n _this.setState({ value: value, focusedDate: focusedDate });\n _this.valueDuringOnChange = value;\n var onChange = _this.props.onChange;\n if (onChange) {\n var args = {\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n value: value,\n target: _this\n };\n onChange.call(undefined, args);\n }\n _this.valueDuringOnChange = undefined;\n };\n var value = props.value !== undefined\n ? props.value\n : props.defaultValue || MultiViewCalendarWithoutContext.defaultProps.defaultValue;\n var selectedDate = extractDateFromValue(_this.min, _this.max, value);\n var selectedMultiple = extractMultipleFromValue(_this.min, _this.max, value);\n var selectedRange = extractRangeFromValue(value);\n var calculatedFocus = extractFocusedDate(selectedDate, selectedMultiple, selectedRange);\n var activeView = viewInRange(CalendarViewEnum[props.defaultActiveView], _this.bottomView, _this.topView);\n var focusedDate = dateInRange(props.focusedDate || calculatedFocus || getToday(), _this.min, _this.max);\n _this.state = {\n value: value,\n activeView: activeView,\n focusedDate: focusedDate,\n navigateDate: focusedDate\n };\n _this.activeRangeEnd = extractActiveRange(selectedRange, selectedDate);\n _this.bus = new BusViewService(_this.handleViewChange);\n _this.navigation = new NavigationService(_this.bus);\n _this.calculateFocusFromValue = false;\n _this.lastView = activeView;\n _this.lastViewsCount = _this.props.views || HorizontalViewList.defaultProps.views;\n return _this;\n }\n Object.defineProperty(MultiViewCalendarWithoutContext.prototype, \"isRtl\", {\n get: function () {\n return this.props.dir === 'rtl';\n },\n enumerable: false,\n configurable: true\n });\n ;\n Object.defineProperty(MultiViewCalendarWithoutContext.prototype, \"element\", {\n /**\n * Gets the wrapping element of the MultiViewCalendar component.\n */\n get: function () {\n return this._element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MultiViewCalendarWithoutContext.prototype, \"value\", {\n /**\n * Gets the value of the MultiViewCalendar.\n */\n get: function () {\n return this.valueDuringOnChange !== undefined\n ? this.valueDuringOnChange\n : this.props.value !== undefined\n ? this.props.value\n : this.state.value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MultiViewCalendarWithoutContext.prototype, \"focusedDate\", {\n /**\n * Gets the current focused date of the MultiViewCalendar.\n */\n get: function () {\n return cloneDate(this._focusedDate);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MultiViewCalendarWithoutContext.prototype, \"min\", {\n get: function () {\n return getDate(this.props.min !== undefined\n ? this.props.min\n : MultiViewCalendarWithoutContext.defaultProps.min);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MultiViewCalendarWithoutContext.prototype, \"max\", {\n get: function () {\n return getDate(this.props.max !== undefined\n ? this.props.max\n : MultiViewCalendarWithoutContext.defaultProps.max);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MultiViewCalendarWithoutContext.prototype, \"bottomView\", {\n get: function () {\n return CalendarViewEnum[this.props.bottomView !== undefined\n ? this.props.bottomView\n : MultiViewCalendarWithoutContext.defaultProps.bottomView];\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MultiViewCalendarWithoutContext.prototype, \"topView\", {\n get: function () {\n return CalendarViewEnum[this.props.topView !== undefined\n ? this.props.topView\n : MultiViewCalendarWithoutContext.defaultProps.topView];\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MultiViewCalendarWithoutContext.prototype, \"activeRange\", {\n get: function () {\n return this.props.activeRangeEnd !== undefined\n ? this.props.activeRangeEnd\n : this.activeRangeEnd;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MultiViewCalendarWithoutContext.prototype, \"todayIsInRange\", {\n get: function () {\n return isInRange(getToday(), getDate(this.min), getDate(this.max));\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n MultiViewCalendarWithoutContext.prototype.componentDidMount = function () {\n this.calculateFocusFromValue = true;\n };\n /**\n * @hidden\n */\n MultiViewCalendarWithoutContext.prototype.componentDidUpdate = function () {\n if (this.calendarViewList) {\n (this.isActive ? this.calendarViewList.focusActiveDate : this.calendarViewList.blurActiveDate)();\n }\n var stateValue = extractDateFromValue(this.min, this.max, this.value);\n this.calculateFocusFromValue = Boolean(this.selectedDate\n && stateValue\n && (this.selectedDate.getTime() && stateValue.getTime()));\n this.lastView = this.state.activeView;\n this.lastViewsCount = this.props.views || HorizontalViewList.defaultProps.views;\n };\n /**\n * @hidden\n */\n MultiViewCalendarWithoutContext.prototype.render = function () {\n var _this = this;\n if (this.props._ref) {\n this.props._ref(this);\n }\n this.intl = provideIntlService(this);\n this.localization = provideLocalizationService(this);\n this.bus.configure(this.bottomView, this.topView);\n var activeView = viewInRange(this.state.activeView, this.bottomView, this.topView);\n this.service = this.bus.service(activeView, this.intl);\n // console.log('this.service', this.service);\n this.selectedDate = extractDateFromValue(this.min, this.max, this.value);\n this.selectedMultiple = extractMultipleFromValue(this.min, this.max, this.value);\n this.selectedRange = extractRangeFromValue(this.value);\n var calculatedFocus = extractFocusedDate(this.selectedDate, this.selectedMultiple, this.selectedRange);\n this._focusedDate = dateInRange(this.calculateFocusFromValue && calculatedFocus !== null\n ? calculatedFocus\n : this.state.focusedDate, this.min, this.max);\n var wrapperClassName = classNames('k-widget k-calendar k-calendar-range', {\n 'k-disabled': this.props.disabled\n }, this.props.className);\n var visualizedRange = this.rangeWithFocused(this.selectedRange, this.focusedDate);\n var prevViewTitle = this.localization.toLanguageString(prevView, messages[prevView]);\n var nextViewTittle = this.localization.toLanguageString(nextView, messages[nextView]);\n var isPrevDisabled = !this.canNavigate(Action.PrevView);\n var isNextDisabled = !this.canNavigate(Action.NextView);\n var prevBtnAria = { 'aria-disabled': isPrevDisabled };\n var nextBtnAria = { 'aria-disabled': isNextDisabled };\n var didViewChange = this.lastView !== activeView;\n var isDateInMonth = this.dates && this.isInMonth(this.state.navigateDate, this.dates[0]);\n var didViewsCountChange = this.lastViewsCount !== this.props.views;\n if (!isDateInMonth || didViewChange || didViewsCountChange) {\n this.dates = this.service.datesList(this.state.navigateDate, this.props.views || HorizontalViewList.defaultProps.views);\n }\n var activeDate = cloneDate(this.dates && this.dates[0] ? this.dates[0] : getToday());\n return (React.createElement(\"div\", { ref: function (el) { _this._element = el; }, className: wrapperClassName, id: this.props.id || this.wrapperID, \"aria-labelledby\": this.props.ariaLabelledBy, \"aria-describedby\": this.props.ariaDescribedBy, tabIndex: !this.props.disabled ? this.props.tabIndex : undefined, onFocus: this.handleFocus, onBlur: this.handleBlur, onMouseDown: this.handleMouseDown, onClick: this.handleClick, onKeyDown: this.handleKeyDown, \"aria-disabled\": this.props.disabled, dir: this.props.dir },\n React.createElement(Header, { key: \".kendo.calendar.header.\".concat(activeDate.getTime()), activeView: activeView, currentDate: activeDate, min: this.min, max: this.max, rangeLength: this.props.views, bus: this.bus, service: this.service, headerTitle: this.props.headerTitle, verticalView: this.props.mobileMode, commands: (React.createElement(React.Fragment, null,\n React.createElement(Button, __assign({ type: \"button\", className: \"k-calendar-nav-prev\", icon: this.isRtl ? 'chevron-right' : 'chevron-left', svgIcon: this.isRtl ? chevronRightIcon : chevronLeftIcon, fillMode: \"flat\", title: prevViewTitle, disabled: isPrevDisabled, onClick: this.handlePrevButtonClick }, prevBtnAria)),\n React.createElement(TodayCommand, { min: this.min, max: this.max, onClick: this.handleTodayClick, disabled: !this.todayIsInRange }),\n React.createElement(Button, __assign({ type: \"button\", className: \"k-calendar-nav-next\", icon: this.isRtl ? 'chevron-left' : 'chevron-right', svgIcon: this.isRtl ? chevronLeftIcon : chevronRightIcon, fillMode: \"flat\", title: nextViewTittle, disabled: isNextDisabled, onClick: this.handleNextButtonClick }, nextBtnAria)))) }),\n React.createElement(HorizontalViewList, { ref: function (el) { _this.calendarViewList = el; }, dates: this.dates, activeView: activeView, focusedDate: this.focusedDate, min: this.min, max: this.max, bus: this.bus, service: this.service, selectionRange: visualizedRange, value: this.selectedMultiple || this.selectedDate, cellUID: this.cellUID, views: this.props.views, onChange: this.handleDateChange, showWeekNumbers: this.props.weekNumber, onCellEnter: this.handleCellEnter, cell: this.props.cell, weekCell: this.props.weekCell, headerTitle: this.props.headerTitle, verticalView: this.props.mobileMode })));\n };\n // protected isListInRange = (list: Date[]): boolean => {\n // return this.min < list[0]\n // && this.max > list[Math.max(0, (this.props.views || MultiViewCalendarWithoutContext.defaultProps.views) - 1)];\n // };\n MultiViewCalendarWithoutContext.prototype.isInMonth = function (date, month) {\n return !!month && firstDayOfMonth(month) <= date && date <= lastDayOfMonth(month);\n };\n /**\n * @hidden\n */\n MultiViewCalendarWithoutContext.displayName = 'MultiViewCalendar';\n /**\n * @hidden\n */\n MultiViewCalendarWithoutContext.propTypes = {\n activeRangeEnd: PropTypes.oneOf(['start', 'end']),\n allowReverse: PropTypes.bool,\n bottomView: PropTypes.oneOf(['month', 'year', 'decade', 'century']),\n className: PropTypes.string,\n defaultActiveView: PropTypes.oneOf(['month', 'year', 'decade', 'century']),\n defaultValue: PropTypes.oneOfType([\n nullable(PropTypes.instanceOf(Date)),\n PropTypes.arrayOf(PropTypes.instanceOf(Date)),\n PropTypes.shape({\n start: nullable(PropTypes.instanceOf(Date)),\n end: nullable(PropTypes.instanceOf(Date))\n })\n ]),\n disabled: PropTypes.bool,\n focusedDate: PropTypes.instanceOf(Date),\n id: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n max: PropTypes.instanceOf(Date),\n min: PropTypes.instanceOf(Date),\n mode: PropTypes.oneOf(['single', 'multiple', 'range']),\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n tabIndex: PropTypes.number,\n topView: PropTypes.oneOf(['month', 'year', 'decade', 'century']),\n value: PropTypes.oneOfType([\n nullable(PropTypes.instanceOf(Date)),\n PropTypes.arrayOf(PropTypes.instanceOf(Date)),\n PropTypes.shape({\n start: nullable(PropTypes.instanceOf(Date).isRequired),\n end: nullable(PropTypes.instanceOf(Date).isRequired)\n })\n ]),\n views: function (props, propName, componentName) {\n var views = props[propName];\n if (views !== undefined && views < 1) {\n return new Error(\"Invalid prop '\".concat(propName, \"' supplied to\") +\n \"'\".concat(componentName, \"'. The '\").concat(propName, \"' property cannot be less than 1'\"));\n }\n return null;\n },\n weekNumber: PropTypes.bool,\n dir: PropTypes.string\n };\n /**\n * @hidden\n */\n MultiViewCalendarWithoutContext.defaultProps = {\n disabled: false,\n min: MIN_DATE,\n max: MAX_DATE,\n navigation: true,\n defaultActiveView: 'month',\n defaultValue: null,\n topView: 'century',\n tabIndex: 0,\n bottomView: 'month',\n views: 2,\n allowReverse: false\n };\n return MultiViewCalendarWithoutContext;\n}(React.Component));\nexport { MultiViewCalendarWithoutContext };\n/**\n * Represents the PropsContext of the `MultiViewCalendar` component.\n * Used for global configuration of all `MultiViewCalendar` instances.\n *\n * For more information, refer to the [DateInputs Props Context]({% slug props-context_dateinputs %}) article.\n */\nexport var MultiViewCalendarPropsContext = createPropsContext();\n/* eslint-disable @typescript-eslint/no-redeclare -- intentionally naming the component the same as the type */\n/**\n * Represents the KendoReact MultiViewCalendar Component.\n *\n * Accepts properties of type [MultiViewCalendarProps]({% slug api_dateinputs_multiviewcalendarprops %}).\n * Obtaining the `ref` returns an object of type [MultiViewCalendarHandle]({% slug api_dateinputs_multiviewcalendarhandle %}).\n */\nexport var MultiViewCalendar = withPropsContext(MultiViewCalendarPropsContext, MultiViewCalendarWithoutContext);\nMultiViewCalendar.displayName = 'KendoReactMultiViewCalendar';\nregisterForIntl(MultiViewCalendarWithoutContext);\nregisterForLocalization(MultiViewCalendarWithoutContext);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Popup } from '@progress/kendo-react-popup';\nimport { cloneDate } from '@progress/kendo-date-math';\nimport { guid, classNames, Keys, createPropsContext, withPropsContext, IconWrap, getActiveElement } from '@progress/kendo-react-common';\nimport { provideLocalizationService, registerForLocalization } from '@progress/kendo-react-intl';\nimport { arrowsSwapIcon } from '@progress/kendo-svg-icons';\nimport { validatePackage, canUseDOM } from '@progress/kendo-react-common';\nimport { packageMetadata } from '../package-metadata';\nimport { DateInput, DateInputWithoutContext } from '../dateinput/DateInput';\nimport { MultiViewCalendar } from '../calendar/components/MultiViewCalendar';\nimport { EMPTY_SELECTIONRANGE } from '../calendar/models';\nimport { MIN_DATE, MAX_DATE } from '../utils';\nimport { MOBILE_MEDIUM_DEVISE } from '../common/constants';\nimport { swapStartEnd, start, end, separator, messages, dateRangePickerSet, dateRangePickerCancel } from '../messages';\nimport { Button } from '@progress/kendo-react-buttons';\nimport { nullable } from '../utils';\nimport { AdaptiveMode } from '../common/AdaptiveMode';\nimport { ActionSheetContent } from '@progress/kendo-react-layout';\n/** @hidden */\nvar DateRangePickerWithoutContext = /** @class */ (function (_super) {\n __extends(DateRangePickerWithoutContext, _super);\n function DateRangePickerWithoutContext(props) {\n var _this = _super.call(this, props) || this;\n _this._element = null;\n _this._calendar = null;\n _this._startDateInput = React.createRef();\n _this._endDateInput = React.createRef();\n _this._popupId = guid();\n _this._startInputId = guid();\n _this._endInputId = guid();\n _this.shouldFocusDateInput = false;\n _this.shouldFocusCalendar = false;\n /**\n * @hidden\n */\n _this.focus = function () {\n if (_this.startDateInput) {\n _this.startDateInput.focus();\n }\n };\n _this.setCalendarRef = function (calendar) {\n _this._calendar = calendar;\n };\n _this.focusCalendarElement = function () {\n if (_this._calendar && _this._calendar.element) {\n _this._calendar.element.focus({ preventScroll: true });\n }\n };\n _this.calculateValue = function (props, state) {\n var value = props.value !== undefined\n ? props.value\n : state.value;\n return value || EMPTY_SELECTIONRANGE;\n };\n _this.calculateShow = function (nextProps, nextState) {\n return nextProps.show !== undefined\n ? nextProps.show\n : nextState.show;\n };\n _this.renderCalendar = function () {\n var value = _this.value || EMPTY_SELECTIONRANGE;\n var calendarProps = __assign(__assign({ min: _this.min, max: _this.max, allowReverse: _this.props.allowReverse, mode: 'range', focusedDate: _this.props.focusedDate, disabled: _this.props.disabled, className: _this.mobileMode ? 'k-calendar-lg' : '', mobileMode: _this.mobileMode }, _this.props.calendarSettings), { value: value, dir: _this.props.dir, onChange: _this.handleCalendarChange });\n return _this.props.calendar\n ? React.createElement(_this.props.calendar, __assign({}, calendarProps))\n : React.createElement(MultiViewCalendar, __assign({}, calendarProps, { ref: _this.setCalendarRef }));\n };\n _this.renderPopup = function () {\n var popupProps = __assign(__assign({ popupClass: 'k-daterangepicker-popup', animate: _this._element !== null, anchor: _this._element, id: _this._popupId, anchorAlign: {\n horizontal: 'left',\n vertical: 'bottom'\n }, popupAlign: {\n horizontal: 'left',\n vertical: 'top'\n } }, _this.props.popupSettings), { show: _this.show });\n return (_this.props.popup\n ? React.createElement(_this.props.popup, __assign({}, popupProps), _this.renderCalendar())\n : React.createElement(Popup, __assign({}, popupProps), _this.renderCalendar()));\n };\n _this.renderAdaptivePopup = function () {\n var _a = _this.state.windowWidth, windowWidth = _a === void 0 ? 0 : _a;\n var actionSheetProps = {\n expand: _this.show,\n onClose: function (event) { return _this.handleCancel(event); },\n adaptiveTitle: _this.props.adaptiveTitle,\n windowWidth: windowWidth,\n footer: {\n cancelText: _this.localizationService.toLanguageString(dateRangePickerCancel, messages[dateRangePickerCancel]),\n onCancel: _this.handleCancel,\n applyText: _this.localizationService.toLanguageString(dateRangePickerSet, messages[dateRangePickerSet]),\n onApply: _this.handleBlur\n }\n };\n return (React.createElement(AdaptiveMode, __assign({}, actionSheetProps),\n React.createElement(ActionSheetContent, { className: '!k-overflow-hidden' },\n React.createElement(\"div\", { className: 'k-scrollable-wrap' }, _this.renderCalendar()))));\n };\n _this.handleReverseClick = function (event) {\n var value = {\n start: _this.value.end,\n end: _this.value.start\n };\n var args = {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent\n };\n _this.handleChange(value, args);\n };\n _this.handleReverseMouseDown = function (event) {\n event.preventDefault();\n };\n _this.handleFocus = function (event) {\n clearTimeout(_this.nextTickId);\n if (!_this.shouldFocusDateInput) {\n _this.setShow(true);\n if (_this.mobileMode) {\n _this.setState({ currentValue: _this.value });\n }\n }\n var onFocus = _this.props.onFocus;\n if (onFocus) {\n onFocus.call(undefined, event);\n }\n };\n _this.handleBlur = function (event) {\n _this.nextTick(function () {\n _this.setShow(false);\n });\n var onBlur = _this.props.onBlur;\n if (onBlur) {\n onBlur.call(undefined, event);\n }\n };\n _this.handleCancel = function (event) {\n _this.nextTick(function () {\n _this.setShow(false);\n _this.setState({ currentValue: EMPTY_SELECTIONRANGE });\n });\n var onCancel = _this.props.onCancel;\n if (onCancel) {\n onCancel.call(undefined, event);\n }\n };\n _this.handleEndChange = function (event) {\n var value = {\n start: _this.value.start,\n end: cloneDate(event.value || undefined)\n };\n _this.handleChange(value, event);\n };\n _this.handleStartChange = function (event) {\n var value = {\n start: cloneDate(event.value || undefined),\n end: _this.value.end\n };\n _this.handleChange(value, event);\n };\n _this.extractRangeFromValue = function (event) {\n if (!Array.isArray(event.value) && !(event.value instanceof Date)) {\n return event.value || EMPTY_SELECTIONRANGE;\n }\n var candidate = Array.isArray(event.value) ? event.value[0] : event.value;\n return {\n start: _this.value.end !== null ? candidate : _this.value.start,\n end: _this.value.start !== null ? candidate : _this.value.end\n };\n };\n _this.handleCalendarChange = function (event) {\n var value = _this.extractRangeFromValue(event);\n _this.handleChange(value, event);\n };\n _this.handleKeyDown = function (event) {\n var keyCode = event.keyCode, altKey = event.altKey;\n var activeElement = getActiveElement(document);\n if (keyCode === Keys.esc) {\n event.preventDefault();\n _this.shouldFocusDateInput = true;\n _this.setShow(false);\n }\n else if (altKey && keyCode === Keys.down) {\n event.preventDefault();\n _this.shouldFocusCalendar = true;\n _this.setShow(true);\n }\n else if (keyCode === Keys.tab\n && _this.show\n && _this._calendar\n && _this._calendar.element\n && _this.endDateInput\n && _this.endDateInput.element\n && document\n && activeElement === _this.endDateInput.element) {\n event.preventDefault();\n _this.focusCalendarElement();\n }\n };\n _this.handleChange = function (value, event) {\n _this.setState({ value: value });\n _this.valueDuringOnChange = value;\n var onChange = _this.props.onChange;\n if (onChange) {\n var args = {\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n value: _this.value,\n show: _this.show,\n target: _this\n };\n onChange.call(undefined, args);\n }\n _this.valueDuringOnChange = undefined;\n };\n validatePackage(packageMetadata);\n _this.state = {\n show: _this.props.show || _this.props.defaultShow || DateRangePickerWithoutContext.defaultProps.defaultShow,\n value: _this.props.value || _this.props.defaultValue || DateRangePickerWithoutContext.defaultProps.defaultValue,\n currentValue: EMPTY_SELECTIONRANGE\n };\n _this.nextTick = _this.nextTick.bind(_this);\n _this.setShow = _this.setShow.bind(_this);\n _this.focusCalendarElement = _this.focusCalendarElement.bind(_this);\n _this.focusDateInputElement = _this.focusDateInputElement.bind(_this);\n return _this;\n }\n Object.defineProperty(DateRangePickerWithoutContext.prototype, \"element\", {\n /**\n * Gets the wrapping element of the DateRangePicker.\n */\n get: function () {\n return this._element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateRangePickerWithoutContext.prototype, \"startDateInput\", {\n /**\n * Gets the start DateInput component inside the DatePicker component.\n */\n get: function () {\n return this._startDateInput.current;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateRangePickerWithoutContext.prototype, \"endDateInput\", {\n /**\n * Gets the end DateInput component inside the DatePicker component.\n */\n get: function () {\n return this._endDateInput.current;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateRangePickerWithoutContext.prototype, \"calendar\", {\n /**\n * Gets the MultiVieCalendar inside the DateRangePicker.\n */\n get: function () {\n return this._calendar;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateRangePickerWithoutContext.prototype, \"value\", {\n /**\n * Gets the value of the DateRangePicker.\n */\n get: function () {\n var value = this.valueDuringOnChange !== undefined\n ? this.valueDuringOnChange\n : this.props.value !== undefined\n ? this.props.value\n : this.state.value;\n return value || EMPTY_SELECTIONRANGE;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateRangePickerWithoutContext.prototype, \"show\", {\n /**\n * Gets the popup state of the DateRangePicker.\n */\n get: function () {\n return this.showDuringOnChange !== undefined\n ? this.showDuringOnChange\n : this.props.show !== undefined\n ? this.props.show\n : this.state.show;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateRangePickerWithoutContext.prototype, \"min\", {\n get: function () {\n return this.props.min !== undefined\n ? this.props.min\n : DateRangePickerWithoutContext.defaultProps.min;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateRangePickerWithoutContext.prototype, \"max\", {\n get: function () {\n return this.props.max !== undefined\n ? this.props.max\n : DateRangePickerWithoutContext.defaultProps.max;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateRangePickerWithoutContext.prototype, \"document\", {\n get: function () {\n if (!canUseDOM) {\n return;\n }\n // useful only for user actions\n return (this.element && this.element.ownerDocument) || document;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateRangePickerWithoutContext.prototype, \"localizationService\", {\n get: function () {\n var localization = provideLocalizationService(this);\n return localization;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateRangePickerWithoutContext.prototype, \"mobileMode\", {\n /**\n * The mobile mode of the DateRangePicker.\n */\n get: function () {\n var isAdaptive = this.state.windowWidth && this.state.windowWidth <= MOBILE_MEDIUM_DEVISE && this.props.adaptive;\n return !!isAdaptive;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n DateRangePickerWithoutContext.prototype.componentDidMount = function () {\n var _a;\n this.observerResize = canUseDOM && window.ResizeObserver && new window.ResizeObserver(this.calculateMedia.bind(this));\n if (this.show) {\n // If defaultShow is true during the initial render, the popup is not aligned.\n this.forceUpdate();\n }\n if (((_a = this.document) === null || _a === void 0 ? void 0 : _a.body) && this.observerResize) {\n this.observerResize.observe(this.document.body);\n }\n };\n /**\n * @hidden\n */\n DateRangePickerWithoutContext.prototype.componentDidUpdate = function () {\n if (this.shouldFocusCalendar) {\n this.focusCalendarElement();\n }\n if (this.shouldFocusDateInput) {\n this.focusDateInputElement();\n }\n this.shouldFocusCalendar = false;\n this.shouldFocusDateInput = false;\n };\n /**\n * @hidden\n */\n DateRangePickerWithoutContext.prototype.componentWillUnmount = function () {\n var _a;\n clearTimeout(this.nextTickId);\n if (((_a = this.document) === null || _a === void 0 ? void 0 : _a.body) && this.observerResize) {\n this.observerResize.disconnect();\n }\n };\n /**\n * @hidden\n */\n DateRangePickerWithoutContext.prototype.render = function () {\n var _this = this;\n var value = this.value || EMPTY_SELECTIONRANGE;\n var valueToShow = (this.mobileMode && this.show) ? this.state.currentValue : value;\n var startDateInputId = (this.props.startDateInputSettings || {}).id || this._startInputId;\n var endDateInputId = (this.props.endDateInputSettings || {}).id || this._endInputId;\n var rootClassName = classNames('k-daterangepicker', {\n 'k-disabled': this.props.disabled\n }, this.props.className);\n var startMessage = this.localizationService.toLanguageString(start, messages[start]);\n var endMessage = this.localizationService.toLanguageString(end, messages[end]);\n var separatorMessage = this.localizationService.toLanguageString(separator, messages[separator]);\n var startDateInputProps = __assign(__assign({ disableSelection: this.mobileMode && true, label: startMessage, format: this.props.format, min: this.min, max: this.max, id: this._startInputId, disabled: this.props.disabled, valid: this.props.valid, tabIndex: this.props.tabIndex, ariaExpanded: this.show }, this.props.startDateInputSettings), { value: valueToShow.start, onChange: this.handleStartChange });\n var endDateInputProps = __assign(__assign({ disableSelection: this.mobileMode && true, label: endMessage, format: this.props.format, min: this.min, max: this.max, id: this._endInputId, disabled: this.props.disabled, valid: this.props.valid, tabIndex: this.props.tabIndex, ariaExpanded: this.show }, this.props.endDateInputSettings), { value: valueToShow.end, onChange: this.handleEndChange });\n var reverseButton = (React.createElement(Button, __assign({ type: \"button\", className: \"k-select\", fillMode: \"flat\", title: provideLocalizationService(this)\n .toLanguageString(swapStartEnd, messages[swapStartEnd]), onMouseDown: this.handleReverseMouseDown, onClick: this.handleReverseClick }, {\n 'aria-controls': startDateInputId + ' ' + endDateInputId,\n 'aria-label': provideLocalizationService(this)\n .toLanguageString(swapStartEnd, messages[swapStartEnd])\n }),\n React.createElement(IconWrap, { style: { transform: 'rotate(90deg)' }, name: \"arrows-swap\", icon: arrowsSwapIcon })));\n return (React.createElement(React.Fragment, null,\n React.createElement(\"span\", { ref: function (span) {\n _this._element = span;\n }, className: rootClassName, style: this.props.style, id: this.props.id, \"aria-labelledby\": this.props.ariaLabelledBy, \"aria-describedby\": this.props.ariaDescribedBy, tabIndex: this.props.tabIndex, onFocus: this.handleFocus, onBlur: !this.mobileMode ? this.handleBlur : undefined, onKeyDown: this.handleKeyDown, dir: this.props.dir },\n this.props.startDateInput\n ? React.createElement(this.props.startDateInput, __assign({}, startDateInputProps))\n : React.createElement(DateInput, __assign({}, startDateInputProps, { ref: this._startDateInput, ariaRole: \"combobox\", ariaControls: this._popupId, readonly: this.mobileMode })),\n (this.props.allowReverse\n || (this.props.calendarSettings && this.props.calendarSettings.allowReverse))\n && this.props.swapButton\n ? (reverseButton)\n : (separatorMessage),\n this.props.endDateInput\n ? React.createElement(this.props.endDateInput, __assign({}, endDateInputProps))\n : React.createElement(DateInput, __assign({}, endDateInputProps, { ref: this._endDateInput, ariaRole: \"combobox\", ariaControls: this._popupId, readonly: this.mobileMode })),\n !this.mobileMode && this.renderPopup()),\n this.mobileMode && this.renderAdaptivePopup()));\n };\n DateRangePickerWithoutContext.prototype.focusDateInputElement = function () {\n if (!document || !this.startDateInput || !this.startDateInput.element\n || !this.endDateInput || !this.endDateInput.element) {\n return;\n }\n var activeElement = getActiveElement(document);\n if ((this.value.start === null || this.value.end !== null)\n && activeElement !== this.endDateInput.element) {\n this.startDateInput.element.focus({ preventScroll: true });\n }\n else if (activeElement !== this.startDateInput.element) {\n this.endDateInput.element.focus({ preventScroll: true });\n }\n };\n DateRangePickerWithoutContext.prototype.nextTick = function (f) {\n // XXX: use window.setTimeout due to async focus/blur events in IE, and missing relatedTarget prop.\n // XXX: https://github.com/facebook/react/issues/3751\n // Handles multiple focus events happening at the same time.\n clearTimeout(this.nextTickId);\n this.nextTickId = window.setTimeout(function () { return f(); });\n };\n DateRangePickerWithoutContext.prototype.setShow = function (show) {\n var _a = this.props, onOpen = _a.onOpen, onClose = _a.onClose;\n if (this.show === show) {\n return;\n }\n this.setState({ show: show });\n if (show && onOpen) {\n onOpen.call(undefined, {\n target: this\n });\n }\n if (!show && onClose) {\n onClose.call(undefined, {\n target: this\n });\n }\n };\n DateRangePickerWithoutContext.prototype.calculateMedia = function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n this.setState({ windowWidth: entry.target.clientWidth });\n }\n ;\n };\n ;\n /**\n * @hidden\n */\n DateRangePickerWithoutContext.displayName = 'DateRangePicker';\n /**\n * @hidden\n */\n DateRangePickerWithoutContext.propTypes = {\n allowReverse: PropTypes.bool,\n calendarSettings: PropTypes.any,\n className: PropTypes.string,\n defaultShow: PropTypes.bool,\n defaultValue: PropTypes.shape({\n start: nullable(PropTypes.instanceOf(Date).isRequired),\n end: nullable(PropTypes.instanceOf(Date).isRequired)\n }),\n disabled: PropTypes.bool,\n endDateInputSettings: PropTypes.shape(DateInputWithoutContext.propTypes),\n focusedDate: PropTypes.instanceOf(Date),\n format: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({\n skeleton: PropTypes.string,\n pattern: PropTypes.string,\n date: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n time: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n datetime: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n era: PropTypes.oneOf(['narrow', 'short', 'long']),\n year: PropTypes.oneOf(['numeric', '2-digit']),\n month: PropTypes.oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day: PropTypes.oneOf(['numeric', '2-digit']),\n weekday: PropTypes.oneOf(['narrow', 'short', 'long']),\n hour: PropTypes.oneOf(['numeric', '2-digit']),\n hour12: PropTypes.bool,\n minute: PropTypes.oneOf(['numeric', '2-digit']),\n second: PropTypes.oneOf(['numeric', '2-digit']),\n timeZoneName: PropTypes.oneOf(['short', 'long'])\n })\n ]),\n id: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n max: PropTypes.instanceOf(Date),\n min: PropTypes.instanceOf(Date),\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n popupSettings: PropTypes.any,\n show: PropTypes.bool,\n startDateInputSettings: PropTypes.any,\n style: PropTypes.any,\n swapButton: PropTypes.any,\n tabIndex: PropTypes.number,\n dir: PropTypes.string,\n value: PropTypes.shape({\n start: nullable(PropTypes.instanceOf(Date).isRequired),\n end: nullable(PropTypes.instanceOf(Date).isRequired)\n })\n };\n /**\n * @hidden\n */\n DateRangePickerWithoutContext.defaultProps = {\n allowReverse: false,\n defaultShow: false,\n defaultValue: EMPTY_SELECTIONRANGE,\n disabled: false,\n format: 'd',\n max: MAX_DATE,\n min: MIN_DATE,\n swapButton: false\n };\n return DateRangePickerWithoutContext;\n}(React.Component));\nexport { DateRangePickerWithoutContext };\n/**\n * Represents the PropsContext of the `DateRangePicker` component.\n * Used for global configuration of all `DateRangePicker` instances.\n *\n * For more information, refer to the [DateInputs Props Context]({% slug props-context_dateinputs %}) article.\n */\nexport var DateRangePickerPropsContext = createPropsContext();\n/* eslint-disable @typescript-eslint/no-redeclare */\n/**\n * Represents the KendoReact DateRangePicker Component.\n *\n * Accepts properties of type [DateRangePickerProps]({% slug api_dateinputs_daterangepickerprops %}).\n * Obtaining the `ref` returns an object of type [DateRangePickerHandle]({% slug api_dateinputs_daterangepickerhandle %}).\n */\nexport var DateRangePicker = withPropsContext(DateRangePickerPropsContext, DateRangePickerWithoutContext);\nDateRangePicker.displayName = 'KendoReactDateRangePicker';\nregisterForLocalization(DateRangePickerWithoutContext);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { messages, date, time, dateTimePickerCancel as cancel, dateTimePickerSet as set } from '../messages';\nimport { Button, ButtonGroup } from '@progress/kendo-react-buttons';\nimport { Calendar } from '../calendar/components/Calendar';\nimport { TimePart } from '../timepicker/TimePart';\nimport { setTime, getToday, MIN_TIME, MAX_TIME } from '../utils';\nimport { isEqualDate } from '@progress/kendo-date-math';\nimport { Keys, classNames, getActiveElement } from '@progress/kendo-react-common';\nimport { MIDNIGHT_DATE } from '../utils';\nimport { getNow } from '../timepicker/utils';\n/**\n * @hidden\n */\nvar DateTimeSelector = /** @class */ (function (_super) {\n __extends(DateTimeSelector, _super);\n function DateTimeSelector(props) {\n var _this = _super.call(this, props) || this;\n _this._calendar = null;\n _this._timePart = null;\n _this._cancelButton = null;\n _this._acceptButton = null;\n _this._calendarWrap = null;\n _this.shouldFocusPart = false;\n _this.focus = function (args) {\n // Async to avoid stealing the focus from the DateInput on close\n Promise.resolve().then(function () {\n if (_this.state.tab === 'time' && _this._timePart) {\n _this._timePart.focus(args);\n }\n var calendarElement = _this.calendarElement();\n if (_this.state.tab === 'date' && calendarElement) {\n calendarElement.focus(args);\n }\n });\n };\n _this.calendarElement = function () {\n return (_this._calendar && _this._calendar.element) ||\n (_this._calendarWrap && _this._calendarWrap.querySelector('.k-widget.k-calendar'));\n };\n _this.move = function (direction) {\n if (direction === 'right' && _this.state.tab === 'time') {\n return;\n }\n if (direction === 'left' && _this.state.tab === 'date') {\n return;\n }\n var nextPart = direction === 'left' ? 'date' : 'time';\n _this.shouldFocusPart = true;\n _this.setState({ tab: nextPart });\n };\n _this.dateTimeFooter = function () {\n var cancelButton = _this.props.cancelButton;\n var cancelMessage = _this.localizationService.toLanguageString(cancel, messages[cancel]);\n var setMessage = _this.localizationService.toLanguageString(set, messages[set]);\n return (React.createElement(\"div\", { className: \"k-datetime-footer k-actions k-actions-stretched \" },\n cancelButton && React.createElement(Button, __assign({ type: \"button\", ref: function (btn) { _this._cancelButton = btn; }, className: \"k-time-cancel\", onClick: _this.handleReject, title: cancelMessage }, { 'aria-label': cancelMessage }), cancelMessage),\n React.createElement(Button, __assign({ type: \"button\", themeColor: \"primary\", ref: function (btn) { _this._acceptButton = btn; }, className: \"k-time-accept\", disabled: !_this.hasDateValue, onClick: _this.handleAccept, title: setMessage }, { 'aria-label': setMessage }), setMessage)));\n };\n _this.handleReject = function (event) {\n _this.setState({ dateValue: _this.props.value, timeValue: _this.props.value || MIDNIGHT_DATE });\n var value = _this.mergeDate(_this.props.value, _this.props.value || MIDNIGHT_DATE);\n if (_this.props.onReject) {\n var args = {\n nativeEvent: event.nativeEvent,\n syntheticEvent: event,\n target: _this,\n value: value\n };\n _this.props.onReject.call(undefined, args);\n }\n };\n _this.handleAccept = function (event, timeOverride) {\n if (!_this.state.dateValue || !_this.state.timeValue || !_this.hasDateValue) {\n return;\n }\n var value = _this.mergeDate(_this.state.dateValue, timeOverride || _this.state.timeValue);\n _this.props.onChange.call(undefined, {\n syntheticEvent: event,\n nativeEvent: event.nativeEvent,\n value: value,\n target: _this\n });\n };\n _this.handleNowClick = function (event) {\n _this.setState({ timeValue: getNow() });\n _this.handleAccept(event, getNow());\n };\n _this.handleCalendarValueChange = function (event) {\n event.syntheticEvent.stopPropagation();\n _this.setState({ dateValue: event.value, tab: 'time' });\n _this.shouldFocusPart = true;\n };\n _this.handleTimeListContainerChange = function (candidate) {\n _this.setState({ timeValue: candidate });\n };\n _this.handleDateClick = function (event) {\n event.stopPropagation();\n _this.move('left');\n };\n _this.handleTimeClick = function (event) {\n event.stopPropagation();\n _this.move('right');\n };\n _this.handleKeyDown = function (event) {\n var keyCode = event.keyCode, altKey = event.altKey;\n switch (keyCode) {\n case Keys.enter:\n if (!_this.hasActiveButton() && _this.hasDateValue) {\n _this.handleAccept(event);\n }\n return;\n case Keys.left:\n if (!altKey) {\n return;\n }\n _this.move('left');\n return;\n case Keys.right:\n if (!altKey) {\n return;\n }\n _this.move('right');\n return;\n default:\n return;\n }\n };\n _this.handleTimePartMount = function (value) {\n _this.setState({ timeValue: value });\n };\n _this.state = {\n tab: 'date',\n dateValue: _this.props.value,\n timeValue: _this.props.value || MIDNIGHT_DATE\n };\n return _this;\n }\n Object.defineProperty(DateTimeSelector.prototype, \"calendar\", {\n get: function () {\n return this._calendar;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateTimeSelector.prototype, \"timePart\", {\n get: function () {\n return this._timePart;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateTimeSelector.prototype, \"hasDateValue\", {\n get: function () {\n return this.state.dateValue !== null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateTimeSelector.prototype, \"localizationService\", {\n get: function () {\n return provideLocalizationService(this);\n },\n enumerable: false,\n configurable: true\n });\n DateTimeSelector.prototype.componentDidUpdate = function () {\n if (this.shouldFocusPart) {\n this.focus({ preventScroll: true });\n }\n this.shouldFocusPart = false;\n };\n DateTimeSelector.prototype.render = function () {\n var _this = this;\n var _a = this.props, disabled = _a.disabled, min = _a.min, max = _a.max, weekNumber = _a.weekNumber, focusedDate = _a.focusedDate, format = _a.format, mobileMode = _a.mobileMode, footerActions = _a.footerActions;\n var rootClassName = classNames({\n 'k-date-tab': this.state.tab === 'date',\n 'k-time-tab': this.state.tab === 'time',\n 'k-disabled': disabled\n }, 'k-datetime-wrap');\n var dateMessage = this.localizationService.toLanguageString(date, messages[date]);\n var timeMessage = this.localizationService.toLanguageString(time, messages[time]);\n var calendarProps = {\n min: min,\n max: max,\n weekNumber: weekNumber,\n focusedDate: focusedDate,\n disabled: disabled || this.state.tab !== 'date',\n value: this.state.dateValue,\n onChange: this.handleCalendarValueChange,\n navigation: false,\n mobileMode: mobileMode\n };\n return (React.createElement(\"div\", { onKeyDown: this.handleKeyDown, className: rootClassName, tabIndex: -1 },\n React.createElement(\"div\", { className: \"k-datetime-buttongroup\" },\n React.createElement(ButtonGroup, { width: \"100%\" },\n React.createElement(Button, { type: \"button\", selected: this.state.tab === 'date', togglable: true, onClick: this.handleDateClick }, dateMessage),\n React.createElement(Button, { type: \"button\", selected: this.state.tab === 'time', togglable: true, onClick: this.handleTimeClick }, timeMessage))),\n React.createElement(\"div\", { className: \"k-datetime-selector\" },\n React.createElement(\"div\", { className: \"k-datetime-calendar-wrap\", ref: function (e) { return _this._calendarWrap = e; } }, this.props.calendar ?\n React.createElement(this.props.calendar, __assign({}, calendarProps)) :\n React.createElement(Calendar, __assign({ ref: function (calendar) { _this._calendar = calendar; } }, calendarProps))),\n React.createElement(\"div\", { className: \"k-datetime-time-wrap\" },\n React.createElement(\"div\", { className: mobileMode ? 'k-reset k-timeselector-lg k-timeselector' : '' }, React.createElement(TimePart, { key: 1, onNowClick: this.handleNowClick, disabled: disabled || this.state.tab !== 'time', ref: function (timePart) { _this._timePart = timePart; }, min: this.minTime || MIN_TIME, max: this.maxTime || MAX_TIME, steps: this.props.steps, value: this.state.timeValue, format: format, onChange: this.handleTimeListContainerChange, onMount: this.handleTimePartMount, mobileMode: mobileMode })))),\n footerActions && this.dateTimeFooter()));\n };\n Object.defineProperty(DateTimeSelector.prototype, \"minTime\", {\n get: function () {\n return this.props.minTime !== undefined\n ? this.props.minTime\n : this.normalizeRange(this.props.min, this.state.dateValue);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateTimeSelector.prototype, \"maxTime\", {\n get: function () {\n return this.props.maxTime !== undefined\n ? this.props.maxTime\n : this.normalizeRange(this.props.max, this.state.dateValue);\n },\n enumerable: false,\n configurable: true\n });\n DateTimeSelector.prototype.normalizeRange = function (candidate, value) {\n return isEqualDate(candidate, value || getToday())\n ? candidate\n : null;\n };\n DateTimeSelector.prototype.hasActiveButton = function () {\n if (!this._acceptButton) {\n return false;\n }\n var activeElement = getActiveElement(document);\n return (this._acceptButton && activeElement === this._acceptButton.element)\n || (this._cancelButton && activeElement === this._cancelButton.element);\n };\n DateTimeSelector.prototype.mergeTime = function (current, candidate) {\n return current && candidate ? setTime(candidate, current) : candidate;\n };\n DateTimeSelector.prototype.mergeDate = function (candidate, value) {\n return candidate ? setTime(candidate || getToday(), value) : value;\n };\n /**\n * @hidden\n */\n DateTimeSelector.defaultProps = {\n footerActions: true\n };\n return DateTimeSelector;\n}(React.Component));\nexport { DateTimeSelector };\nregisterForLocalization(DateTimeSelector);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Popup } from '@progress/kendo-react-popup';\nimport { cloneDate } from '@progress/kendo-date-math';\nimport { classNames, guid, Keys, AsyncFocusBlur, createPropsContext, withPropsContext, kendoThemeMaps } from '@progress/kendo-react-common';\nimport { calendarIcon } from '@progress/kendo-svg-icons';\nimport { DateInput } from '../dateinput/DateInput';\nimport { validatePackage, canUseDOM } from '@progress/kendo-react-common';\nimport { Button } from '@progress/kendo-react-buttons';\nimport { packageMetadata } from '../package-metadata';\nimport { MIN_DATE, MAX_DATE, isInDateRange, MAX_TIME } from '../utils';\nimport { MOBILE_MEDIUM_DEVISE } from '../common/constants';\nimport { dateTimePickerCancel, dateTimePickerSet, messages, toggleDateTimeSelector } from '../messages';\nimport { registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';\nimport { DateTimeSelector } from './DateTimeSelector';\nimport { isInTimeRange } from '../timepicker/utils';\nimport { MIN_TIME } from '../utils';\nimport { PickerFloatingLabel } from '../hooks/usePickerFloatingLabel';\nimport { AdaptiveMode } from '../common/AdaptiveMode';\nimport { ActionSheetContent } from '@progress/kendo-react-layout';\n/** @hidden */\nvar DateTimePickerWithoutContext = /** @class */ (function (_super) {\n __extends(DateTimePickerWithoutContext, _super);\n function DateTimePickerWithoutContext(props) {\n var _this = _super.call(this, props) || this;\n _this._popupId = guid();\n _this._element = null;\n _this._dateInput = React.createRef();\n _this._dateTimeSelector = null;\n _this.shouldFocusDateInput = false;\n _this.prevShow = false;\n /**\n * @hidden\n */\n _this.focus = function () {\n var dateInputElement = _this.dateInputElement();\n if (dateInputElement) {\n dateInputElement.focus();\n }\n };\n _this.renderPicker = function () {\n var _a = _this.props, disabled = _a.disabled, minTime = _a.minTime, maxTime = _a.maxTime, format = _a.format, calendar = _a.calendar, cancelButton = _a.cancelButton, weekNumber = _a.weekNumber, focusedDate = _a.focusedDate;\n return (React.createElement(DateTimeSelector, { ref: function (dateTimeSelector) { _this._dateTimeSelector = dateTimeSelector; }, cancelButton: cancelButton, steps: _this.props.steps, value: _this.value, onChange: _this.handleValueChange, onReject: _this.handleReject, disabled: disabled, weekNumber: weekNumber, min: _this.min, max: _this.max, minTime: minTime, maxTime: maxTime, focusedDate: focusedDate, format: format, calendar: calendar, mobileMode: _this.mobileMode, footerActions: !_this.mobileMode }));\n };\n _this.renderAdaptivePopup = function () {\n var _a = _this.state.windowWidth, windowWidth = _a === void 0 ? 0 : _a;\n var cancelText = provideLocalizationService(_this)\n .toLanguageString(dateTimePickerCancel, messages[dateTimePickerCancel]);\n var applyText = provideLocalizationService(_this)\n .toLanguageString(dateTimePickerSet, messages[dateTimePickerSet]);\n var actionSheetProps = {\n expand: _this.show,\n onClose: _this.handleBlur,\n adaptiveTitle: _this.props.adaptiveTitle,\n windowWidth: windowWidth,\n footer: {\n cancelText: cancelText,\n onCancel: function (event) { var _a; return (_a = _this._dateTimeSelector) === null || _a === void 0 ? void 0 : _a.handleReject(event); },\n applyText: applyText,\n onApply: function (event) { var _a; return (_a = _this._dateTimeSelector) === null || _a === void 0 ? void 0 : _a.handleAccept(event); }\n }\n };\n return (React.createElement(AdaptiveMode, __assign({}, actionSheetProps),\n React.createElement(ActionSheetContent, { className: '!k-overflow-hidden' }, _this.renderPicker())));\n };\n _this.handleReject = function () {\n _this.shouldFocusDateInput = true;\n _this.setShow(false);\n };\n _this.handleValueChange = function (event) {\n _this.setState({\n value: cloneDate(event.value || undefined)\n });\n _this.valueDuringOnChange = event.value;\n _this.showDuringOnChange = false;\n if (!_this.mobileMode) {\n _this.shouldFocusDateInput = true;\n }\n var onChange = _this.props.onChange;\n if (onChange) {\n onChange.call(undefined, {\n syntheticEvent: event.syntheticEvent,\n nativeEvent: event.nativeEvent,\n value: _this.value,\n show: _this.show,\n target: _this\n });\n }\n _this.valueDuringOnChange = undefined;\n _this.showDuringOnChange = undefined;\n _this.setShow(false);\n };\n _this.handleFocus = function () {\n _this.setState({ focused: true });\n };\n _this.handleBlur = function () {\n _this.setState({ focused: false });\n _this.setShow(false);\n };\n _this.handleDateIconClick = function () {\n if (_this.props.disabled) {\n return;\n }\n _this.shouldFocusDateInput = true;\n _this.setShow(!_this.show);\n };\n _this.handleIconMouseDown = function (event) {\n event.preventDefault();\n };\n _this.handleKeyDown = function (event) {\n var altKey = event.altKey, keyCode = event.keyCode;\n if (keyCode === Keys.esc) {\n _this.shouldFocusDateInput = true;\n _this.setShow(false);\n return;\n }\n if (altKey && (keyCode === Keys.up || keyCode === Keys.down)) {\n event.preventDefault();\n event.stopPropagation();\n _this.shouldFocusDateInput = keyCode === Keys.up;\n _this.setShow(keyCode === Keys.down);\n }\n };\n _this.dateInputElement = function () {\n return (_this.dateInput && _this.dateInput.element) ||\n (_this.element && _this.element.querySelector('.k-dateinput > input.k-input-inner'));\n };\n validatePackage(packageMetadata);\n _this.state = {\n value: _this.props.defaultValue || DateTimePickerWithoutContext.defaultProps.defaultValue,\n show: _this.props.defaultShow || DateTimePickerWithoutContext.defaultProps.defaultShow,\n focused: false\n };\n return _this;\n }\n Object.defineProperty(DateTimePickerWithoutContext.prototype, \"document\", {\n get: function () {\n if (!canUseDOM) {\n return;\n }\n // useful only for user actions\n return (this.element && this.element.ownerDocument) || document;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateTimePickerWithoutContext.prototype, \"element\", {\n /**\n * Gets the wrapping element of the DateTimePicker.\n */\n get: function () {\n return this._element;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateTimePickerWithoutContext.prototype, \"dateInput\", {\n /**\n * Gets the DateInput component inside the DateTimePicker component.\n */\n get: function () {\n return this._dateInput.current;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateTimePickerWithoutContext.prototype, \"value\", {\n /**\n * Gets the value of the DateTimePicker.\n */\n get: function () {\n var value = this.valueDuringOnChange !== undefined\n ? this.valueDuringOnChange\n : this.props.value !== undefined\n ? this.props.value\n : this.state.value;\n return (value !== null) ? cloneDate(value) : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateTimePickerWithoutContext.prototype, \"show\", {\n /**\n * Gets the popup state of the DateTimePicker.\n */\n get: function () {\n return this.showDuringOnChange !== undefined\n ? this.showDuringOnChange\n : this.props.show !== undefined\n ? this.props.show\n : this.state.show;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateTimePickerWithoutContext.prototype, \"name\", {\n /**\n * Gets the `name` property of the DateTimePicker.\n */\n get: function () {\n return this.props.name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateTimePickerWithoutContext.prototype, \"mobileMode\", {\n /**\n * The mobile mode of the ComboBox.\n */\n get: function () {\n var isAdaptive = this.state.windowWidth && this.state.windowWidth <= MOBILE_MEDIUM_DEVISE && this.props.adaptive;\n return !!isAdaptive;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateTimePickerWithoutContext.prototype, \"min\", {\n get: function () {\n return this.props.min !== undefined\n ? this.props.min\n : DateTimePickerWithoutContext.defaultProps.min;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateTimePickerWithoutContext.prototype, \"max\", {\n get: function () {\n return this.props.max !== undefined\n ? this.props.max\n : DateTimePickerWithoutContext.defaultProps.max;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateTimePickerWithoutContext.prototype, \"validity\", {\n /**\n * Represents the validity state into which the DateTimePicker is set.\n */\n get: function () {\n var inRange = isInDateRange(this.value, this.min, this.max)\n && isInTimeRange(this.value, this.props.minTime || MIN_TIME, this.props.maxTime || MAX_TIME);\n var customError = this.props.validationMessage !== undefined;\n var isValid = (!this.required || this.value !== null) && inRange;\n var valid = this.props.valid !== undefined ? this.props.valid : isValid;\n return {\n customError: customError,\n rangeOverflow: (this.value && this.max.getTime() < this.value.getTime()) || false,\n rangeUnderflow: (this.value && this.value.getTime() < this.min.getTime()) || false,\n valid: valid,\n valueMissing: this.value === null\n };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateTimePickerWithoutContext.prototype, \"validityStyles\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.validityStyles !== undefined\n ? this.props.validityStyles\n : DateTimePickerWithoutContext.defaultProps.validityStyles;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateTimePickerWithoutContext.prototype, \"required\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.required !== undefined\n ? this.props.required\n : DateTimePickerWithoutContext.defaultProps.required;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DateTimePickerWithoutContext.prototype, \"dateInputComp\", {\n /**\n * @hidden\n */\n get: function () {\n return this.props.dateInput || DateTimePickerWithoutContext.defaultProps.dateInput;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * @hidden\n */\n DateTimePickerWithoutContext.prototype.componentDidMount = function () {\n var _a;\n this.observerResize = canUseDOM && window.ResizeObserver && new window.ResizeObserver(this.calculateMedia.bind(this));\n if (this.show) {\n // If defaultShow is true during the initial render, the popup is not aligned.\n this.forceUpdate();\n }\n if (((_a = this.document) === null || _a === void 0 ? void 0 : _a.body) && this.observerResize) {\n this.observerResize.observe(this.document.body);\n }\n };\n /**\n * @hidden\n */\n DateTimePickerWithoutContext.prototype.componentDidUpdate = function () {\n var dateInputElement = this.dateInputElement();\n if (this._dateTimeSelector && this.show && !this.prevShow) {\n this._dateTimeSelector.focus({ preventScroll: true });\n }\n if (dateInputElement\n && !this.show\n && this.shouldFocusDateInput) {\n dateInputElement.focus({ preventScroll: true });\n }\n this.prevShow = this.show;\n this.shouldFocusDateInput = false;\n };\n /**\n * @hidden\n */\n DateTimePickerWithoutContext.prototype.componentWillUnmount = function () {\n var _a;\n clearTimeout(this.nextTickId);\n if (((_a = this.document) === null || _a === void 0 ? void 0 : _a.body) && this.observerResize) {\n this.observerResize.disconnect();\n }\n };\n /**\n * @hidden\n */\n DateTimePickerWithoutContext.prototype.render = function () {\n var _this = this;\n var _a = this.props, _b = _a.size, size = _b === void 0 ? DateTimePickerWithoutContext.defaultProps.size : _b, _c = _a.rounded, rounded = _c === void 0 ? DateTimePickerWithoutContext.defaultProps.rounded : _c, _d = _a.fillMode, fillMode = _d === void 0 ? DateTimePickerWithoutContext.defaultProps.fillMode : _d, disabled = _a.disabled, tabIndex = _a.tabIndex, title = _a.title, id = _a.id, format = _a.format, formatPlaceholder = _a.formatPlaceholder, min = _a.min, max = _a.max, className = _a.className, width = _a.width, name = _a.name, validationMessage = _a.validationMessage, required = _a.required, validityStyles = _a.validityStyles, minTime = _a.minTime, maxTime = _a.maxTime, ariaLabelledBy = _a.ariaLabelledBy, ariaDescribedBy = _a.ariaDescribedBy, _e = _a.popup, PopupComponent = _e === void 0 ? Popup : _e;\n var isValid = !this.validityStyles || this.validity.valid;\n var dataInputProps = {\n id: id,\n ariaLabelledBy: ariaLabelledBy,\n ariaDescribedBy: ariaDescribedBy,\n format: format,\n formatPlaceholder: formatPlaceholder,\n disabled: disabled,\n title: title,\n validityStyles: validityStyles,\n validationMessage: validationMessage,\n required: required,\n min: min,\n max: max,\n minTime: minTime,\n maxTime: maxTime,\n name: name,\n tabIndex: !this.show ? tabIndex : -1,\n valid: this.validity.valid,\n value: this.value,\n onChange: this.handleValueChange,\n steps: this.props.steps,\n label: undefined,\n placeholder: !this.state.focused ? this.props.placeholder : null,\n ariaExpanded: this.show,\n size: null,\n fillMode: null,\n rounded: null\n };\n var dateTimePicker = (React.createElement(AsyncFocusBlur, { onFocus: this.handleFocus, onBlur: this.handleBlur, onSyncFocus: this.props.onFocus, onSyncBlur: this.props.onBlur }, function (_a) {\n var _b;\n var onFocus = _a.onFocus, onBlur = _a.onBlur;\n return (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { ref: function (div) {\n _this._element = div;\n }, className: classNames('k-input', 'k-datetimepicker', (_b = {},\n _b[\"k-input-\".concat(kendoThemeMaps.sizeMap[size] || size)] = size,\n _b[\"k-rounded-\".concat(kendoThemeMaps.roundedMap[rounded] || rounded)] = rounded,\n _b[\"k-input-\".concat(fillMode)] = fillMode,\n _b['k-invalid'] = !isValid,\n _b['k-required'] = _this.required,\n _b['k-disabled'] = _this.props.disabled,\n _b), className), onKeyDown: _this.handleKeyDown, style: { width: width }, onFocus: !_this.mobileMode ? onFocus : undefined, onBlur: onBlur, onClick: _this.mobileMode ? _this.handleDateIconClick : undefined },\n React.createElement(_this.dateInputComp, __assign({ _ref: _this._dateInput, ariaRole: \"combobox\", ariaControls: _this._popupId, readonly: _this.mobileMode }, dataInputProps)),\n React.createElement(Button, __assign({ tabIndex: -1, type: \"button\", icon: 'calendar', svgIcon: calendarIcon, onMouseDown: _this.handleIconMouseDown, onClick: _this.mobileMode ? undefined : _this.handleDateIconClick, title: provideLocalizationService(_this)\n .toLanguageString(toggleDateTimeSelector, messages[toggleDateTimeSelector]), className: \"k-input-button\", rounded: null }, {\n 'aria-label': provideLocalizationService(_this)\n .toLanguageString(toggleDateTimeSelector, messages[toggleDateTimeSelector])\n })),\n React.createElement(PopupComponent, { show: _this.show, animate: _this.element !== null, anchor: _this.element, popupClass: \"k-datetime-container k-reset\", id: _this._popupId, anchorAlign: {\n horizontal: 'left',\n vertical: 'bottom'\n }, popupAlign: {\n horizontal: 'left',\n vertical: 'top'\n } }, !_this.mobileMode && _this.renderPicker())),\n _this.mobileMode && _this.renderAdaptivePopup()));\n }));\n return this.props.label\n ? (React.createElement(PickerFloatingLabel, { dateInput: this._dateInput, label: this.props.label, editorId: id, editorValid: isValid, editorDisabled: this.props.disabled, children: dateTimePicker, style: { width: this.props.width } }))\n : dateTimePicker;\n };\n DateTimePickerWithoutContext.prototype.setShow = function (show) {\n var _a = this.props, onOpen = _a.onOpen, onClose = _a.onClose;\n if (this.show === show) {\n return;\n }\n this.setState({ show: show });\n if (show && onOpen) {\n onOpen.call(undefined, {\n target: this\n });\n }\n if (!show && onClose) {\n onClose.call(undefined, {\n target: this\n });\n }\n };\n DateTimePickerWithoutContext.prototype.nextTick = function (f) {\n // XXX: use window.setTimeout due to async focus/blur events in IE, and missing relatedTarget prop.\n // XXX: https://github.com/facebook/react/issues/3751\n // Handles multiple focus events happening at the same time.\n clearTimeout(this.nextTickId);\n this.nextTickId = window.setTimeout(function () { return f(); });\n };\n DateTimePickerWithoutContext.prototype.calculateMedia = function (entries) {\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n this.setState({ windowWidth: entry.target.clientWidth });\n }\n ;\n };\n ;\n /**\n * @hidden\n */\n DateTimePickerWithoutContext.displayName = 'DateTimePicker';\n /**\n * @hidden\n */\n DateTimePickerWithoutContext.propTypes = {\n className: PropTypes.string,\n defaultShow: PropTypes.bool,\n defaultValue: PropTypes.instanceOf(Date),\n disabled: PropTypes.bool,\n focusedDate: PropTypes.instanceOf(Date),\n format: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.shape({\n skeleton: PropTypes.string,\n pattern: PropTypes.string,\n date: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n time: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n datetime: PropTypes.oneOf(['short', 'medium', 'long', 'full']),\n era: PropTypes.oneOf(['narrow', 'short', 'long']),\n year: PropTypes.oneOf(['numeric', '2-digit']),\n month: PropTypes.oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day: PropTypes.oneOf(['numeric', '2-digit']),\n weekday: PropTypes.oneOf(['narrow', 'short', 'long']),\n hour: PropTypes.oneOf(['numeric', '2-digit']),\n hour12: PropTypes.bool,\n minute: PropTypes.oneOf(['numeric', '2-digit']),\n second: PropTypes.oneOf(['numeric', '2-digit']),\n timeZoneName: PropTypes.oneOf(['short', 'long'])\n })\n ]),\n formatPlaceholder: PropTypes.oneOfType([\n PropTypes.oneOf(['wide', 'narrow', 'short', 'formatPattern']),\n PropTypes.shape({\n year: PropTypes.string,\n month: PropTypes.string,\n day: PropTypes.string,\n hour: PropTypes.string,\n minute: PropTypes.string,\n second: PropTypes.string\n })\n ]),\n id: PropTypes.string,\n ariaLabelledBy: PropTypes.string,\n ariaDescribedBy: PropTypes.string,\n min: PropTypes.instanceOf(Date),\n max: PropTypes.instanceOf(Date),\n name: PropTypes.string,\n popupSettings: PropTypes.shape({\n animate: PropTypes.bool,\n appendTo: PropTypes.any,\n popupClass: PropTypes.string\n }),\n show: PropTypes.bool,\n tabIndex: PropTypes.number,\n title: PropTypes.string,\n value: PropTypes.instanceOf(Date),\n weekNumber: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n validationMessage: PropTypes.string,\n required: PropTypes.bool,\n validate: PropTypes.bool,\n valid: PropTypes.bool,\n cancelButton: PropTypes.bool,\n size: PropTypes.oneOf([null, 'small', 'medium', 'large']),\n rounded: PropTypes.oneOf([null, 'small', 'medium', 'large', 'full']),\n fillMode: PropTypes.oneOf([null, 'solid', 'flat', 'outline'])\n };\n /**\n * @hidden\n */\n DateTimePickerWithoutContext.defaultProps = {\n defaultShow: false,\n defaultValue: null,\n disabled: false,\n format: 'g',\n max: MAX_DATE,\n min: MIN_DATE,\n popupSettings: {},\n tabIndex: 0,\n weekNumber: false,\n required: false,\n validityStyles: true,\n cancelButton: true,\n dateInput: DateInput,\n size: 'medium',\n rounded: 'medium',\n fillMode: 'solid'\n };\n return DateTimePickerWithoutContext;\n}(React.Component));\nexport { DateTimePickerWithoutContext };\n/**\n * Represents the PropsContext of the `DateTimePicker` component.\n * Used for global configuration of all `DateTimePicker` instances.\n *\n * For more information, refer to the [DateInputs Props Context]({% slug props-context_dateinputs %}) article.\n */\nexport var DateTimePickerPropsContext = createPropsContext();\n/* eslint-disable @typescript-eslint/no-redeclare */\n/**\n * Represents the KendoReact DateTimePicker Component.\n *\n * Accepts properties of type [DateTimePickerProps]({% slug api_dateinputs_datetimepickerprops %}).\n * Obtaining the `ref` returns an object of type [DateTimePickerHandle]({% slug api_dateinputs_datetimepickerhandle %}).\n */\nexport var DateTimePicker = withPropsContext(DateTimePickerPropsContext, DateTimePickerWithoutContext);\nDateTimePicker.displayName = 'KendoReactDateTimePicker';\nregisterForLocalization(DateTimePickerWithoutContext);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { classNames } from '@progress/kendo-react-common';\nimport { provideLocalizationService, registerForLocalization } from '@progress/kendo-react-intl';\nimport { labelsOptional, messages } from './messages';\nimport { validatePackage } from '@progress/kendo-react-common';\nimport { packageMetadata } from './package-metadata';\n/**\n * Represents the KendoReact FloatingLabel component.\n *\n * @example\n * ```jsx\n * const sizes = [\"X-Small\", \"Small\", \"Medium\", \"Large\", \"X-Large\", \"2X-Large\"];\n * const App = () => {\n * const [ddlState, setDdlState] = React.useState();\n * const editorId = 'ddl-sizes';\n * return (\n * <FloatingLabel label={'Shirt Size:'} editorId={editorId} editorValue={ddlState}>\n * <DropDownList\n * id={editorId}\n * value={ddlState}\n * data={sizes}\n * onChange={(e) => setDdlState(e.target.value)}\n * />\n * </FloatingLabel>\n * );\n * };\n *\n * ReactDOM.render(<App />, document.querySelector('my-app'));\n * ```\n */\nvar FloatingLabel = /** @class */ (function (_super) {\n __extends(FloatingLabel, _super);\n function FloatingLabel(props) {\n var _this = _super.call(this, props) || this;\n /**\n * @hidden\n */\n _this.state = {\n focused: false\n };\n /**\n * @hidden\n */\n _this.handleFocus = function (_) {\n _this.setState({ focused: true });\n };\n /**\n * @hidden\n */\n _this.handleBlur = function (_) {\n _this.setState({ focused: false });\n };\n validatePackage(packageMetadata);\n return _this;\n }\n /**\n * @hidden\n */\n FloatingLabel.prototype.render = function () {\n var _a = this.props, label = _a.label, editorId = _a.editorId, className = _a.className, labelClassName = _a.labelClassName, editorValue = _a.editorValue, editorPlaceholder = _a.editorPlaceholder, editorValid = _a.editorValid, editorDisabled = _a.editorDisabled, style = _a.style, id = _a.id, optional = _a.optional;\n var localizationService = provideLocalizationService(this);\n var localizedOptional = optional ? localizationService\n .toLanguageString(labelsOptional, messages[labelsOptional]) : '';\n var optionalElement = localizedOptional && (React.createElement(\"span\", { className: 'k-label-optional' }, localizedOptional));\n var spanClassNames = classNames({\n 'k-floating-label-container': true,\n 'k-focus': this.state.focused,\n 'k-empty': !editorPlaceholder && !editorValue && (editorValue !== 0),\n 'k-text-disabled': editorDisabled,\n 'k-rtl': this.props.dir === 'rtl'\n }, className);\n var labelClassNames = classNames({\n 'k-label': true,\n 'k-text-error': editorValid === false,\n 'k-text-disabled': editorDisabled\n }, labelClassName);\n return (React.createElement(\"span\", { id: this.props.id, className: spanClassNames, onFocus: this.handleFocus, onBlur: this.handleBlur, style: style, dir: this.props.dir },\n this.props.children,\n label\n ? editorId\n ? React.createElement(\"label\", { id: id, htmlFor: editorId, className: labelClassNames },\n label,\n optionalElement)\n : React.createElement(\"span\", { id: id, className: labelClassNames },\n label,\n optionalElement)\n : null));\n };\n /**\n * @hidden\n */\n FloatingLabel.propTypes = {\n label: PropTypes.string,\n editorId: PropTypes.string,\n editorValue: PropTypes.oneOfType([PropTypes.string, PropTypes.bool, PropTypes.number]),\n editorPlaceholder: PropTypes.string,\n editorValid: PropTypes.bool,\n editorDisabled: PropTypes.bool,\n id: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n labelClassName: PropTypes.string,\n optional: PropTypes.bool\n };\n return FloatingLabel;\n}(React.Component));\nexport { FloatingLabel };\nregisterForLocalization(FloatingLabel);\n","var _a;\n/**\n * @hidden\n */\nexport var labelsOptional = 'labels.optional';\n/**\n * @hidden\n */\nexport var messages = (_a = {},\n _a[labelsOptional] = '(Optional)',\n _a);\n","/**\n * @hidden\n */\nexport var packageMetadata = {\n name: '@progress/kendo-react-labels',\n productName: 'KendoReact',\n productCodes: ['KENDOUIREACT', 'KENDOUICOMPLETE'],\n publishDate: 1700063806,\n version: '',\n licensingDocsUrl: 'https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning'\n};\n"],"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","TypeError","String","__","this","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","styles","util","ButtonGroup","_super","props","_this","_element","validatePackage","packageMetadata","render","_a","buttons","mapButtons","children","groupClasses","classNames","disabled","width","className","groupProps","style","concat","dir","role","React","ref","div","count","rtl","undefined","getComputedStyle","direction","map","child","index","renderButton","isLast","isRtl","buttonProps","keys","propTypes","PropTypes","noInnerButton","toolbarButtons","button","_b","_c","ScrollDirection","cloneDate","date","Date","getTime","adjustDST","hour","newDate","getHours","setHours","createDate","year","month","day","hours","minutes","seconds","milliseconds","setFullYear","getFullYear","getDate","getMonth","isEqual","candidate","expected","isEqualDate","name","productName","productCodes","publishDate","version","licensingDocsUrl","__spreadArray","to","from","pack","ar","l","slice","RowHeightService","total","rowHeight","detailRowHeight","offsets","heights","agg","idx","push","height","rowIndex","expandDetail","updateRowHeight","collapseDetail","position","offset","totalHeight","reduce","prev","curr","value","arr","x","update","normalize","Math","max","ScrollAction","PageAction","skip","ScrollerService","onScrollAction","onPageAction","firstLoaded","lastLoaded","lastScrollTop","take","rowHeightService","bottomOffset","topOffset","offsetBufferRows","rowsForHeight","skipWithOffset","rowOffset","onScroll","scrollLeft","scrollTop","offsetHeight","offsetWidth","scrollPosition","offsetSize","up","firstItemIndex","lastItemIndex","min","nonVisibleBuffer","floor","ceil","Day","scrollModifiers","Forward","step","Backward","scrollNormalizers","end","scrollValidators","start","Virtualization","scrollContainer","lastDirection","lastTotal","lastTake","animationInProgress","restrictScroll","scrollTo","scrollProperty","current","Number","isInteger","abs","scrollToIndex","animateToIndex","window","cancelAnimationFrame","cancelAnimation","indexOffset","getContainerScrollDirection","scrollRange","scrollStep","modifyScroll","normalizeScroll","isScrollValid","animate","progress","next","requestAnimationFrame","scrollToBottom","duration","scrollDuration","defaultProps","containerScroll","containerScrollPosition","parseInt","staticOffset","maxScrollDifference","maxScroll","containerMaxScroll","sign","difference","containerScrollSize","containerOffsetSize","initServices","dimension","itemHeight","itemWidth","scrollerService","scrollOffsetSize","getContainerProperty","propertyName","handleScroll","event","target","args","scrollAction","pageAction","handleScrollAction","action","handlePageAction","parseFloat","defineProperty","get","enumerable","configurable","activeIndex","itemIndex","itemOffset","isIndexVisible","containerTop","containerBottom","top","bottom","isListScrolled","componentDidMount","onMount","vertexLength","placeholderStyle","rootClassNames","scrollableClassNames","el","tabIndex","isRequired","forceScroll","Direction","addDays","setDate","CalendarViewEnum","dayOfWeek","weekDay","newDay","getDay","moveDateToWeekStart","weekStartDay","Monday","prevDayOfWeek","calcWeekInYear","firstWeekInYear","diffInMS","days","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","CalendarCell","handleClick","onClick","handleMouseEnter","onMouseEnter","handleMouseLeave","onMouseLeave","shouldComponentUpdate","nextProps","newValue","newProps","y","xProps","getOwnPropertyNames","yProps","propName","compareProps","isWeekend","formattedValue","isFocused","isSelected","isInRange","isRangeStart","isRangeMid","isRangeEnd","isRangeSplitStart","isRangeSplitEnd","isToday","isDisabled","other","view","isEndActive","activeRangeEnd","isStartActive","rootClassName","CalendarWeekCell","firstDate","EMPTY_SELECTIONRANGE","nullable","subRequirement","check","required","key","rest","_i","fn","bind","viewInRange","MIDNIGHT_DATE","MIN_DATE","MAX_DATE","MIN_TIME","MAX_TIME","setTime","origin","getMinutes","getSeconds","getMilliseconds","getToday","isInDateRange","isInSelectionRange","selectionRange","range","result","intersects","shiftWeekNames","names","dateInRange","domContainerFactory","type","classes","container","document","createElement","innerHTML","forEach","appendChild","debounce","func","wait","options","lastArgs","lastThis","timerId","lastCallTime","maxWait","root","lastInvokeTime","leading","maxing","trailing","useRAF","invokeFunc","time","thisArg","startTimer","pendingFunc","tmr","setTimeout","shouldInvoke","timeSinceLastCall","timerExpired","now","trailingEdge","timeSinceLastInvoke","timeWaiting","remainingWait","debounced","isInvoking","leadingEdge","cancel","id","clearTimeout","cancelTimer","flush","pending","WeekNamesService","intl","getWeekNames","includeWeekNumber","weekNames","dateFormatNames","nameType","firstDay","emptyCell","View","weekService","buildWeekNumber","row","weekCellValue","getWeekNumber","uniqueID","cellProps","weekCell","buildRow","cell","aria","activeView","firstWeekDateContext","rowCtx","weekNumber","ctx","onChange","nativeEvent","syntheticEvent","onCellEnter","onCellLeave","Boolean","showWeekNumbers","selectedDate","provideIntlService","colSpan","service","rowLength","title","viewDate","data","cellUID","focusedDate","isActiveView","bus","canMoveDown","isMonthView","isHorizontal","scope","prevWeekDate","nextWeekDate","weekInYear","registerForIntl","CalendarHeaderTitle","Button","fillMode","Header","getTitle","currentDate","rangeLength","nextDate","addToDate","handleTitleClick","canMoveUp","moveUp","titleClassNames","headerTitleProps","headerTitle","verticalView","commands","registerForLocalization","prevView","nextView","increaseValue","decreaseValue","today","toggleCalendar","swapStartEnd","separator","toggleDateTimeSelector","selectNow","timePickerCancel","timePickerSet","toggleTimeSelector","toggleClock","dateTimePickerCancel","dateTimePickerSet","dateRangePickerCancel","dateRangePickerSet","messages","TodayCommand","localization","todayIsInRange","event_1","isTodayClick","provideLocalizationService","todayMessage","toLanguageString","todayClassNames","ViewList","virtualization","calendarView","table","viewOffset","viewHeight","isActive","shouldScroll","focusActiveDate","focusedCell","querySelector","nextActiveCell","classList","remove","add","blurActiveDate","handleVirtualizationMount","transform","indexToScroll","buildMonthView","cols","_","buildDates","dates","handleDateChange","calculateHeights","dom","scrollableHeight","scrollableContentHeight","scrollableYearContentHeight","headerHeight","getTake","state","setState","translate","handleTodayClick","lastView","lastFocus","smoothScroll","componentDidUpdate","_prevProps","_prevState","didViewChange","activeDate","fill","didViewChanged","decade","century","datesList","viewListBody","didCalculate","Action","CalendarNavigationItem","text","Navigation","list","maxViewHeight","buildNavigationItem","navigationTitle","navigationItemProps","navigationItem","calendarHeight","navigationItemHeight","monthViewHeight","navigationBody","DOMService","yearViewHeight","decadeViewHeight","centuryViewHeight","calendarWidth","monthViewWidth","yearViewWidth","decadeViewWidth","centuryViewWidth","scrollableContentWidth","hostContainer","ensureHeights","canUseDOM","containerFactory","ul","li","td","th","tr","tbody","thead","monthHeader","repeat","mapper","scrollable","navigationList","navElement","left","viewFactory","renderWeekHeader","viewElement","cells","rows","contentElement","c","content","getScrollable","element","horizontal","scrollableElement","monthView","yearView","decadeView","paddingLeft","paddingRight","getBody","batch","viewType","viewDimension","viewWidth","viewProp","body","appendedContent","removeChild","lastDayOfMonth","addMonths","expectedMonth","setMonth","setYear","addYears","addDecades","addCenturies","normalizeYear","firstDecadeOfCentury","lastDecadeOfCentury","firstYearOfDecade","durationInCenturies","EMPTY_DATA","ACTIONS","Left","Up","Right","Down","PrevView","NextView","FirstInView","LastInView","CenturyViewService","lastDate","baseDate","cellOffset","cellDate","isArray","isSelectedFromArray","cellTitle","isInArray","aboveMin","belowMax","isInSameView","move","modifier","toString","border","lastYearOfDecade","durationInDecades","DecadeViewService","addWeeks","firstDayOfMonth","durationInMonths","MonthViewService","firstMonthDate","lastMonthDate","formatDate","abbrMonthNames","wideMonthNames","prependCell","standAlone","firstMonthOfYear","lastMonthOfYear","durationInYears","YearViewService","_intl","months","currentYear","candidateValue","services","BusViewService","onViewChanged","configure","moveDown","moveToBottom","clamp","KEY_TO_ACTION","UpperView","LowerView","NavigationService","ctrlKey","metaKey","keyCode","ScrollSyncService","divideByMagnitude","powerByMagnitude","navigator","monthScrolled","navScrolled","magnitude","sync","scrollSiblingOf","scrolledElement","component","siblingComponent","calculateScroll","virtualizationProp","calculateValue","stateValue","propValue","CalendarWithoutContext","scrollSyncService","guid","calendarViewList","didNavigationChange","focus","handleNavigationChange","handleViewChange","canNavigateDown","valueDuringOnChange","handleFocus","onFocus","handleBlur","onBlur","handleKeyDown","Keys","enter","navigation","preventDefault","handleMouseDown","preventScroll","defaultValue","defaultActiveView","bottomView","topView","oldValue","Promise","resolve","then","setScrollbarWidth","forceUpdate","prevState","_ref","didValueChange","sanitizedValue","mobileMode","calendarBody","ariaLabelledBy","ariaDescribedBy","onKeyDown","onMouseDown","displayName","componentName","prop","Error","CalendarPropsContext","createPropsContext","Calendar","withPropsContext","Mask","symbols","partMap","dateSymbolMap","part","pattern","wrapperClasses","KendoDate","intlProvider","formatPlaceholder","format","leadingZero","typedMonthPart","knownParts","_value","monthNames","allFormatedMonths","setValue","modifyExisting","hasValue","splitDateFormat","a","getExisting","getDateObject","getTextAndFormat","merge","dateFormatString","sampleFormat","setExisting","symbol","modifyPart","setMinutes","setSeconds","parsePart","currentChar","resetLeadingZero","dateParts","baseFormat","replaced","prefix","suffix","parsedDate","matchMonth","charAt","middle","middleNumber","parseDate","isNaN","monthNumber","isAbbrMonth","symbolMap","hasLeadingZero","parts","partPattern","filter","typedChar","toLowerCase","monthAsNum","substring","dateFormatParts","partLength","returnValue","join","mask","resultText","resultFormat","r","currentSymbol","dateFieldName","TIME_PART","setter","method","clone","defaultGetters","getter","generateGetters","getters","g","getterByPart","obj","convertToObject","gettersFactory","generateSnappers","steps","minValue","snapValue","snappersFactory","snapTime","snappers","getNow","normalizeTimes","maxValue","isInTimeRange","isSmallerThanMin","val","normalizedValue","normalizedMin","isBiggerThanMax","DateInputWithoutContext","kendoDate","currentFormat","paste","_wrapper","_inputId","_lastSelectedSymbol","setValidity","setCustomValidity","validity","valid","validationMessage","updateOnPaste","triggerChange","spinnersMouseDown","activeElement","getActiveElement","handlePaste","elementChange","dateBeforeChange","diff","oldTextOrigin","oldFormat","newTextOrigin","selectionStart","oldTextSeparator","oldText","newText","deletedSymbol","approximateStringMatching","selection","navigationOnly","setSelection","selectionBySymbol","switchDateSegment","elementClick","selectionByIndex","nativeWheel","wheel","deltaY","increasePart","decreasePart","modifyDateSegmentValue","elementKeyDown","altKey","elementOnFocus","wrapper","focused","elementOnBlur","addEventListener","passive","placeholder","componentWillUnmount","removeEventListener","size","_d","rounded","localizationService","label","currentText","inputId","isValid","validityStyles","wrapperClassesInstance","dateinput","AsyncFocusBlur","span","kendoThemeMaps","sizeMap","roundedMap","ariaRole","readOnly","readonly","spellCheck","autoComplete","autoCorrect","ariaLabel","ariaHasPopup","ariaExpanded","ariaControls","onWheel","onInput","onPaste","noop","input","spinners","icon","svgIcon","caretAltUpIcon","caretAltDownIcon","FloatingLabel","editorId","editorValue","editorValid","editorDisabled","DateInput","inRange","minTime","maxTime","customError","rangeOverflow","rangeUnderflow","valueMissing","selectionEnd","disableSelection","setSelectionRange","j","previousFormatSymbol","currentStepSymbol","skeleton","datetime","era","weekday","hour12","minute","second","timeZoneName","validate","DateInputPropsContext","ToggleButton","PickerWrap","PickerFloatingLabel","floatingLabelProps","dateInput","show","setShow","usePickerFloatingLabel","AdaptiveMode","footer","windowWidth","navigatable","navigatableElements","expand","animation","onClose","adaptiveTitle","mobileFilter","animationStyles","ActionSheet","ActionSheetHeader","xIcon","ActionSheetFooter","cancelText","onCancel","themeColor","applyText","onApply","MOBILE_MEDIUM_DEVISE","DatePickerWithoutContext","_popupId","_dateInput","_calendar","shouldFocusDateInput","prevShow","setCalendarRef","calendar","nextValue","nextState","nextShow","renderPopup","popupSettings","popupClass","otherPopupSettings","popupClassNames","popupProps","anchor","anchorAlign","vertical","popupAlign","calendarProps","handleCalendarValueChange","calendarComp","popupComp","renderAdaptivePopup","actionSheetProps","ActionSheetContent","handleInputValueChange","handleValueChange","mergeTime","showDuringOnChange","handleIconClick","handleIconMouseDown","esc","down","stopPropagation","defaultShow","ownerDocument","adaptive","toggleButton","popup","pickerWrap","observerResize","ResizeObserver","calculateMedia","observe","nextTickId","disconnect","dateInputProps","toggleButtonTitle","datepicker","onSyncBlur","onSyncFocus","dateInputComp","toggleButtonComp","calendarIcon","onOpen","nextTick","f","entries","entries_1","entry","clientWidth","appendTo","Popup","DatePickerPropsContext","DatePicker","rangeValue","isAM","inReverseRange","DayPeriodService","hourAM","candidateAM","normalizedRange","settings","dayPeriod","am","pm","reverse","isRangeChanged","limitRange","selectedIndex","valueInList","minHour","maxHour","distanceFromMin","limit","borderValue","barrier","limitDown","limitUp","HOURS_IN_DAY","HoursService","boundRange","insertUndividedMax","toListItem","_e","selectedValue","getHour","stepper","countFromMin","addLast","addMissing","last","isLastMissing","missing","isMissing","divideByStep","lastHour","missingItem","splice","clampToRange","MINUTES_IN_HOUR","MinutesService","getMinute","lastMinute","SECONDS_IN_HOUR","SecondsService","getSecond","lastSecond","timeListHeight","timeWrapper","home","TimeList","listHeight","topThreshold","bottomThreshold","valueIndex","distance","scrollUp","MOBILE_MODE_OFFSET","configureServices","newMin","newMax","serviceSettings","defaults","dataItem","handleChange","handleMouseOver","msTransform","item","onMouseOver","formatRegExp","RegExp","TimePart","_nowButton","timeLists","timeList","activeListIndex","hasActiveButton","timeFormatReducer","acc","timeFormatFilter","all","prevItem","test","focusList","listReducer","showNowButton","hasSteps","nowButton","right","handleListBlur","handleListFocus","timeInRange","onNowClick","selectNowMessage","btn","k","cancelButton","TimeSelector","_cancelButton","_acceptButton","timePart","focusActiveList","handleAccept","mergeValue","handleReject","onReject","handleNowClick","handleTimeChange","valueMerger","cancelMessage","setMessage","TimePickerWithoutContext","_timeSelector","renderTimeSelector","setTimeSelectorRef","handleValueReject","timeSelector","normalizeTime","toggleClockMessage","toggleTimeMessage","timepicker","clockIcon","TimePickerPropsContext","TimePicker","HorizontalViewList","rotateSelectionRange","needRotate","allowReverse","views","extractDateFromValue","MultiViewCalendarWithoutContext","extractMultipleFromValue","extractRangeFromValue","extractFocusedDate","single","multiple","selectedMultiple","selectedRange","_focusedDate","wrapperID","calculateFocusFromValue","clampRange","rangeWithFocused","generateRange","shouldSwap","activeRange","canNavigate","navigate","navigateDate","clampDate","shouldAutoCorrect","handleCellEnter","mode","handlePrevButtonClick","inMonthDate","isInMonth","handleNextButtonClick","index_1","calculatedFocus","extractActiveRange","lastViewsCount","wrapperClassName","visualizedRange","prevViewTitle","nextViewTittle","isPrevDisabled","isNextDisabled","prevBtnAria","nextBtnAria","isDateInMonth","didViewsCountChange","chevronRightIcon","chevronLeftIcon","MultiViewCalendarPropsContext","MultiViewCalendar","DateRangePickerWithoutContext","_startDateInput","_endDateInput","_startInputId","_endInputId","shouldFocusCalendar","startDateInput","focusCalendarElement","calculateShow","renderCalendar","calendarSettings","handleCalendarChange","handleCancel","handleReverseClick","handleReverseMouseDown","currentValue","handleEndChange","handleStartChange","tab","endDateInput","focusDateInputElement","valueToShow","startDateInputId","startDateInputSettings","endDateInputId","endDateInputSettings","startMessage","endMessage","separatorMessage","startDateInputProps","endDateInputProps","reverseButton","IconWrap","arrowsSwapIcon","swapButton","DateRangePickerPropsContext","DateRangePicker","DateTimeSelector","_timePart","_calendarWrap","shouldFocusPart","calendarElement","nextPart","dateTimeFooter","set","hasDateValue","dateValue","timeValue","mergeDate","timeOverride","handleTimeListContainerChange","handleDateClick","handleTimeClick","handleTimePartMount","footerActions","dateMessage","timeMessage","selected","togglable","normalizeRange","DateTimePickerWithoutContext","_dateTimeSelector","dateInputElement","renderPicker","dateTimeSelector","handleDateIconClick","PopupComponent","dataInputProps","dateTimePicker","DateTimePickerPropsContext","DateTimePicker","labelClassName","editorPlaceholder","optional","localizedOptional","labelsOptional","optionalElement","spanClassNames","labelClassNames","htmlFor"],"sourceRoot":""}