UNPKG

@coreui/angular

Version:

CoreUI Components Library for Angular

62 lines 8.73 kB
import { Inject, Injectable } from '@angular/core'; import { DOCUMENT } from '@angular/common'; import * as i0 from "@angular/core"; import * as i1 from "../sidebar.service"; export class SidebarBackdropService { constructor(document, // private rendererFactory: RendererFactory2, sidebarService) { this.document = document; this.sidebarService = sidebarService; this.clickListener = () => { /* empty */ }; // this.renderer = rendererFactory.createRenderer(null, null); } setBackdrop(sidebar) { const backdrop = this.document.getElementsByClassName('sidebar-backdrop'); // console.log(`sidebar-${this.id}`, ' setBackdrop', backdrop); if (backdrop.length === 0) { this.backdrop = this.renderer.createElement('div'); this.renderer.addClass(this.backdrop, 'sidebar-backdrop'); this.renderer.appendChild(this.document.body, this.backdrop); this.clickListener = this.renderer.listen(this.backdrop, 'click', (e) => { // console.log(`sidebar-${this.id}`, ' backdrop click', e); this.sidebarService.toggle({ toggle: 'visible', sidebar }); }); } // console.log(this.backdrop, sidebar.sidebarState.mobile, sidebar.sidebarState.show); if (this.backdrop && sidebar.sidebarState.mobile && sidebar.sidebarState.visible) { this.renderer.addClass(this.backdrop, 'fade'); this.renderer.addClass(this.backdrop, 'show'); // this.renderer.removeClass(this.backdrop, 'd-none'); } else { this.renderer.removeClass(this.backdrop, 'show'); this.renderer.removeClass(this.backdrop, 'fade'); // this.renderer.addClass(this.backdrop, 'd-none'); } } clearBackdrop() { if (this.backdrop) { // clear backdrop click Listener this.clickListener(); // this.renderer.listen(this.backdrop, 'click', (e): void => {} ); this.renderer.removeChild(this.document.body, this.backdrop); // @ts-ignore this.backdrop = undefined; } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: SidebarBackdropService, deps: [{ token: DOCUMENT }, { token: i1.SidebarService }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: SidebarBackdropService, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: SidebarBackdropService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [{ type: Document, decorators: [{ type: Inject, args: [DOCUMENT] }] }, { type: i1.SidebarService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci1iYWNrZHJvcC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9zaWRlYmFyL3NpZGViYXItYmFja2Ryb3Avc2lkZWJhci1iYWNrZHJvcC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBTzNDLE1BQU0sT0FBTyxzQkFBc0I7SUFPakMsWUFDNEIsUUFBa0I7SUFDNUMsNkNBQTZDO0lBQ3JDLGNBQThCO1FBRlosYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUVwQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFQaEMsa0JBQWEsR0FBRyxHQUFTLEVBQUU7WUFDakMsV0FBVztRQUNiLENBQUMsQ0FBQztRQU9BLDhEQUE4RDtJQUNoRSxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXlCO1FBQ25DLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUMxRSwrREFBK0Q7UUFDL0QsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1lBQzFELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3RCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3RFLDJEQUEyRDtnQkFDM0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDN0QsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0Qsc0ZBQXNGO1FBQ3RGLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pGLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUM5QyxzREFBc0Q7UUFDeEQsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ2pELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDakQsbURBQW1EO1FBQ3JELENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLGdDQUFnQztZQUNoQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsa0VBQWtFO1lBQ2xFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3RCxhQUFhO1lBQ2IsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7UUFDNUIsQ0FBQztJQUNILENBQUM7K0dBaERVLHNCQUFzQixrQkFRdkIsUUFBUTttSEFSUCxzQkFBc0IsY0FGckIsTUFBTTs7NEZBRVAsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBU0ksTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNpZGViYXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2lkZWJhci5zZXJ2aWNlJztcbmltcG9ydCB7IFNpZGViYXJDb21wb25lbnQgfSBmcm9tICcuLi9zaWRlYmFyL3NpZGViYXIuY29tcG9uZW50JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2lkZWJhckJhY2tkcm9wU2VydmljZSB7XG4gIHByaXZhdGUgYmFja2Ryb3AhOiBIVE1MRWxlbWVudDtcbiAgcmVuZGVyZXIhOiBSZW5kZXJlcjI7XG4gIHByaXZhdGUgY2xpY2tMaXN0ZW5lciA9ICgpOiB2b2lkID0+IHtcbiAgICAvKiBlbXB0eSAqL1xuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgIC8vIHByaXZhdGUgcmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyLFxuICAgIHByaXZhdGUgc2lkZWJhclNlcnZpY2U6IFNpZGViYXJTZXJ2aWNlXG4gICkge1xuICAgIC8vIHRoaXMucmVuZGVyZXIgPSByZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIobnVsbCwgbnVsbCk7XG4gIH1cblxuICBzZXRCYWNrZHJvcChzaWRlYmFyOiBTaWRlYmFyQ29tcG9uZW50KTogdm9pZCB7XG4gICAgY29uc3QgYmFja2Ryb3AgPSB0aGlzLmRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3NpZGViYXItYmFja2Ryb3AnKTtcbiAgICAvLyBjb25zb2xlLmxvZyhgc2lkZWJhci0ke3RoaXMuaWR9YCwgJyBzZXRCYWNrZHJvcCcsIGJhY2tkcm9wKTtcbiAgICBpZiAoYmFja2Ryb3AubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmJhY2tkcm9wID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5iYWNrZHJvcCwgJ3NpZGViYXItYmFja2Ryb3AnKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5kb2N1bWVudC5ib2R5LCB0aGlzLmJhY2tkcm9wKTtcbiAgICAgIHRoaXMuY2xpY2tMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuYmFja2Ryb3AsICdjbGljaycsIChlKSA9PiB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBzaWRlYmFyLSR7dGhpcy5pZH1gLCAnIGJhY2tkcm9wIGNsaWNrJywgZSk7XG4gICAgICAgIHRoaXMuc2lkZWJhclNlcnZpY2UudG9nZ2xlKHsgdG9nZ2xlOiAndmlzaWJsZScsIHNpZGViYXIgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgLy8gY29uc29sZS5sb2codGhpcy5iYWNrZHJvcCwgc2lkZWJhci5zaWRlYmFyU3RhdGUubW9iaWxlLCBzaWRlYmFyLnNpZGViYXJTdGF0ZS5zaG93KTtcbiAgICBpZiAodGhpcy5iYWNrZHJvcCAmJiBzaWRlYmFyLnNpZGViYXJTdGF0ZS5tb2JpbGUgJiYgc2lkZWJhci5zaWRlYmFyU3RhdGUudmlzaWJsZSkge1xuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmJhY2tkcm9wLCAnZmFkZScpO1xuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmJhY2tkcm9wLCAnc2hvdycpO1xuICAgICAgLy8gdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmJhY2tkcm9wLCAnZC1ub25lJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5iYWNrZHJvcCwgJ3Nob3cnKTtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5iYWNrZHJvcCwgJ2ZhZGUnKTtcbiAgICAgIC8vIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5iYWNrZHJvcCwgJ2Qtbm9uZScpO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyQmFja2Ryb3AoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYmFja2Ryb3ApIHtcbiAgICAgIC8vIGNsZWFyIGJhY2tkcm9wIGNsaWNrIExpc3RlbmVyXG4gICAgICB0aGlzLmNsaWNrTGlzdGVuZXIoKTtcbiAgICAgIC8vIHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuYmFja2Ryb3AsICdjbGljaycsIChlKTogdm9pZCA9PiB7fSApO1xuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmRvY3VtZW50LmJvZHksIHRoaXMuYmFja2Ryb3ApO1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgdGhpcy5iYWNrZHJvcCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==