UNPKG

@ng-bootstrap/ng-bootstrap

Version:
64 lines 8.22 kB
import { Component, ElementRef, EventEmitter, inject, Input, NgZone, Output, ViewEncapsulation, } from '@angular/core'; import { take } from 'rxjs/operators'; import { ngbRunTransition } from '../util/transition/ngbTransition'; import { reflow } from '../util/util'; import { OffcanvasDismissReasons } from './offcanvas-dismiss-reasons'; import * as i0 from "@angular/core"; export class NgbOffcanvasBackdrop { constructor() { this._nativeElement = inject(ElementRef).nativeElement; this._zone = inject(NgZone); this.dismissEvent = new EventEmitter(); } ngOnInit() { this._zone.onStable .asObservable() .pipe(take(1)) .subscribe(() => { ngbRunTransition(this._zone, this._nativeElement, (element, animation) => { if (animation) { reflow(element); } element.classList.add('show'); }, { animation: this.animation, runningTransition: 'continue' }); }); } hide() { return ngbRunTransition(this._zone, this._nativeElement, ({ classList }) => classList.remove('show'), { animation: this.animation, runningTransition: 'stop', }); } dismiss() { if (!this.static) { this.dismissEvent.emit(OffcanvasDismissReasons.BACKDROP_CLICK); } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0", ngImport: i0, type: NgbOffcanvasBackdrop, deps: [], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0", type: NgbOffcanvasBackdrop, isStandalone: true, selector: "ngb-offcanvas-backdrop", inputs: { animation: "animation", backdropClass: "backdropClass", static: "static" }, outputs: { dismissEvent: "dismiss" }, host: { listeners: { "mousedown": "dismiss()" }, properties: { "class": "\"offcanvas-backdrop\" + (backdropClass ? \" \" + backdropClass : \"\")", "class.show": "!animation", "class.fade": "animation" } }, ngImport: i0, template: '', isInline: true, encapsulation: i0.ViewEncapsulation.None }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0", ngImport: i0, type: NgbOffcanvasBackdrop, decorators: [{ type: Component, args: [{ selector: 'ngb-offcanvas-backdrop', standalone: true, encapsulation: ViewEncapsulation.None, template: '', host: { '[class]': '"offcanvas-backdrop" + (backdropClass ? " " + backdropClass : "")', '[class.show]': '!animation', '[class.fade]': 'animation', '(mousedown)': 'dismiss()', }, }] }], propDecorators: { animation: [{ type: Input }], backdropClass: [{ type: Input }], static: [{ type: Input }], dismissEvent: [{ type: Output, args: ['dismiss'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZmY2FudmFzLWJhY2tkcm9wLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL29mZmNhbnZhcy9vZmZjYW52YXMtYmFja2Ryb3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUVOLE1BQU0sRUFDTixpQkFBaUIsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBY3RFLE1BQU0sT0FBTyxvQkFBb0I7SUFaakM7UUFhUyxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxhQUE0QixDQUFDO1FBQ2pFLFVBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFNWixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7S0FpQ3JEO0lBL0JBLFFBQVE7UUFDUCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVE7YUFDakIsWUFBWSxFQUFFO2FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNiLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZixnQkFBZ0IsQ0FDZixJQUFJLENBQUMsS0FBSyxFQUNWLElBQUksQ0FBQyxjQUFjLEVBQ25CLENBQUMsT0FBb0IsRUFBRSxTQUFrQixFQUFFLEVBQUU7Z0JBQzVDLElBQUksU0FBUyxFQUFFO29CQUNkLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDaEI7Z0JBQ0QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDL0IsQ0FBQyxFQUNELEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLENBQzVELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJO1FBQ0gsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3JHLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixpQkFBaUIsRUFBRSxNQUFNO1NBQ3pCLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDakIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDL0Q7SUFDRixDQUFDOzhHQXhDVyxvQkFBb0I7a0dBQXBCLG9CQUFvQiw0WkFSdEIsRUFBRTs7MkZBUUEsb0JBQW9CO2tCQVpoQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsUUFBUSxFQUFFLEVBQUU7b0JBQ1osSUFBSSxFQUFFO3dCQUNMLFNBQVMsRUFBRSxtRUFBbUU7d0JBQzlFLGNBQWMsRUFBRSxZQUFZO3dCQUM1QixjQUFjLEVBQUUsV0FBVzt3QkFDM0IsYUFBYSxFQUFFLFdBQVc7cUJBQzFCO2lCQUNEOzhCQUtTLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRWEsWUFBWTtzQkFBOUIsTUFBTTt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q29tcG9uZW50LFxuXHRFbGVtZW50UmVmLFxuXHRFdmVudEVtaXR0ZXIsXG5cdGluamVjdCxcblx0SW5wdXQsXG5cdE5nWm9uZSxcblx0T25Jbml0LFxuXHRPdXRwdXQsXG5cdFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgbmdiUnVuVHJhbnNpdGlvbiB9IGZyb20gJy4uL3V0aWwvdHJhbnNpdGlvbi9uZ2JUcmFuc2l0aW9uJztcbmltcG9ydCB7IHJlZmxvdyB9IGZyb20gJy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBPZmZjYW52YXNEaXNtaXNzUmVhc29ucyB9IGZyb20gJy4vb2ZmY2FudmFzLWRpc21pc3MtcmVhc29ucyc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25nYi1vZmZjYW52YXMtYmFja2Ryb3AnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuXHR0ZW1wbGF0ZTogJycsXG5cdGhvc3Q6IHtcblx0XHQnW2NsYXNzXSc6ICdcIm9mZmNhbnZhcy1iYWNrZHJvcFwiICsgKGJhY2tkcm9wQ2xhc3MgPyBcIiBcIiArIGJhY2tkcm9wQ2xhc3MgOiBcIlwiKScsXG5cdFx0J1tjbGFzcy5zaG93XSc6ICchYW5pbWF0aW9uJyxcblx0XHQnW2NsYXNzLmZhZGVdJzogJ2FuaW1hdGlvbicsXG5cdFx0Jyhtb3VzZWRvd24pJzogJ2Rpc21pc3MoKScsXG5cdH0sXG59KVxuZXhwb3J0IGNsYXNzIE5nYk9mZmNhbnZhc0JhY2tkcm9wIGltcGxlbWVudHMgT25Jbml0IHtcblx0cHJpdmF0ZSBfbmF0aXZlRWxlbWVudCA9IGluamVjdChFbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXHRwcml2YXRlIF96b25lID0gaW5qZWN0KE5nWm9uZSk7XG5cblx0QElucHV0KCkgYW5pbWF0aW9uOiBib29sZWFuO1xuXHRASW5wdXQoKSBiYWNrZHJvcENsYXNzOiBzdHJpbmc7XG5cdEBJbnB1dCgpIHN0YXRpYzogYm9vbGVhbjtcblxuXHRAT3V0cHV0KCdkaXNtaXNzJykgZGlzbWlzc0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cdG5nT25Jbml0KCkge1xuXHRcdHRoaXMuX3pvbmUub25TdGFibGVcblx0XHRcdC5hc09ic2VydmFibGUoKVxuXHRcdFx0LnBpcGUodGFrZSgxKSlcblx0XHRcdC5zdWJzY3JpYmUoKCkgPT4ge1xuXHRcdFx0XHRuZ2JSdW5UcmFuc2l0aW9uKFxuXHRcdFx0XHRcdHRoaXMuX3pvbmUsXG5cdFx0XHRcdFx0dGhpcy5fbmF0aXZlRWxlbWVudCxcblx0XHRcdFx0XHQoZWxlbWVudDogSFRNTEVsZW1lbnQsIGFuaW1hdGlvbjogYm9vbGVhbikgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKGFuaW1hdGlvbikge1xuXHRcdFx0XHRcdFx0XHRyZWZsb3coZWxlbWVudCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRlbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3Nob3cnKTtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHsgYW5pbWF0aW9uOiB0aGlzLmFuaW1hdGlvbiwgcnVubmluZ1RyYW5zaXRpb246ICdjb250aW51ZScgfSxcblx0XHRcdFx0KTtcblx0XHRcdH0pO1xuXHR9XG5cblx0aGlkZSgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcblx0XHRyZXR1cm4gbmdiUnVuVHJhbnNpdGlvbih0aGlzLl96b25lLCB0aGlzLl9uYXRpdmVFbGVtZW50LCAoeyBjbGFzc0xpc3QgfSkgPT4gY2xhc3NMaXN0LnJlbW92ZSgnc2hvdycpLCB7XG5cdFx0XHRhbmltYXRpb246IHRoaXMuYW5pbWF0aW9uLFxuXHRcdFx0cnVubmluZ1RyYW5zaXRpb246ICdzdG9wJyxcblx0XHR9KTtcblx0fVxuXG5cdGRpc21pc3MoKSB7XG5cdFx0aWYgKCF0aGlzLnN0YXRpYykge1xuXHRcdFx0dGhpcy5kaXNtaXNzRXZlbnQuZW1pdChPZmZjYW52YXNEaXNtaXNzUmVhc29ucy5CQUNLRFJPUF9DTElDSyk7XG5cdFx0fVxuXHR9XG59XG4iXX0=