primeng
Version:
PrimeNG is an open source UI library for Angular featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeB
1 lines • 13.3 kB
Source Map (JSON)
{"version":3,"file":"primeng-blockui.mjs","sources":["../../src/blockui/style/blockuistyle.ts","../../src/blockui/blockui.ts","../../src/blockui/primeng-blockui.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-blockui {\n position: relative;\n}\n\n.p-blockui-mask {\n border-radius: ${dt('blockui.border.radius')};\n}\n\n.p-blockui-mask.p-overlay-mask {\n position: absolute;\n}\n\n.p-blockui-mask-document.p-overlay-mask {\n position: fixed;\n}\n`;\n\nconst classes = {\n root: 'p-blockui'\n};\n\n@Injectable()\nexport class BlockUiStyle extends BaseStyle {\n name = 'blockui';\n\n theme = theme;\n\n classes = classes;\n}\n\n/**\n *\n * BlockUI represents people using icons, labels and images.\n *\n * [Live Demo](https://www.primeng.org/blockui)\n *\n * @module blockuistyle\n *\n */\nexport enum BlockUIClasses {\n /**\n * Class name of the root element\n */\n root = 'p-blockui'\n}\n\nexport interface BlockUIStyle extends BaseStyle {}\n","import { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n inject,\n Input,\n NgModule,\n numberAttribute,\n OnDestroy,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { addClass, blockBodyScroll, removeClass, unblockBodyScroll } from '@primeuix/utils';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { ZIndexUtils } from 'primeng/utils';\nimport { BlockUiStyle } from './style/blockuistyle';\n\n/**\n * BlockUI can either block other components or the whole page.\n * @group Components\n */\n@Component({\n selector: 'p-blockUI, p-blockui, p-block-ui',\n standalone: true,\n imports: [CommonModule, SharedModule],\n template: `\n <div\n #mask\n [class]=\"styleClass\"\n [attr.aria-busy]=\"blocked\"\n [ngClass]=\"{ 'p-blockui-mask-document': !target, 'p-blockui p-blockui-mask p-overlay-mask': true }\"\n [ngStyle]=\"{ display: 'none' }\"\n [attr.data-pc-name]=\"'blockui'\"\n [attr.data-pc-section]=\"'root'\"\n >\n <ng-content></ng-content>\n <ng-container *ngTemplateOutlet=\"contentTemplate || _contentTemplate\"></ng-container>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [BlockUiStyle]\n})\nexport class BlockUI extends BaseComponent implements AfterViewInit, AfterContentInit, OnDestroy {\n /**\n * Name of the local ng-template variable referring to another component.\n * @group Props\n */\n @Input() target: any;\n /**\n * Whether to automatically manage layering.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) autoZIndex: boolean = true;\n /**\n * Base zIndex value to use in layering.\n * @group Props\n */\n @Input({ transform: numberAttribute }) baseZIndex: number = 0;\n /**\n * Class of the element.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Current blocked state as a boolean.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) get blocked(): boolean {\n return this._blocked;\n }\n set blocked(val: boolean) {\n if (this.mask && this.mask.nativeElement) {\n if (val) this.block();\n else this.unblock();\n } else {\n this._blocked = val;\n }\n }\n /**\n * template of the content\n * @group Templates\n */\n @ContentChild('content', { descendants: false }) contentTemplate: TemplateRef<any> | undefined;\n\n @ViewChild('mask') mask: ElementRef | undefined;\n\n _blocked: boolean = false;\n\n animationEndListener: VoidFunction | null | undefined;\n\n _componentStyle = inject(BlockUiStyle);\n\n constructor() {\n super();\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n if (this._blocked) this.block();\n\n if (this.target && !this.target.getBlockableElement) {\n throw 'Target of BlockUI must implement BlockableUI interface';\n }\n }\n\n _contentTemplate: TemplateRef<any> | undefined;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n ngAfterContentInit() {\n (this.templates as QueryList<PrimeTemplate>).forEach((item) => {\n switch (item.getType()) {\n case 'content':\n this.contentTemplate = item.template;\n break;\n\n default:\n this.contentTemplate = item.template;\n break;\n }\n });\n }\n\n block() {\n if (isPlatformBrowser(this.platformId)) {\n this._blocked = true;\n (this.mask as ElementRef).nativeElement.style.display = 'flex';\n\n if (this.target) {\n this.target.getBlockableElement().appendChild((this.mask as ElementRef).nativeElement);\n this.target.getBlockableElement().style.position = 'relative';\n } else {\n this.renderer.appendChild(this.document.body, (this.mask as ElementRef).nativeElement);\n blockBodyScroll();\n }\n\n if (this.autoZIndex) {\n ZIndexUtils.set('modal', (this.mask as ElementRef).nativeElement, this.baseZIndex + this.config.zIndex.modal);\n }\n }\n }\n\n unblock() {\n if (isPlatformBrowser(this.platformId) && this.mask && !this.animationEndListener) {\n // this.animationEndListener = this.renderer.listen(this.mask.nativeElement, 'animationend', this.destroyModal.bind(this));\n // TODO Add animation\n this.destroyModal();\n // addClass(this.mask.nativeElement, 'p-overlay-mask-leave');\n }\n }\n\n destroyModal() {\n this._blocked = false;\n if (this.mask && isPlatformBrowser(this.platformId)) {\n ZIndexUtils.clear(this.mask.nativeElement);\n // removeClass(this.mask.nativeElement, 'p-overlay-mask-leave');\n this.renderer.removeChild(this.el.nativeElement, this.mask.nativeElement);\n unblockBodyScroll();\n }\n this.unbindAnimationEndListener();\n this.cd.markForCheck();\n }\n\n unbindAnimationEndListener() {\n if (this.animationEndListener && this.mask) {\n this.animationEndListener();\n this.animationEndListener = null;\n }\n }\n\n ngOnDestroy() {\n this.unblock();\n this.destroyModal();\n super.ngOnDestroy();\n }\n}\n\n@NgModule({\n imports: [BlockUI, SharedModule],\n exports: [BlockUI, SharedModule]\n})\nexport class BlockUIModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}