/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2026 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ import { default as PropTypes } from 'prop-types'; import { DraggableDragEvent, DraggableDragStartEvent, DraggableReleaseEvent, Navigation } from '@progress/kendo-react-common'; import { SortableProps } from './interfaces/SortableProps.js'; import { SortableDefaultProps } from './interfaces/SortableDefaultProps.js'; import * as React from 'react'; /** * @hidden */ interface SortableState { clientX: number; clientY: number; isDragging: boolean; activeId: string; dragCueWidth: number; dragCueHeight: number; } export declare class Sortable extends React.Component { /** * @hidden */ static defaultProps: SortableDefaultProps; /** * @hidden */ static propTypes: { idField: PropTypes.Validator; disabledField: PropTypes.Requireable; data: PropTypes.Validator; tabIndex: PropTypes.Requireable; navigation: PropTypes.Requireable; animation: PropTypes.Requireable; itemsWrapUI: PropTypes.Requireable; itemUI: PropTypes.Validator<(...args: any[]) => any>; emptyItemUI: PropTypes.Requireable<(...args: any[]) => any>; style: PropTypes.Requireable; className: PropTypes.Requireable; onDragStart: PropTypes.Requireable<(...args: any[]) => any>; onDragOver: PropTypes.Requireable<(...args: any[]) => any>; onDragEnd: PropTypes.Requireable<(...args: any[]) => any>; onNavigate: PropTypes.Requireable<(...args: any[]) => any>; }; /** * @hidden */ state: { clientX: number; clientY: number; isDragging: boolean; activeId: string; dragCueWidth: number; dragCueHeight: number; }; private isRtl; private get container(); private itemRefsMap; private oldSizesMap; private animatingItemMap; private draggableRef; private offsetParent; private isUnmounted; private focusActiveId; private isKeyboardNavigated; private isDragPrevented; private navigation?; private readonly showLicenseWatermark; private readonly licenseMessage?; constructor(props: SortableProps); /** * @hidden */ getSnapshotBeforeUpdate(): null; /** * @hidden */ componentDidUpdate(previousProps: SortableProps): void; /** * @hidden */ componentDidMount(): void; /** * @hidden */ componentWillUnmount(): void; /** * @hidden */ windowTimeout: (id: any) => void; /** * @hidden */ swapItems: (newState: object[], source: number, destination: number) => number; /** * @hidden */ generateNewState: (prevIndex: number, nextIndex: number) => object[]; /** * @hidden */ closestSortableItem: (target: HTMLElement | null) => { element: HTMLElement | null; id: string; }; /** * @hidden */ isSortable: (target: HTMLElement) => boolean; /** * @hidden */ closestSortable: (target: HTMLElement | null) => HTMLElement | null; /** * @hidden */ isSameSortable: (element: HTMLElement) => boolean; /** * @hidden */ idComparer: (id1: any, id2: any) => boolean; /** * @hidden */ findItem: (id: string) => object | undefined; /** * @hidden */ findIndex: (id: string) => number; /** * @hidden */ isItemDisabled: (item: any) => boolean; /** * @hidden */ shouldResetActive: () => boolean; /** * @hidden */ parentOffset(): any; /** * @hidden */ widgetTarget: (target: any) => boolean; /** * @hidden */ allowDrag: (target: HTMLElement) => boolean; /** * @hidden */ onDragStart: (eventData: DraggableDragStartEvent) => void; /** * @hidden */ onDragOver: (eventData: DraggableDragEvent) => void; /** * @hidden */ onDragEnd: (eventData: DraggableReleaseEvent) => void; /** * @hidden */ shouldReorder: (draggerOverElement: HTMLElement | null, clientX: number, clientY: number) => boolean | null; /** * @hidden */ thresholdRect: (draggerOverElement: HTMLElement | null) => { top: number; left: number; bottom: number; right: number; } | null; /** * @hidden */ onItemBlur: () => void; /** * @hidden */ onItemFocus: (event: React.FocusEvent) => void; /** * @hidden */ resetState: (resetActive?: boolean) => void; /** * @hidden */ renderData: () => React.JSX.Element[]; /** * @hidden */ renderNoData: () => React.JSX.Element | undefined; /** * @hidden */ renderDragCue: () => React.JSX.Element | undefined; /** * @hidden */ refAssign: (element: any, id: any) => void; /** * @hidden */ draggableRefAssign: (ref: any) => void; /** * @hidden */ onKeyDown: (event: React.KeyboardEvent) => void; /** * @hidden */ handleNext: (t: HTMLElement, nav: Navigation, ev: React.KeyboardEvent) => void; handlePrev: (t: HTMLElement, nav: Navigation, ev: React.KeyboardEvent) => void; moveItem: (t: HTMLElement, nav: Navigation, ev: React.KeyboardEvent, direction: 'next' | 'prev') => void; render(): React.JSX.Element; } export {};