UNPKG

@progress/kendo-angular-treelist

Version:

Kendo UI TreeList for Angular - Display hierarchical data in an Angular tree grid view that supports sorting, filtering, paging, and much more.

49 lines (48 loc) 2.51 kB
/**----------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the project root for more information *-------------------------------------------------------------------------------------------*/ import { Injectable } from "@angular/core"; import { RowReorderService } from './row-reorder.service'; import { isPresent } from "../utils"; import * as i0 from "@angular/core"; /** * @hidden */ export class FlatRowReorderService extends RowReorderService { isOverChild(targetItem) { const { draggedRows } = this.rowReorderArgs(this.dragTarget, this.dropTarget, this.view); const draggedItem = draggedRows[0].dataItem; const hasParent = isPresent(targetItem[this.parentIdField]); const sameParents = draggedItem[this.parentIdField] === targetItem[this.parentIdField]; if (!hasParent || sameParents) { return false; } if (targetItem && targetItem.hasOwnProperty(this.parentIdField)) { if (draggedItem[this.idField] === targetItem[this.parentIdField]) { return true; } const parent = this.data.find(i => i[this.idField] === targetItem[this.parentIdField]); if (parent) { return this.isOverChild(parent); } } } reorderRows(ev, collection) { const { draggedRows, dropTargetRow } = ev; const draggedDataItem = draggedRows[0].dataItem; const dropTargetDataItem = dropTargetRow.dataItem; let dropTargetIdx = collection.indexOf(dropTargetDataItem); const draggedItemIdx = collection.indexOf(draggedDataItem); collection.splice(draggedItemIdx, 1); if (ev.dropPosition === 'after' && dropTargetIdx < draggedItemIdx) { dropTargetIdx++; } collection.splice(dropTargetIdx, 0, draggedDataItem); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FlatRowReorderService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FlatRowReorderService }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FlatRowReorderService, decorators: [{ type: Injectable }] });