/**----------------------------------------------------------------------------------------- * Copyright © 2026 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the project root for more information *-------------------------------------------------------------------------------------------*/ import { RowArgs } from "../rendering/common/row-args"; /** * Arguments for the [`rowPinChange`](https://www.telerik.com/kendo-angular-ui/components/grid/api/gridcomponent#rowpinchange) event. */ export interface RowPinEvent { /** * The data item that triggered the pin update. */ dataItem: any; /** * The updated collection of items pinned to the top of the Grid. */ pinnedTopRows: Array; /** * The updated collection of items pinned to the bottom of the Grid. */ pinnedBottomRows: Array; } /** * Sets the allowed position for pinning rows in the Grid. * * The available values are: * * `top`—Allows pinning rows to the top of the Grid only. * * `bottom`—Allows pinning rows to the bottom of the Grid only. * * `both`—Allows pinning rows to both the top and bottom of the Grid. */ export type GridRowPinLocation = 'top' | 'bottom' | 'both'; /** * Represents the callback used to determine whether a data row is pinnable. Used by the [`isRowPinnable`](https://www.telerik.com/kendo-angular-ui/components/grid/api/gridcomponent#isrowpinnable) property. * * @example * ```typescript * isRowPinnableCallback({ dataItem, index }) { * return index % 2 === 0; * } * ``` */ export type RowPinnableFn = (context: RowArgs) => boolean;