UNPKG

@tapsellorg/angular-material-library

Version:

Angular library for Tapsell

1 lines 11.3 kB
{"version":3,"file":"tapsellorg-angular-material-library-src-lib-lightbox.mjs","sources":["../../projects/pegah-library/src/lib/lightbox/lightbox.component.ts","../../projects/pegah-library/src/lib/lightbox/lightbox.component.html","../../projects/pegah-library/src/lib/lightbox/lightbox.directive.ts","../../projects/pegah-library/src/lib/lightbox/lightbox.module.ts","../../projects/pegah-library/src/lib/lightbox/tapsellorg-angular-material-library-src-lib-lightbox.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Inject,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { PghLoader } from '@tapsellorg/angular-material-library/src/lib/loader';\nimport { PghSafePipe } from '@tapsellorg/angular-material-library/src/lib/common';\nimport { PghLightBoxDialogData } from './models';\n\n@Component({\n selector: 'pgh-lightbox',\n templateUrl: './lightbox.component.html',\n styleUrls: ['./lightbox.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [PghSafePipe],\n standalone: false,\n})\nexport class PghLightboxComponent {\n loader = new PghLoader();\n hasError = signal<boolean>(false);\n type = signal<string>('image');\n loadingType = signal<boolean>(true); // default type is `image`\n loadingMediaTitle = signal<string>('');\n constructor(\n private matDialogRef: MatDialogRef<void>,\n @Inject(MAT_DIALOG_DATA) public dialogData: PghLightBoxDialogData,\n ) {\n this.matDialogRef.addPanelClass('pgh-lightbox-dialog');\n this.handleLightboxType();\n if (this.loadingType()) {\n this.loader.activate();\n }\n }\n\n private handleLightboxType() {\n this.type.set(this.dialogData.type);\n if (this.type() === 'image') {\n this.loadingType.set(true);\n this.loadingMediaTitle.set('تصویر');\n } else if (this.type() === 'iframe') {\n this.loadingType.set(true);\n this.loadingMediaTitle.set('محتوا');\n } else {\n this.loadingType.set(false);\n }\n }\n\n contentLoaded() {\n this.loader.deactivate();\n }\n\n errorLoadingContent() {\n this.loader.deactivate();\n this.hasError.set(true);\n }\n}\n","@if (!loadingType()) {\n<div class=\"pgh-lightbox-container\">\n <ng-container *ngTemplateOutlet=\"dialogData.template!\"></ng-container>\n</div>\n} @if (loadingType()) {\n<div class=\"pgh-lightbox-container\" [pghLoader]=\"loader\">\n @if (hasError()) {\n <div class=\"pgh-lightbox-error\">\n <div>\n مشکلی در لود\n <span>{{ loadingMediaTitle() }}</span>\n پیش آمده، لطفا دوباره تلاش کنید.\n <br />\n در صورتی که مشکل مجددا پیش آمد، لطفا اطلاع دهید\n </div>\n </div>\n } @if (!hasError() && type() === 'image') {\n <img\n [src]=\"dialogData.src! | pghSafe : 'resourceUrl'\"\n alt=\"\"\n (load)=\"contentLoaded()\"\n (error)=\"errorLoadingContent()\"\n />\n } @if (!hasError() && type() === 'iframe') {\n <iframe\n class=\"pgh-lightbox-iframe\"\n [src]=\"dialogData.src! | pghSafe : 'resourceUrl'\"\n frameborder=\"0\"\n width=\"1000\"\n height=\"1000\"\n (load)=\"contentLoaded()\"\n (error)=\"errorLoadingContent()\"\n ></iframe>\n }\n</div>\n}\n","import {\n Directive,\n HostListener,\n input,\n OnChanges,\n output,\n SimpleChanges,\n TemplateRef,\n} from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { PghLightboxComponent } from './lightbox.component';\nimport { PghLightboxType, PghLightBoxDialogData } from './models';\n\n@Directive({\n selector: '[pghLightbox]',\n standalone: false,\n})\nexport class PghLightboxDirective implements OnChanges {\n content = input.required<string | TemplateRef<any>>({\n alias: 'pghLightbox',\n });\n type = input<PghLightboxType>('image', {\n alias: 'pghLightboxType',\n });\n pghLightboxClosed = output();\n\n private readonly lightBoxLoadingTypes: [PghLightboxType, PghLightboxType] = ['image', 'iframe'];\n\n @HostListener('click') onClick() {\n this.matDialog\n .open<PghLightboxComponent, PghLightBoxDialogData>(PghLightboxComponent, {\n data:\n this.isLoadingType() && !this.isContentTemplate()\n ? { type: this.type(), src: this.content() as string }\n : { type: 'template', template: this.content() as TemplateRef<any> },\n })\n .afterClosed()\n .subscribe(() => {\n this.pghLightboxClosed.emit();\n });\n }\n\n private isLoadingType() {\n return this.lightBoxLoadingTypes.includes(this.type());\n }\n\n private isContentTemplate() {\n return typeof this.content() !== 'string';\n }\n\n constructor(private matDialog: MatDialog) {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.isLoadingType() && this.isContentTemplate()) {\n throw new Error('pghLightbox content must be a string');\n } else if (!this.isLoadingType && !this.isContentTemplate()) {\n throw new Error('pghLightbox content must be a template');\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { PghLoaderModule } from '@tapsellorg/angular-material-library/src/lib/loader';\nimport { PghSafeModule } from '@tapsellorg/angular-material-library/src/lib/common';\nimport { PghLightboxComponent } from './lightbox.component';\nimport { PghLightboxDirective } from './lightbox.directive';\n\n@NgModule({\n declarations: [PghLightboxComponent, PghLightboxDirective],\n imports: [CommonModule, MatDialogModule, PghLoaderModule, PghSafeModule],\n exports: [PghLightboxComponent, PghLightboxDirective],\n})\nexport class PghLightboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}