UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

101 lines (99 loc) 4.1 kB
/** * DevExtreme (cjs/__internal/grids/new/card_view/context_menu/controller.js) * Version: 25.1.3 * Build date: Wed Jun 25 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.ContextMenuController = void 0; var _index = require("../../grid_core/columns_controller/index"); var _controller = require("../../grid_core/context_menu/controller"); var _index2 = require("../../grid_core/sorting_controller/index"); var _options_controller = require("../options_controller"); function _extends() { return _extends = Object.assign ? Object.assign.bind() : function(n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) { ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]) } } return n }, _extends.apply(null, arguments) } class ContextMenuController extends _controller.BaseContextMenuController { constructor(columnsController, options, sortingController) { super(); this.columnsController = columnsController; this.options = options; this.sortingController = sortingController } show(event, view) { let contextInfo = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; let onMenuCloseCallback = arguments.length > 3 ? arguments[3] : void 0; super.show(event, view, contextInfo, onMenuCloseCallback) } getItems(view, targetElement) { let contextInfo = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; const items = []; if ("headerPanel" === view && contextInfo.column) { items.push(...this.getSortingItems(contextInfo.column)) } const event = _extends({ items: items.length > 0 ? items : void 0, target: view, targetElement: targetElement, columnIndex: void 0, card: void 0, cardIndex: void 0, column: void 0 }, contextInfo); const callback = this.options.action("onContextMenuPreparing").peek(); callback(event); return event.items } getSortingItems(column) { const mode = this.sortingController.mode.value; const isDisabled = "none" === mode || !column.allowSorting; const onItemClick = event => { this.handleSortMenuClick(event, mode, column) }; return [{ text: this.options.oneWay("sorting.ascendingText").peek(), value: "asc", disabled: isDisabled || "asc" === column.sortOrder, icon: "sortuptext", onItemClick: onItemClick }, { text: this.options.oneWay("sorting.descendingText").peek(), value: "desc", disabled: isDisabled || "desc" === column.sortOrder, icon: "sortdowntext", onItemClick: onItemClick }, { text: this.options.oneWay("sorting.clearText").peek(), value: void 0, disabled: isDisabled || !column.sortOrder, icon: "none", onItemClick: onItemClick }] } handleSortMenuClick(e, mode, column) { var _e$itemData; const sortOrder = null === (_e$itemData = e.itemData) || void 0 === _e$itemData ? void 0 : _e$itemData.value; switch (mode) { case "single": this.sortingController.onSingleModeSortCore(column, true, sortOrder); break; case "multiple": this.sortingController.onMultipleModeSortCore(column, false, sortOrder) } } } exports.ContextMenuController = ContextMenuController; ContextMenuController.dependencies = [_index.ColumnsController, _options_controller.OptionsController, _index2.SortingController];