sa-modals
Version:
Angular Modal Library: A versatile and accessible modal component for Angular applications, designed to enhance user experience with smooth animations and responsive design. This library leverages Angular's CDK to create dynamic overlays, ensuring seamles
1 lines • 18.2 kB
Source Map (JSON)
{"version":3,"file":"sa-modal.mjs","sources":["../../../projects/sa-modal/src/lib/sa-modal.service.ts","../../../projects/sa-modal/src/lib/components/header/header.component.ts","../../../projects/sa-modal/src/lib/components/header/header.component.html","../../../projects/sa-modal/src/lib/sa-modal.component.ts","../../../projects/sa-modal/src/lib/sa-modal.component.html","../../../projects/sa-modal/src/lib/components/footer/footer.component.ts","../../../projects/sa-modal/src/lib/components/footer/footer.component.html","../../../projects/sa-modal/src/lib/components/body/body.component.ts","../../../projects/sa-modal/src/lib/components/body/body.component.html","../../../projects/sa-modal/src/lib/sa-modal.module.ts","../../../projects/sa-modal/src/public-api.ts","../../../projects/sa-modal/src/sa-modal.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { ModalConfig } from './interface';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SaModalService {\r\n config: ModalConfig = {\r\n saWidth: 600,\r\n hasBackdrop: true,\r\n staticBackdrop: false,\r\n closeWithESC: true,\r\n extraClass: '',\r\n };\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'modal-header',\r\n templateUrl: './header.component.html',\r\n styleUrl: './header.component.scss',\r\n})\r\nexport class HeaderComponent {\r\n @Input() header!: string;\r\n @Input() custom: boolean = false;\r\n @Input() hideCLoseBtn: boolean = false;\r\n status = new Subject<boolean>();\r\n close() {\r\n this.status.next(false);\r\n }\r\n}\r\n","<div class=\"sa-modal-header\" *ngIf=\"!custom else customeHeader\">\r\n <h3>{{header}}</h3>\r\n <button *ngIf=\"!hideCLoseBtn\" role=\"button\" type=\"button\" (click)=\"close()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" hight=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M6 18L18 6M6 6L18 18\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </button>\r\n</div>\r\n<ng-template #customeHeader>\r\n <ng-content />\r\n</ng-template>","import { FocusTrap, FocusTrapFactory } from '@angular/cdk/a11y';\r\nimport { trigger, transition, style, animate } from '@angular/animations';\r\nimport {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n TemplateRef,\r\n ViewChild,\r\n ViewContainerRef,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { HeaderComponent } from './components/header/header.component';\r\nimport { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\r\nimport { TemplatePortal } from '@angular/cdk/portal';\r\nimport { Subscription } from 'rxjs';\r\nimport { SaModalService } from './sa-modal.service';\r\nconst uReveal = trigger('uReveal', [\r\n transition(':enter', [\r\n style({ transform: 'translateY(-30%)', opacity: 0 }),\r\n animate('300ms ease', style({ transform: 'translateY(0%)', opacity: 1 })),\r\n ]),\r\n transition(':leave', [\r\n style({ transform: 'translateY(0%)', opacity: 1 }),\r\n animate('300ms ease', style({ transform: 'translateY(-30%)', opacity: 0 })),\r\n ]),\r\n]);\r\n@Component({\r\n selector: 'sa-modal',\r\n templateUrl: `./sa-modal.component.html`,\r\n styleUrls: [`./sa-modal.component.scss`],\r\n encapsulation: ViewEncapsulation.None,\r\n animations: [uReveal],\r\n})\r\nexport class SaModalComponent implements AfterViewInit, OnDestroy {\r\n @HostListener('window:popstate', ['$event'])\r\n onPopState(event: PopStateEvent) {\r\n if (this.visible) {\r\n event.preventDefault();\r\n this.close();\r\n }\r\n }\r\n\r\n @Input() center: boolean = false;\r\n @Input() extraClass: string = this.service.config.extraClass || '';\r\n @Input() saWidth: number = this.service.config.saWidth || 600;\r\n @Input() hasBackdrop: boolean = this.service.config.hasBackdrop || true;\r\n @Input() staticBackdrop: boolean = false;\r\n @Input() closeWithESC: boolean = this.service.config.closeWithESC || true;\r\n\r\n @Output() onOpen: EventEmitter<any> = new EventEmitter<null>();\r\n @Output() onClose: EventEmitter<any> = new EventEmitter<null>();\r\n @Output() backdropClicked: EventEmitter<any> = new EventEmitter<null>();\r\n\r\n @ContentChild(HeaderComponent) header!: HeaderComponent;\r\n @ViewChild('content', { static: false }) contentRef!: ElementRef;\r\n @ViewChild('overlayTemplate')\r\n overlayTemplate!: TemplateRef<any>;\r\n\r\n private overlayRef!: OverlayRef;\r\n private focusTrap!: FocusTrap;\r\n visible: boolean = false;\r\n subscriptions: Subscription[] = [];\r\n\r\n constructor(\r\n private overlay: Overlay,\r\n private viewContainerRef: ViewContainerRef,\r\n private cdr: ChangeDetectorRef,\r\n private service: SaModalService,\r\n private focusTrapFactory: FocusTrapFactory\r\n ) {}\r\n\r\n ngAfterViewInit(): void {\r\n this.subscriptions.push(\r\n this.header.status.subscribe((status) => {\r\n this.close();\r\n })\r\n );\r\n }\r\n\r\n open() {\r\n const conf = new OverlayConfig({\r\n hasBackdrop: this.hasBackdrop,\r\n backdropClass: 'sa-modal-backdrop',\r\n panelClass: 'sa-modal' + this.extraClass,\r\n scrollStrategy: this.overlay.scrollStrategies.block(),\r\n positionStrategy: this.overlay.position().global().centerHorizontally(),\r\n });\r\n if (this.center)\r\n conf.positionStrategy = this.overlay\r\n .position()\r\n .global()\r\n .centerHorizontally()\r\n .centerVertically();\r\n this.overlayRef = this.overlay.create(conf);\r\n const modalPortal = new TemplatePortal(\r\n this.overlayTemplate,\r\n this.viewContainerRef\r\n );\r\n this.visible = true;\r\n history.pushState({ modalOpen: true }, '');\r\n this.overlayRef.attach(modalPortal);\r\n this.onOpen.emit();\r\n this.cdr.detectChanges();\r\n this.focusTrap = this.focusTrapFactory.create(\r\n this.contentRef.nativeElement\r\n );\r\n this.contentRef.nativeElement.focus();\r\n this.subscriptions.push(\r\n this.overlayRef.backdropClick().subscribe(() => {\r\n this.backdropClicked.emit();\r\n if (!this.staticBackdrop) {\r\n this.close();\r\n }\r\n })\r\n );\r\n this.subscriptions.push(\r\n this.overlayRef.keydownEvents().subscribe((e) => {\r\n if (e.key == 'Escape' && this.closeWithESC) {\r\n this.close();\r\n }\r\n })\r\n );\r\n document.body.classList.add('modal-opened');\r\n }\r\n close() {\r\n this.visible = false;\r\n this.overlayRef.backdropElement?.classList.remove(\r\n 'cdk-overlay-backdrop-showing'\r\n );\r\n setTimeout(() => {\r\n this.overlayRef.dispose();\r\n document.body.classList.remove('modal-opened');\r\n this.onClose.emit();\r\n }, 300);\r\n }\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach((e) => {\r\n e.unsubscribe();\r\n });\r\n }\r\n}\r\n","<ng-template #overlayTemplate>\r\n <div #content *ngIf=\"visible\" class=\"sa-modal-content\" [style]=\"'--sa-modal-width:'+saWidth+'px '\"\r\n [@uReveal]>\r\n <ng-content></ng-content>\r\n </div>\r\n</ng-template>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'modal-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrl: './footer.component.scss',\r\n})\r\nexport class FooterComponent {\r\n @Input() justify:\r\n | 'start'\r\n | 'end'\r\n | 'flex-start'\r\n | 'flex-end'\r\n | 'center'\r\n | 'space-between'\r\n | 'space-around'\r\n | 'space-evenly' = 'space-between';\r\n}\r\n","<div class=\"sa-modal-footer\" [style]=\"'--justify:'+justify\">\r\n <ng-content />\r\n</div>","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'modal-body',\r\n templateUrl: './body.component.html',\r\n styleUrl: './body.component.scss',\r\n})\r\nexport class BodyComponent {}\r\n","<div class=\"sa-modal-body\">\r\n <ng-content></ng-content>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { HeaderComponent } from './components/header/header.component';\r\nimport { FooterComponent } from './components/footer/footer.component';\r\nimport { BodyComponent } from './components/body/body.component';\r\nimport { SaModalComponent } from './sa-modal.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n HeaderComponent,\r\n FooterComponent,\r\n BodyComponent,\r\n SaModalComponent,\r\n ],\r\n exports: [HeaderComponent, FooterComponent, BodyComponent, SaModalComponent],\r\n imports: [CommonModule, OverlayModule],\r\n})\r\nexport class SaModalModule {}\r\n","/*\r\n * Public API Surface of sa-modal\r\n */\r\n\r\nexport * from './lib/sa-modal.service';\r\nexport * from './lib/sa-modal.component';\r\nexport * from './lib/sa-modal.module';\r\nexport * from './lib/components/body/body.component';\r\nexport * from './lib/components/header/header.component';\r\nexport * from './lib/components/footer/footer.component';\r\nexport * from './lib/interface';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.SaModalService","i4"],"mappings":"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"}