UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

119 lines (117 loc) 4.45 kB
/** * DevExtreme (cjs/__internal/scheduler/header/m_calendar.js) * Version: 24.2.6 * Build date: Mon Mar 17 2025 * * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _component_registrator = _interopRequireDefault(require("../../../core/component_registrator")); var _devices = _interopRequireDefault(require("../../../core/devices")); var _renderer = _interopRequireDefault(require("../../../core/renderer")); var _calendar = _interopRequireDefault(require("../../../ui/calendar")); var _ui = _interopRequireDefault(require("../../../ui/popover/ui.popover")); var _ui2 = _interopRequireDefault(require("../../../ui/popup/ui.popup")); var _ui3 = _interopRequireDefault(require("../../../ui/scroll_view/ui.scrollable")); var _ui4 = _interopRequireDefault(require("../../../ui/widget/ui.widget")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e } } const CALENDAR_CLASS = "dx-scheduler-navigator-calendar"; const CALENDAR_POPOVER_CLASS = "dx-scheduler-navigator-calendar-popover"; class SchedulerCalendar extends _ui4.default { show(target) { if (!this._isMobileLayout()) { this._overlay.option("target", target) } this._overlay.show() } hide() { this._overlay.hide() } _keyboardHandler(opts) { var _this$_calendar; null === (_this$_calendar = this._calendar) || void 0 === _this$_calendar || _this$_calendar._keyboardHandler(opts) } _init() { super._init(); this.$element() } _render() { super._render(); this._renderOverlay() } _renderOverlay() { this.$element().addClass(CALENDAR_POPOVER_CLASS); const isMobileLayout = this._isMobileLayout(); const overlayType = isMobileLayout ? _ui2.default : _ui.default; this._overlay = this._createComponent(this.$element(), overlayType, { contentTemplate: () => this._createOverlayContent(), onShown: () => this._calendar.focus(), defaultOptionsRules: [{ device: () => isMobileLayout, options: { fullScreen: true, showCloseButton: false, toolbarItems: [{ shortcut: "cancel" }], _ignorePreventScrollEventsDeprecation: true, preventScrollEvents: false, enableBodyScroll: false } }] }) } _createOverlayContent() { const result = (0, _renderer.default)("<div>").addClass(CALENDAR_CLASS); this._calendar = this._createComponent(result, _calendar.default, this._getCalendarOptions()); if (this._isMobileLayout()) { const scrollable = this._createScrollable(result); return scrollable.$element() } return result } _createScrollable(content) { const result = this._createComponent("<div>", _ui3.default, { height: "auto", direction: "both" }); result.$content().append(content); return result } _optionChanged(_ref) { var _this$_calendar2; let { name: name, value: value } = _ref; if ("value" === name) { null === (_this$_calendar2 = this._calendar) || void 0 === _this$_calendar2 || _this$_calendar2.option("value", value) } } _getCalendarOptions() { return { value: this.option("value"), min: this.option("min"), max: this.option("max"), firstDayOfWeek: this.option("firstDayOfWeek"), focusStateEnabled: this.option("focusStateEnabled"), onValueChanged: this.option("onValueChanged"), skipFocusCheck: true, tabIndex: this.option("tabIndex") } } _isMobileLayout() { return !_devices.default.current().generic } } exports.default = SchedulerCalendar; (0, _component_registrator.default)("dxSchedulerCalendarPopup", SchedulerCalendar);