UNPKG

devextreme

Version:

JavaScript/TypeScript Component Suite for Responsive Web Development

107 lines (106 loc) 3.81 kB
/** * DevExtreme (cjs/__internal/scheduler/header/m_view_switcher.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.getTabViewSwitcher = exports.getDropDownViewSwitcher = void 0; var _themes = require("../../../ui/themes"); var _m_utils = require("./m_utils"); const ClASS = { container: "dx-scheduler-view-switcher", dropDownButton: "dx-scheduler-view-switcher-dropdown-button", dropDownButtonContent: "dx-scheduler-view-switcher-dropdown-button-content" }; const getViewsAndSelectedView = header => { const { views: views, currentView: currentView } = header.option(); const formattedViews = (0, _m_utils.formatViews)(views); const selectedView = (0, _m_utils.getViewName)(currentView); const isSelectedViewInViews = formattedViews.some(view => view.name === selectedView); return { selectedView: isSelectedViewInViews ? selectedView : void 0, views: formattedViews } }; const isViewSwitcherVisible = views => views.length > 1; const getTabViewSwitcher = (header, item) => { const { selectedView: selectedView, views: views } = getViewsAndSelectedView(header); const isVisible = isViewSwitcherVisible(views); const stylingMode = (0, _themes.isFluent)((0, _themes.current)()) ? "outlined" : "contained"; return Object.assign({ widget: "dxButtonGroup", locateInMenu: "auto", location: "after", name: "viewSwitcher", cssClass: ClASS.container, visible: isVisible, options: { items: views, keyExpr: "name", selectedItemKeys: [selectedView], stylingMode: stylingMode, onItemClick: e => { header.updateCurrentView(e.itemData) }, onContentReady: e => { const viewSwitcher = e.component; header.addEvent("currentView", view => { viewSwitcher.option("selectedItemKeys", [(0, _m_utils.getViewName)(view)]) }) } } }, item) }; exports.getTabViewSwitcher = getTabViewSwitcher; const getDropDownViewSwitcher = (header, item) => { const { selectedView: selectedView, views: views } = getViewsAndSelectedView(header); const isVisible = isViewSwitcherVisible(views); return Object.assign({ widget: "dxDropDownButton", locateInMenu: "never", location: "after", name: "viewSwitcher", cssClass: ClASS.container, visible: isVisible, options: { items: views, useSelectMode: true, keyExpr: "name", selectedItemKey: selectedView, displayExpr: "text", showArrowIcon: true, elementAttr: { class: ClASS.dropDownButton }, onItemClick: e => { header.updateCurrentView(e.itemData) }, onContentReady: e => { const viewSwitcher = e.component; header.addEvent("currentView", view => { viewSwitcher.option("selectedItemKey", (0, _m_utils.getViewName)(view)) }) }, dropDownOptions: { width: "max-content", _wrapperClassExternal: ClASS.dropDownButtonContent } } }, item) }; exports.getDropDownViewSwitcher = getDropDownViewSwitcher;