UNPKG

devextreme

Version:

JavaScript/TypeScript Component Suite for Responsive Web Development

138 lines (136 loc) 5.34 kB
/** * DevExtreme (cjs/__internal/scheduler/header/m_calendar.js) * Version: 25.2.7 * Build date: Tue May 05 2026 * * Copyright (c) 2012 - 2026 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 _ui = _interopRequireDefault(require("../../../ui/popover/ui.popover")); var _ui2 = _interopRequireDefault(require("../../../ui/popup/ui.popup")); var _widget = _interopRequireDefault(require("../../core/widget/widget")); var _calendar = _interopRequireDefault(require("../../ui/calendar/calendar")); var _scrollable = _interopRequireDefault(require("../../ui/scroll_view/scrollable")); 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 _widget.default { async show(target) { var _this$overlay2; if (!SchedulerCalendar.isMobileLayout()) { var _this$overlay; null === (_this$overlay = this.overlay) || void 0 === _this$overlay || _this$overlay.option("target", target) } await (null === (_this$overlay2 = this.overlay) || void 0 === _this$overlay2 ? void 0 : _this$overlay2.show()) } async hide() { var _this$overlay3; await (null === (_this$overlay3 = this.overlay) || void 0 === _this$overlay3 ? void 0 : _this$overlay3.hide()) } _keyboardHandler(opts) { var _this$calendar; return (null === (_this$calendar = this.calendar) || void 0 === _this$calendar ? void 0 : _this$calendar._keyboardHandler(opts)) ?? false } _init() { super._init(); this.$element() } _render() { super._render(); this.renderOverlay() } renderOverlay() { this.$element().addClass(CALENDAR_POPOVER_CLASS); const isMobileLayout = SchedulerCalendar.isMobileLayout(); const overlayConfig = { contentTemplate: () => this.createOverlayContent(), onShown: () => { var _this$calendar2; null === (_this$calendar2 = this.calendar) || void 0 === _this$calendar2 || _this$calendar2.focus() }, defaultOptionsRules: [{ device: () => isMobileLayout, options: { fullScreen: true, showCloseButton: false, toolbarItems: [{ shortcut: "cancel" }], _ignorePreventScrollEventsDeprecation: true, preventScrollEvents: false, enableBodyScroll: false } }] }; if (isMobileLayout) { this.overlay = this._createComponent(this.$element(), _ui2.default, overlayConfig) } else { this.overlay = this._createComponent(this.$element(), _ui.default, overlayConfig) } } createOverlayContent() { const result = (0, _renderer.default)("<div>").addClass(CALENDAR_CLASS); this.calendar = this._createComponent(result, _calendar.default, this.getCalendarOptions()); if (SchedulerCalendar.isMobileLayout()) { const scrollable = this.createScrollable(result); return scrollable.$element() } return result } createScrollable(content) { const result = this._createComponent("<div>", _scrollable.default, { height: "auto", direction: "both" }); result.$content().append(content); return result } _optionChanged(args) { var _this$calendar3; const { name: name, value: value } = args; if ("value" === name) { null === (_this$calendar3 = this.calendar) || void 0 === _this$calendar3 || _this$calendar3.option("value", value) } } getCalendarOptions() { const { value: value, min: min, max: max, firstDayOfWeek: firstDayOfWeek, focusStateEnabled: focusStateEnabled, tabIndex: tabIndex, onValueChanged: onValueChanged } = this.option(); return { value: value, min: min, max: max, firstDayOfWeek: firstDayOfWeek, focusStateEnabled: focusStateEnabled, tabIndex: tabIndex, onValueChanged: onValueChanged, skipFocusCheck: true } } static isMobileLayout() { return !_devices.default.current().generic } } exports.default = SchedulerCalendar; (0, _component_registrator.default)("dxSchedulerCalendarPopup", SchedulerCalendar);