@catull/igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
186 lines • 18 kB
JavaScript
import { __decorate, __extends, __metadata } from "tslib";
import { Directive, ElementRef, Renderer2, NgZone, HostBinding, TemplateRef } from '@angular/core';
import { IgxDropDirective } from '../../directives/drag-drop/drag-drop.directive';
import { SortingDirection } from '../../data-operations/sorting-expression.interface';
import { IgxColumnMovingDragDirective } from '../moving/moving.drag.directive';
/**
* @hidden
*/
var IgxGroupByRowTemplateDirective = /** @class */ (function () {
function IgxGroupByRowTemplateDirective(template) {
this.template = template;
}
IgxGroupByRowTemplateDirective.ctorParameters = function () { return [
{ type: TemplateRef }
]; };
IgxGroupByRowTemplateDirective = __decorate([
Directive({
selector: '[igxGroupByRow]'
}),
__metadata("design:paramtypes", [TemplateRef])
], IgxGroupByRowTemplateDirective);
return IgxGroupByRowTemplateDirective;
}());
export { IgxGroupByRowTemplateDirective };
/**
* @hidden
*/
var IgxGridDetailTemplateDirective = /** @class */ (function () {
function IgxGridDetailTemplateDirective() {
}
IgxGridDetailTemplateDirective = __decorate([
Directive({
selector: '[igxGridDetail]'
})
], IgxGridDetailTemplateDirective);
return IgxGridDetailTemplateDirective;
}());
export { IgxGridDetailTemplateDirective };
/**
* @hidden
*/
var IgxRowExpandedIndicatorDirective = /** @class */ (function () {
function IgxRowExpandedIndicatorDirective() {
}
IgxRowExpandedIndicatorDirective = __decorate([
Directive({
selector: '[igxRowExpandedIndicator]'
})
], IgxRowExpandedIndicatorDirective);
return IgxRowExpandedIndicatorDirective;
}());
export { IgxRowExpandedIndicatorDirective };
/**
* @hidden
*/
var IgxRowCollapsedIndicatorDirective = /** @class */ (function () {
function IgxRowCollapsedIndicatorDirective() {
}
IgxRowCollapsedIndicatorDirective = __decorate([
Directive({
selector: '[igxRowCollapsedIndicator]'
})
], IgxRowCollapsedIndicatorDirective);
return IgxRowCollapsedIndicatorDirective;
}());
export { IgxRowCollapsedIndicatorDirective };
/**
* @hidden
*/
var IgxHeaderExpandIndicatorDirective = /** @class */ (function () {
function IgxHeaderExpandIndicatorDirective() {
}
IgxHeaderExpandIndicatorDirective = __decorate([
Directive({
selector: '[igxHeaderExpandedIndicator]'
})
], IgxHeaderExpandIndicatorDirective);
return IgxHeaderExpandIndicatorDirective;
}());
export { IgxHeaderExpandIndicatorDirective };
/**
* @hidden
*/
var IgxHeaderCollapseIndicatorDirective = /** @class */ (function () {
function IgxHeaderCollapseIndicatorDirective() {
}
IgxHeaderCollapseIndicatorDirective = __decorate([
Directive({
selector: '[igxHeaderCollapsedIndicator]'
})
], IgxHeaderCollapseIndicatorDirective);
return IgxHeaderCollapseIndicatorDirective;
}());
export { IgxHeaderCollapseIndicatorDirective };
/**
* @hidden
*/
var IgxGroupAreaDropDirective = /** @class */ (function (_super) {
__extends(IgxGroupAreaDropDirective, _super);
function IgxGroupAreaDropDirective(elementRef, renderer, zone) {
var _this = _super.call(this, elementRef, renderer, zone) || this;
_this.elementRef = elementRef;
_this.renderer = renderer;
_this.zone = zone;
_this.hovered = false;
return _this;
}
IgxGroupAreaDropDirective.prototype.onDragEnter = function (event) {
var drag = event.detail.owner;
var column = drag.column;
if (!this.columnBelongsToGrid(column)) {
return;
}
var grid = column.grid;
var isGrouped = grid.groupingExpressions.findIndex(function (item) { return item.fieldName === column.field; }) !== -1;
if (column.groupable && !isGrouped && !column.columnGroup && !!column.field) {
drag.icon.innerText = 'group_work';
this.hovered = true;
}
else {
drag.icon.innerText = 'block';
this.hovered = false;
}
};
IgxGroupAreaDropDirective.prototype.onDragLeave = function (event) {
var drag = event.detail.owner;
var column = drag.column;
if (!this.columnBelongsToGrid(column)) {
return;
}
event.detail.owner.icon.innerText = 'block';
this.hovered = false;
};
IgxGroupAreaDropDirective.prototype.onDragDrop = function (event) {
var drag = event.detail.owner;
if (drag instanceof IgxColumnMovingDragDirective) {
var column_1 = drag.column;
if (!this.columnBelongsToGrid(column_1)) {
return;
}
var grid = column_1.grid;
var isGrouped = grid.groupingExpressions.findIndex(function (item) { return item.fieldName === column_1.field; }) !== -1;
if (column_1.groupable && !isGrouped && !column_1.columnGroup && !!column_1.field) {
grid.groupBy({ fieldName: column_1.field, dir: SortingDirection.Asc, ignoreCase: column_1.sortingIgnoreCase,
strategy: column_1.sortStrategy, groupingComparer: column_1.groupingComparer });
}
}
};
IgxGroupAreaDropDirective.prototype.closestParentByAttr = function (elem, attr) {
return elem.hasAttribute(attr) ?
elem :
this.closestParentByAttr(elem.parentElement, attr);
};
IgxGroupAreaDropDirective.prototype.columnBelongsToGrid = function (column) {
var elem = this.elementRef.nativeElement;
var closestGridID = this.closestParentByAttr(elem, 'igxGroupAreaDrop').getAttribute('gridId');
if (!column) {
return false;
}
else {
var grid = column.grid;
if (!grid || grid.id !== closestGridID) {
return false;
}
return true;
}
};
IgxGroupAreaDropDirective.ctorParameters = function () { return [
{ type: ElementRef },
{ type: Renderer2 },
{ type: NgZone }
]; };
__decorate([
HostBinding('class.igx-drop-area--hover'),
__metadata("design:type", Object)
], IgxGroupAreaDropDirective.prototype, "hovered", void 0);
IgxGroupAreaDropDirective = __decorate([
Directive({
selector: '[igxGroupAreaDrop]'
}),
__metadata("design:paramtypes", [ElementRef, Renderer2, NgZone])
], IgxGroupAreaDropDirective);
return IgxGroupAreaDropDirective;
}(IgxDropDirective));
export { IgxGroupAreaDropDirective };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5kaXJlY3RpdmVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vaWduaXRldWktYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9ncmlkcy9ncmlkL2dyaWQuZGlyZWN0aXZlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBR2xGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRS9FOztHQUVHO0FBSUg7SUFFSSx3Q0FBbUIsUUFBMEI7UUFBMUIsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7SUFBSSxDQUFDOztnQkFBckIsV0FBVzs7SUFGL0IsOEJBQThCO1FBSDFDLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxpQkFBaUI7U0FDOUIsQ0FBQzt5Q0FHK0IsV0FBVztPQUYvQiw4QkFBOEIsQ0FJMUM7SUFBRCxxQ0FBQztDQUFBLEFBSkQsSUFJQztTQUpZLDhCQUE4QjtBQU0zQzs7R0FFRztBQUlIO0lBQUE7SUFDQSxDQUFDO0lBRFksOEJBQThCO1FBSDFDLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxpQkFBaUI7U0FDOUIsQ0FBQztPQUNXLDhCQUE4QixDQUMxQztJQUFELHFDQUFDO0NBQUEsQUFERCxJQUNDO1NBRFksOEJBQThCO0FBRzNDOztHQUVHO0FBSUg7SUFBQTtJQUNBLENBQUM7SUFEWSxnQ0FBZ0M7UUFINUMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLDJCQUEyQjtTQUN4QyxDQUFDO09BQ1csZ0NBQWdDLENBQzVDO0lBQUQsdUNBQUM7Q0FBQSxBQURELElBQ0M7U0FEWSxnQ0FBZ0M7QUFHN0M7O0dB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QkFBa0IsQ0FBQyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTyxLQUFLLENBQUM7U0FDaEI7YUFBTTtZQUNILElBQU0sSUFBSSxHQUFxQixNQUFNLENBQUMsSUFBSSxDQUFDO1lBQzNDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxhQUFhLEVBQUU7Z0JBQ3BDLE9BQU8sS0FBSyxDQUFDO2FBQ2hCO1lBQ0QsT0FBTyxJQUFJLENBQUM7U0FDZjtJQUNMLENBQUM7O2dCQXJFK0IsVUFBVTtnQkFBb0IsU0FBUztnQkFBZ0IsTUFBTTs7SUFLN0Y7UUFEQyxXQUFXLENBQUMsNEJBQTRCLENBQUM7OzhEQUNuQjtJQVBkLHlCQUF5QjtRQUhyQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsb0JBQW9CO1NBQ2pDLENBQUM7eUNBR2tDLFVBQVUsRUFBb0IsU0FBUyxFQUFnQixNQUFNO09BRnBGLHlCQUF5QixDQXdFckM7SUFBRCxnQ0FBQztDQUFBLEFBeEVELENBQStDLGdCQUFnQixHQXdFOUQ7U0F4RVkseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIsIE5nWm9uZSwgSG9zdEJpbmRpbmcsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJZ3hEcm9wRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9kcmFnLWRyb3AvZHJhZy1kcm9wLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJZ3hDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuLi9jb2x1bW5zL2NvbHVtbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWd4R3JpZENvbXBvbmVudCB9IGZyb20gJy4vZ3JpZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU29ydGluZ0RpcmVjdGlvbiB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9zb3J0aW5nLWV4cHJlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IElneENvbHVtbk1vdmluZ0RyYWdEaXJlY3RpdmUgfSBmcm9tICcuLi9tb3ZpbmcvbW92aW5nLmRyYWcuZGlyZWN0aXZlJztcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2lneEdyb3VwQnlSb3ddJ1xufSlcbmV4cG9ydCBjbGFzcyBJZ3hHcm91cEJ5Um93VGVtcGxhdGVEaXJlY3RpdmUge1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7IH1cblxufVxuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4R3JpZERldGFpbF0nXG59KVxuZXhwb3J0IGNsYXNzIElneEdyaWREZXRhaWxUZW1wbGF0ZURpcmVjdGl2ZSB7XG59XG5cbi8qKlxuICogQGhpZGRlblxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hSb3dFeHBhbmRlZEluZGljYXRvcl0nXG59KVxuZXhwb3J0IGNsYXNzIElneFJvd0V4cGFuZGVkSW5kaWNhdG9yRGlyZWN0aXZlIHtcbn1cblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2lneFJvd0NvbGxhcHNlZEluZGljYXRvcl0nXG59KVxuZXhwb3J0IGNsYXNzIElneFJvd0NvbGxhcHNlZEluZGljYXRvckRpcmVjdGl2ZSB7XG59XG5cblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2lneEhlYWRlckV4cGFuZGVkSW5kaWNhdG9yXSdcbn0pXG5leHBvcnQgY2xhc3MgSWd4SGVhZGVyRXhwYW5kSW5kaWNhdG9yRGlyZWN0aXZlIHtcbn1cblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2lneEhlYWRlckNvbGxhcHNlZEluZGljYXRvcl0nXG59KVxuZXhwb3J0IGNsYXNzIElneEhlYWRlckNvbGxhcHNlSW5kaWNhdG9yRGlyZWN0aXZlIHtcbn1cblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2lneEdyb3VwQXJlYURyb3BdJ1xufSlcbmV4cG9ydCBjbGFzcyBJZ3hHcm91cEFyZWFEcm9wRGlyZWN0aXZlIGV4dGVuZHMgSWd4RHJvcERpcmVjdGl2ZSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSB6b25lOiBOZ1pvbmUpIHtcbiAgICAgICAgc3VwZXIoZWxlbWVudFJlZiwgcmVuZGVyZXIsIHpvbmUpO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWRyb3AtYXJlYS0taG92ZXInKVxuICAgIHB1YmxpYyBob3ZlcmVkID0gZmFsc2U7XG5cblxuICAgIHB1YmxpYyBvbkRyYWdFbnRlcihldmVudCkge1xuICAgICAgICBjb25zdCBkcmFnOiBJZ3hDb2x1bW5Nb3ZpbmdEcmFnRGlyZWN0aXZlID0gZXZlbnQuZGV0YWlsLm93bmVyO1xuICAgICAgICBjb25zdCBjb2x1bW46IElneENvbHVtbkNvbXBvbmVudCA9IGRyYWcuY29sdW1uO1xuICAgICAgICBpZiAoIXRoaXMuY29sdW1uQmVsb25nc1RvR3JpZChjb2x1bW4pKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZ3JpZCA9IDxJZ3hHcmlkQ29tcG9uZW50PmNvbHVtbi5ncmlkO1xuICAgICAgICBjb25zdCBpc0dyb3VwZWQgPSBncmlkLmdyb3VwaW5nRXhwcmVzc2lvbnMuZmluZEluZGV4KChpdGVtKSA9PiBpdGVtLmZpZWxkTmFtZSA9PT0gY29sdW1uLmZpZWxkKSAhPT0gLTE7XG4gICAgICAgIGlmIChjb2x1bW4uZ3JvdXBhYmxlICYmICFpc0dyb3VwZWQgJiYgIWNvbHVtbi5jb2x1bW5Hcm91cCAmJiAhIWNvbHVtbi5maWVsZCkge1xuICAgICAgICAgICAgZHJhZy5pY29uLmlubmVyVGV4dCA9ICdncm91cF93b3JrJztcbiAgICAgICAgICAgIHRoaXMuaG92ZXJlZCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkcmFnLmljb24uaW5uZXJUZXh0ID0gJ2Jsb2NrJztcbiAgICAgICAgICAgIHRoaXMuaG92ZXJlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uRHJhZ0xlYXZlKGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGRyYWc6IElneENvbHVtbk1vdmluZ0RyYWdEaXJlY3RpdmUgPSBldmVudC5kZXRhaWwub3duZXI7XG4gICAgICAgIGNvbnN0IGNvbHVtbjogSWd4Q29sdW1uQ29tcG9uZW50ID0gZHJhZy5jb2x1bW47XG4gICAgICAgIGlmICghdGhpcy5jb2x1bW5CZWxvbmdzVG9HcmlkKGNvbHVtbikpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBldmVudC5kZXRhaWwub3duZXIuaWNvbi5pbm5lclRleHQgPSAnYmxvY2snO1xuICAgICAgICB0aGlzLmhvdmVyZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25EcmFnRHJvcChldmVudCkge1xuICAgICAgICBjb25zdCBkcmFnOiBJZ3hDb2x1bW5Nb3ZpbmdEcmFnRGlyZWN0aXZlID0gZXZlbnQuZGV0YWlsLm93bmVyO1xuICAgICAgICBpZiAoZHJhZyBpbnN0YW5jZW9mIElneENvbHVtbk1vdmluZ0RyYWdEaXJlY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbHVtbjogSWd4Q29sdW1uQ29tcG9uZW50ID0gZHJhZy5jb2x1bW47XG4gICAgICAgICAgICBpZiAoIXRoaXMuY29sdW1uQmVsb25nc1RvR3JpZChjb2x1bW4pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgZ3JpZCA9IDxJZ3hHcmlkQ29tcG9uZW50PmNvbHVtbi5ncmlkO1xuICAgICAgICAgICAgY29uc3QgaXNHcm91cGVkID0gZ3JpZC5ncm91cGluZ0V4cHJlc3Npb25zLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS5maWVsZE5hbWUgPT09IGNvbHVtbi5maWVsZCkgIT09IC0xO1xuICAgICAgICAgICAgaWYgKGNvbHVtbi5ncm91cGFibGUgJiYgIWlzR3JvdXBlZCAmJiAhY29sdW1uLmNvbHVtbkdyb3VwICYmICEhY29sdW1uLmZpZWxkKSB7XG4gICAgICAgICAgICAgICAgZ3JpZC5ncm91cEJ5KHsgZmllbGROYW1lOiBjb2x1bW4uZmllbGQsIGRpcjogU29ydGluZ0RpcmVjdGlvbi5Bc2MsIGlnbm9yZUNhc2U6IGNvbHVtbi5zb3J0aW5nSWdub3JlQ2FzZSxcbiAgICAgICAgICAgICAgICAgICAgc3RyYXRlZ3k6IGNvbHVtbi5zb3J0U3RyYXRlZ3ksIGdyb3VwaW5nQ29tcGFyZXI6IGNvbHVtbi5ncm91cGluZ0NvbXBhcmVyIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbG9zZXN0UGFyZW50QnlBdHRyKGVsZW0sIGF0dHIpIHtcbiAgICAgICAgcmV0dXJuIGVsZW0uaGFzQXR0cmlidXRlKGF0dHIpID9cbiAgICAgICAgICAgIGVsZW0gOlxuICAgICAgICAgICAgdGhpcy5jbG9zZXN0UGFyZW50QnlBdHRyKGVsZW0ucGFyZW50RWxlbWVudCwgYXR0cik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb2x1bW5CZWxvbmdzVG9HcmlkKGNvbHVtbikge1xuICAgICAgICBjb25zdCBlbGVtID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGNsb3Nlc3RHcmlkSUQgPSB0aGlzLmNsb3Nlc3RQYXJlbnRCeUF0dHIoZWxlbSwgJ2lneEdyb3VwQXJlYURyb3AnKS5nZXRBdHRyaWJ1dGUoJ2dyaWRJZCcpO1xuICAgICAgICBpZiAoIWNvbHVtbikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZ3JpZCA9IDxJZ3hHcmlkQ29tcG9uZW50PmNvbHVtbi5ncmlkO1xuICAgICAgICAgICAgaWYgKCFncmlkIHx8IGdyaWQuaWQgIT09IGNsb3Nlc3RHcmlkSUQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==