@progress/kendo-angular-treeview
Advanced tools
Comparing version 4.1.0 to 4.1.1-dev.202002201511
@@ -5,7 +5,56 @@ /**----------------------------------------------------------------------------------------- | ||
*-------------------------------------------------------------------------------------------*/ | ||
import { isPresent, closestNode, closestWithMatch, hasParent, elementCoords, isContent, nodeId } from '../utils'; | ||
import { isDocumentAvailable } from '@progress/kendo-angular-common'; | ||
import { isPresent, closestNode, closestWithMatch, hasParent, isContent, nodeId } from '../utils'; | ||
import { DropPosition, DropAction } from './models'; | ||
/** | ||
* Checks if the browser supports relative stacking context. | ||
* https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context | ||
*/ | ||
var hasRelativeStackingContext = function () { | ||
if (!isDocumentAvailable()) { | ||
return false; | ||
} | ||
var top = 10; | ||
var parent = document.createElement("div"); | ||
parent.style.transform = "matrix(10, 0, 0, 10, 0, 0)"; | ||
parent.innerHTML = "<div style=\"position: fixed; top: " + top + "px;\">child</div>"; | ||
document.body.appendChild(parent); | ||
var isDifferent = parent.children[0].getBoundingClientRect().top !== top; | ||
document.body.removeChild(parent); | ||
return isDifferent; | ||
}; | ||
var ɵ0 = hasRelativeStackingContext; | ||
var HAS_RELATIVE_STACKING_CONTEXT = hasRelativeStackingContext(); | ||
/** | ||
* @hidden | ||
* | ||
* Gets the offset of the parent element if the latter has the `transform` CSS prop applied. | ||
* Transformed parents create new stacking context and the `fixed` children must be position based on the transformed parent. | ||
* https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context | ||
* | ||
* If no parent container is `transform`-ed the function will return `{ left: 0, top: 0 }`; | ||
*/ | ||
export var getContainerOffset = function (element) { | ||
if (!(element && HAS_RELATIVE_STACKING_CONTEXT)) { | ||
return { left: 0, top: 0 }; | ||
} | ||
var offsetParent = element.parentElement; | ||
while (offsetParent) { | ||
if (window.getComputedStyle(offsetParent).transform !== 'none') { | ||
break; | ||
} | ||
offsetParent = offsetParent.parentElement; | ||
} | ||
if (offsetParent) { | ||
var rect = offsetParent.getBoundingClientRect(); | ||
return { | ||
left: rect.left - offsetParent.scrollLeft, | ||
top: rect.top - offsetParent.scrollTop | ||
}; | ||
} | ||
return { left: 0, top: 0 }; | ||
}; | ||
/** | ||
* @hidden | ||
*/ | ||
export var getDropAction = function (dropPosition, dropTarget) { | ||
@@ -29,4 +78,4 @@ if (!(isPresent(dropPosition) && isPresent(dropTarget))) { | ||
*/ | ||
export var getDropPosition = function (draggedItem, target, pageY, targetTreeView) { | ||
if (!(isPresent(target) && targetTreeView)) { | ||
export var getDropPosition = function (draggedItem, target, clientY, targetTreeView, containerOffset) { | ||
if (!(isPresent(draggedItem) && isPresent(target) && isPresent(targetTreeView) && isPresent(containerOffset))) { | ||
return; | ||
@@ -45,17 +94,20 @@ } | ||
} | ||
var itemCoords = elementCoords(content); | ||
var itemViewPortCoords = content.getBoundingClientRect(); | ||
/* | ||
if the user is hovering a treeview item, split the item height into four parts: | ||
dropping into the top quarter should insert the dragged item before the drop target | ||
dropping into the bottom quarter should insert the dragged item after the drop target | ||
dropping into the second or third quarter should add the item as child node of the drop target | ||
- dropping into the top quarter should insert the dragged item before the drop target | ||
- dropping into the bottom quarter should insert the dragged item after the drop target | ||
- dropping into the second or third quarter should add the item as child node of the drop target | ||
if the user is NOT hovering a treeview item (he's dragging somewhere in the right), split the item height to just parts: | ||
dropping should insert before or after | ||
- dropping should insert before or after | ||
*/ | ||
var itemDivisionHeight = itemCoords.height / (isContent(target) ? 4 : 2); | ||
if (pageY < itemCoords.top + itemDivisionHeight) { | ||
var itemDivisionHeight = itemViewPortCoords.height / (isContent(target) ? 4 : 2); | ||
// clear any possible container offset created by parent elements with `transform` css property set | ||
var pointerPosition = clientY - containerOffset.top; | ||
var itemTop = itemViewPortCoords.top - containerOffset.top; | ||
if (pointerPosition < itemTop + itemDivisionHeight) { | ||
return DropPosition.Before; | ||
} | ||
if (pageY >= itemCoords.top + itemCoords.height - itemDivisionHeight) { | ||
if (pointerPosition >= itemTop + itemViewPortCoords.height - itemDivisionHeight) { | ||
return DropPosition.After; | ||
@@ -96,1 +148,2 @@ } | ||
}; | ||
export { ɵ0 }; |
@@ -12,4 +12,4 @@ /**----------------------------------------------------------------------------------------- | ||
import { DropHintTemplateDirective } from './drop-hint/drop-hint-template.directive'; | ||
import { getDropAction, getDropPosition, treeItemFromEventTarget } from './drag-and-drop-utils'; | ||
import { closestWithMatch, isPresent, isContent, elementCoords } from '../utils'; | ||
import { getDropAction, getDropPosition, treeItemFromEventTarget, getContainerOffset } from './drag-and-drop-utils'; | ||
import { closestWithMatch, isPresent, isContent } from '../utils'; | ||
import { TreeViewComponent } from '../treeview.component'; | ||
@@ -51,2 +51,8 @@ import { TreeItemDropEvent, DropPosition, TreeItemDragStartEvent } from './models'; | ||
this.userSelectStyle = 'none'; | ||
/** | ||
* Describes the offset of the parent element if the latter has the `transform` CSS prop applied. | ||
* Transformed parents create new stacking context and the fixed children must be position based on the transformed parent. | ||
* https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context | ||
*/ | ||
this.containerOffset = { top: 0, left: 0 }; | ||
} | ||
@@ -80,2 +86,3 @@ DragAndDropDirective.prototype.ngAfterContentInit = function () { | ||
this.dragClueService.updateText(this.draggedItem.innerText); | ||
this.containerOffset = getContainerOffset(this.draggedItem); | ||
}; | ||
@@ -87,3 +94,3 @@ /** | ||
var _this = this; | ||
var originalEvent = _a.originalEvent, pageX = _a.pageX, pageY = _a.pageY; | ||
var originalEvent = _a.originalEvent, clientX = _a.clientX, clientY = _a.clientY; | ||
if (!isPresent(this.draggedItem)) { | ||
@@ -96,9 +103,9 @@ return; | ||
var targetTreeView = this.getTargetTreeView(originalEvent.target); | ||
var dropPosition = getDropPosition(this.draggedItem, originalEvent.target, pageY, targetTreeView); | ||
var clueAnchor = closestWithMatch(originalEvent.target, '.k-mid'); | ||
this.updateDropHintState(dropPosition, clueAnchor); | ||
var dropPosition = getDropPosition(this.draggedItem, originalEvent.target, clientY, targetTreeView, this.containerOffset); | ||
var dropHintAnchor = closestWithMatch(originalEvent.target, '.k-mid'); | ||
this.updateDropHintState(dropPosition, dropHintAnchor); | ||
var dropAction = getDropAction(dropPosition, originalEvent.target); | ||
var sourceItem = treeItemFromEventTarget(this.treeview, this.draggedItem); | ||
var destinationItem = treeItemFromEventTarget(targetTreeView, originalEvent.target); | ||
this.updateDragClueState(dropAction, pageX, pageY, sourceItem, destinationItem); | ||
this.updateDragClueState(dropAction, clientX, clientY, sourceItem, destinationItem); | ||
}; | ||
@@ -110,3 +117,3 @@ /** | ||
var _this = this; | ||
var originalEvent = _a.originalEvent, pageY = _a.pageY; | ||
var originalEvent = _a.originalEvent, clientY = _a.clientY; | ||
if (!isPresent(this.draggedItem)) { | ||
@@ -117,3 +124,3 @@ return; | ||
var destinationTree = this.getTargetTreeView(originalEvent.target); | ||
var dropPosition = getDropPosition(this.draggedItem, originalEvent.target, pageY, this.getTargetTreeView(originalEvent.target)); | ||
var dropPosition = getDropPosition(this.draggedItem, originalEvent.target, clientY, this.getTargetTreeView(originalEvent.target), this.containerOffset); | ||
var sourceItem = treeItemFromEventTarget(sourceTree, this.draggedItem); | ||
@@ -138,11 +145,13 @@ var destinationItem = treeItemFromEventTarget(destinationTree, originalEvent.target); | ||
} | ||
var anchorCoords = elementCoords(dropHintAnchor); | ||
var anchorViewPortCoords = dropHintAnchor.getBoundingClientRect(); | ||
var insertBefore = dropPosition === DropPosition.Before; | ||
var top = insertBefore ? anchorCoords.top : (anchorCoords.top + anchorCoords.height); | ||
this.dropHintService.move(anchorCoords.left, top); | ||
var top = insertBefore ? anchorViewPortCoords.top : (anchorViewPortCoords.top + anchorViewPortCoords.height); | ||
// clear any possible container offset created by parent elements with `transform` css property set | ||
this.dropHintService.move(anchorViewPortCoords.left - this.containerOffset.left, top - this.containerOffset.top); | ||
this.dropHintService.show(); | ||
}; | ||
DragAndDropDirective.prototype.updateDragClueState = function (dropAction, pageX, pageY, sourceItem, destinationItem) { | ||
DragAndDropDirective.prototype.updateDragClueState = function (dropAction, clientX, clientY, sourceItem, destinationItem) { | ||
// clear any possible container offset created by parent elements with `transform` css property set | ||
this.dragClueService.move(clientX - this.containerOffset.left, clientY - this.containerOffset.top); | ||
this.dragClueService.updateDragClueData(dropAction, sourceItem, destinationItem); | ||
this.dragClueService.move(pageX, pageY); | ||
this.dragClueService.show(); | ||
@@ -149,0 +158,0 @@ }; |
@@ -14,2 +14,3 @@ /**----------------------------------------------------------------------------------------- | ||
this.hostClasses = true; | ||
this.posistionStyle = 'fixed'; | ||
} | ||
@@ -46,3 +47,4 @@ Object.defineProperty(DragClueComponent.prototype, "statusIconClass", { | ||
DragClueComponent.propDecorators = { | ||
hostClasses: [{ type: HostBinding, args: ['class.k-header',] }, { type: HostBinding, args: ['class.k-drag-clue',] }] | ||
hostClasses: [{ type: HostBinding, args: ['class.k-header',] }, { type: HostBinding, args: ['class.k-drag-clue',] }], | ||
posistionStyle: [{ type: HostBinding, args: ['style.position',] }] | ||
}; | ||
@@ -49,0 +51,0 @@ return DragClueComponent; |
@@ -6,15 +6,23 @@ /**----------------------------------------------------------------------------------------- | ||
import * as tslib_1 from "tslib"; | ||
import { Injectable } from '@angular/core'; | ||
import { Injectable, ComponentFactoryResolver } from '@angular/core'; | ||
import { DragClueComponent } from './drag-clue.component'; | ||
import { isPresent } from '../../utils'; | ||
import { DragAndDropAssetService } from '../editing-services/drag-and-drop-asset.service'; | ||
var HINT_OFFSET = 10; | ||
var RETURN_ANIMATION_DURATION = 200; | ||
/** | ||
* @hidden | ||
*/ | ||
export var CLUE_OFFSET = 10; | ||
/** | ||
* @hidden | ||
*/ | ||
export var RETURN_ANIMATION_DURATION = 200; | ||
/** | ||
* @hidden | ||
*/ | ||
var DragClueService = /** @class */ (function (_super) { | ||
tslib_1.__extends(DragClueService, _super); | ||
function DragClueService() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
function DragClueService(componentFactoryResolver) { | ||
var _this = _super.call(this) || this; | ||
_this.componentFactoryResolver = componentFactoryResolver; | ||
return _this; | ||
} | ||
@@ -25,4 +33,4 @@ DragClueService.prototype.initialize = function (container, template) { | ||
} | ||
var hintComponentFactory = this.componetFactoryResolver.resolveComponentFactory(DragClueComponent); | ||
this.componentRef = container.createComponent(hintComponentFactory); | ||
var clueComponentFactory = this.componentFactoryResolver.resolveComponentFactory(DragClueComponent); | ||
this.componentRef = container.createComponent(clueComponentFactory); | ||
this.hide(); | ||
@@ -37,3 +45,3 @@ this.componentRef.instance.template = template; | ||
DragClueService.prototype.move = function (left, top) { | ||
_super.prototype.move.call(this, left, top, HINT_OFFSET); | ||
_super.prototype.move.call(this, left, top, CLUE_OFFSET); | ||
}; | ||
@@ -46,7 +54,7 @@ DragClueService.prototype.animateDragClueToElementPosition = function (target) { | ||
} | ||
var targetElementCoords = target.getBoundingClientRect(); | ||
var hintElementCoords = this.element.getBoundingClientRect(); | ||
var targetElementViewPortCoords = target.getBoundingClientRect(); | ||
var clueElementViewPortCoords = this.element.getBoundingClientRect(); | ||
this.returnAnimation = this.element.animate([ | ||
{ transform: 'translate(0, 0)' }, | ||
{ transform: "translate(" + (targetElementCoords.left - hintElementCoords.left) + "px, " + (targetElementCoords.top - hintElementCoords.top) + "px)" } | ||
{ transform: "translate(" + (targetElementViewPortCoords.left - clueElementViewPortCoords.left) + "px, " + (targetElementViewPortCoords.top - clueElementViewPortCoords.top) + "px)" } | ||
], RETURN_ANIMATION_DURATION); | ||
@@ -81,4 +89,8 @@ this.returnAnimation.onfinish = function () { return _this.hide(); }; | ||
]; | ||
/** @nocollapse */ | ||
DragClueService.ctorParameters = function () { return [ | ||
{ type: ComponentFactoryResolver } | ||
]; }; | ||
return DragClueService; | ||
}(DragAndDropAssetService)); | ||
export { DragClueService }; |
@@ -12,7 +12,4 @@ /**----------------------------------------------------------------------------------------- | ||
this.hostClass = true; | ||
/** TODO: remove once added to the themes */ | ||
this.position = 'absolute'; | ||
this.zIndex = 2; | ||
this.position = 'fixed'; | ||
this.pointerEvents = 'none'; | ||
/** ... */ | ||
} | ||
@@ -29,3 +26,2 @@ DropHintComponent.decorators = [ | ||
position: [{ type: HostBinding, args: ['style.position',] }], | ||
zIndex: [{ type: HostBinding, args: ['style.z-index',] }], | ||
pointerEvents: [{ type: HostBinding, args: ['style.pointer-events',] }] | ||
@@ -32,0 +28,0 @@ }; |
@@ -6,3 +6,3 @@ /**----------------------------------------------------------------------------------------- | ||
import * as tslib_1 from "tslib"; | ||
import { Injectable } from '@angular/core'; | ||
import { Injectable, ComponentFactoryResolver } from '@angular/core'; | ||
import { isPresent } from '../../utils'; | ||
@@ -16,4 +16,6 @@ import { DropHintComponent } from './drop-hint.component'; | ||
tslib_1.__extends(DropHintService, _super); | ||
function DropHintService() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
function DropHintService(componentFactoryResolver) { | ||
var _this = _super.call(this) || this; | ||
_this.componentFactoryResolver = componentFactoryResolver; | ||
return _this; | ||
} | ||
@@ -24,3 +26,3 @@ DropHintService.prototype.initialize = function (container, template) { | ||
} | ||
var hintComponentFactory = this.componetFactoryResolver.resolveComponentFactory(DropHintComponent); | ||
var hintComponentFactory = this.componentFactoryResolver.resolveComponentFactory(DropHintComponent); | ||
this.componentRef = container.createComponent(hintComponentFactory); | ||
@@ -34,4 +36,8 @@ this.hide(); | ||
]; | ||
/** @nocollapse */ | ||
DropHintService.ctorParameters = function () { return [ | ||
{ type: ComponentFactoryResolver } | ||
]; }; | ||
return DropHintService; | ||
}(DragAndDropAssetService)); | ||
export { DropHintService }; |
@@ -5,3 +5,2 @@ /**----------------------------------------------------------------------------------------- | ||
*-------------------------------------------------------------------------------------------*/ | ||
import { ComponentFactoryResolver, Injectable } from '@angular/core'; | ||
import { isPresent } from '../../utils'; | ||
@@ -12,4 +11,3 @@ /** | ||
var DragAndDropAssetService = /** @class */ (function () { | ||
function DragAndDropAssetService(componetFactoryResolver) { | ||
this.componetFactoryResolver = componetFactoryResolver; | ||
function DragAndDropAssetService() { | ||
} | ||
@@ -52,14 +50,7 @@ Object.defineProperty(DragAndDropAssetService.prototype, "componentRef", { | ||
if (offset === void 0) { offset = 0; } | ||
this.element.style.left = left + offset + 'px'; | ||
this.element.style.top = top + offset + 'px'; | ||
this.element.style.left = left + offset + "px"; | ||
this.element.style.top = top + offset + "px"; | ||
}; | ||
DragAndDropAssetService.decorators = [ | ||
{ type: Injectable }, | ||
]; | ||
/** @nocollapse */ | ||
DragAndDropAssetService.ctorParameters = function () { return [ | ||
{ type: ComponentFactoryResolver } | ||
]; }; | ||
return DragAndDropAssetService; | ||
}()); | ||
export { DragAndDropAssetService }; |
@@ -134,18 +134,1 @@ /**----------------------------------------------------------------------------------------- | ||
export var nodeIndex = function (item) { return (item || {}).index; }; | ||
/** | ||
* @hidden | ||
* | ||
* Retrieves the left, top, width and height of the element, relative to the document left and top. | ||
*/ | ||
export var elementCoords = function (element) { | ||
if (!isPresent(element) || typeof window === 'undefined') { | ||
return; | ||
} | ||
var viewPortCoords = element.getBoundingClientRect(); | ||
return { | ||
left: viewPortCoords.left + window.pageXOffset, | ||
top: viewPortCoords.top + window.pageYOffset, | ||
width: viewPortCoords.width, | ||
height: viewPortCoords.height | ||
}; | ||
}; |
@@ -10,3 +10,16 @@ /**----------------------------------------------------------------------------------------- | ||
* @hidden | ||
* | ||
* Gets the offset of the parent element if the latter has the `transform` CSS prop applied. | ||
* Transformed parents create new stacking context and the `fixed` children must be position based on the transformed parent. | ||
* https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context | ||
* | ||
* If no parent container is `transform`-ed the function will return `{ left: 0, top: 0 }`; | ||
*/ | ||
export declare const getContainerOffset: (element: HTMLElement) => { | ||
top: number; | ||
left: number; | ||
}; | ||
/** | ||
* @hidden | ||
*/ | ||
export declare const getDropAction: (dropPosition: DropPosition, dropTarget: HTMLElement) => DropAction; | ||
@@ -16,3 +29,6 @@ /** | ||
*/ | ||
export declare const getDropPosition: (draggedItem: HTMLElement, target: HTMLElement, pageY: number, targetTreeView: any) => DropPosition; | ||
export declare const getDropPosition: (draggedItem: HTMLElement, target: HTMLElement, clientY: number, targetTreeView: any, containerOffset: { | ||
top: number; | ||
left: number; | ||
}) => DropPosition; | ||
/** | ||
@@ -19,0 +35,0 @@ * @hidden |
@@ -5,7 +5,56 @@ /**----------------------------------------------------------------------------------------- | ||
*-------------------------------------------------------------------------------------------*/ | ||
import { isPresent, closestNode, closestWithMatch, hasParent, elementCoords, isContent, nodeId } from '../utils'; | ||
import { isDocumentAvailable } from '@progress/kendo-angular-common'; | ||
import { isPresent, closestNode, closestWithMatch, hasParent, isContent, nodeId } from '../utils'; | ||
import { DropPosition, DropAction } from './models'; | ||
/** | ||
* Checks if the browser supports relative stacking context. | ||
* https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context | ||
*/ | ||
const hasRelativeStackingContext = () => { | ||
if (!isDocumentAvailable()) { | ||
return false; | ||
} | ||
const top = 10; | ||
const parent = document.createElement("div"); | ||
parent.style.transform = "matrix(10, 0, 0, 10, 0, 0)"; | ||
parent.innerHTML = `<div style="position: fixed; top: ${top}px;">child</div>`; | ||
document.body.appendChild(parent); | ||
const isDifferent = parent.children[0].getBoundingClientRect().top !== top; | ||
document.body.removeChild(parent); | ||
return isDifferent; | ||
}; | ||
const ɵ0 = hasRelativeStackingContext; | ||
const HAS_RELATIVE_STACKING_CONTEXT = hasRelativeStackingContext(); | ||
/** | ||
* @hidden | ||
* | ||
* Gets the offset of the parent element if the latter has the `transform` CSS prop applied. | ||
* Transformed parents create new stacking context and the `fixed` children must be position based on the transformed parent. | ||
* https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context | ||
* | ||
* If no parent container is `transform`-ed the function will return `{ left: 0, top: 0 }`; | ||
*/ | ||
export const getContainerOffset = (element) => { | ||
if (!(element && HAS_RELATIVE_STACKING_CONTEXT)) { | ||
return { left: 0, top: 0 }; | ||
} | ||
let offsetParent = element.parentElement; | ||
while (offsetParent) { | ||
if (window.getComputedStyle(offsetParent).transform !== 'none') { | ||
break; | ||
} | ||
offsetParent = offsetParent.parentElement; | ||
} | ||
if (offsetParent) { | ||
const rect = offsetParent.getBoundingClientRect(); | ||
return { | ||
left: rect.left - offsetParent.scrollLeft, | ||
top: rect.top - offsetParent.scrollTop | ||
}; | ||
} | ||
return { left: 0, top: 0 }; | ||
}; | ||
/** | ||
* @hidden | ||
*/ | ||
export const getDropAction = (dropPosition, dropTarget) => { | ||
@@ -29,4 +78,4 @@ if (!(isPresent(dropPosition) && isPresent(dropTarget))) { | ||
*/ | ||
export const getDropPosition = (draggedItem, target, pageY, targetTreeView) => { | ||
if (!(isPresent(target) && targetTreeView)) { | ||
export const getDropPosition = (draggedItem, target, clientY, targetTreeView, containerOffset) => { | ||
if (!(isPresent(draggedItem) && isPresent(target) && isPresent(targetTreeView) && isPresent(containerOffset))) { | ||
return; | ||
@@ -45,17 +94,20 @@ } | ||
} | ||
const itemCoords = elementCoords(content); | ||
const itemViewPortCoords = content.getBoundingClientRect(); | ||
/* | ||
if the user is hovering a treeview item, split the item height into four parts: | ||
dropping into the top quarter should insert the dragged item before the drop target | ||
dropping into the bottom quarter should insert the dragged item after the drop target | ||
dropping into the second or third quarter should add the item as child node of the drop target | ||
- dropping into the top quarter should insert the dragged item before the drop target | ||
- dropping into the bottom quarter should insert the dragged item after the drop target | ||
- dropping into the second or third quarter should add the item as child node of the drop target | ||
if the user is NOT hovering a treeview item (he's dragging somewhere in the right), split the item height to just parts: | ||
dropping should insert before or after | ||
- dropping should insert before or after | ||
*/ | ||
const itemDivisionHeight = itemCoords.height / (isContent(target) ? 4 : 2); | ||
if (pageY < itemCoords.top + itemDivisionHeight) { | ||
const itemDivisionHeight = itemViewPortCoords.height / (isContent(target) ? 4 : 2); | ||
// clear any possible container offset created by parent elements with `transform` css property set | ||
const pointerPosition = clientY - containerOffset.top; | ||
const itemTop = itemViewPortCoords.top - containerOffset.top; | ||
if (pointerPosition < itemTop + itemDivisionHeight) { | ||
return DropPosition.Before; | ||
} | ||
if (pageY >= itemCoords.top + itemCoords.height - itemDivisionHeight) { | ||
if (pointerPosition >= itemTop + itemViewPortCoords.height - itemDivisionHeight) { | ||
return DropPosition.After; | ||
@@ -96,1 +148,2 @@ } | ||
}; | ||
export { ɵ0 }; |
@@ -55,2 +55,8 @@ /**----------------------------------------------------------------------------------------- | ||
protected draggedItem: HTMLElement; | ||
/** | ||
* Describes the offset of the parent element if the latter has the `transform` CSS prop applied. | ||
* Transformed parents create new stacking context and the fixed children must be position based on the transformed parent. | ||
* https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context | ||
*/ | ||
private containerOffset; | ||
constructor(element: ElementRef<HTMLElement>, zone: NgZone, treeview: TreeViewComponent, dragClueService: DragClueService, dropHintService: DropHintService); | ||
@@ -66,7 +72,7 @@ ngAfterContentInit(): void; | ||
*/ | ||
handleDrag({ originalEvent, pageX, pageY }: any): void; | ||
handleDrag({ originalEvent, clientX, clientY }: any): void; | ||
/** | ||
* @hidden | ||
*/ | ||
handleRelease({ originalEvent, pageY }: any): void; | ||
handleRelease({ originalEvent, clientY }: any): void; | ||
private updateDropHintState; | ||
@@ -73,0 +79,0 @@ private updateDragClueState; |
@@ -12,4 +12,4 @@ /**----------------------------------------------------------------------------------------- | ||
import { DropHintTemplateDirective } from './drop-hint/drop-hint-template.directive'; | ||
import { getDropAction, getDropPosition, treeItemFromEventTarget } from './drag-and-drop-utils'; | ||
import { closestWithMatch, isPresent, isContent, elementCoords } from '../utils'; | ||
import { getDropAction, getDropPosition, treeItemFromEventTarget, getContainerOffset } from './drag-and-drop-utils'; | ||
import { closestWithMatch, isPresent, isContent } from '../utils'; | ||
import { TreeViewComponent } from '../treeview.component'; | ||
@@ -51,2 +51,8 @@ import { TreeItemDropEvent, DropPosition, TreeItemDragStartEvent } from './models'; | ||
this.userSelectStyle = 'none'; | ||
/** | ||
* Describes the offset of the parent element if the latter has the `transform` CSS prop applied. | ||
* Transformed parents create new stacking context and the fixed children must be position based on the transformed parent. | ||
* https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context | ||
*/ | ||
this.containerOffset = { top: 0, left: 0 }; | ||
} | ||
@@ -78,2 +84,3 @@ ngAfterContentInit() { | ||
this.dragClueService.updateText(this.draggedItem.innerText); | ||
this.containerOffset = getContainerOffset(this.draggedItem); | ||
} | ||
@@ -83,3 +90,3 @@ /** | ||
*/ | ||
handleDrag({ originalEvent, pageX, pageY }) { | ||
handleDrag({ originalEvent, clientX, clientY }) { | ||
if (!isPresent(this.draggedItem)) { | ||
@@ -92,9 +99,9 @@ return; | ||
const targetTreeView = this.getTargetTreeView(originalEvent.target); | ||
const dropPosition = getDropPosition(this.draggedItem, originalEvent.target, pageY, targetTreeView); | ||
const clueAnchor = closestWithMatch(originalEvent.target, '.k-mid'); | ||
this.updateDropHintState(dropPosition, clueAnchor); | ||
const dropPosition = getDropPosition(this.draggedItem, originalEvent.target, clientY, targetTreeView, this.containerOffset); | ||
const dropHintAnchor = closestWithMatch(originalEvent.target, '.k-mid'); | ||
this.updateDropHintState(dropPosition, dropHintAnchor); | ||
const dropAction = getDropAction(dropPosition, originalEvent.target); | ||
const sourceItem = treeItemFromEventTarget(this.treeview, this.draggedItem); | ||
const destinationItem = treeItemFromEventTarget(targetTreeView, originalEvent.target); | ||
this.updateDragClueState(dropAction, pageX, pageY, sourceItem, destinationItem); | ||
this.updateDragClueState(dropAction, clientX, clientY, sourceItem, destinationItem); | ||
} | ||
@@ -104,3 +111,3 @@ /** | ||
*/ | ||
handleRelease({ originalEvent, pageY }) { | ||
handleRelease({ originalEvent, clientY }) { | ||
if (!isPresent(this.draggedItem)) { | ||
@@ -111,3 +118,3 @@ return; | ||
const destinationTree = this.getTargetTreeView(originalEvent.target); | ||
const dropPosition = getDropPosition(this.draggedItem, originalEvent.target, pageY, this.getTargetTreeView(originalEvent.target)); | ||
const dropPosition = getDropPosition(this.draggedItem, originalEvent.target, clientY, this.getTargetTreeView(originalEvent.target), this.containerOffset); | ||
const sourceItem = treeItemFromEventTarget(sourceTree, this.draggedItem); | ||
@@ -132,11 +139,13 @@ const destinationItem = treeItemFromEventTarget(destinationTree, originalEvent.target); | ||
} | ||
const anchorCoords = elementCoords(dropHintAnchor); | ||
const anchorViewPortCoords = dropHintAnchor.getBoundingClientRect(); | ||
const insertBefore = dropPosition === DropPosition.Before; | ||
const top = insertBefore ? anchorCoords.top : (anchorCoords.top + anchorCoords.height); | ||
this.dropHintService.move(anchorCoords.left, top); | ||
const top = insertBefore ? anchorViewPortCoords.top : (anchorViewPortCoords.top + anchorViewPortCoords.height); | ||
// clear any possible container offset created by parent elements with `transform` css property set | ||
this.dropHintService.move(anchorViewPortCoords.left - this.containerOffset.left, top - this.containerOffset.top); | ||
this.dropHintService.show(); | ||
} | ||
updateDragClueState(dropAction, pageX, pageY, sourceItem, destinationItem) { | ||
updateDragClueState(dropAction, clientX, clientY, sourceItem, destinationItem) { | ||
// clear any possible container offset created by parent elements with `transform` css property set | ||
this.dragClueService.move(clientX - this.containerOffset.left, clientY - this.containerOffset.top); | ||
this.dragClueService.updateDragClueData(dropAction, sourceItem, destinationItem); | ||
this.dragClueService.move(pageX, pageY); | ||
this.dragClueService.show(); | ||
@@ -143,0 +152,0 @@ } |
@@ -31,5 +31,6 @@ /**----------------------------------------------------------------------------------------- | ||
/** | ||
* Defines the drag hint content template. | ||
* Defines the drag clue content template. | ||
*/ | ||
template: TemplateRef<any>; | ||
posistionStyle: string; | ||
readonly statusIconClass: string; | ||
@@ -36,0 +37,0 @@ constructor(cdr: ChangeDetectorRef); |
@@ -14,2 +14,3 @@ /**----------------------------------------------------------------------------------------- | ||
this.hostClasses = true; | ||
this.posistionStyle = 'fixed'; | ||
} | ||
@@ -60,3 +61,4 @@ get statusIconClass() { | ||
DragClueComponent.propDecorators = { | ||
hostClasses: [{ type: HostBinding, args: ['class.k-header',] }, { type: HostBinding, args: ['class.k-drag-clue',] }] | ||
hostClasses: [{ type: HostBinding, args: ['class.k-header',] }, { type: HostBinding, args: ['class.k-drag-clue',] }], | ||
posistionStyle: [{ type: HostBinding, args: ['style.position',] }] | ||
}; |
@@ -5,3 +5,3 @@ /**----------------------------------------------------------------------------------------- | ||
*-------------------------------------------------------------------------------------------*/ | ||
import { ViewContainerRef, TemplateRef } from '@angular/core'; | ||
import { ViewContainerRef, TemplateRef, ComponentFactoryResolver } from '@angular/core'; | ||
import { DragClueComponent } from './drag-clue.component'; | ||
@@ -14,4 +14,14 @@ import { DropAction } from '../models'; | ||
*/ | ||
export declare const CLUE_OFFSET: number; | ||
/** | ||
* @hidden | ||
*/ | ||
export declare const RETURN_ANIMATION_DURATION: number; | ||
/** | ||
* @hidden | ||
*/ | ||
export declare class DragClueService extends DragAndDropAssetService<DragClueComponent> { | ||
private componentFactoryResolver; | ||
private returnAnimation; | ||
constructor(componentFactoryResolver: ComponentFactoryResolver); | ||
initialize(container: ViewContainerRef, template?: TemplateRef<any>): void; | ||
@@ -18,0 +28,0 @@ ngOnDestroy(): void; |
@@ -5,12 +5,22 @@ /**----------------------------------------------------------------------------------------- | ||
*-------------------------------------------------------------------------------------------*/ | ||
import { Injectable } from '@angular/core'; | ||
import { Injectable, ComponentFactoryResolver } from '@angular/core'; | ||
import { DragClueComponent } from './drag-clue.component'; | ||
import { isPresent } from '../../utils'; | ||
import { DragAndDropAssetService } from '../editing-services/drag-and-drop-asset.service'; | ||
const HINT_OFFSET = 10; | ||
const RETURN_ANIMATION_DURATION = 200; | ||
/** | ||
* @hidden | ||
*/ | ||
export const CLUE_OFFSET = 10; | ||
/** | ||
* @hidden | ||
*/ | ||
export const RETURN_ANIMATION_DURATION = 200; | ||
/** | ||
* @hidden | ||
*/ | ||
export class DragClueService extends DragAndDropAssetService { | ||
constructor(componentFactoryResolver) { | ||
super(); | ||
this.componentFactoryResolver = componentFactoryResolver; | ||
} | ||
initialize(container, template) { | ||
@@ -20,4 +30,4 @@ if (isPresent(this._componentRef)) { | ||
} | ||
const hintComponentFactory = this.componetFactoryResolver.resolveComponentFactory(DragClueComponent); | ||
this.componentRef = container.createComponent(hintComponentFactory); | ||
const clueComponentFactory = this.componentFactoryResolver.resolveComponentFactory(DragClueComponent); | ||
this.componentRef = container.createComponent(clueComponentFactory); | ||
this.hide(); | ||
@@ -32,3 +42,3 @@ this.componentRef.instance.template = template; | ||
move(left, top) { | ||
super.move(left, top, HINT_OFFSET); | ||
super.move(left, top, CLUE_OFFSET); | ||
} | ||
@@ -40,7 +50,7 @@ animateDragClueToElementPosition(target) { | ||
} | ||
const targetElementCoords = target.getBoundingClientRect(); | ||
const hintElementCoords = this.element.getBoundingClientRect(); | ||
const targetElementViewPortCoords = target.getBoundingClientRect(); | ||
const clueElementViewPortCoords = this.element.getBoundingClientRect(); | ||
this.returnAnimation = this.element.animate([ | ||
{ transform: 'translate(0, 0)' }, | ||
{ transform: `translate(${targetElementCoords.left - hintElementCoords.left}px, ${targetElementCoords.top - hintElementCoords.top}px)` } | ||
{ transform: `translate(${targetElementViewPortCoords.left - clueElementViewPortCoords.left}px, ${targetElementViewPortCoords.top - clueElementViewPortCoords.top}px)` } | ||
], RETURN_ANIMATION_DURATION); | ||
@@ -76,1 +86,5 @@ this.returnAnimation.onfinish = () => this.hide(); | ||
]; | ||
/** @nocollapse */ | ||
DragClueService.ctorParameters = () => [ | ||
{ type: ComponentFactoryResolver } | ||
]; |
@@ -15,6 +15,4 @@ /**----------------------------------------------------------------------------------------- | ||
template: TemplateRef<any>; | ||
/** TODO: remove once added to the themes */ | ||
position: string; | ||
zIndex: number; | ||
pointerEvents: string; | ||
} |
@@ -12,7 +12,4 @@ /**----------------------------------------------------------------------------------------- | ||
this.hostClass = true; | ||
/** TODO: remove once added to the themes */ | ||
this.position = 'absolute'; | ||
this.zIndex = 2; | ||
this.position = 'fixed'; | ||
this.pointerEvents = 'none'; | ||
/** ... */ | ||
} | ||
@@ -42,4 +39,3 @@ } | ||
position: [{ type: HostBinding, args: ['style.position',] }], | ||
zIndex: [{ type: HostBinding, args: ['style.z-index',] }], | ||
pointerEvents: [{ type: HostBinding, args: ['style.pointer-events',] }] | ||
}; |
@@ -5,3 +5,3 @@ /**----------------------------------------------------------------------------------------- | ||
*-------------------------------------------------------------------------------------------*/ | ||
import { ViewContainerRef, TemplateRef } from '@angular/core'; | ||
import { ViewContainerRef, TemplateRef, ComponentFactoryResolver } from '@angular/core'; | ||
import { DropHintComponent } from './drop-hint.component'; | ||
@@ -13,3 +13,5 @@ import { DragAndDropAssetService } from '../editing-services/drag-and-drop-asset.service'; | ||
export declare class DropHintService extends DragAndDropAssetService<DropHintComponent> { | ||
private componentFactoryResolver; | ||
constructor(componentFactoryResolver: ComponentFactoryResolver); | ||
initialize(container: ViewContainerRef, template?: TemplateRef<any>): void; | ||
} |
@@ -5,3 +5,3 @@ /**----------------------------------------------------------------------------------------- | ||
*-------------------------------------------------------------------------------------------*/ | ||
import { Injectable } from '@angular/core'; | ||
import { Injectable, ComponentFactoryResolver } from '@angular/core'; | ||
import { isPresent } from '../../utils'; | ||
@@ -14,2 +14,6 @@ import { DropHintComponent } from './drop-hint.component'; | ||
export class DropHintService extends DragAndDropAssetService { | ||
constructor(componentFactoryResolver) { | ||
super(); | ||
this.componentFactoryResolver = componentFactoryResolver; | ||
} | ||
initialize(container, template) { | ||
@@ -19,3 +23,3 @@ if (isPresent(this._componentRef)) { | ||
} | ||
const hintComponentFactory = this.componetFactoryResolver.resolveComponentFactory(DropHintComponent); | ||
const hintComponentFactory = this.componentFactoryResolver.resolveComponentFactory(DropHintComponent); | ||
this.componentRef = container.createComponent(hintComponentFactory); | ||
@@ -30,1 +34,5 @@ this.hide(); | ||
]; | ||
/** @nocollapse */ | ||
DropHintService.ctorParameters = () => [ | ||
{ type: ComponentFactoryResolver } | ||
]; |
@@ -5,3 +5,3 @@ /**----------------------------------------------------------------------------------------- | ||
*-------------------------------------------------------------------------------------------*/ | ||
import { ComponentRef, ViewContainerRef, TemplateRef, ComponentFactoryResolver, OnDestroy } from '@angular/core'; | ||
import { ComponentRef, ViewContainerRef, TemplateRef, OnDestroy } from '@angular/core'; | ||
/** | ||
@@ -11,7 +11,5 @@ * @hidden | ||
export declare abstract class DragAndDropAssetService<T> implements OnDestroy { | ||
protected componetFactoryResolver: ComponentFactoryResolver; | ||
protected componentRef: ComponentRef<T>; | ||
protected readonly element: HTMLElement; | ||
protected _componentRef: ComponentRef<T>; | ||
constructor(componetFactoryResolver: ComponentFactoryResolver); | ||
abstract initialize(container: ViewContainerRef, template?: TemplateRef<any>): void; | ||
@@ -18,0 +16,0 @@ ngOnDestroy(): void; |
@@ -5,3 +5,2 @@ /**----------------------------------------------------------------------------------------- | ||
*-------------------------------------------------------------------------------------------*/ | ||
import { ComponentFactoryResolver, Injectable } from '@angular/core'; | ||
import { isPresent } from '../../utils'; | ||
@@ -12,5 +11,2 @@ /** | ||
export class DragAndDropAssetService { | ||
constructor(componetFactoryResolver) { | ||
this.componetFactoryResolver = componetFactoryResolver; | ||
} | ||
get componentRef() { | ||
@@ -43,12 +39,5 @@ if (!isPresent(this._componentRef)) { | ||
move(left, top, offset = 0) { | ||
this.element.style.left = left + offset + 'px'; | ||
this.element.style.top = top + offset + 'px'; | ||
this.element.style.left = `${left + offset}px`; | ||
this.element.style.top = `${top + offset}px`; | ||
} | ||
} | ||
DragAndDropAssetService.decorators = [ | ||
{ type: Injectable }, | ||
]; | ||
/** @nocollapse */ | ||
DragAndDropAssetService.ctorParameters = () => [ | ||
{ type: ComponentFactoryResolver } | ||
]; |
@@ -1,1 +0,1 @@ | ||
{"__symbolic":"module","version":4,"metadata":{"TreeViewComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":107,"character":1},"arguments":[{"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":108,"character":21},"member":"Default"},"exportAs":"kendoTreeView","providers":[{"__symbolic":"reference","name":"ExpandStateService"},{"__symbolic":"reference","name":"IndexBuilderService"},{"__symbolic":"reference","name":"TreeViewLookupService"},{"__symbolic":"reference","name":"LoadingNotificationService"},{"__symbolic":"reference","name":"NodeChildrenService"},{"__symbolic":"reference","name":"NavigationService"},{"__symbolic":"reference","name":"SelectionService"},{"__symbolic":"reference","name":"DataChangeNotificationService"},{"__symbolic":"reference","module":"@progress/kendo-angular-l10n","name":"LocalizationService","line":54,"character":4},{"provide":{"__symbolic":"reference","module":"@progress/kendo-angular-l10n","name":"L10N_PREFIX","line":56,"character":17},"useValue":"kendo.treeview"}],"selector":"kendo-treeview","template":"\n <ul class=\"k-treeview-lines\"\n kendoTreeViewGroup\n role=\"group\"\n [checkboxes]=\"checkboxes\"\n [expandIcons]=\"expandIcons\"\n [children]=\"children\"\n [hasChildren]=\"hasChildren\"\n [isChecked]=\"isChecked\"\n [isDisabled]=\"isDisabled\"\n [isExpanded]=\"isExpanded\"\n [isSelected]=\"isSelected\"\n [nodeTemplateRef]=\"nodeTemplate?.templateRef\"\n [textField]=\"textField\"\n [nodes]=\"fetchNodes\"\n >\n </ul>\n <ng-container #assetsContainer></ng-container>\n "}]}],"members":{"classNames":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":133,"character":5},"arguments":["class.k-widget"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":134,"character":5},"arguments":["class.k-treeview"]}]}],"role":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":137,"character":5},"arguments":["attr.role"]}]}],"direction":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":141,"character":5},"arguments":["attr.dir"]}]}],"assetsContainer":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":149,"character":5},"arguments":["assetsContainer",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":149,"character":42},"static":true}]}]}],"animate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":155,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":156,"character":5},"arguments":["@.disabled"]}]}],"childrenLoaded":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":171,"character":5}}]}],"onBlur":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":176,"character":5},"arguments":["blur"]}]}],"onFocus":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":181,"character":5},"arguments":["focus"]}]}],"expand":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":186,"character":5}}]}],"collapse":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":191,"character":5}}]}],"nodeDragStart":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":197,"character":5}}]}],"nodeDrag":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":202,"character":5}}]}],"nodeDrop":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":213,"character":5}}]}],"nodeDragEnd":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":218,"character":5}}]}],"addItem":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":224,"character":5}}]}],"removeItem":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":230,"character":5}}]}],"checkedChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":236,"character":5}}]}],"selectionChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":242,"character":5}}]}],"nodeClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":247,"character":5}}]}],"nodeDblClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":252,"character":5}}]}],"nodeTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":257,"character":5},"arguments":[{"__symbolic":"reference","name":"NodeTemplateDirective"}]}]}],"nodes":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":263,"character":5}}]}],"textField":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":277,"character":5}}]}],"hasChildren":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":283,"character":5}}]}],"isChecked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":296,"character":5}}]}],"isDisabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":308,"character":5}}]}],"isExpanded":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":313,"character":5}}]}],"isSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":326,"character":5}}]}],"navigable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":337,"character":5}}]}],"children":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":343,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":365,"character":35,"context":{"typeName":"HTMLElement"},"module":"./treeview.component"}]},{"__symbolic":"reference","name":"ExpandStateService"},{"__symbolic":"reference","name":"NavigationService"},{"__symbolic":"reference","name":"NodeChildrenService"},{"__symbolic":"reference","name":"SelectionService"},{"__symbolic":"reference","name":"TreeViewLookupService"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":371,"character":24},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":372,"character":26},{"__symbolic":"reference","name":"DataChangeNotificationService"},{"__symbolic":"reference","module":"@progress/kendo-angular-l10n","name":"LocalizationService","line":374,"character":30}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"blur":[{"__symbolic":"method"}],"focus":[{"__symbolic":"method"}],"itemLookup":[{"__symbolic":"method"}],"isDisabledNode":[{"__symbolic":"method"}],"expandNode":[{"__symbolic":"method"}],"collapseNode":[{"__symbolic":"method"}],"attachDomHandlers":[{"__symbolic":"method"}],"focusHandler":[{"__symbolic":"method"}],"blurHandler":[{"__symbolic":"method"}],"clickHandler":[{"__symbolic":"method"}],"keydownHandler":[{"__symbolic":"method"}]}},"TreeViewModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":33,"character":1},"arguments":[{"exports":[[{"__symbolic":"reference","name":"TreeViewComponent"},{"__symbolic":"reference","name":"NodeTemplateDirective"},{"__symbolic":"reference","name":"CheckDirective"},{"__symbolic":"reference","name":"DisableDirective"},{"__symbolic":"reference","name":"ExpandDirective"},{"__symbolic":"reference","name":"SelectDirective"},{"__symbolic":"reference","name":"HierarchyBindingDirective"},{"__symbolic":"reference","name":"FlatDataBindingDirective"},{"__symbolic":"reference","name":"DragAndDropDirective"},{"__symbolic":"reference","name":"DragClueTemplateDirective"},{"__symbolic":"reference","name":"DropHintTemplateDirective"},{"__symbolic":"reference","name":"DragAndDropEditingDirective"}]],"imports":[{"__symbolic":"reference","name":"SharedModule"}]}]}],"members":{}},"NodeTemplateDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":50,"character":1},"arguments":[{"selector":"[kendoTreeViewNodeTemplate]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":54,"character":15}}]],"parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}},"CheckDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":46,"character":1},"arguments":[{"selector":"[kendoTreeViewCheckable]"}]}],"members":{"isChecked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":5}}]}],"checkKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":58,"character":5},"arguments":["checkBy"]}]}],"checkedKeys":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":65,"character":5}}]}],"checkable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":76,"character":5},"arguments":["kendoTreeViewCheckable"]}]}],"checkedKeysChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":81,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TreeViewComponent"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":115,"character":22}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"isItemChecked":[{"__symbolic":"method"}],"isIndexChecked":[{"__symbolic":"method"}],"itemKey":[{"__symbolic":"method"}],"check":[{"__symbolic":"method"}],"checkSingle":[{"__symbolic":"method"}],"checkMultiple":[{"__symbolic":"method"}],"toggleCheckOnClick":[{"__symbolic":"method"}],"unsubscribeClick":[{"__symbolic":"method"}],"checkNode":[{"__symbolic":"method"}],"checkParents":[{"__symbolic":"method"}],"allChildrenSelected":[{"__symbolic":"method"}],"notify":[{"__symbolic":"method"}],"addChildrenKeys":[{"__symbolic":"method"}]}},"DisableDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":7,"character":1},"arguments":[{"selector":"[kendoTreeViewDisable]"}]}],"members":{"isDisabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":5}}]}],"disableKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":5},"arguments":["kendoTreeViewDisable"]}]}],"disabledKeys":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TreeViewComponent"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":29,"character":23}]}],"ngOnChanges":[{"__symbolic":"method"}],"itemKey":[{"__symbolic":"method"}]}},"ExpandDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":16,"character":1},"arguments":[{"selector":"[kendoTreeViewExpandable]"}]}],"members":{"isExpanded":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":5}}]}],"expandKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":5},"arguments":["expandBy"]}]}],"expandedKeysChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":35,"character":5}}]}],"expandedKeys":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TreeViewComponent"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"itemKey":[{"__symbolic":"method"}],"toggleExpand":[{"__symbolic":"method"}]}},"SelectDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":18,"character":1},"arguments":[{"selector":"[kendoTreeViewSelectable]"}]}],"members":{"isSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":5}}]}],"selectKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":5},"arguments":["selectBy"]}]}],"selection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":5},"arguments":["kendoTreeViewSelectable"]}]}],"selectedKeys":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":5}}]}],"selectedKeysChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":54,"character":5}}]}],"getAriaMultiselectable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":56,"character":5},"arguments":["attr.aria-multiselectable"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TreeViewComponent"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"itemKey":[{"__symbolic":"method"}],"select":[{"__symbolic":"method"}],"selectSingle":[{"__symbolic":"method"}],"selectMultiple":[{"__symbolic":"method"}],"notify":[{"__symbolic":"method"}]}},"SelectableSettings":{"__symbolic":"interface"},"CheckableSettings":{"__symbolic":"interface"},"CheckMode":{"__symbolic":"interface"},"CheckedState":{"__symbolic":"interface"},"HierarchyBindingDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":10,"character":1},"arguments":[{"selector":"[kendoTreeViewHierarchyBinding]"}]}],"members":{"childrenField":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TreeViewComponent"}]}],"ngOnInit":[{"__symbolic":"method"}]}},"FlatDataBindingDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":14,"character":1},"arguments":[{"selector":"[kendoTreeViewFlatDataBinding]"}]}],"members":{"nodes":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":5}}]}],"parentIdField":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":5}}]}],"idField":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TreeViewComponent"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}]}},"ItemLookup":{"__symbolic":"interface"},"TreeItemLookup":{"__symbolic":"interface"},"TreeItem":{"__symbolic":"interface"},"NodeClickEvent":{"__symbolic":"interface"},"DragAndDropDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":27,"character":1},"arguments":[{"selector":"[kendoTreeViewDragAndDrop]","providers":[{"__symbolic":"reference","name":"DragClueService"},{"__symbolic":"reference","name":"DropHintService"}]}]}],"members":{"allowCopy":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":5}}]}],"dropZoneTreeViews":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":5}}]}],"dragClueTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":54,"character":5},"arguments":[{"__symbolic":"reference","name":"DragClueTemplateDirective"}]}]}],"dropHintTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":59,"character":5},"arguments":[{"__symbolic":"reference","name":"DropHintTemplateDirective"}]}]}],"userSelectStyle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":64,"character":5},"arguments":["style.user-select"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":65,"character":5},"arguments":["style.-ms-user-select"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":72,"character":36,"context":{"typeName":"HTMLElement"},"module":"./drag-and-drop/drag-and-drop.directive"}]},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":73,"character":22},{"__symbolic":"reference","name":"TreeViewComponent"},{"__symbolic":"reference","name":"DragClueService"},{"__symbolic":"reference","name":"DropHintService"}]}],"ngAfterContentInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"handlePress":[{"__symbolic":"method"}],"handleDrag":[{"__symbolic":"method"}],"handleRelease":[{"__symbolic":"method"}],"updateDropHintState":[{"__symbolic":"method"}],"updateDragClueState":[{"__symbolic":"method"}],"initalizeDraggable":[{"__symbolic":"method"}],"notifyDragStart":[{"__symbolic":"method"}],"notifyDrag":[{"__symbolic":"method"}],"notifyDrop":[{"__symbolic":"method"}],"notifyDragEnd":[{"__symbolic":"method"}],"getTargetTreeView":[{"__symbolic":"method"}],"disableAnimationsForNextTick":[{"__symbolic":"method"}]}},"DragAndDropEditingDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":16,"character":1},"arguments":[{"selector":"[kendoTreeViewDragAndDropEditing]"}]}],"members":{"editService":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TreeViewComponent"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"handleAdd":[{"__symbolic":"method"}],"handleRemove":[{"__symbolic":"method"}]}},"DropHintTemplateDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":7,"character":1},"arguments":[{"selector":"[kendoTreeViewDropHintTemplate]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":11,"character":17}}]],"parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}},"DragClueTemplateDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":14,"character":1},"arguments":[{"selector":"[kendoTreeViewDragClueTemplate]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":18,"character":17}}]],"parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}},"DropAction":{"Add":0,"InsertTop":1,"InsertBottom":2,"InsertMiddle":3,"Invalid":4},"DropPosition":{"Over":0,"Before":1,"After":2},"TreeItemAddRemoveArgs":{"__symbolic":"interface"},"TreeItemDropEvent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"PreventableEvent"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TreeItemAddRemoveArgs"},{"__symbolic":"error","message":"Could not resolve type","line":48,"character":67,"context":{"typeName":"PointerEvent"},"module":"./drag-and-drop/models/treeitem-drop-event"}]}],"setValid":[{"__symbolic":"method"}]}},"TreeItemDragStartEvent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"PreventableEvent"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":20,"character":29,"module":"./drag-and-drop/models/treeitem-drag-start-event"}]}]}},"TreeItemDragEvent":{"__symbolic":"class","members":{}},"EditService":{"__symbolic":"interface"},"ExpandStateService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"expand":[{"__symbolic":"method"}],"collapse":[{"__symbolic":"method"}]}},"IndexBuilderService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1}}],"members":{"nodeIndex":[{"__symbolic":"method"}],"indexForLevel":[{"__symbolic":"method"}],"lastLevelIndex":[{"__symbolic":"method"}],"level":[{"__symbolic":"method"}]}},"TreeViewLookupService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1}}],"members":{"registerItem":[{"__symbolic":"method"}],"registerChildren":[{"__symbolic":"method"}],"unregisterItem":[{"__symbolic":"method"}],"replaceItem":[{"__symbolic":"method"}],"itemLookup":[{"__symbolic":"method"}],"hasItem":[{"__symbolic":"method"}],"item":[{"__symbolic":"method"}],"addToParent":[{"__symbolic":"method"}],"mapChildren":[{"__symbolic":"method"}]}},"LoadingNotificationService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"notifyLoaded":[{"__symbolic":"method"}]}},"NodeChildrenService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1}}],"members":{"childrenLoaded":[{"__symbolic":"method"}]}},"NavigationService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@progress/kendo-angular-l10n","name":"LocalizationService","line":66,"character":45}]}],"activate":[{"__symbolic":"method"}],"activateParent":[{"__symbolic":"method"}],"activateIndex":[{"__symbolic":"method"}],"activateClosest":[{"__symbolic":"method"}],"activateFocusable":[{"__symbolic":"method"}],"deactivate":[{"__symbolic":"method"}],"checkIndex":[{"__symbolic":"method"}],"selectIndex":[{"__symbolic":"method"}],"isActive":[{"__symbolic":"method"}],"isFocusable":[{"__symbolic":"method"}],"isDisabled":[{"__symbolic":"method"}],"registerItem":[{"__symbolic":"method"}],"unregisterItem":[{"__symbolic":"method"}],"move":[{"__symbolic":"method"}],"expand":[{"__symbolic":"method"}],"moveToParent":[{"__symbolic":"method"}],"moveToChild":[{"__symbolic":"method"}],"notifyExpand":[{"__symbolic":"method"}],"notifyMove":[{"__symbolic":"method"}],"navigationState":[{"__symbolic":"method"}]}},"SelectionService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"isFirstSelected":[{"__symbolic":"method"}],"setFirstSelected":[{"__symbolic":"method"}],"select":[{"__symbolic":"method"}]}},"DataChangeNotificationService":{"__symbolic":"class","members":{"notify":[{"__symbolic":"method"}]}},"DragClueService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"DragAndDropAssetService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":14,"character":1}}],"members":{"initialize":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"move":[{"__symbolic":"method"}],"animateDragClueToElementPosition":[{"__symbolic":"method"}],"cancelReturnAnimation":[{"__symbolic":"method"}],"updateDragClueData":[{"__symbolic":"method"}],"updateText":[{"__symbolic":"method"}]}},"DragAndDropAssetService":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":27,"character":51}]}],"initialize":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"show":[{"__symbolic":"method"}],"hide":[{"__symbolic":"method"}],"move":[{"__symbolic":"method"}]}},"DropHintService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"DragAndDropAssetService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1}}],"members":{"initialize":[{"__symbolic":"method"}]}},"SharedModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":46,"character":1},"arguments":[{"declarations":[[{"__symbolic":"reference","name":"TreeViewComponent"},{"__symbolic":"reference","name":"TreeViewGroupComponent"},{"__symbolic":"reference","name":"TreeViewItemDirective"},{"__symbolic":"reference","name":"TreeViewItemContentDirective"},{"__symbolic":"reference","name":"NodeTemplateDirective"},{"__symbolic":"reference","name":"CheckDirective"},{"__symbolic":"reference","name":"DisableDirective"},{"__symbolic":"reference","name":"ExpandDirective"},{"__symbolic":"reference","name":"SelectDirective"},{"__symbolic":"reference","name":"HierarchyBindingDirective"},{"__symbolic":"reference","name":"LoadingIndicatorDirective"},{"__symbolic":"reference","name":"FlatDataBindingDirective"},{"__symbolic":"reference","name":"DragAndDropDirective"},{"__symbolic":"reference","name":"DragClueTemplateDirective"},{"__symbolic":"reference","name":"DragClueComponent"},{"__symbolic":"reference","name":"DropHintTemplateDirective"},{"__symbolic":"reference","name":"DropHintComponent"},{"__symbolic":"reference","name":"DragAndDropEditingDirective"}]],"exports":[[{"__symbolic":"reference","name":"TreeViewComponent"},{"__symbolic":"reference","name":"TreeViewGroupComponent"},{"__symbolic":"reference","name":"TreeViewItemDirective"},{"__symbolic":"reference","name":"TreeViewItemContentDirective"},{"__symbolic":"reference","name":"NodeTemplateDirective"},{"__symbolic":"reference","name":"CheckDirective"},{"__symbolic":"reference","name":"DisableDirective"},{"__symbolic":"reference","name":"ExpandDirective"},{"__symbolic":"reference","name":"SelectDirective"},{"__symbolic":"reference","name":"HierarchyBindingDirective"},{"__symbolic":"reference","name":"LoadingIndicatorDirective"},{"__symbolic":"reference","name":"FlatDataBindingDirective"},{"__symbolic":"reference","name":"DragAndDropDirective"},{"__symbolic":"reference","name":"DragClueTemplateDirective"},{"__symbolic":"reference","name":"DragClueComponent"},{"__symbolic":"reference","name":"DropHintTemplateDirective"},{"__symbolic":"reference","name":"DropHintComponent"},{"__symbolic":"reference","name":"DragAndDropEditingDirective"}]],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":49,"character":14},{"__symbolic":"reference","name":"CheckBoxModule"}],"entryComponents":[{"__symbolic":"reference","name":"DragClueComponent"},{"__symbolic":"reference","name":"DropHintComponent"}]}]}],"members":{}},"TreeViewGroupComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":20,"character":1},"arguments":[{"animations":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":22,"character":8},"arguments":["toggle",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":23,"character":12},"arguments":["void => *",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":24,"character":16},"arguments":[{"height":0}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":25,"character":16},"arguments":["0.1s ease-in",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":25,"character":40},"arguments":[{"height":"*"}]}]}]]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":27,"character":12},"arguments":["* => void",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":28,"character":16},"arguments":[{"height":"*"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":29,"character":16},"arguments":["0.1s ease-in",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":29,"character":40},"arguments":[{"height":0}]}]}]]}]]}],"selector":"[kendoTreeViewGroup]","template":"\n <li\n *ngFor=\"let node of data; let index = index\" class=\"k-item k-treeview-item\"\n kendoTreeViewItem\n [dataItem]=\"node\"\n [index]=\"nodeIndex(index)\"\n [parentDataItem]=\"parentDataItem\"\n [parentIndex]=\"parentIndex\"\n [isChecked]=\"isChecked(node, nodeIndex(index))\"\n [isDisabled]=\"disabled || isDisabled(node, nodeIndex(index))\"\n [isExpanded]=\"isExpanded(node, nodeIndex(index))\"\n [isSelected]=\"isSelected(node, nodeIndex(index))\"\n [attr.data-treeindex]=\"nodeIndex(index)\"\n >\n <div class=\"k-mid\">\n <span\n class=\"k-icon\"\n [class.k-i-collapse]=\"isExpanded(node, nodeIndex(index))\"\n [class.k-i-expand]=\"!isExpanded(node, nodeIndex(index))\"\n [kendoTreeViewLoading]=\"nodeIndex(index)\"\n (click)=\"expandNode(nodeIndex(index), node, !isExpanded(node, nodeIndex(index)))\"\n *ngIf=\"expandIcons && hasChildren(node)\"\n >\n </span>\n <kendo-checkbox\n *ngIf=\"checkboxes\"\n [node]=\"node\"\n [index]=\"nodeIndex(index)\"\n [isChecked]=\"isChecked\"\n (checkStateChange)=\"checkNode(nodeIndex(index))\"\n tabindex=\"-1\"\n ></kendo-checkbox>\n <span kendoTreeViewItemContent\n [attr.data-treeindex]=\"nodeIndex(index)\"\n [dataItem]=\"node\"\n [index]=\"nodeIndex(index)\"\n [initialSelection]=\"isSelected(node, nodeIndex(index))\"\n [isSelected]=\"isSelected\"\n class=\"k-in\"\n >\n <ng-container [ngSwitch]=\"hasTemplate\">\n <ng-container *ngSwitchCase=\"true\">\n <ng-template\n [ngTemplateOutlet]=\"nodeTemplateRef\" [ngTemplateOutletContext]=\"{$implicit: node, index: nodeIndex(index)}\"\n >\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchDefault>\n {{nodeText(node)}}\n </ng-container>\n </ng-container>\n </span>\n </div>\n <ul\n *ngIf=\"isExpanded(node, nodeIndex(index)) && hasChildren(node)\"\n kendoTreeViewGroup\n role=\"group\"\n [nodes]=\"fetchChildren\"\n [checkboxes]=\"checkboxes\"\n [expandIcons]=\"expandIcons\"\n [children]=\"children\"\n [hasChildren]=\"hasChildren\"\n [isChecked]=\"isChecked\"\n [isDisabled]=\"isDisabled\"\n [disabled]=\"disabled || isDisabled(node, nodeIndex(index))\"\n [isExpanded]=\"isExpanded\"\n [isSelected]=\"isSelected\"\n [nodeTemplateRef]=\"nodeTemplateRef\"\n [parentIndex]=\"nodeIndex(index)\"\n [parentDataItem]=\"node\"\n [textField]=\"nextFields\"\n [@toggle]=\"true\"\n >\n </ul>\n </li>\n "}]}],"members":{"kGroupClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":112,"character":5},"arguments":["class.k-group"]}]}],"role":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":115,"character":5},"arguments":["attr.role"]}]}],"checkboxes":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":118,"character":5}}]}],"expandIcons":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":119,"character":5}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":120,"character":5}}]}],"nodes":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":122,"character":5}}]}],"textField":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":123,"character":5}}]}],"parentDataItem":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":124,"character":5}}]}],"parentIndex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":125,"character":5}}]}],"nodeTemplateRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":126,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ExpandStateService"},{"__symbolic":"reference","name":"LoadingNotificationService"},{"__symbolic":"reference","name":"IndexBuilderService"},{"__symbolic":"reference","name":"TreeViewLookupService"},{"__symbolic":"reference","name":"NavigationService"},{"__symbolic":"reference","name":"NodeChildrenService"},{"__symbolic":"reference","name":"DataChangeNotificationService"}]}],"isChecked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":154,"character":5}}]}],"isDisabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":155,"character":5}}]}],"isExpanded":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":156,"character":5}}]}],"isSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":157,"character":5}}]}],"children":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":159,"character":5}}]}],"hasChildren":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":160,"character":5}}]}],"expandNode":[{"__symbolic":"method"}],"checkNode":[{"__symbolic":"method"}],"nodeIndex":[{"__symbolic":"method"}],"nodeText":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"fetchChildren":[{"__symbolic":"method"}],"setNodeChildren":[{"__symbolic":"method"}],"mapToTreeItem":[{"__symbolic":"method"}],"emitChildrenLoaded":[{"__symbolic":"method"}],"subscribeToNodesChange":[{"__symbolic":"method"}]}},"TreeViewItemDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":28,"character":1},"arguments":[{"selector":"[kendoTreeViewItem]"}]}],"members":{"dataItem":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":5}}]}],"index":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":5}}]}],"parentDataItem":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":5}}]}],"parentIndex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":5}}]}],"isChecked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":5}}]}],"isDisabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":47,"character":5}}]}],"isExpanded":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":5}}]}],"isSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":57,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":82,"character":25},{"__symbolic":"reference","name":"ExpandStateService"},{"__symbolic":"reference","name":"NavigationService"},{"__symbolic":"reference","name":"SelectionService"},{"__symbolic":"reference","name":"TreeViewLookupService"},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":87,"character":26},{"__symbolic":"reference","name":"IndexBuilderService"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"subscribe":[{"__symbolic":"method"}],"registerNavigationItem":[{"__symbolic":"method"}],"activateItem":[{"__symbolic":"method"}],"expand":[{"__symbolic":"method"}],"isFocusable":[{"__symbolic":"method"}],"focusItem":[{"__symbolic":"method"}],"moveLookupItem":[{"__symbolic":"method"}],"moveNavigationItem":[{"__symbolic":"method"}],"disableNavigationItem":[{"__symbolic":"method"}],"setAriaAttributes":[{"__symbolic":"method"}],"setDisabledClass":[{"__symbolic":"method"}],"setClass":[{"__symbolic":"method"}],"updateTabIndex":[{"__symbolic":"method"}],"setAttribute":[{"__symbolic":"method"}]}},"TreeViewItemContentDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":12,"character":1},"arguments":[{"selector":"[kendoTreeViewItemContent]"}]}],"members":{"dataItem":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":5}}]}],"index":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":5}}]}],"initialSelection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":5}}]}],"isSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":22,"character":25},{"__symbolic":"reference","name":"NavigationService"},{"__symbolic":"reference","name":"SelectionService"},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":25,"character":26}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"updateItem":[{"__symbolic":"method"}],"updateSelection":[{"__symbolic":"method"}],"render":[{"__symbolic":"method"}]}},"LoadingIndicatorDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":10,"character":1},"arguments":[{"selector":"[kendoTreeViewLoading]"}]}],"members":{"loading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":13,"character":5},"arguments":["class.k-i-loading"]}]}],"index":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":5},"arguments":["kendoTreeViewLoading"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ExpandStateService"},{"__symbolic":"reference","name":"LoadingNotificationService"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":32,"character":22}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"DragClueComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":8,"character":21},"member":"OnPush"},"selector":"kendo-treeview-drag-clue","template":"\n <ng-container *ngIf=\"!template\">\n <span class=\"k-icon {{statusIconClass}} k-drag-status\"></span>\n <span>{{text}}</span>\n </ng-container>\n\n <ng-template\n *ngIf=\"template\"\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"{\n text: text,\n action: action,\n sourceItem: sourceItem,\n destinationItem: destinationItem\n }\"\n >\n </ng-template>\n "}]}],"members":{"hostClasses":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":31,"character":5},"arguments":["class.k-header"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":32,"character":5},"arguments":["class.k-drag-clue"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":71,"character":29}]}],"detectChanges":[{"__symbolic":"method"}]}},"DropHintComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":6,"character":21},"member":"OnPush"},"selector":"kendo-treeview-drop-hint","template":"\n <span\n *ngIf=\"!template\"\n class=\"k-icon k-i-drag-and-drop\"\n >\n </span>\n\n <ng-template\n *ngIf=\"template\"\n [ngTemplateOutlet]=\"template\"\n >\n <ng-template>\n "}]}],"members":{"hostClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":24,"character":5},"arguments":["class.k-drop-hint-container"]}]}],"position":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":33,"character":5},"arguments":["style.position"]}]}],"zIndex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":36,"character":5},"arguments":["style.z-index"]}]}],"pointerEvents":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":39,"character":5},"arguments":["style.pointer-events"]}]}]}},"CheckBoxModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":12,"character":1},"arguments":[{"declarations":[[{"__symbolic":"reference","name":"CheckBoxComponent"}]],"exports":[[{"__symbolic":"reference","name":"CheckBoxComponent"}]]}]}],"members":{}},"CheckBoxComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":21,"character":1},"arguments":[{"selector":"kendo-checkbox","template":"\n <input\n class=\"k-checkbox\"\n type=\"checkbox\"\n [id]=\"id\"\n [checked]=\"checked\"\n [indeterminate]=\"indeterminate\"\n [tabindex]=\"tabindex\"\n (change)=\"handleChange($event)\"\n />\n <label\n class=\"k-checkbox-label\"\n tabindex=\"-1\"\n [for]=\"id\"\n >{{labelText}}</label>\n "}]}],"members":{"classWrapper":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":44,"character":5},"arguments":["class.k-checkbox-wrapper"]}]}],"id":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":5}}]}],"isChecked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":55,"character":5}}]}],"node":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":60,"character":5}}]}],"index":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":65,"character":5}}]}],"labelText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":70,"character":5}}]}],"tabindex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":75,"character":5}}]}],"checkStateChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":80,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":92,"character":33},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":93,"character":34},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":94,"character":40}]}],"ngOnInit":[{"__symbolic":"method"}],"ngDoCheck":[{"__symbolic":"method"}],"handleChange":[{"__symbolic":"method"}]}},"PreventableEvent":{"__symbolic":"class","members":{"preventDefault":[{"__symbolic":"method"}],"isDefaultPrevented":[{"__symbolic":"method"}]}}},"origins":{"TreeViewComponent":"./treeview.component","TreeViewModule":"./treeview.module","NodeTemplateDirective":"./node-template.directive","CheckDirective":"./check.directive","DisableDirective":"./disable.directive","ExpandDirective":"./expand.directive","SelectDirective":"./selection/select.directive","SelectableSettings":"./selection/selectable-settings","CheckableSettings":"./checkable-settings","CheckMode":"./check-mode","CheckedState":"./checkbox/checked-state","HierarchyBindingDirective":"./hierarchy-binding.directive","FlatDataBindingDirective":"./flat-binding.directive","ItemLookup":"./treeitem-lookup.interface","TreeItemLookup":"./treeitem-lookup.interface","TreeItem":"./treeitem.interface","NodeClickEvent":"./node-click-event.interface","DragAndDropDirective":"./drag-and-drop/drag-and-drop.directive","DragAndDropEditingDirective":"./drag-and-drop/drag-and-drop-editing.directive","DropHintTemplateDirective":"./drag-and-drop/drop-hint/drop-hint-template.directive","DragClueTemplateDirective":"./drag-and-drop/drag-clue/drag-clue-template.directive","DropAction":"./drag-and-drop/models/drop-action","DropPosition":"./drag-and-drop/models/drop-position","TreeItemAddRemoveArgs":"./drag-and-drop/models/treeitem-add-remove-args","TreeItemDropEvent":"./drag-and-drop/models/treeitem-drop-event","TreeItemDragStartEvent":"./drag-and-drop/models/treeitem-drag-start-event","TreeItemDragEvent":"./drag-and-drop/models/treeitem-drag-event","EditService":"./drag-and-drop/models/editing-service","ExpandStateService":"./expand-state.service","IndexBuilderService":"./index-builder.service","TreeViewLookupService":"./treeview-lookup.service","LoadingNotificationService":"./loading-notification.service","NodeChildrenService":"./node-children.service","NavigationService":"./navigation/navigation.service","SelectionService":"./selection/selection.service","DataChangeNotificationService":"./data-change-notification.service","DragClueService":"./drag-and-drop/drag-clue/drag-clue.service","DragAndDropAssetService":"./drag-and-drop/editing-services/drag-and-drop-asset.service","DropHintService":"./drag-and-drop/drop-hint/drop-hint.service","SharedModule":"./shared.module","TreeViewGroupComponent":"./treeview-group.component","TreeViewItemDirective":"./treeview-item.directive","TreeViewItemContentDirective":"./treeview-item-content.directive","LoadingIndicatorDirective":"./loading-indicator.directive","DragClueComponent":"./drag-and-drop/drag-clue/drag-clue.component","DropHintComponent":"./drag-and-drop/drop-hint/drop-hint.component","CheckBoxModule":"./checkbox/checkbox.module","CheckBoxComponent":"./checkbox/checkbox.component","PreventableEvent":"./drag-and-drop/models/preventable-event"},"importAs":"@progress/kendo-angular-treeview"} | ||
{"__symbolic":"module","version":4,"metadata":{"TreeViewComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":107,"character":1},"arguments":[{"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":108,"character":21},"member":"Default"},"exportAs":"kendoTreeView","providers":[{"__symbolic":"reference","name":"ExpandStateService"},{"__symbolic":"reference","name":"IndexBuilderService"},{"__symbolic":"reference","name":"TreeViewLookupService"},{"__symbolic":"reference","name":"LoadingNotificationService"},{"__symbolic":"reference","name":"NodeChildrenService"},{"__symbolic":"reference","name":"NavigationService"},{"__symbolic":"reference","name":"SelectionService"},{"__symbolic":"reference","name":"DataChangeNotificationService"},{"__symbolic":"reference","module":"@progress/kendo-angular-l10n","name":"LocalizationService","line":54,"character":4},{"provide":{"__symbolic":"reference","module":"@progress/kendo-angular-l10n","name":"L10N_PREFIX","line":56,"character":17},"useValue":"kendo.treeview"}],"selector":"kendo-treeview","template":"\n <ul class=\"k-treeview-lines\"\n kendoTreeViewGroup\n role=\"group\"\n [checkboxes]=\"checkboxes\"\n [expandIcons]=\"expandIcons\"\n [children]=\"children\"\n [hasChildren]=\"hasChildren\"\n [isChecked]=\"isChecked\"\n [isDisabled]=\"isDisabled\"\n [isExpanded]=\"isExpanded\"\n [isSelected]=\"isSelected\"\n [nodeTemplateRef]=\"nodeTemplate?.templateRef\"\n [textField]=\"textField\"\n [nodes]=\"fetchNodes\"\n >\n </ul>\n <ng-container #assetsContainer></ng-container>\n "}]}],"members":{"classNames":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":133,"character":5},"arguments":["class.k-widget"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":134,"character":5},"arguments":["class.k-treeview"]}]}],"role":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":137,"character":5},"arguments":["attr.role"]}]}],"direction":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":141,"character":5},"arguments":["attr.dir"]}]}],"assetsContainer":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":149,"character":5},"arguments":["assetsContainer",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":149,"character":42},"static":true}]}]}],"animate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":155,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":156,"character":5},"arguments":["@.disabled"]}]}],"childrenLoaded":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":171,"character":5}}]}],"onBlur":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":176,"character":5},"arguments":["blur"]}]}],"onFocus":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":181,"character":5},"arguments":["focus"]}]}],"expand":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":186,"character":5}}]}],"collapse":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":191,"character":5}}]}],"nodeDragStart":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":197,"character":5}}]}],"nodeDrag":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":202,"character":5}}]}],"nodeDrop":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":213,"character":5}}]}],"nodeDragEnd":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":218,"character":5}}]}],"addItem":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":224,"character":5}}]}],"removeItem":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":230,"character":5}}]}],"checkedChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":236,"character":5}}]}],"selectionChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":242,"character":5}}]}],"nodeClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":247,"character":5}}]}],"nodeDblClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":252,"character":5}}]}],"nodeTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":257,"character":5},"arguments":[{"__symbolic":"reference","name":"NodeTemplateDirective"}]}]}],"nodes":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":263,"character":5}}]}],"textField":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":277,"character":5}}]}],"hasChildren":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":283,"character":5}}]}],"isChecked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":296,"character":5}}]}],"isDisabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":308,"character":5}}]}],"isExpanded":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":313,"character":5}}]}],"isSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":326,"character":5}}]}],"navigable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":337,"character":5}}]}],"children":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":343,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":365,"character":35,"context":{"typeName":"HTMLElement"},"module":"./treeview.component"}]},{"__symbolic":"reference","name":"ExpandStateService"},{"__symbolic":"reference","name":"NavigationService"},{"__symbolic":"reference","name":"NodeChildrenService"},{"__symbolic":"reference","name":"SelectionService"},{"__symbolic":"reference","name":"TreeViewLookupService"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":371,"character":24},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":372,"character":26},{"__symbolic":"reference","name":"DataChangeNotificationService"},{"__symbolic":"reference","module":"@progress/kendo-angular-l10n","name":"LocalizationService","line":374,"character":30}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"blur":[{"__symbolic":"method"}],"focus":[{"__symbolic":"method"}],"itemLookup":[{"__symbolic":"method"}],"isDisabledNode":[{"__symbolic":"method"}],"expandNode":[{"__symbolic":"method"}],"collapseNode":[{"__symbolic":"method"}],"attachDomHandlers":[{"__symbolic":"method"}],"focusHandler":[{"__symbolic":"method"}],"blurHandler":[{"__symbolic":"method"}],"clickHandler":[{"__symbolic":"method"}],"keydownHandler":[{"__symbolic":"method"}]}},"TreeViewModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":33,"character":1},"arguments":[{"exports":[[{"__symbolic":"reference","name":"TreeViewComponent"},{"__symbolic":"reference","name":"NodeTemplateDirective"},{"__symbolic":"reference","name":"CheckDirective"},{"__symbolic":"reference","name":"DisableDirective"},{"__symbolic":"reference","name":"ExpandDirective"},{"__symbolic":"reference","name":"SelectDirective"},{"__symbolic":"reference","name":"HierarchyBindingDirective"},{"__symbolic":"reference","name":"FlatDataBindingDirective"},{"__symbolic":"reference","name":"DragAndDropDirective"},{"__symbolic":"reference","name":"DragClueTemplateDirective"},{"__symbolic":"reference","name":"DropHintTemplateDirective"},{"__symbolic":"reference","name":"DragAndDropEditingDirective"}]],"imports":[{"__symbolic":"reference","name":"SharedModule"}]}]}],"members":{}},"NodeTemplateDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":50,"character":1},"arguments":[{"selector":"[kendoTreeViewNodeTemplate]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":54,"character":15}}]],"parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}},"CheckDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":46,"character":1},"arguments":[{"selector":"[kendoTreeViewCheckable]"}]}],"members":{"isChecked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":5}}]}],"checkKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":58,"character":5},"arguments":["checkBy"]}]}],"checkedKeys":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":65,"character":5}}]}],"checkable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":76,"character":5},"arguments":["kendoTreeViewCheckable"]}]}],"checkedKeysChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":81,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TreeViewComponent"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":115,"character":22}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"isItemChecked":[{"__symbolic":"method"}],"isIndexChecked":[{"__symbolic":"method"}],"itemKey":[{"__symbolic":"method"}],"check":[{"__symbolic":"method"}],"checkSingle":[{"__symbolic":"method"}],"checkMultiple":[{"__symbolic":"method"}],"toggleCheckOnClick":[{"__symbolic":"method"}],"unsubscribeClick":[{"__symbolic":"method"}],"checkNode":[{"__symbolic":"method"}],"checkParents":[{"__symbolic":"method"}],"allChildrenSelected":[{"__symbolic":"method"}],"notify":[{"__symbolic":"method"}],"addChildrenKeys":[{"__symbolic":"method"}]}},"DisableDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":7,"character":1},"arguments":[{"selector":"[kendoTreeViewDisable]"}]}],"members":{"isDisabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":5}}]}],"disableKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":5},"arguments":["kendoTreeViewDisable"]}]}],"disabledKeys":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TreeViewComponent"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":29,"character":23}]}],"ngOnChanges":[{"__symbolic":"method"}],"itemKey":[{"__symbolic":"method"}]}},"ExpandDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":16,"character":1},"arguments":[{"selector":"[kendoTreeViewExpandable]"}]}],"members":{"isExpanded":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":5}}]}],"expandKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":5},"arguments":["expandBy"]}]}],"expandedKeysChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":35,"character":5}}]}],"expandedKeys":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TreeViewComponent"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"itemKey":[{"__symbolic":"method"}],"toggleExpand":[{"__symbolic":"method"}]}},"SelectDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":18,"character":1},"arguments":[{"selector":"[kendoTreeViewSelectable]"}]}],"members":{"isSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":5}}]}],"selectKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":5},"arguments":["selectBy"]}]}],"selection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":5},"arguments":["kendoTreeViewSelectable"]}]}],"selectedKeys":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":5}}]}],"selectedKeysChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":54,"character":5}}]}],"getAriaMultiselectable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":56,"character":5},"arguments":["attr.aria-multiselectable"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TreeViewComponent"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"itemKey":[{"__symbolic":"method"}],"select":[{"__symbolic":"method"}],"selectSingle":[{"__symbolic":"method"}],"selectMultiple":[{"__symbolic":"method"}],"notify":[{"__symbolic":"method"}]}},"SelectableSettings":{"__symbolic":"interface"},"CheckableSettings":{"__symbolic":"interface"},"CheckMode":{"__symbolic":"interface"},"CheckedState":{"__symbolic":"interface"},"HierarchyBindingDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":10,"character":1},"arguments":[{"selector":"[kendoTreeViewHierarchyBinding]"}]}],"members":{"childrenField":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TreeViewComponent"}]}],"ngOnInit":[{"__symbolic":"method"}]}},"FlatDataBindingDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":14,"character":1},"arguments":[{"selector":"[kendoTreeViewFlatDataBinding]"}]}],"members":{"nodes":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":5}}]}],"parentIdField":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":5}}]}],"idField":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TreeViewComponent"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}]}},"ItemLookup":{"__symbolic":"interface"},"TreeItemLookup":{"__symbolic":"interface"},"TreeItem":{"__symbolic":"interface"},"NodeClickEvent":{"__symbolic":"interface"},"DragAndDropDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":27,"character":1},"arguments":[{"selector":"[kendoTreeViewDragAndDrop]","providers":[{"__symbolic":"reference","name":"DragClueService"},{"__symbolic":"reference","name":"DropHintService"}]}]}],"members":{"allowCopy":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":5}}]}],"dropZoneTreeViews":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":5}}]}],"dragClueTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":54,"character":5},"arguments":[{"__symbolic":"reference","name":"DragClueTemplateDirective"}]}]}],"dropHintTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":59,"character":5},"arguments":[{"__symbolic":"reference","name":"DropHintTemplateDirective"}]}]}],"userSelectStyle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":64,"character":5},"arguments":["style.user-select"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":65,"character":5},"arguments":["style.-ms-user-select"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":79,"character":36,"context":{"typeName":"HTMLElement"},"module":"./drag-and-drop/drag-and-drop.directive"}]},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":80,"character":22},{"__symbolic":"reference","name":"TreeViewComponent"},{"__symbolic":"reference","name":"DragClueService"},{"__symbolic":"reference","name":"DropHintService"}]}],"ngAfterContentInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"handlePress":[{"__symbolic":"method"}],"handleDrag":[{"__symbolic":"method"}],"handleRelease":[{"__symbolic":"method"}],"updateDropHintState":[{"__symbolic":"method"}],"updateDragClueState":[{"__symbolic":"method"}],"initalizeDraggable":[{"__symbolic":"method"}],"notifyDragStart":[{"__symbolic":"method"}],"notifyDrag":[{"__symbolic":"method"}],"notifyDrop":[{"__symbolic":"method"}],"notifyDragEnd":[{"__symbolic":"method"}],"getTargetTreeView":[{"__symbolic":"method"}],"disableAnimationsForNextTick":[{"__symbolic":"method"}]}},"DragAndDropEditingDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":16,"character":1},"arguments":[{"selector":"[kendoTreeViewDragAndDropEditing]"}]}],"members":{"editService":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TreeViewComponent"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"handleAdd":[{"__symbolic":"method"}],"handleRemove":[{"__symbolic":"method"}]}},"DropHintTemplateDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":7,"character":1},"arguments":[{"selector":"[kendoTreeViewDropHintTemplate]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":11,"character":17}}]],"parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}},"DragClueTemplateDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":14,"character":1},"arguments":[{"selector":"[kendoTreeViewDragClueTemplate]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":18,"character":17}}]],"parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}},"DropAction":{"Add":0,"InsertTop":1,"InsertBottom":2,"InsertMiddle":3,"Invalid":4},"DropPosition":{"Over":0,"Before":1,"After":2},"TreeItemAddRemoveArgs":{"__symbolic":"interface"},"TreeItemDropEvent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"PreventableEvent"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TreeItemAddRemoveArgs"},{"__symbolic":"error","message":"Could not resolve type","line":48,"character":67,"context":{"typeName":"PointerEvent"},"module":"./drag-and-drop/models/treeitem-drop-event"}]}],"setValid":[{"__symbolic":"method"}]}},"TreeItemDragStartEvent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"PreventableEvent"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":20,"character":29,"module":"./drag-and-drop/models/treeitem-drag-start-event"}]}]}},"TreeItemDragEvent":{"__symbolic":"class","members":{}},"EditService":{"__symbolic":"interface"},"ExpandStateService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"expand":[{"__symbolic":"method"}],"collapse":[{"__symbolic":"method"}]}},"IndexBuilderService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1}}],"members":{"nodeIndex":[{"__symbolic":"method"}],"indexForLevel":[{"__symbolic":"method"}],"lastLevelIndex":[{"__symbolic":"method"}],"level":[{"__symbolic":"method"}]}},"TreeViewLookupService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1}}],"members":{"registerItem":[{"__symbolic":"method"}],"registerChildren":[{"__symbolic":"method"}],"unregisterItem":[{"__symbolic":"method"}],"replaceItem":[{"__symbolic":"method"}],"itemLookup":[{"__symbolic":"method"}],"hasItem":[{"__symbolic":"method"}],"item":[{"__symbolic":"method"}],"addToParent":[{"__symbolic":"method"}],"mapChildren":[{"__symbolic":"method"}]}},"LoadingNotificationService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"notifyLoaded":[{"__symbolic":"method"}]}},"NodeChildrenService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1}}],"members":{"childrenLoaded":[{"__symbolic":"method"}]}},"NavigationService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@progress/kendo-angular-l10n","name":"LocalizationService","line":66,"character":45}]}],"activate":[{"__symbolic":"method"}],"activateParent":[{"__symbolic":"method"}],"activateIndex":[{"__symbolic":"method"}],"activateClosest":[{"__symbolic":"method"}],"activateFocusable":[{"__symbolic":"method"}],"deactivate":[{"__symbolic":"method"}],"checkIndex":[{"__symbolic":"method"}],"selectIndex":[{"__symbolic":"method"}],"isActive":[{"__symbolic":"method"}],"isFocusable":[{"__symbolic":"method"}],"isDisabled":[{"__symbolic":"method"}],"registerItem":[{"__symbolic":"method"}],"unregisterItem":[{"__symbolic":"method"}],"move":[{"__symbolic":"method"}],"expand":[{"__symbolic":"method"}],"moveToParent":[{"__symbolic":"method"}],"moveToChild":[{"__symbolic":"method"}],"notifyExpand":[{"__symbolic":"method"}],"notifyMove":[{"__symbolic":"method"}],"navigationState":[{"__symbolic":"method"}]}},"SelectionService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"isFirstSelected":[{"__symbolic":"method"}],"setFirstSelected":[{"__symbolic":"method"}],"select":[{"__symbolic":"method"}]}},"DataChangeNotificationService":{"__symbolic":"class","members":{"notify":[{"__symbolic":"method"}]}},"DragClueService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"DragAndDropAssetService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":21,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":26,"character":50}]}],"initialize":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"move":[{"__symbolic":"method"}],"animateDragClueToElementPosition":[{"__symbolic":"method"}],"cancelReturnAnimation":[{"__symbolic":"method"}],"updateDragClueData":[{"__symbolic":"method"}],"updateText":[{"__symbolic":"method"}]}},"DragAndDropAssetService":{"__symbolic":"class","arity":1,"members":{"initialize":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"show":[{"__symbolic":"method"}],"hide":[{"__symbolic":"method"}],"move":[{"__symbolic":"method"}]}},"DropHintService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"DragAndDropAssetService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":12,"character":50}]}],"initialize":[{"__symbolic":"method"}]}},"SharedModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":46,"character":1},"arguments":[{"declarations":[[{"__symbolic":"reference","name":"TreeViewComponent"},{"__symbolic":"reference","name":"TreeViewGroupComponent"},{"__symbolic":"reference","name":"TreeViewItemDirective"},{"__symbolic":"reference","name":"TreeViewItemContentDirective"},{"__symbolic":"reference","name":"NodeTemplateDirective"},{"__symbolic":"reference","name":"CheckDirective"},{"__symbolic":"reference","name":"DisableDirective"},{"__symbolic":"reference","name":"ExpandDirective"},{"__symbolic":"reference","name":"SelectDirective"},{"__symbolic":"reference","name":"HierarchyBindingDirective"},{"__symbolic":"reference","name":"LoadingIndicatorDirective"},{"__symbolic":"reference","name":"FlatDataBindingDirective"},{"__symbolic":"reference","name":"DragAndDropDirective"},{"__symbolic":"reference","name":"DragClueTemplateDirective"},{"__symbolic":"reference","name":"DragClueComponent"},{"__symbolic":"reference","name":"DropHintTemplateDirective"},{"__symbolic":"reference","name":"DropHintComponent"},{"__symbolic":"reference","name":"DragAndDropEditingDirective"}]],"exports":[[{"__symbolic":"reference","name":"TreeViewComponent"},{"__symbolic":"reference","name":"TreeViewGroupComponent"},{"__symbolic":"reference","name":"TreeViewItemDirective"},{"__symbolic":"reference","name":"TreeViewItemContentDirective"},{"__symbolic":"reference","name":"NodeTemplateDirective"},{"__symbolic":"reference","name":"CheckDirective"},{"__symbolic":"reference","name":"DisableDirective"},{"__symbolic":"reference","name":"ExpandDirective"},{"__symbolic":"reference","name":"SelectDirective"},{"__symbolic":"reference","name":"HierarchyBindingDirective"},{"__symbolic":"reference","name":"LoadingIndicatorDirective"},{"__symbolic":"reference","name":"FlatDataBindingDirective"},{"__symbolic":"reference","name":"DragAndDropDirective"},{"__symbolic":"reference","name":"DragClueTemplateDirective"},{"__symbolic":"reference","name":"DragClueComponent"},{"__symbolic":"reference","name":"DropHintTemplateDirective"},{"__symbolic":"reference","name":"DropHintComponent"},{"__symbolic":"reference","name":"DragAndDropEditingDirective"}]],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":49,"character":14},{"__symbolic":"reference","name":"CheckBoxModule"}],"entryComponents":[{"__symbolic":"reference","name":"DragClueComponent"},{"__symbolic":"reference","name":"DropHintComponent"}]}]}],"members":{}},"TreeViewGroupComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":20,"character":1},"arguments":[{"animations":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":22,"character":8},"arguments":["toggle",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":23,"character":12},"arguments":["void => *",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":24,"character":16},"arguments":[{"height":0}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":25,"character":16},"arguments":["0.1s ease-in",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":25,"character":40},"arguments":[{"height":"*"}]}]}]]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":27,"character":12},"arguments":["* => void",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":28,"character":16},"arguments":[{"height":"*"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":29,"character":16},"arguments":["0.1s ease-in",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":29,"character":40},"arguments":[{"height":0}]}]}]]}]]}],"selector":"[kendoTreeViewGroup]","template":"\n <li\n *ngFor=\"let node of data; let index = index\" class=\"k-item k-treeview-item\"\n kendoTreeViewItem\n [dataItem]=\"node\"\n [index]=\"nodeIndex(index)\"\n [parentDataItem]=\"parentDataItem\"\n [parentIndex]=\"parentIndex\"\n [isChecked]=\"isChecked(node, nodeIndex(index))\"\n [isDisabled]=\"disabled || isDisabled(node, nodeIndex(index))\"\n [isExpanded]=\"isExpanded(node, nodeIndex(index))\"\n [isSelected]=\"isSelected(node, nodeIndex(index))\"\n [attr.data-treeindex]=\"nodeIndex(index)\"\n >\n <div class=\"k-mid\">\n <span\n class=\"k-icon\"\n [class.k-i-collapse]=\"isExpanded(node, nodeIndex(index))\"\n [class.k-i-expand]=\"!isExpanded(node, nodeIndex(index))\"\n [kendoTreeViewLoading]=\"nodeIndex(index)\"\n (click)=\"expandNode(nodeIndex(index), node, !isExpanded(node, nodeIndex(index)))\"\n *ngIf=\"expandIcons && hasChildren(node)\"\n >\n </span>\n <kendo-checkbox\n *ngIf=\"checkboxes\"\n [node]=\"node\"\n [index]=\"nodeIndex(index)\"\n [isChecked]=\"isChecked\"\n (checkStateChange)=\"checkNode(nodeIndex(index))\"\n tabindex=\"-1\"\n ></kendo-checkbox>\n <span kendoTreeViewItemContent\n [attr.data-treeindex]=\"nodeIndex(index)\"\n [dataItem]=\"node\"\n [index]=\"nodeIndex(index)\"\n [initialSelection]=\"isSelected(node, nodeIndex(index))\"\n [isSelected]=\"isSelected\"\n class=\"k-in\"\n >\n <ng-container [ngSwitch]=\"hasTemplate\">\n <ng-container *ngSwitchCase=\"true\">\n <ng-template\n [ngTemplateOutlet]=\"nodeTemplateRef\" [ngTemplateOutletContext]=\"{$implicit: node, index: nodeIndex(index)}\"\n >\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchDefault>\n {{nodeText(node)}}\n </ng-container>\n </ng-container>\n </span>\n </div>\n <ul\n *ngIf=\"isExpanded(node, nodeIndex(index)) && hasChildren(node)\"\n kendoTreeViewGroup\n role=\"group\"\n [nodes]=\"fetchChildren\"\n [checkboxes]=\"checkboxes\"\n [expandIcons]=\"expandIcons\"\n [children]=\"children\"\n [hasChildren]=\"hasChildren\"\n [isChecked]=\"isChecked\"\n [isDisabled]=\"isDisabled\"\n [disabled]=\"disabled || isDisabled(node, nodeIndex(index))\"\n [isExpanded]=\"isExpanded\"\n [isSelected]=\"isSelected\"\n [nodeTemplateRef]=\"nodeTemplateRef\"\n [parentIndex]=\"nodeIndex(index)\"\n [parentDataItem]=\"node\"\n [textField]=\"nextFields\"\n [@toggle]=\"true\"\n >\n </ul>\n </li>\n "}]}],"members":{"kGroupClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":112,"character":5},"arguments":["class.k-group"]}]}],"role":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":115,"character":5},"arguments":["attr.role"]}]}],"checkboxes":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":118,"character":5}}]}],"expandIcons":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":119,"character":5}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":120,"character":5}}]}],"nodes":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":122,"character":5}}]}],"textField":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":123,"character":5}}]}],"parentDataItem":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":124,"character":5}}]}],"parentIndex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":125,"character":5}}]}],"nodeTemplateRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":126,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ExpandStateService"},{"__symbolic":"reference","name":"LoadingNotificationService"},{"__symbolic":"reference","name":"IndexBuilderService"},{"__symbolic":"reference","name":"TreeViewLookupService"},{"__symbolic":"reference","name":"NavigationService"},{"__symbolic":"reference","name":"NodeChildrenService"},{"__symbolic":"reference","name":"DataChangeNotificationService"}]}],"isChecked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":154,"character":5}}]}],"isDisabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":155,"character":5}}]}],"isExpanded":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":156,"character":5}}]}],"isSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":157,"character":5}}]}],"children":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":159,"character":5}}]}],"hasChildren":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":160,"character":5}}]}],"expandNode":[{"__symbolic":"method"}],"checkNode":[{"__symbolic":"method"}],"nodeIndex":[{"__symbolic":"method"}],"nodeText":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"fetchChildren":[{"__symbolic":"method"}],"setNodeChildren":[{"__symbolic":"method"}],"mapToTreeItem":[{"__symbolic":"method"}],"emitChildrenLoaded":[{"__symbolic":"method"}],"subscribeToNodesChange":[{"__symbolic":"method"}]}},"TreeViewItemDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":28,"character":1},"arguments":[{"selector":"[kendoTreeViewItem]"}]}],"members":{"dataItem":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":5}}]}],"index":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":5}}]}],"parentDataItem":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":5}}]}],"parentIndex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":5}}]}],"isChecked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":5}}]}],"isDisabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":47,"character":5}}]}],"isExpanded":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":5}}]}],"isSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":57,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":82,"character":25},{"__symbolic":"reference","name":"ExpandStateService"},{"__symbolic":"reference","name":"NavigationService"},{"__symbolic":"reference","name":"SelectionService"},{"__symbolic":"reference","name":"TreeViewLookupService"},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":87,"character":26},{"__symbolic":"reference","name":"IndexBuilderService"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"subscribe":[{"__symbolic":"method"}],"registerNavigationItem":[{"__symbolic":"method"}],"activateItem":[{"__symbolic":"method"}],"expand":[{"__symbolic":"method"}],"isFocusable":[{"__symbolic":"method"}],"focusItem":[{"__symbolic":"method"}],"moveLookupItem":[{"__symbolic":"method"}],"moveNavigationItem":[{"__symbolic":"method"}],"disableNavigationItem":[{"__symbolic":"method"}],"setAriaAttributes":[{"__symbolic":"method"}],"setDisabledClass":[{"__symbolic":"method"}],"setClass":[{"__symbolic":"method"}],"updateTabIndex":[{"__symbolic":"method"}],"setAttribute":[{"__symbolic":"method"}]}},"TreeViewItemContentDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":12,"character":1},"arguments":[{"selector":"[kendoTreeViewItemContent]"}]}],"members":{"dataItem":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":5}}]}],"index":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":5}}]}],"initialSelection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":5}}]}],"isSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":22,"character":25},{"__symbolic":"reference","name":"NavigationService"},{"__symbolic":"reference","name":"SelectionService"},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":25,"character":26}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"updateItem":[{"__symbolic":"method"}],"updateSelection":[{"__symbolic":"method"}],"render":[{"__symbolic":"method"}]}},"LoadingIndicatorDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":10,"character":1},"arguments":[{"selector":"[kendoTreeViewLoading]"}]}],"members":{"loading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":13,"character":5},"arguments":["class.k-i-loading"]}]}],"index":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":5},"arguments":["kendoTreeViewLoading"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ExpandStateService"},{"__symbolic":"reference","name":"LoadingNotificationService"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":32,"character":22}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"DragClueComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":8,"character":21},"member":"OnPush"},"selector":"kendo-treeview-drag-clue","template":"\n <ng-container *ngIf=\"!template\">\n <span class=\"k-icon {{statusIconClass}} k-drag-status\"></span>\n <span>{{text}}</span>\n </ng-container>\n\n <ng-template\n *ngIf=\"template\"\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"{\n text: text,\n action: action,\n sourceItem: sourceItem,\n destinationItem: destinationItem\n }\"\n >\n </ng-template>\n "}]}],"members":{"hostClasses":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":31,"character":5},"arguments":["class.k-header"]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":32,"character":5},"arguments":["class.k-drag-clue"]}]}],"posistionStyle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":60,"character":5},"arguments":["style.position"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":74,"character":29}]}],"detectChanges":[{"__symbolic":"method"}]}},"DropHintComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":6,"character":21},"member":"OnPush"},"selector":"kendo-treeview-drop-hint","template":"\n <span\n *ngIf=\"!template\"\n class=\"k-icon k-i-drag-and-drop\"\n >\n </span>\n\n <ng-template\n *ngIf=\"template\"\n [ngTemplateOutlet]=\"template\"\n >\n <ng-template>\n "}]}],"members":{"hostClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":24,"character":5},"arguments":["class.k-drop-hint-container"]}]}],"position":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":32,"character":5},"arguments":["style.position"]}]}],"pointerEvents":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":35,"character":5},"arguments":["style.pointer-events"]}]}]}},"CheckBoxModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":12,"character":1},"arguments":[{"declarations":[[{"__symbolic":"reference","name":"CheckBoxComponent"}]],"exports":[[{"__symbolic":"reference","name":"CheckBoxComponent"}]]}]}],"members":{}},"CheckBoxComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":21,"character":1},"arguments":[{"selector":"kendo-checkbox","template":"\n <input\n class=\"k-checkbox\"\n type=\"checkbox\"\n [id]=\"id\"\n [checked]=\"checked\"\n [indeterminate]=\"indeterminate\"\n [tabindex]=\"tabindex\"\n (change)=\"handleChange($event)\"\n />\n <label\n class=\"k-checkbox-label\"\n tabindex=\"-1\"\n [for]=\"id\"\n >{{labelText}}</label>\n "}]}],"members":{"classWrapper":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":44,"character":5},"arguments":["class.k-checkbox-wrapper"]}]}],"id":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":5}}]}],"isChecked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":55,"character":5}}]}],"node":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":60,"character":5}}]}],"index":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":65,"character":5}}]}],"labelText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":70,"character":5}}]}],"tabindex":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":75,"character":5}}]}],"checkStateChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":80,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":92,"character":33},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":93,"character":34},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":94,"character":40}]}],"ngOnInit":[{"__symbolic":"method"}],"ngDoCheck":[{"__symbolic":"method"}],"handleChange":[{"__symbolic":"method"}]}},"PreventableEvent":{"__symbolic":"class","members":{"preventDefault":[{"__symbolic":"method"}],"isDefaultPrevented":[{"__symbolic":"method"}]}}},"origins":{"TreeViewComponent":"./treeview.component","TreeViewModule":"./treeview.module","NodeTemplateDirective":"./node-template.directive","CheckDirective":"./check.directive","DisableDirective":"./disable.directive","ExpandDirective":"./expand.directive","SelectDirective":"./selection/select.directive","SelectableSettings":"./selection/selectable-settings","CheckableSettings":"./checkable-settings","CheckMode":"./check-mode","CheckedState":"./checkbox/checked-state","HierarchyBindingDirective":"./hierarchy-binding.directive","FlatDataBindingDirective":"./flat-binding.directive","ItemLookup":"./treeitem-lookup.interface","TreeItemLookup":"./treeitem-lookup.interface","TreeItem":"./treeitem.interface","NodeClickEvent":"./node-click-event.interface","DragAndDropDirective":"./drag-and-drop/drag-and-drop.directive","DragAndDropEditingDirective":"./drag-and-drop/drag-and-drop-editing.directive","DropHintTemplateDirective":"./drag-and-drop/drop-hint/drop-hint-template.directive","DragClueTemplateDirective":"./drag-and-drop/drag-clue/drag-clue-template.directive","DropAction":"./drag-and-drop/models/drop-action","DropPosition":"./drag-and-drop/models/drop-position","TreeItemAddRemoveArgs":"./drag-and-drop/models/treeitem-add-remove-args","TreeItemDropEvent":"./drag-and-drop/models/treeitem-drop-event","TreeItemDragStartEvent":"./drag-and-drop/models/treeitem-drag-start-event","TreeItemDragEvent":"./drag-and-drop/models/treeitem-drag-event","EditService":"./drag-and-drop/models/editing-service","ExpandStateService":"./expand-state.service","IndexBuilderService":"./index-builder.service","TreeViewLookupService":"./treeview-lookup.service","LoadingNotificationService":"./loading-notification.service","NodeChildrenService":"./node-children.service","NavigationService":"./navigation/navigation.service","SelectionService":"./selection/selection.service","DataChangeNotificationService":"./data-change-notification.service","DragClueService":"./drag-and-drop/drag-clue/drag-clue.service","DragAndDropAssetService":"./drag-and-drop/editing-services/drag-and-drop-asset.service","DropHintService":"./drag-and-drop/drop-hint/drop-hint.service","SharedModule":"./shared.module","TreeViewGroupComponent":"./treeview-group.component","TreeViewItemDirective":"./treeview-item.directive","TreeViewItemContentDirective":"./treeview-item-content.directive","LoadingIndicatorDirective":"./loading-indicator.directive","DragClueComponent":"./drag-and-drop/drag-clue/drag-clue.component","DropHintComponent":"./drag-and-drop/drop-hint/drop-hint.component","CheckBoxModule":"./checkbox/checkbox.module","CheckBoxComponent":"./checkbox/checkbox.component","PreventableEvent":"./drag-and-drop/models/preventable-event"},"importAs":"@progress/kendo-angular-treeview"} |
@@ -72,12 +72,1 @@ /**----------------------------------------------------------------------------------------- | ||
export declare const nodeIndex: (item: NavigationItem | TreeItem) => string; | ||
/** | ||
* @hidden | ||
* | ||
* Retrieves the left, top, width and height of the element, relative to the document left and top. | ||
*/ | ||
export declare const elementCoords: (element: Element) => { | ||
left: number; | ||
top: number; | ||
width: number; | ||
height: number; | ||
}; |
@@ -134,18 +134,1 @@ /**----------------------------------------------------------------------------------------- | ||
export const nodeIndex = (item) => (item || {}).index; | ||
/** | ||
* @hidden | ||
* | ||
* Retrieves the left, top, width and height of the element, relative to the document left and top. | ||
*/ | ||
export const elementCoords = (element) => { | ||
if (!isPresent(element) || typeof window === 'undefined') { | ||
return; | ||
} | ||
const viewPortCoords = element.getBoundingClientRect(); | ||
return { | ||
left: viewPortCoords.left + window.pageXOffset, | ||
top: viewPortCoords.top + window.pageYOffset, | ||
width: viewPortCoords.width, | ||
height: viewPortCoords.height | ||
}; | ||
}; |
@@ -7,7 +7,57 @@ /**----------------------------------------------------------------------------------------- | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var kendo_angular_common_1 = require("@progress/kendo-angular-common"); | ||
var utils_1 = require("../utils"); | ||
var models_1 = require("./models"); | ||
/** | ||
* Checks if the browser supports relative stacking context. | ||
* https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context | ||
*/ | ||
var hasRelativeStackingContext = function () { | ||
if (!kendo_angular_common_1.isDocumentAvailable()) { | ||
return false; | ||
} | ||
var top = 10; | ||
var parent = document.createElement("div"); | ||
parent.style.transform = "matrix(10, 0, 0, 10, 0, 0)"; | ||
parent.innerHTML = "<div style=\"position: fixed; top: " + top + "px;\">child</div>"; | ||
document.body.appendChild(parent); | ||
var isDifferent = parent.children[0].getBoundingClientRect().top !== top; | ||
document.body.removeChild(parent); | ||
return isDifferent; | ||
}; | ||
var ɵ0 = hasRelativeStackingContext; | ||
exports.ɵ0 = ɵ0; | ||
var HAS_RELATIVE_STACKING_CONTEXT = hasRelativeStackingContext(); | ||
/** | ||
* @hidden | ||
* | ||
* Gets the offset of the parent element if the latter has the `transform` CSS prop applied. | ||
* Transformed parents create new stacking context and the `fixed` children must be position based on the transformed parent. | ||
* https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context | ||
* | ||
* If no parent container is `transform`-ed the function will return `{ left: 0, top: 0 }`; | ||
*/ | ||
exports.getContainerOffset = function (element) { | ||
if (!(element && HAS_RELATIVE_STACKING_CONTEXT)) { | ||
return { left: 0, top: 0 }; | ||
} | ||
var offsetParent = element.parentElement; | ||
while (offsetParent) { | ||
if (window.getComputedStyle(offsetParent).transform !== 'none') { | ||
break; | ||
} | ||
offsetParent = offsetParent.parentElement; | ||
} | ||
if (offsetParent) { | ||
var rect = offsetParent.getBoundingClientRect(); | ||
return { | ||
left: rect.left - offsetParent.scrollLeft, | ||
top: rect.top - offsetParent.scrollTop | ||
}; | ||
} | ||
return { left: 0, top: 0 }; | ||
}; | ||
/** | ||
* @hidden | ||
*/ | ||
exports.getDropAction = function (dropPosition, dropTarget) { | ||
@@ -31,4 +81,4 @@ if (!(utils_1.isPresent(dropPosition) && utils_1.isPresent(dropTarget))) { | ||
*/ | ||
exports.getDropPosition = function (draggedItem, target, pageY, targetTreeView) { | ||
if (!(utils_1.isPresent(target) && targetTreeView)) { | ||
exports.getDropPosition = function (draggedItem, target, clientY, targetTreeView, containerOffset) { | ||
if (!(utils_1.isPresent(draggedItem) && utils_1.isPresent(target) && utils_1.isPresent(targetTreeView) && utils_1.isPresent(containerOffset))) { | ||
return; | ||
@@ -47,17 +97,20 @@ } | ||
} | ||
var itemCoords = utils_1.elementCoords(content); | ||
var itemViewPortCoords = content.getBoundingClientRect(); | ||
/* | ||
if the user is hovering a treeview item, split the item height into four parts: | ||
dropping into the top quarter should insert the dragged item before the drop target | ||
dropping into the bottom quarter should insert the dragged item after the drop target | ||
dropping into the second or third quarter should add the item as child node of the drop target | ||
- dropping into the top quarter should insert the dragged item before the drop target | ||
- dropping into the bottom quarter should insert the dragged item after the drop target | ||
- dropping into the second or third quarter should add the item as child node of the drop target | ||
if the user is NOT hovering a treeview item (he's dragging somewhere in the right), split the item height to just parts: | ||
dropping should insert before or after | ||
- dropping should insert before or after | ||
*/ | ||
var itemDivisionHeight = itemCoords.height / (utils_1.isContent(target) ? 4 : 2); | ||
if (pageY < itemCoords.top + itemDivisionHeight) { | ||
var itemDivisionHeight = itemViewPortCoords.height / (utils_1.isContent(target) ? 4 : 2); | ||
// clear any possible container offset created by parent elements with `transform` css property set | ||
var pointerPosition = clientY - containerOffset.top; | ||
var itemTop = itemViewPortCoords.top - containerOffset.top; | ||
if (pointerPosition < itemTop + itemDivisionHeight) { | ||
return models_1.DropPosition.Before; | ||
} | ||
if (pageY >= itemCoords.top + itemCoords.height - itemDivisionHeight) { | ||
if (pointerPosition >= itemTop + itemViewPortCoords.height - itemDivisionHeight) { | ||
return models_1.DropPosition.After; | ||
@@ -64,0 +117,0 @@ } |
@@ -52,2 +52,8 @@ /**----------------------------------------------------------------------------------------- | ||
this.userSelectStyle = 'none'; | ||
/** | ||
* Describes the offset of the parent element if the latter has the `transform` CSS prop applied. | ||
* Transformed parents create new stacking context and the fixed children must be position based on the transformed parent. | ||
* https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context | ||
*/ | ||
this.containerOffset = { top: 0, left: 0 }; | ||
} | ||
@@ -81,2 +87,3 @@ DragAndDropDirective.prototype.ngAfterContentInit = function () { | ||
this.dragClueService.updateText(this.draggedItem.innerText); | ||
this.containerOffset = drag_and_drop_utils_1.getContainerOffset(this.draggedItem); | ||
}; | ||
@@ -88,3 +95,3 @@ /** | ||
var _this = this; | ||
var originalEvent = _a.originalEvent, pageX = _a.pageX, pageY = _a.pageY; | ||
var originalEvent = _a.originalEvent, clientX = _a.clientX, clientY = _a.clientY; | ||
if (!utils_1.isPresent(this.draggedItem)) { | ||
@@ -97,9 +104,9 @@ return; | ||
var targetTreeView = this.getTargetTreeView(originalEvent.target); | ||
var dropPosition = drag_and_drop_utils_1.getDropPosition(this.draggedItem, originalEvent.target, pageY, targetTreeView); | ||
var clueAnchor = utils_1.closestWithMatch(originalEvent.target, '.k-mid'); | ||
this.updateDropHintState(dropPosition, clueAnchor); | ||
var dropPosition = drag_and_drop_utils_1.getDropPosition(this.draggedItem, originalEvent.target, clientY, targetTreeView, this.containerOffset); | ||
var dropHintAnchor = utils_1.closestWithMatch(originalEvent.target, '.k-mid'); | ||
this.updateDropHintState(dropPosition, dropHintAnchor); | ||
var dropAction = drag_and_drop_utils_1.getDropAction(dropPosition, originalEvent.target); | ||
var sourceItem = drag_and_drop_utils_1.treeItemFromEventTarget(this.treeview, this.draggedItem); | ||
var destinationItem = drag_and_drop_utils_1.treeItemFromEventTarget(targetTreeView, originalEvent.target); | ||
this.updateDragClueState(dropAction, pageX, pageY, sourceItem, destinationItem); | ||
this.updateDragClueState(dropAction, clientX, clientY, sourceItem, destinationItem); | ||
}; | ||
@@ -111,3 +118,3 @@ /** | ||
var _this = this; | ||
var originalEvent = _a.originalEvent, pageY = _a.pageY; | ||
var originalEvent = _a.originalEvent, clientY = _a.clientY; | ||
if (!utils_1.isPresent(this.draggedItem)) { | ||
@@ -118,3 +125,3 @@ return; | ||
var destinationTree = this.getTargetTreeView(originalEvent.target); | ||
var dropPosition = drag_and_drop_utils_1.getDropPosition(this.draggedItem, originalEvent.target, pageY, this.getTargetTreeView(originalEvent.target)); | ||
var dropPosition = drag_and_drop_utils_1.getDropPosition(this.draggedItem, originalEvent.target, clientY, this.getTargetTreeView(originalEvent.target), this.containerOffset); | ||
var sourceItem = drag_and_drop_utils_1.treeItemFromEventTarget(sourceTree, this.draggedItem); | ||
@@ -139,11 +146,13 @@ var destinationItem = drag_and_drop_utils_1.treeItemFromEventTarget(destinationTree, originalEvent.target); | ||
} | ||
var anchorCoords = utils_1.elementCoords(dropHintAnchor); | ||
var anchorViewPortCoords = dropHintAnchor.getBoundingClientRect(); | ||
var insertBefore = dropPosition === models_1.DropPosition.Before; | ||
var top = insertBefore ? anchorCoords.top : (anchorCoords.top + anchorCoords.height); | ||
this.dropHintService.move(anchorCoords.left, top); | ||
var top = insertBefore ? anchorViewPortCoords.top : (anchorViewPortCoords.top + anchorViewPortCoords.height); | ||
// clear any possible container offset created by parent elements with `transform` css property set | ||
this.dropHintService.move(anchorViewPortCoords.left - this.containerOffset.left, top - this.containerOffset.top); | ||
this.dropHintService.show(); | ||
}; | ||
DragAndDropDirective.prototype.updateDragClueState = function (dropAction, pageX, pageY, sourceItem, destinationItem) { | ||
DragAndDropDirective.prototype.updateDragClueState = function (dropAction, clientX, clientY, sourceItem, destinationItem) { | ||
// clear any possible container offset created by parent elements with `transform` css property set | ||
this.dragClueService.move(clientX - this.containerOffset.left, clientY - this.containerOffset.top); | ||
this.dragClueService.updateDragClueData(dropAction, sourceItem, destinationItem); | ||
this.dragClueService.move(pageX, pageY); | ||
this.dragClueService.show(); | ||
@@ -150,0 +159,0 @@ }; |
@@ -16,2 +16,3 @@ /**----------------------------------------------------------------------------------------- | ||
this.hostClasses = true; | ||
this.posistionStyle = 'fixed'; | ||
} | ||
@@ -48,3 +49,4 @@ Object.defineProperty(DragClueComponent.prototype, "statusIconClass", { | ||
DragClueComponent.propDecorators = { | ||
hostClasses: [{ type: core_1.HostBinding, args: ['class.k-header',] }, { type: core_1.HostBinding, args: ['class.k-drag-clue',] }] | ||
hostClasses: [{ type: core_1.HostBinding, args: ['class.k-header',] }, { type: core_1.HostBinding, args: ['class.k-drag-clue',] }], | ||
posistionStyle: [{ type: core_1.HostBinding, args: ['style.position',] }] | ||
}; | ||
@@ -51,0 +53,0 @@ return DragClueComponent; |
@@ -12,11 +12,19 @@ /**----------------------------------------------------------------------------------------- | ||
var drag_and_drop_asset_service_1 = require("../editing-services/drag-and-drop-asset.service"); | ||
var HINT_OFFSET = 10; | ||
var RETURN_ANIMATION_DURATION = 200; | ||
/** | ||
* @hidden | ||
*/ | ||
exports.CLUE_OFFSET = 10; | ||
/** | ||
* @hidden | ||
*/ | ||
exports.RETURN_ANIMATION_DURATION = 200; | ||
/** | ||
* @hidden | ||
*/ | ||
var DragClueService = /** @class */ (function (_super) { | ||
tslib_1.__extends(DragClueService, _super); | ||
function DragClueService() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
function DragClueService(componentFactoryResolver) { | ||
var _this = _super.call(this) || this; | ||
_this.componentFactoryResolver = componentFactoryResolver; | ||
return _this; | ||
} | ||
@@ -27,4 +35,4 @@ DragClueService.prototype.initialize = function (container, template) { | ||
} | ||
var hintComponentFactory = this.componetFactoryResolver.resolveComponentFactory(drag_clue_component_1.DragClueComponent); | ||
this.componentRef = container.createComponent(hintComponentFactory); | ||
var clueComponentFactory = this.componentFactoryResolver.resolveComponentFactory(drag_clue_component_1.DragClueComponent); | ||
this.componentRef = container.createComponent(clueComponentFactory); | ||
this.hide(); | ||
@@ -39,3 +47,3 @@ this.componentRef.instance.template = template; | ||
DragClueService.prototype.move = function (left, top) { | ||
_super.prototype.move.call(this, left, top, HINT_OFFSET); | ||
_super.prototype.move.call(this, left, top, exports.CLUE_OFFSET); | ||
}; | ||
@@ -48,8 +56,8 @@ DragClueService.prototype.animateDragClueToElementPosition = function (target) { | ||
} | ||
var targetElementCoords = target.getBoundingClientRect(); | ||
var hintElementCoords = this.element.getBoundingClientRect(); | ||
var targetElementViewPortCoords = target.getBoundingClientRect(); | ||
var clueElementViewPortCoords = this.element.getBoundingClientRect(); | ||
this.returnAnimation = this.element.animate([ | ||
{ transform: 'translate(0, 0)' }, | ||
{ transform: "translate(" + (targetElementCoords.left - hintElementCoords.left) + "px, " + (targetElementCoords.top - hintElementCoords.top) + "px)" } | ||
], RETURN_ANIMATION_DURATION); | ||
{ transform: "translate(" + (targetElementViewPortCoords.left - clueElementViewPortCoords.left) + "px, " + (targetElementViewPortCoords.top - clueElementViewPortCoords.top) + "px)" } | ||
], exports.RETURN_ANIMATION_DURATION); | ||
this.returnAnimation.onfinish = function () { return _this.hide(); }; | ||
@@ -83,4 +91,8 @@ }; | ||
]; | ||
/** @nocollapse */ | ||
DragClueService.ctorParameters = function () { return [ | ||
{ type: core_1.ComponentFactoryResolver } | ||
]; }; | ||
return DragClueService; | ||
}(drag_and_drop_asset_service_1.DragAndDropAssetService)); | ||
exports.DragClueService = DragClueService; |
@@ -14,7 +14,4 @@ /**----------------------------------------------------------------------------------------- | ||
this.hostClass = true; | ||
/** TODO: remove once added to the themes */ | ||
this.position = 'absolute'; | ||
this.zIndex = 2; | ||
this.position = 'fixed'; | ||
this.pointerEvents = 'none'; | ||
/** ... */ | ||
} | ||
@@ -31,3 +28,2 @@ DropHintComponent.decorators = [ | ||
position: [{ type: core_1.HostBinding, args: ['style.position',] }], | ||
zIndex: [{ type: core_1.HostBinding, args: ['style.z-index',] }], | ||
pointerEvents: [{ type: core_1.HostBinding, args: ['style.pointer-events',] }] | ||
@@ -34,0 +30,0 @@ }; |
@@ -17,4 +17,6 @@ /**----------------------------------------------------------------------------------------- | ||
tslib_1.__extends(DropHintService, _super); | ||
function DropHintService() { | ||
return _super !== null && _super.apply(this, arguments) || this; | ||
function DropHintService(componentFactoryResolver) { | ||
var _this = _super.call(this) || this; | ||
_this.componentFactoryResolver = componentFactoryResolver; | ||
return _this; | ||
} | ||
@@ -25,3 +27,3 @@ DropHintService.prototype.initialize = function (container, template) { | ||
} | ||
var hintComponentFactory = this.componetFactoryResolver.resolveComponentFactory(drop_hint_component_1.DropHintComponent); | ||
var hintComponentFactory = this.componentFactoryResolver.resolveComponentFactory(drop_hint_component_1.DropHintComponent); | ||
this.componentRef = container.createComponent(hintComponentFactory); | ||
@@ -35,4 +37,8 @@ this.hide(); | ||
]; | ||
/** @nocollapse */ | ||
DropHintService.ctorParameters = function () { return [ | ||
{ type: core_1.ComponentFactoryResolver } | ||
]; }; | ||
return DropHintService; | ||
}(drag_and_drop_asset_service_1.DragAndDropAssetService)); | ||
exports.DropHintService = DropHintService; |
@@ -7,3 +7,2 @@ /**----------------------------------------------------------------------------------------- | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var core_1 = require("@angular/core"); | ||
var utils_1 = require("../../utils"); | ||
@@ -14,4 +13,3 @@ /** | ||
var DragAndDropAssetService = /** @class */ (function () { | ||
function DragAndDropAssetService(componetFactoryResolver) { | ||
this.componetFactoryResolver = componetFactoryResolver; | ||
function DragAndDropAssetService() { | ||
} | ||
@@ -54,14 +52,7 @@ Object.defineProperty(DragAndDropAssetService.prototype, "componentRef", { | ||
if (offset === void 0) { offset = 0; } | ||
this.element.style.left = left + offset + 'px'; | ||
this.element.style.top = top + offset + 'px'; | ||
this.element.style.left = left + offset + "px"; | ||
this.element.style.top = top + offset + "px"; | ||
}; | ||
DragAndDropAssetService.decorators = [ | ||
{ type: core_1.Injectable }, | ||
]; | ||
/** @nocollapse */ | ||
DragAndDropAssetService.ctorParameters = function () { return [ | ||
{ type: core_1.ComponentFactoryResolver } | ||
]; }; | ||
return DragAndDropAssetService; | ||
}()); | ||
exports.DragAndDropAssetService = DragAndDropAssetService; |
@@ -136,18 +136,1 @@ /**----------------------------------------------------------------------------------------- | ||
exports.nodeIndex = function (item) { return (item || {}).index; }; | ||
/** | ||
* @hidden | ||
* | ||
* Retrieves the left, top, width and height of the element, relative to the document left and top. | ||
*/ | ||
exports.elementCoords = function (element) { | ||
if (!exports.isPresent(element) || typeof window === 'undefined') { | ||
return; | ||
} | ||
var viewPortCoords = element.getBoundingClientRect(); | ||
return { | ||
left: viewPortCoords.left + window.pageXOffset, | ||
top: viewPortCoords.top + window.pageYOffset, | ||
width: viewPortCoords.width, | ||
height: viewPortCoords.height | ||
}; | ||
}; |
@@ -6,3 +6,3 @@ { | ||
"license": "SEE LICENSE IN LICENSE.md", | ||
"version": "4.1.0", | ||
"version": "4.1.1-dev.202002201511", | ||
"main": "dist/npm/index.js", | ||
@@ -62,7 +62,10 @@ "module": "dist/fesm5/index.js", | ||
"@angular/router": "^6.1.10", | ||
"@progress/kendo-angular-buttons": "^5.2.3", | ||
"@progress/kendo-angular-common": "^1.0.0", | ||
"@progress/kendo-angular-dialog": "^4.1.3", | ||
"@progress/kendo-angular-e2e": "^2.0.0", | ||
"@progress/kendo-angular-jest-preset": "^1.1.0", | ||
"@progress/kendo-angular-l10n": "^2.0.0", | ||
"@progress/kendo-angular-tasks": "^15.5.2", | ||
"@progress/kendo-angular-popup": "^3.0.5", | ||
"@progress/kendo-angular-tasks": "^16.0.0", | ||
"@progress/kendo-theme-default": "latest", | ||
@@ -69,0 +72,0 @@ "@telerik/semantic-prerelease": "^1.0.0", |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
1205531
21059
38
4