@true-directive/grid
Version:
Angular Data Grid from Yopsilon.
107 lines • 13.6 kB
JavaScript
import * as tslib_1 from "tslib";
/**
* Copyright (c) 2018-2019 Aleksey Melnikov, True Directive Company.
* @link https://truedirective.com/
* @license MIT
*/
import { Component, ViewChild, ViewChildren, Input, Output, EventEmitter, QueryList, ViewContainerRef, ComponentFactoryResolver } from '@angular/core';
import { DialogAlertComponent } from './dialog-alert.component';
import { DialogButton, DialogInfo } from './dialog-info.class';
import { Subject } from 'rxjs';
import { take } from 'rxjs/operators';
/**
* Dialog wrapper component.
*/
var DialogWrapperComponent = /** @class */ (function () {
function DialogWrapperComponent(_cfResolver) {
this._cfResolver = _cfResolver;
this.closeBtn = new DialogButton(DialogInfo.closeButtonId);
this.dialog = new DialogInfo();
this.btnClick = new EventEmitter();
this._alert = null;
}
Object.defineProperty(DialogWrapperComponent.prototype, "caption", {
get: function () {
return this.dialog ? this.dialog.caption : '';
},
enumerable: true,
configurable: true
});
Object.defineProperty(DialogWrapperComponent.prototype, "alertVisible", {
get: function () {
return this._alert !== null;
},
enumerable: true,
configurable: true
});
DialogWrapperComponent.prototype.focus = function () {
var _this = this;
setTimeout(function () {
_this.buttons.first.nativeElement.focus();
});
};
DialogWrapperComponent.prototype.closeAlert = function () {
if (this.alertVisible) {
this._alert.closeAlert();
}
};
DialogWrapperComponent.prototype.confirm = function (txt, dialog) {
var _this = this;
if (this._alert) {
this._alert.closeAlert();
}
var factory = this._cfResolver.resolveComponentFactory(DialogAlertComponent);
var alert = this.alertContainer.createComponent(factory);
alert.instance.init(txt, dialog);
alert.instance.elementRef.nativeElement.style.position = 'absolute';
alert.instance.elementRef.nativeElement.style.top = '0';
alert.instance.elementRef.nativeElement.style.left = '0';
alert.instance.elementRef.nativeElement.style.bottom = '0';
alert.instance.elementRef.nativeElement.style.right = '0';
var subject = new Subject();
alert.instance.close.pipe(take(1)).subscribe(function (e) {
subject.next(e);
subject.complete();
if (alert) {
// Close previous alert
alert.destroy();
alert = null;
_this._alert = null;
}
});
this._alert = alert.instance;
return subject;
};
DialogWrapperComponent.prototype.ngOnDestroy = function () {
if (this._alert) {
this._alert.closeAlert();
}
};
tslib_1.__decorate([
Input(),
tslib_1.__metadata("design:type", DialogInfo)
], DialogWrapperComponent.prototype, "dialog", void 0);
tslib_1.__decorate([
Output(),
tslib_1.__metadata("design:type", EventEmitter)
], DialogWrapperComponent.prototype, "btnClick", void 0);
tslib_1.__decorate([
ViewChild('alertContainer', { read: ViewContainerRef, static: true }),
tslib_1.__metadata("design:type", Object)
], DialogWrapperComponent.prototype, "alertContainer", void 0);
tslib_1.__decorate([
ViewChildren('buttons'),
tslib_1.__metadata("design:type", QueryList)
], DialogWrapperComponent.prototype, "buttons", void 0);
DialogWrapperComponent = tslib_1.__decorate([
Component({
selector: 'true-dialog-wrapper',
template: "<div *ngIf=\"dialog.showHeader\" class=\"true-header\">\r\n <span>{{caption}}</span>\r\n <button class=\"true-button flat\" (click)=\"btnClick.emit(closeBtn)\"><span class=\"true-close\"></span></button>\r\n</div>\r\n<div class=\"true-body\">\r\n <div #alertContainer class=\"true-alert-container\"></div>\r\n <div class=\"true-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div *ngIf=\"dialog.showFooter\" class=\"true-footer\">\r\n <p>\r\n <button\r\n #buttons\r\n *ngFor=\"let b of dialog.buttons\"\r\n class=\"true-button\"\r\n [ngClass]=\"b.cssClass\"\r\n (click)=\"btnClick.emit(b)\"\r\n [disabled]=\"b.disabled\">{{b.caption}}</button>\r\n </p>\r\n </div>\r\n</div>\r\n",
styles: [":host{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}:host>.true-header{position:relative;padding:.5em .7em;display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-webkit-box-pack:justify;justify-content:space-between;-webkit-box-align:baseline;align-items:baseline;z-index:2}:host>.true-header>span{margin:0 .4em 0 .6em;white-space:nowrap;overflow-x:hidden;text-overflow:ellipsis}:host>.true-body{position:relative;display:block;-webkit-box-flex:1;flex-grow:1;z-index:1}:host>.true-body .true-content{padding:.8em 1.2em}:host>.true-body .true-footer{display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-webkit-box-pack:end;justify-content:flex-end;padding:.8em 1.2em}:host>.true-body .true-footer p{margin:0}:host>.true-body .true-footer button{padding:.6em 1.4em;margin-left:1em}"]
}),
tslib_1.__metadata("design:paramtypes", [ComponentFactoryResolver])
], DialogWrapperComponent);
return DialogWrapperComponent;
}());
export { DialogWrapperComponent };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRydWUtZGlyZWN0aXZlL2dyaWQvIiwic291cmNlcyI6WyJzcmMvY29udHJvbHMvZGlhbG9nLXdyYXBwZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7OztFQUlFO0FBQ0YsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUMvRCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRCxPQUFPLEVBQXdCLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEM7O0dBRUc7QUFNSDtJQTZFRSxnQ0FBb0IsV0FBcUM7UUFBckMsZ0JBQVcsR0FBWCxXQUFXLENBQTBCO1FBM0VsRCxhQUFRLEdBQWlCLElBQUksWUFBWSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUczRSxXQUFNLEdBQWUsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUd0QyxhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFZdEQsV0FBTSxHQUF5QixJQUFJLENBQUM7SUF5RHlCLENBQUM7SUE3RDlELHNCQUFJLDJDQUFPO2FBQVg7WUFDRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDaEQsQ0FBQzs7O09BQUE7SUFJRCxzQkFBVyxnREFBWTthQUF2QjtZQUNFLE9BQU8sSUFBSSxDQUFD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QkFBNEM7O1NBRTdDLENBQUM7aURBOEVpQyx3QkFBd0I7T0E3RTlDLHNCQUFzQixDQThFbEM7SUFBRCw2QkFBQztDQUFBLEFBOUVELElBOEVDO1NBOUVZLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAxOSBBbGVrc2V5IE1lbG5pa292LCBUcnVlIERpcmVjdGl2ZSBDb21wYW55LlxyXG4gKiBAbGluayBodHRwczovL3RydWVkaXJlY3RpdmUuY29tL1xyXG4gKiBAbGljZW5zZSBNSVRcclxuKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlbiwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLFxyXG4gICAgICAgICBRdWVyeUxpc3QsIE9uRGVzdHJveSxcclxuICAgICAgICAgVmlld0NvbnRhaW5lclJlZiwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBEaWFsb2dBbGVydENvbXBvbmVudCB9IGZyb20gJy4vZGlhbG9nLWFsZXJ0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERpYWxvZ0J1dHRvbiwgRGlhbG9nSW5mbyB9IGZyb20gJy4vZGlhbG9nLWluZm8uY2xhc3MnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBPYnNlcnZlciwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuLyoqXHJcbiAqIERpYWxvZyB3cmFwcGVyIGNvbXBvbmVudC5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndHJ1ZS1kaWFsb2ctd3JhcHBlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICdkaWFsb2ctd3JhcHBlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJ2RpYWxvZy13cmFwcGVyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIERpYWxvZ1dyYXBwZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBwdWJsaWMgY2xvc2VCdG46IERpYWxvZ0J1dHRvbiA9IG5ldyBEaWFsb2dCdXR0b24oRGlhbG9nSW5mby5jbG9zZUJ1dHRvbklkKTtcclxuXHJcbiAgQElucHV0KClcclxuICBkaWFsb2c6IERpYWxvZ0luZm8gPSBuZXcgRGlhbG9nSW5mbygpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBidG5DbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnYWxlcnRDb250YWluZXInLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KVxyXG4gIGFsZXJ0Q29udGFpbmVyOiBhbnk7XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oJ2J1dHRvbnMnKVxyXG4gIHB1YmxpYyBidXR0b25zOiBRdWVyeUxpc3Q8YW55PjtcclxuXHJcbiAgZ2V0IGNhcHRpb24oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmRpYWxvZyA/IHRoaXMuZGlhbG9nLmNhcHRpb24gOiAnJztcclxuICB9XHJcblxyXG4gIF9hbGVydDogRGlhbG9nQWxlcnRDb21wb25lbnQgPSBudWxsO1xyXG5cclxuICBwdWJsaWMgZ2V0IGFsZXJ0VmlzaWJsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9hbGVydCAhPT0gbnVsbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmb2N1cygpIHtcclxuICAgIHNldFRpbWVvdXQoKCk9PiB7XHJcbiAgICAgIHRoaXMuYnV0dG9ucy5maXJzdC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZUFsZXJ0KCkge1xyXG4gICAgaWYgKHRoaXMuYWxlcnRWaXNpYmxlKSB7XHJcbiAgICAgIHRoaXMuX2FsZXJ0LmNsb3NlQWxlcnQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb25maXJtKHR4dDogc3RyaW5nLCBkaWFsb2c6IERpYWxvZ0luZm8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cclxuICAgIGlmICh0aGlzLl9hbGVydCkge1xyXG4gICAgICB0aGlzLl9hbGVydC5jbG9zZUFsZXJ0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuX2NmUmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoRGlhbG9nQWxlcnRDb21wb25lbnQpO1xyXG4gICAgbGV0IGFsZXJ0ID0gdGhpcy5hbGVydENvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XHJcbiAgICBhbGVydC5pbnN0YW5jZS5pbml0KHR4dCwgZGlhbG9nKTtcclxuXHJcbiAgICBhbGVydC5pbnN0YW5jZS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xyXG4gICAgYWxlcnQuaW5zdGFuY2UuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnRvcCA9ICcwJztcclxuICAgIGFsZXJ0Lmluc3RhbmNlLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gJzAnO1xyXG4gICAgYWxlcnQuaW5zdGFuY2UuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmJvdHRvbSA9ICcwJztcclxuICAgIGFsZXJ0Lmluc3RhbmNlLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5yaWdodCA9ICcwJztcclxuXHJcbiAgICBjb25zdCBzdWJqZWN0ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gICAgYWxlcnQuaW5zdGFuY2UuY2xvc2UucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKGU6IGFueSkgPT4ge1xyXG4gICAgICBzdWJqZWN0Lm5leHQoZSk7XHJcbiAgICAgIHN1YmplY3QuY29tcGxldGUoKTtcclxuXHJcbiAgICAgIGlmIChhbGVydCkge1xyXG4gICAgICAgIC8vIENsb3NlIHByZXZpb3VzIGFsZXJ0XHJcbiAgICAgICAgYWxlcnQuZGVzdHJveSgpO1xyXG4gICAgICAgIGFsZXJ0ID0gbnVsbDtcclxuICAgICAgICB0aGlzLl9hbGVydCA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuX2FsZXJ0ID0gYWxlcnQuaW5zdGFuY2U7XHJcbiAgICByZXR1cm4gc3ViamVjdDtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMuX2FsZXJ0KSB7XHJcbiAgICAgIHRoaXMuX2FsZXJ0LmNsb3NlQWxlcnQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NmUmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikgeyB9XHJcbn1cclxuIl19