@progress/kendo-angular-grid
Version:
Kendo UI Grid for Angular - high performance data grid with paging, filtering, virtualization, CRUD, and more.
87 lines (86 loc) • 2.24 kB
JavaScript
/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { cancelIcon, insertMiddleIcon } from '@progress/kendo-svg-icons';
/**
* @hidden
*/
export const isNextSibling = (dropTarget, dragTarget) => dropTarget === dragTarget.nextElementSibling;
/**
* @hidden
*/
export const isPreviousSibling = (dropTarget, dragTarget) => dropTarget === dragTarget.previousElementSibling;
/**
* @hidden
*/
export const isDifferentParent = (dropTarget, dragTarget) => dropTarget?.parentElement !== dragTarget?.parentElement;
/**
* @hidden
*/
export function getOffset(element) {
const { clientTop, clientLeft } = getDocument(element);
const { pageYOffset, pageXOffset } = getWindow(element);
const { top, left } = element.getBoundingClientRect();
return {
top: top + pageYOffset - clientTop,
left: left + pageXOffset - clientLeft
};
}
/**
* @hidden
*/
export const hintIcons = {
forbidden: 'cancel',
before: 'insert-middle',
after: 'insert-middle'
};
/**
* @hidden
*/
export const hintSVGIcons = {
forbidden: cancelIcon,
before: insertMiddleIcon,
after: insertMiddleIcon
};
/**
* @hidden
*/
export const dropPosition = {
forbidden: 'forbidden',
before: 'before',
after: 'after'
};
/**
* @hidden
*/
export const hintStyles = {
zIndex: '20000',
display: 'flex',
position: 'fixed'
};
/**
* @hidden
*/
export const hintClasses = ['k-drag-clue', 'k-reorder-clue'];
/**
* @hidden
*/
export const dropIndicatorStyles = {
zIndex: '19000',
position: 'absolute'
};
/**
* @hidden
*/
export const dropIndicatorClasses = ['k-drop-hint', 'k-drop-hint-h'];
/**
* @hidden
*/
export const defaultSelectors = {
handle: '.k-table-td.k-drag-cell',
dragTarget: '.k-master-row',
dropTarget: '.k-master-row'
};
const getDocument = element => element?.ownerDocument.documentElement;
const getWindow = element => element?.ownerDocument.defaultView;