{"version":3,"file":"sowatech-shared-no-edit-button.mjs","sources":["../../../projects/shared/no-edit-button/no-edit-button.directive.ts","../../../projects/shared/no-edit-button/hidden-no-edit.component.ts","../../../projects/shared/no-edit-button/no-edit-button.module.ts","../../../projects/shared/no-edit-button/sowatech-shared-no-edit-button.ts"],"sourcesContent":["import { Directive, DoCheck, ElementRef, Renderer2 } from '@angular/core';\r\n\r\nconst NoEditClass = 'no-edit';\r\nconst IgnoreSingleELementClass = 'ignore-no-edit';\r\nconst IgnoreParentSelector = '.ignore-no-edit';\r\nconst IgnoreSelectors: string[] = [\r\n    IgnoreParentSelector,\r\n    //hier können weitere Selectors eingefügt werden, die das no-edit im Innern büberschreiben\r\n];\r\n\r\n//no-edit-hidden Comment...\r\n@Directive({\r\n    //no-edit-hidden für Elemente die ausgeblendet werden sollen, aber keine Buttons sind (z.B. Dropdowns mit Links)\r\n    selector: `button:not(${IgnoreSingleELementClass}),\r\n                [no-edit-hidden]:not(${IgnoreSingleELementClass})`,\r\n    standalone: false\r\n})\r\nexport class NoEditButtonDirective implements DoCheck {\r\n\r\n    constructor(private renderer: Renderer2, private el: ElementRef) { }\r\n\r\n    ngDoCheck() {\r\n        if (this.isNoEdit())\r\n            this.renderer.setStyle(this.el.nativeElement, 'display', 'none');\r\n        else\r\n            this.renderer.removeStyle(this.el.nativeElement, 'display');\r\n    }\r\n\r\n    private isNoEdit() {\r\n        return NoEditButtonDirective.isNoEdit(this.el.nativeElement);\r\n    }\r\n\r\n    public static isNoEdit(nativeElement): boolean {\r\n        if (nativeElement.classList.contains(IgnoreSingleELementClass)) return false;\r\n        const parent = nativeElement.closest(`.${NoEditClass}, ${IgnoreSelectors.join(', ')}`);\r\n        if (parent && parent.classList.contains(NoEditClass)) return true;\r\n        return false;\r\n    }\r\n}\r\n\r\n\r\n","import { Component, OnInit, OnDestroy, ElementRef } from '@angular/core';\r\n\r\nimport { NoEditButtonDirective } from './no-edit-button.directive';\r\n\r\n@Component({\r\n    selector: 'hidden-no-edit',\r\n    template: `@if (canEdit) {\r\n  <ng-content></ng-content>\r\n}\r\n`,\r\n    standalone: false\r\n})\r\n\r\nexport class NoEditCheckerComponent implements OnInit, OnDestroy {\r\n    constructor(\r\n        private element: ElementRef\r\n    ) {\r\n\r\n    }\r\n\r\n    ngOnInit() {\r\n    }\r\n\r\n    ngOnDestroy() {\r\n    }\r\n\r\n    get canEdit(): boolean {\r\n        return !NoEditButtonDirective.isNoEdit(this.element.nativeElement);\r\n    }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { NoEditCheckerComponent } from './hidden-no-edit.component';\r\nimport { NoEditButtonDirective } from './no-edit-button.directive';\r\n\r\n@NgModule({\r\n    imports: [\r\n        CommonModule,\r\n        FormsModule,\r\n    ],\r\n    declarations: [NoEditButtonDirective,NoEditCheckerComponent],\r\n    exports: [NoEditButtonDirective,NoEditCheckerComponent]\r\n})\r\nexport class NoEditButtonModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}