UNPKG

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 12.8 kB
{"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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"}