UNPKG

@indice/ng-components

Version:

Indice common components for Angular v12

106 lines 14.3 kB
import { SidePaneOverlayType, SidePaneSize } from './../../types'; import { Component, Input, Inject, EventEmitter, Output } from '@angular/core'; import { DOCUMENT } from '@angular/common'; import * as i0 from "@angular/core"; import * as i1 from "@angular/router"; import * as i2 from "@angular/common"; export class SidePaneComponent { constructor(router, document) { this.router = router; this.document = document; // tslint:disable-next-line:no-input-rename this.showPane = false; this.sizeContainerStyle = 'side-pane-box-size'; this.overlayStyle = 'side-pane-overlay'; this.onComplete = new EventEmitter(); this.onOpen = new EventEmitter(); this.onClose = new EventEmitter(); } ngOnChanges(changes) { if (changes && changes.size) { console.log('ngOnChanges ', changes); this.initPane(); } } ngOnDestroy() { } ngOnInit() { } onSidePaneActivated(component) { this.initPane(this.router.getCurrentNavigation()?.extras?.state); this.show(); } initPane(state) { //priority to property for size console.log('initPane', 'size:', this.size, 'state size', state?.paneSize); this.sizeContainerStyle = this.sizeToClass(this.size ?? state?.paneSize); console.log('calculated sizeContainerStyle', this.sizeContainerStyle); this.overlayStyle = this.overlayToClass(state?.paneOverlay); } overlayToClass(overlay) { if (!overlay) return 'side-pane-overlay'; if (overlay === SidePaneOverlayType.None) { return 'side-pane-overlay-opacity-0'; } else if (overlay === SidePaneOverlayType.Dark) { return 'side-pane-overlay-opacity-50'; } return 'side-pane-overlay'; } sizeToClass(size) { if (!size) return 'side-pane-box-size'; let sizeStyleSuffix = '-25'; if (size === SidePaneSize.Small25) { sizeStyleSuffix = '-25'; } else if (size === SidePaneSize.Medium50) { sizeStyleSuffix = '-50'; } else if (size === SidePaneSize.Large75) { sizeStyleSuffix = '-75'; } else if (size === SidePaneSize.Fullscreen) { sizeStyleSuffix = '-100'; } return `side-pane-box-size${sizeStyleSuffix}`; } onSidePaneDeactivated($event) { this.hide(); } show() { this.document.body.classList.add('modal-active'); this.showPane = true; this.onOpen.emit(true); } hide() { this.showPane = false; this.document.body.classList.remove('modal-active'); this.onClose.emit(false); // prepei na allaxei auto! this.onComplete.emit(true); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: SidePaneComponent, deps: [{ token: i1.Router }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", type: SidePaneComponent, selector: "lib-side-pane", inputs: { showPane: ["visible", "showPane"], size: ["pane-size", "size"] }, outputs: { onComplete: "onComplete", onOpen: "onOpen", onClose: "onClose" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"showPane\" class=\"side-pane-outer-container\" aria-labelledby=\"slide-over\" role=\"dialog\" aria-modal=\"true\">\r\n <div [class]=\"showPane ? overlayStyle : 'hidden'\" aria-hidden=\"true\"></div>\r\n <div [class]=\"showPane ? 'side-pane-container' : 'hidden'\">\r\n <div [class]=\"sizeContainerStyle\">\r\n <div class=\"side-pane\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: SidePaneComponent, decorators: [{ type: Component, args: [{ selector: 'lib-side-pane', template: "<div *ngIf=\"showPane\" class=\"side-pane-outer-container\" aria-labelledby=\"slide-over\" role=\"dialog\" aria-modal=\"true\">\r\n <div [class]=\"showPane ? overlayStyle : 'hidden'\" aria-hidden=\"true\"></div>\r\n <div [class]=\"showPane ? 'side-pane-container' : 'hidden'\">\r\n <div [class]=\"sizeContainerStyle\">\r\n <div class=\"side-pane\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n" }] }], ctorParameters: () => [{ type: i1.Router }, { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT] }] }], propDecorators: { showPane: [{ type: Input, args: ['visible'] }], size: [{ type: Input, args: ['pane-size'] }], onComplete: [{ type: Output }], onOpen: [{ type: Output }], onClose: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1wYW5lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9zaWRlLXBhbmUvc2lkZS1wYW5lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9zaWRlLXBhbmUvc2lkZS1wYW5lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUM1SCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFNM0MsTUFBTSxPQUFPLGlCQUFpQjtJQVc1QixZQUFvQixNQUFjLEVBQTRCLFFBQWE7UUFBdkQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUE0QixhQUFRLEdBQVIsUUFBUSxDQUFLO1FBVjNFLDJDQUEyQztRQUVqQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLHVCQUFrQixHQUFHLG9CQUFvQixDQUFDO1FBQzFDLGlCQUFZLEdBQUcsbUJBQW1CLENBQUM7UUFFaEMsZUFBVSxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ2hFLFdBQU0sR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNwRCxZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFFaUIsQ0FBQztJQUVqRixXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBRyxPQUFPLElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFDLE9BQU8sQ0FB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QUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUU3QixDQUFDOzhHQWpGVSxpQkFBaUIsd0NBV2dCLFFBQVE7a0dBWHpDLGlCQUFpQixtT0NUOUIscWNBVUE7OzJGRERhLGlCQUFpQjtrQkFKN0IsU0FBUzsrQkFDRSxlQUFlOzswQkFjWSxNQUFNOzJCQUFDLFFBQVE7eUNBUjFDLFFBQVE7c0JBRGpCLEtBQUs7dUJBQUMsU0FBUztnQkFJSSxJQUFJO3NCQUF2QixLQUFLO3VCQUFDLFdBQVc7Z0JBQ1IsVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpZGVQYW5lT3ZlcmxheVR5cGUsIFNpZGVQYW5lU2l6ZSB9IGZyb20gJy4vLi4vLi4vdHlwZXMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE9uRGVzdHJveSwgSW5qZWN0LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXNpZGUtcGFuZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZGUtcGFuZS5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNpZGVQYW5lQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgndmlzaWJsZScpXHJcbiAgcHJvdGVjdGVkIHNob3dQYW5lID0gZmFsc2U7XHJcbiAgcHVibGljIHNpemVDb250YWluZXJTdHlsZSA9ICdzaWRlLXBhbmUtYm94LXNpemUnO1xyXG4gIHB1YmxpYyBvdmVybGF5U3R5bGUgPSAnc2lkZS1wYW5lLW92ZXJsYXknO1xyXG4gIEBJbnB1dCgncGFuZS1zaXplJykgc2l6ZTogU2lkZVBhbmVTaXplIHwgdW5kZWZpbmVkO1xyXG4gIEBPdXRwdXQoKSBvbkNvbXBsZXRlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgQE91dHB1dCgpIG9uT3BlbjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgb25DbG9zZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLCBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBhbnksKSB7IH1cclxuICBcclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZihjaGFuZ2VzICYmIGNoYW5nZXMuc2l6ZSkge1xyXG4gICAgICBjb25zb2xlLmxvZygnbmdPbkNoYW5nZXMgJyxjaGFuZ2VzKTtcclxuICAgICAgdGhpcy5pbml0UGFuZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkICB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25TaWRlUGFuZUFjdGl2YXRlZChjb21wb25lbnQ6IGFueSk6IHZvaWQgIHtcclxuICAgIHRoaXMuaW5pdFBhbmUodGhpcy5yb3V0ZXIuZ2V0Q3VycmVudE5hdmlnYXRpb24oKT8uZXh0cmFzPy5zdGF0ZSk7XHJcbiAgICB0aGlzLnNob3coKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdFBhbmUoc3RhdGU/OiBhbnkpIHtcclxuICAgIC8vcHJpb3JpdHkgdG8gcHJvcGVydHkgZm9yIHNpemVcclxuICAgIGNvbnNvbGUubG9nKCdpbml0UGFuZScsICdzaXplOicsIHRoaXMuc2l6ZSwgJ3N0YXRlIHNpemUnLCBzdGF0ZT8ucGFuZVNpemUpO1xyXG4gICAgdGhpcy5zaXplQ29udGFpbmVyU3R5bGUgPSB0aGlzLnNpemVUb0NsYXNzKHRoaXMuc2l6ZSA/PyBzdGF0ZT8ucGFuZVNpemUpO1xyXG4gICAgY29uc29sZS5sb2coJ2NhbGN1bGF0ZWQgc2l6ZUNvbnRhaW5lclN0eWxlJywgdGhpcy5zaXplQ29udGFpbmVyU3R5bGUpO1xyXG4gICAgdGhpcy5vdmVybGF5U3R5bGUgPSB0aGlzLm92ZXJsYXlUb0NsYXNzKHN0YXRlPy5wYW5lT3ZlcmxheSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG92ZXJsYXlUb0NsYXNzKG92ZXJsYXk/OiBTaWRlUGFuZU92ZXJsYXlUeXBlKTogc3RyaW5nIHtcclxuICAgIGlmKCFvdmVybGF5KSByZXR1cm4gJ3NpZGUtcGFuZS1vdmVybGF5JztcclxuICAgIGlmIChvdmVybGF5ID09PSBTaWRlUGFuZU92ZXJsYXlUeXBlLk5vbmUpICB7XHJcbiAgICAgIHJldHVybiAnc2lkZS1wYW5lLW92ZXJsYXktb3BhY2l0eS0wJztcclxuICAgIH0gZWxzZSBpZiAob3ZlcmxheSA9PT0gU2lkZVBhbmVPdmVybGF5VHlwZS5EYXJrKSB7XHJcbiAgICAgIHJldHVybiAnc2lkZS1wYW5lLW92ZXJsYXktb3BhY2l0eS01MCc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJ3NpZGUtcGFuZS1vdmVybGF5JztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2l6ZVRvQ2xhc3Moc2l6ZT86IFNpZGVQYW5lU2l6ZSk6IHN0cmluZyB7XHJcbiAgICBpZighc2l6ZSkgcmV0dXJuICdzaWRlLXBhbmUtYm94LXNpemUnO1xyXG4gICAgbGV0IHNpemVTdHlsZVN1ZmZpeDogc3RyaW5nID0gJy0yNSc7XHJcbiAgICBpZiAoc2l6ZSA9PT0gU2lkZVBhbmVTaXplLlNtYWxsMjUpIHtcclxuICAgICAgc2l6ZVN0eWxlU3VmZml4ID0gJy0yNSc7XHJcbiAgICB9IGVsc2UgaWYgKHNpemUgPT09IFNpZGVQYW5lU2l6ZS5NZWRpdW01MCkge1xyXG4gICAgICBzaXplU3R5bGVTdWZmaXggPSAnLTUwJztcclxuICAgIH0gZWxzZSBpZiAoc2l6ZSA9PT0gU2lkZVBhbmVTaXplLkxhcmdlNzUpIHtcclxuICAgICAgc2l6ZVN0eWxlU3VmZml4ID0gJy03NSc7XHJcbiAgICB9ZWxzZSBpZiAoc2l6ZSA9PT0gU2lkZVBhbmVTaXplLkZ1bGxzY3JlZW4pIHtcclxuICAgICAgc2l6ZVN0eWxlU3VmZml4ID0gJy0xMDAnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGBzaWRlLXBhbmUtYm94LXNpemUke3NpemVTdHlsZVN1ZmZpeH1gO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uU2lkZVBhbmVEZWFjdGl2YXRlZCgkZXZlbnQ6IGFueSk6IHZvaWQgIHsgIFxyXG4gICAgdGhpcy5oaWRlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvdygpOiB2b2lkIHtcclxuICAgIHRoaXMuZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCdtb2RhbC1hY3RpdmUnKTtcclxuICAgIHRoaXMuc2hvd1BhbmUgPSB0cnVlO1xyXG4gICAgdGhpcy5vbk9wZW4uZW1pdCh0cnVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoaWRlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93UGFuZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5kb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ21vZGFsLWFjdGl2ZScpO1xyXG4gICAgdGhpcy5vbkNsb3NlLmVtaXQoZmFsc2UpO1xyXG4gICAgLy8gcHJlcGVpIG5hIGFsbGF4ZWkgYXV0byFcclxuICAgIHRoaXMub25Db21wbGV0ZS5lbWl0KHRydWUpO1xyXG5cclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCJzaG93UGFuZVwiIGNsYXNzPVwic2lkZS1wYW5lLW91dGVyLWNvbnRhaW5lclwiIGFyaWEtbGFiZWxsZWRieT1cInNsaWRlLW92ZXJcIiByb2xlPVwiZGlhbG9nXCIgYXJpYS1tb2RhbD1cInRydWVcIj5cclxuICA8ZGl2IFtjbGFzc109XCJzaG93UGFuZSA/IG92ZXJsYXlTdHlsZSA6ICdoaWRkZW4nXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9kaXY+XHJcbiAgPGRpdiBbY2xhc3NdPVwic2hvd1BhbmUgPyAnc2lkZS1wYW5lLWNvbnRhaW5lcicgOiAnaGlkZGVuJ1wiPlxyXG4gICAgPGRpdiBbY2xhc3NdPVwic2l6ZUNvbnRhaW5lclN0eWxlXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzaWRlLXBhbmVcIj5cclxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=