UNPKG

devextreme

Version:

JavaScript/TypeScript Component Suite for Responsive Web Development

71 lines (70 loc) 2.98 kB
/** * DevExtreme (cjs/__internal/grids/data_grid/ai_assistant/commands/grouping.js) * Version: 26.1.3 * Build date: Wed Jun 10 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.groupingCommand = exports.clearGroupingCommand = void 0; var _defineGridCommand = require("../../../../grids/grid_core/ai_assistant/commands/defineGridCommand"); var _zod = require("zod"); const groupingCommandSchema = _zod.z.object({ dataField: _zod.z.string(), groupIndex: _zod.z.number().int().nonnegative().nullable() }).strict(); const getGroupingDefaultMessage = (args, column) => { const columnName = (null === column || void 0 === column ? void 0 : column.caption) ?? args.dataField; if (null === args.groupIndex) { return `Ungroup data against "${columnName}".` } return `Group data against "${columnName}".` }; const groupingCommand = exports.groupingCommand = (0, _defineGridCommand.defineGridCommand)({ name: "grouping", description: "Group rows by a column at the given level (0 = outermost). Setting groupIndex to an in-use value shifts the existing column down; gaps auto-collapse. Pass null to ungroup. To replace existing grouping, ungroup each currently grouped column, then group new ones at consecutive indices 0, 1, 2, ...", schema: groupingCommandSchema, execute: (component, _ref) => { let { success: success, failure: failure } = _ref; return args => { const columnsController = component.getController("columns"); const column = columnsController.columnOption(args.dataField); const defaultMessage = getGroupingDefaultMessage(args, column); if (!column || false === column.allowGrouping) { return Promise.resolve(failure(defaultMessage)) } try { columnsController.columnOption(column.index, "groupIndex", args.groupIndex ?? void 0); return Promise.resolve(success(defaultMessage)) } catch { return Promise.resolve(failure(defaultMessage)) } } } }); const clearGroupingCommand = exports.clearGroupingCommand = (0, _defineGridCommand.defineGridCommand)({ name: "clearGrouping", description: "Remove grouping from all columns", schema: _zod.z.object({}).strict(), execute: (component, _ref2) => { let { success: success, failure: failure } = _ref2; return () => { try { component.getController("columns").clearGrouping(); return Promise.resolve(success("Clear grouping.")) } catch { return Promise.resolve(failure("Clear grouping.")) } } } });