novo-elements 11.3.1-next.2 → 11.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { EventEmitter, ViewChild, Input, Component, HostListener, Output, Directive, NgModule } from '@angular/core';
3
+ import { Subscription } from 'rxjs';
3
4
  import * as i1 from '@angular/common';
4
5
  import { CommonModule } from '@angular/common';
5
6
 
@@ -229,6 +230,7 @@ class PopOverDirective {
229
230
  this.viewContainerRef = viewContainerRef;
230
231
  this.resolver = resolver;
231
232
  this.PopoverComponent = PopOverContent;
233
+ this.subscriptions = new Subscription();
232
234
  this.popoverOnHover = false;
233
235
  this.popoverDismissTimeout = 0;
234
236
  this.onShown = new EventEmitter();
@@ -270,6 +272,9 @@ class PopOverDirective {
270
272
  }
271
273
  }
272
274
  }
275
+ ngOnDestroy() {
276
+ this.subscriptions.unsubscribe();
277
+ }
273
278
  toggle() {
274
279
  if (!this.visible) {
275
280
  this.show();
@@ -306,7 +311,7 @@ class PopOverDirective {
306
311
  if (this.popoverTitle !== undefined) {
307
312
  popover.title = this.popoverTitle;
308
313
  }
309
- popover.onCloseFromOutside.subscribe(() => this.hide());
314
+ this.subscriptions.add(popover.onCloseFromOutside.subscribe(() => this.hide()));
310
315
  if (this.popoverDismissTimeout > 0) {
311
316
  setTimeout(() => this.hide(), this.popoverDismissTimeout);
312
317
  }
@@ -323,7 +328,7 @@ class PopOverDirective {
323
328
  if (this.popoverTitle !== undefined) {
324
329
  popover.title = this.popoverTitle;
325
330
  }
326
- popover.onCloseFromOutside.subscribe(() => this.hide());
331
+ this.subscriptions.add(popover.onCloseFromOutside.subscribe(() => this.hide()));
327
332
  if (this.popoverDismissTimeout > 0) {
328
333
  setTimeout(() => this.hide(), this.popoverDismissTimeout);
329
334
  }
@@ -1 +1 @@
1
- {"version":3,"file":"novo-elements-elements-popover.mjs","sources":["../../../projects/novo-elements/src/elements/popover/PopOverContent.ts","../../../projects/novo-elements/src/elements/popover/PopOver.ts","../../../projects/novo-elements/src/elements/popover/PopOver.module.ts","../../../projects/novo-elements/src/elements/popover/novo-elements-elements-popover.ts"],"sourcesContent":["import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, ViewChild } from '@angular/core';\nimport { PopOverDirective } from './PopOver';\n\n@Component({\n selector: 'popover-content',\n template: `\n <div\n #popoverDiv\n class=\"popover {{ effectivePlacement }}\"\n [style.top]=\"top + 'px'\"\n [style.left]=\"left + 'px'\"\n [class.fade]=\"animation\"\n style=\"display: block\"\n role=\"popover\"\n >\n <div class=\"arrow {{ effectiveAlignment }}\"></div>\n <div class=\"popover-title\" [hidden]=\"!title\">{{ title }}</div>\n <div class=\"popover-content\">\n <ng-content></ng-content>\n <div *ngIf=\"htmlContent\" class=\"popover-content-text\" [innerHTML]=\"htmlContent\"></div>\n <div *ngIf=\"!htmlContent\" class=\"popover-content-text\">{{ content }}</div>\n </div>\n </div>\n `,\n styleUrls: ['./PopOver.scss'],\n standalone: false,\n})\nexport class PopOverContent implements AfterViewInit {\n @Input()\n content: string;\n @Input()\n htmlContent: string;\n @Input()\n placement: string = 'top';\n @Input()\n title: string;\n @Input()\n animation: boolean = true;\n\n @ViewChild('popoverDiv')\n popoverDiv: ElementRef;\n popover: PopOverDirective;\n onCloseFromOutside = new EventEmitter();\n top: number = -10000;\n left: number = -10000;\n displayType: string = 'none';\n effectivePlacement: string;\n effectiveAlignment: string;\n isHidden: boolean = false;\n\n constructor(protected element: ElementRef, protected cdr: ChangeDetectorRef) {}\n\n ngAfterViewInit(): void {\n this.show();\n this.cdr.detectChanges();\n }\n\n toggle(): void {\n if (this.isHidden) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n show(): void {\n if (!this.popover || !this.popover.getElement()) {\n return;\n }\n\n const p = this.positionElements(this.popover.getElement(), this.popoverDiv.nativeElement, this.placement);\n this.displayType = 'block';\n this.top = p.top;\n this.left = p.left;\n this.isHidden = false;\n }\n\n hide(): void {\n this.top = -10000;\n this.left = -10000;\n this.isHidden = true;\n this.popover.hide();\n }\n\n hideFromPopover() {\n this.top = -10000;\n this.left = -10000;\n }\n\n protected positionElements(\n hostEl: HTMLElement,\n targetEl: HTMLElement,\n positionStr: string,\n appendToBody = false,\n ): { top: number; left: number } {\n const positionStrParts = positionStr.split('-');\n const mainSide = (this.effectivePlacement = this.getEffectivePlacement(positionStrParts[0] || 'right', hostEl, targetEl));\n const orientation = (this.effectiveAlignment = positionStrParts[1] || 'center');\n const hostElPos = appendToBody ? this.offset(hostEl) : this.position(hostEl);\n const targetElWidth = targetEl.offsetWidth;\n const targetElHeight = targetEl.offsetHeight;\n\n const shiftWidth: any = {\n center(): number {\n return hostElPos.left + (hostElPos.width - targetElWidth) / 2;\n },\n right(): number {\n return hostElPos.left;\n },\n left(): number {\n return hostElPos.left + (hostElPos.width - targetElWidth);\n },\n };\n\n const shiftHeight: any = {\n center(): number {\n return hostElPos.top + (hostElPos.height - targetElHeight) / 2;\n },\n bottom(): number {\n return hostElPos.top;\n },\n top(): number {\n return hostElPos.top + (hostElPos.height - targetElHeight);\n },\n };\n\n let targetElPos: { top: number; left: number };\n switch (mainSide) {\n case 'right':\n targetElPos = {\n top: shiftHeight[orientation](),\n left: hostElPos.left + hostElPos.width,\n };\n break;\n\n case 'left':\n targetElPos = {\n top: shiftHeight[orientation](),\n left: hostElPos.left - targetElWidth,\n };\n break;\n\n case 'bottom':\n targetElPos = {\n top: hostElPos.top + hostElPos.height,\n left: shiftWidth[orientation](),\n };\n break;\n\n default:\n targetElPos = {\n top: hostElPos.top - targetElHeight,\n left: shiftWidth[orientation](),\n };\n break;\n }\n\n return targetElPos;\n }\n\n protected position(nativeEl: HTMLElement): { width: number; height: number; top: number; left: number } {\n let offsetParentBCR = { top: 0, left: 0 };\n const elBCR = this.offset(nativeEl);\n const offsetParentEl = this.parentOffsetEl(nativeEl);\n if (offsetParentEl !== window.document) {\n offsetParentBCR = this.offset(offsetParentEl);\n offsetParentBCR.top += offsetParentEl.clientTop - offsetParentEl.scrollTop;\n offsetParentBCR.left += offsetParentEl.clientLeft - offsetParentEl.scrollLeft;\n }\n\n const boundingClientRect = nativeEl.getBoundingClientRect();\n return {\n width: boundingClientRect.width || nativeEl.offsetWidth,\n height: boundingClientRect.height || nativeEl.offsetHeight,\n top: elBCR.top - offsetParentBCR.top,\n left: elBCR.left - offsetParentBCR.left,\n };\n }\n\n protected offset(nativeEl: any): { width: number; height: number; top: number; left: number } {\n const boundingClientRect = nativeEl.getBoundingClientRect();\n return {\n width: boundingClientRect.width || nativeEl.offsetWidth,\n height: boundingClientRect.height || nativeEl.offsetHeight,\n top: boundingClientRect.top + (window.pageYOffset || window.document.documentElement.scrollTop),\n left: boundingClientRect.left + (window.pageXOffset || window.document.documentElement.scrollLeft),\n };\n }\n\n protected getStyle(nativeEl: HTMLElement, cssProp: string): string {\n if ((nativeEl as any).currentStyle) {\n return (nativeEl as any).currentStyle[cssProp];\n }\n\n if (window.getComputedStyle) {\n return (window.getComputedStyle as any)(nativeEl)[cssProp];\n }\n\n return (nativeEl.style as any)[cssProp];\n }\n\n protected isStaticPositioned(nativeEl: HTMLElement): boolean {\n return (this.getStyle(nativeEl, 'position') || 'static') === 'static';\n }\n\n protected parentOffsetEl(nativeEl: HTMLElement): any {\n let offsetParent: any = nativeEl.offsetParent || window.document;\n while (offsetParent && offsetParent !== window.document && this.isStaticPositioned(offsetParent)) {\n offsetParent = offsetParent.offsetParent;\n }\n return offsetParent || window.document;\n }\n\n protected getEffectivePlacement(desiredPlacement: string, hostElement: HTMLElement, targetElement: HTMLElement): string {\n const hostElBoundingRect = hostElement.getBoundingClientRect();\n\n if (desiredPlacement === 'top' && hostElBoundingRect.top - targetElement.offsetHeight < 0) {\n return 'bottom';\n }\n if (desiredPlacement === 'bottom' && hostElBoundingRect.bottom + targetElement.offsetHeight > window.innerHeight) {\n return 'top';\n }\n if (desiredPlacement === 'left' && hostElBoundingRect.left - targetElement.offsetWidth < 0) {\n return 'right';\n }\n if (desiredPlacement === 'right' && hostElBoundingRect.right + targetElement.offsetWidth > window.innerWidth) {\n return 'left';\n }\n\n return desiredPlacement;\n }\n}\n","// NG2\nimport {\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n Output,\n SimpleChange,\n ViewContainerRef,\n} from '@angular/core';\nimport { PopOverContent } from './PopOverContent';\n\n@Directive({\n /**\n * [popover] selector retained for backwards compatability, but should be avoived as\n * it interferes with the newly added (2023) HTML standard spec popover attribute.\n */\n selector: '[popover], [novoPopover]',\n standalone: false,\n})\nexport class PopOverDirective implements OnChanges {\n protected PopoverComponent = PopOverContent;\n protected popover: ComponentRef<PopOverContent>;\n protected visible: boolean;\n\n constructor(protected viewContainerRef: ViewContainerRef, protected resolver: ComponentFactoryResolver) {}\n\n @Input('popover')\n content: string | PopOverContent;\n @Input('novoPopover')\n set novoPopover(content: string | PopOverContent) {\n this.content = content;\n }\n @Input()\n popoverHtmlContent: string;\n @Input()\n popoverDisabled: boolean;\n @Input()\n popoverAlways: boolean;\n @Input()\n popoverAnimation: boolean;\n @Input()\n popoverPlacement: string;\n @Input()\n popoverTitle: string;\n @Input()\n popoverOnHover: boolean = false;\n @Input()\n popoverDismissTimeout: number = 0;\n\n @Output()\n onShown = new EventEmitter<PopOverDirective>();\n @Output()\n onHidden = new EventEmitter<PopOverDirective>();\n\n // ---------------------------------------------------\n // Event listeners\n // ---------------------------------------------------\n @HostListener('click')\n showOrHideOnClick(): void {\n if (this.popoverOnHover || this.popoverDisabled) {\n return;\n }\n this.toggle();\n }\n\n @HostListener('focusin')\n @HostListener('mouseenter')\n showOnHover(): void {\n if (!this.popoverOnHover || this.popoverDisabled) {\n return;\n }\n this.show();\n }\n\n @HostListener('focusout')\n @HostListener('mouseleave')\n hideOnHover(): void {\n if (!this.popoverOnHover || this.popoverDisabled) {\n return;\n }\n this.hide();\n }\n\n ngOnChanges(changes: { [propertyName: string]: SimpleChange }) {\n if (changes.popoverDisabled) {\n if (changes.popoverDisabled.currentValue) {\n this.hide();\n }\n }\n if (changes.popoverAlways) {\n if (changes.popoverAlways.currentValue) {\n this.show();\n }\n }\n }\n\n toggle() {\n if (!this.visible) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n show() {\n if (this.visible || (!this.content && !this.popoverHtmlContent)) {\n return;\n }\n\n this.visible = true;\n if (typeof this.content === 'string' || this.popoverHtmlContent) {\n const factory = this.resolver.resolveComponentFactory(this.PopoverComponent);\n if (!this.visible) {\n return;\n }\n\n this.popover = this.viewContainerRef.createComponent(factory);\n const popover = this.popover.instance as PopOverContent;\n popover.popover = this;\n if (this.content) {\n popover.content = this.content as string;\n }\n if (this.popoverHtmlContent) {\n popover.htmlContent = this.popoverHtmlContent;\n }\n if (this.popoverPlacement !== undefined) {\n popover.placement = this.popoverPlacement;\n }\n if (this.popoverAnimation !== undefined) {\n popover.animation = this.popoverAnimation;\n }\n if (this.popoverTitle !== undefined) {\n popover.title = this.popoverTitle;\n }\n\n popover.onCloseFromOutside.subscribe(() => this.hide());\n if (this.popoverDismissTimeout > 0) {\n setTimeout(() => this.hide(), this.popoverDismissTimeout);\n }\n } else {\n const popover = this.content as PopOverContent;\n popover.popover = this;\n if (this.popoverPlacement !== undefined) {\n popover.placement = this.popoverPlacement;\n }\n if (this.popoverAnimation !== undefined) {\n popover.animation = this.popoverAnimation;\n }\n if (this.popoverTitle !== undefined) {\n popover.title = this.popoverTitle;\n }\n\n popover.onCloseFromOutside.subscribe(() => this.hide());\n if (this.popoverDismissTimeout > 0) {\n setTimeout(() => this.hide(), this.popoverDismissTimeout);\n }\n popover.show();\n }\n\n this.onShown.emit(this);\n }\n\n hide() {\n if (!this.visible) {\n return;\n }\n\n this.visible = false;\n if (this.popover) {\n this.popover.destroy();\n }\n\n if (this.content instanceof PopOverContent) {\n (this.content as PopOverContent).hideFromPopover();\n }\n\n this.onHidden.emit(this);\n }\n\n getElement() {\n return this.viewContainerRef.element.nativeElement;\n }\n}\n","// NG2\nimport { NgModule } from '@angular/core';\nimport { PopOverDirective } from './PopOver';\n// APP\nimport { PopOverContent } from './PopOverContent';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n declarations: [PopOverContent, PopOverDirective],\n exports: [PopOverContent, PopOverDirective],\n imports: [\n CommonModule,\n ],\n})\nexport class NovoPopOverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"novo-elements-elements-popover.mjs","sources":["../../../projects/novo-elements/src/elements/popover/PopOverContent.ts","../../../projects/novo-elements/src/elements/popover/PopOver.ts","../../../projects/novo-elements/src/elements/popover/PopOver.module.ts","../../../projects/novo-elements/src/elements/popover/novo-elements-elements-popover.ts"],"sourcesContent":["import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, ViewChild } from '@angular/core';\nimport { PopOverDirective } from './PopOver';\n\n@Component({\n selector: 'popover-content',\n template: `\n <div\n #popoverDiv\n class=\"popover {{ effectivePlacement }}\"\n [style.top]=\"top + 'px'\"\n [style.left]=\"left + 'px'\"\n [class.fade]=\"animation\"\n style=\"display: block\"\n role=\"popover\"\n >\n <div class=\"arrow {{ effectiveAlignment }}\"></div>\n <div class=\"popover-title\" [hidden]=\"!title\">{{ title }}</div>\n <div class=\"popover-content\">\n <ng-content></ng-content>\n <div *ngIf=\"htmlContent\" class=\"popover-content-text\" [innerHTML]=\"htmlContent\"></div>\n <div *ngIf=\"!htmlContent\" class=\"popover-content-text\">{{ content }}</div>\n </div>\n </div>\n `,\n styleUrls: ['./PopOver.scss'],\n standalone: false,\n})\nexport class PopOverContent implements AfterViewInit {\n @Input()\n content: string;\n @Input()\n htmlContent: string;\n @Input()\n placement: string = 'top';\n @Input()\n title: string;\n @Input()\n animation: boolean = true;\n\n @ViewChild('popoverDiv')\n popoverDiv: ElementRef;\n popover: PopOverDirective;\n onCloseFromOutside = new EventEmitter();\n top: number = -10000;\n left: number = -10000;\n displayType: string = 'none';\n effectivePlacement: string;\n effectiveAlignment: string;\n isHidden: boolean = false;\n\n constructor(protected element: ElementRef, protected cdr: ChangeDetectorRef) {}\n\n ngAfterViewInit(): void {\n this.show();\n this.cdr.detectChanges();\n }\n\n toggle(): void {\n if (this.isHidden) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n show(): void {\n if (!this.popover || !this.popover.getElement()) {\n return;\n }\n\n const p = this.positionElements(this.popover.getElement(), this.popoverDiv.nativeElement, this.placement);\n this.displayType = 'block';\n this.top = p.top;\n this.left = p.left;\n this.isHidden = false;\n }\n\n hide(): void {\n this.top = -10000;\n this.left = -10000;\n this.isHidden = true;\n this.popover.hide();\n }\n\n hideFromPopover() {\n this.top = -10000;\n this.left = -10000;\n }\n\n protected positionElements(\n hostEl: HTMLElement,\n targetEl: HTMLElement,\n positionStr: string,\n appendToBody = false,\n ): { top: number; left: number } {\n const positionStrParts = positionStr.split('-');\n const mainSide = (this.effectivePlacement = this.getEffectivePlacement(positionStrParts[0] || 'right', hostEl, targetEl));\n const orientation = (this.effectiveAlignment = positionStrParts[1] || 'center');\n const hostElPos = appendToBody ? this.offset(hostEl) : this.position(hostEl);\n const targetElWidth = targetEl.offsetWidth;\n const targetElHeight = targetEl.offsetHeight;\n\n const shiftWidth: any = {\n center(): number {\n return hostElPos.left + (hostElPos.width - targetElWidth) / 2;\n },\n right(): number {\n return hostElPos.left;\n },\n left(): number {\n return hostElPos.left + (hostElPos.width - targetElWidth);\n },\n };\n\n const shiftHeight: any = {\n center(): number {\n return hostElPos.top + (hostElPos.height - targetElHeight) / 2;\n },\n bottom(): number {\n return hostElPos.top;\n },\n top(): number {\n return hostElPos.top + (hostElPos.height - targetElHeight);\n },\n };\n\n let targetElPos: { top: number; left: number };\n switch (mainSide) {\n case 'right':\n targetElPos = {\n top: shiftHeight[orientation](),\n left: hostElPos.left + hostElPos.width,\n };\n break;\n\n case 'left':\n targetElPos = {\n top: shiftHeight[orientation](),\n left: hostElPos.left - targetElWidth,\n };\n break;\n\n case 'bottom':\n targetElPos = {\n top: hostElPos.top + hostElPos.height,\n left: shiftWidth[orientation](),\n };\n break;\n\n default:\n targetElPos = {\n top: hostElPos.top - targetElHeight,\n left: shiftWidth[orientation](),\n };\n break;\n }\n\n return targetElPos;\n }\n\n protected position(nativeEl: HTMLElement): { width: number; height: number; top: number; left: number } {\n let offsetParentBCR = { top: 0, left: 0 };\n const elBCR = this.offset(nativeEl);\n const offsetParentEl = this.parentOffsetEl(nativeEl);\n if (offsetParentEl !== window.document) {\n offsetParentBCR = this.offset(offsetParentEl);\n offsetParentBCR.top += offsetParentEl.clientTop - offsetParentEl.scrollTop;\n offsetParentBCR.left += offsetParentEl.clientLeft - offsetParentEl.scrollLeft;\n }\n\n const boundingClientRect = nativeEl.getBoundingClientRect();\n return {\n width: boundingClientRect.width || nativeEl.offsetWidth,\n height: boundingClientRect.height || nativeEl.offsetHeight,\n top: elBCR.top - offsetParentBCR.top,\n left: elBCR.left - offsetParentBCR.left,\n };\n }\n\n protected offset(nativeEl: any): { width: number; height: number; top: number; left: number } {\n const boundingClientRect = nativeEl.getBoundingClientRect();\n return {\n width: boundingClientRect.width || nativeEl.offsetWidth,\n height: boundingClientRect.height || nativeEl.offsetHeight,\n top: boundingClientRect.top + (window.pageYOffset || window.document.documentElement.scrollTop),\n left: boundingClientRect.left + (window.pageXOffset || window.document.documentElement.scrollLeft),\n };\n }\n\n protected getStyle(nativeEl: HTMLElement, cssProp: string): string {\n if ((nativeEl as any).currentStyle) {\n return (nativeEl as any).currentStyle[cssProp];\n }\n\n if (window.getComputedStyle) {\n return (window.getComputedStyle as any)(nativeEl)[cssProp];\n }\n\n return (nativeEl.style as any)[cssProp];\n }\n\n protected isStaticPositioned(nativeEl: HTMLElement): boolean {\n return (this.getStyle(nativeEl, 'position') || 'static') === 'static';\n }\n\n protected parentOffsetEl(nativeEl: HTMLElement): any {\n let offsetParent: any = nativeEl.offsetParent || window.document;\n while (offsetParent && offsetParent !== window.document && this.isStaticPositioned(offsetParent)) {\n offsetParent = offsetParent.offsetParent;\n }\n return offsetParent || window.document;\n }\n\n protected getEffectivePlacement(desiredPlacement: string, hostElement: HTMLElement, targetElement: HTMLElement): string {\n const hostElBoundingRect = hostElement.getBoundingClientRect();\n\n if (desiredPlacement === 'top' && hostElBoundingRect.top - targetElement.offsetHeight < 0) {\n return 'bottom';\n }\n if (desiredPlacement === 'bottom' && hostElBoundingRect.bottom + targetElement.offsetHeight > window.innerHeight) {\n return 'top';\n }\n if (desiredPlacement === 'left' && hostElBoundingRect.left - targetElement.offsetWidth < 0) {\n return 'right';\n }\n if (desiredPlacement === 'right' && hostElBoundingRect.right + targetElement.offsetWidth > window.innerWidth) {\n return 'left';\n }\n\n return desiredPlacement;\n }\n}\n","// NG2\nimport {\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChange,\n ViewContainerRef,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { PopOverContent } from './PopOverContent';\n\n@Directive({\n /**\n * [popover] selector retained for backwards compatability, but should be avoived as\n * it interferes with the newly added (2023) HTML standard spec popover attribute.\n */\n selector: '[popover], [novoPopover]',\n standalone: false,\n})\nexport class PopOverDirective implements OnChanges, OnDestroy {\n protected PopoverComponent = PopOverContent;\n protected popover: ComponentRef<PopOverContent>;\n protected visible: boolean;\n private subscriptions = new Subscription();\n\n constructor(protected viewContainerRef: ViewContainerRef, protected resolver: ComponentFactoryResolver) {}\n\n @Input('popover')\n content: string | PopOverContent;\n @Input('novoPopover')\n set novoPopover(content: string | PopOverContent) {\n this.content = content;\n }\n @Input()\n popoverHtmlContent: string;\n @Input()\n popoverDisabled: boolean;\n @Input()\n popoverAlways: boolean;\n @Input()\n popoverAnimation: boolean;\n @Input()\n popoverPlacement: string;\n @Input()\n popoverTitle: string;\n @Input()\n popoverOnHover: boolean = false;\n @Input()\n popoverDismissTimeout: number = 0;\n\n @Output()\n onShown = new EventEmitter<PopOverDirective>();\n @Output()\n onHidden = new EventEmitter<PopOverDirective>();\n\n // ---------------------------------------------------\n // Event listeners\n // ---------------------------------------------------\n @HostListener('click')\n showOrHideOnClick(): void {\n if (this.popoverOnHover || this.popoverDisabled) {\n return;\n }\n this.toggle();\n }\n\n @HostListener('focusin')\n @HostListener('mouseenter')\n showOnHover(): void {\n if (!this.popoverOnHover || this.popoverDisabled) {\n return;\n }\n this.show();\n }\n\n @HostListener('focusout')\n @HostListener('mouseleave')\n hideOnHover(): void {\n if (!this.popoverOnHover || this.popoverDisabled) {\n return;\n }\n this.hide();\n }\n\n ngOnChanges(changes: { [propertyName: string]: SimpleChange }) {\n if (changes.popoverDisabled) {\n if (changes.popoverDisabled.currentValue) {\n this.hide();\n }\n }\n if (changes.popoverAlways) {\n if (changes.popoverAlways.currentValue) {\n this.show();\n }\n }\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n\n toggle() {\n if (!this.visible) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n show() {\n if (this.visible || (!this.content && !this.popoverHtmlContent)) {\n return;\n }\n\n this.visible = true;\n if (typeof this.content === 'string' || this.popoverHtmlContent) {\n const factory = this.resolver.resolveComponentFactory(this.PopoverComponent);\n if (!this.visible) {\n return;\n }\n\n this.popover = this.viewContainerRef.createComponent(factory);\n const popover = this.popover.instance as PopOverContent;\n popover.popover = this;\n if (this.content) {\n popover.content = this.content as string;\n }\n if (this.popoverHtmlContent) {\n popover.htmlContent = this.popoverHtmlContent;\n }\n if (this.popoverPlacement !== undefined) {\n popover.placement = this.popoverPlacement;\n }\n if (this.popoverAnimation !== undefined) {\n popover.animation = this.popoverAnimation;\n }\n if (this.popoverTitle !== undefined) {\n popover.title = this.popoverTitle;\n }\n\n this.subscriptions.add(popover.onCloseFromOutside.subscribe(() => this.hide()));\n if (this.popoverDismissTimeout > 0) {\n setTimeout(() => this.hide(), this.popoverDismissTimeout);\n }\n } else {\n const popover = this.content as PopOverContent;\n popover.popover = this;\n if (this.popoverPlacement !== undefined) {\n popover.placement = this.popoverPlacement;\n }\n if (this.popoverAnimation !== undefined) {\n popover.animation = this.popoverAnimation;\n }\n if (this.popoverTitle !== undefined) {\n popover.title = this.popoverTitle;\n }\n\n this.subscriptions.add(popover.onCloseFromOutside.subscribe(() => this.hide()));\n if (this.popoverDismissTimeout > 0) {\n setTimeout(() => this.hide(), this.popoverDismissTimeout);\n }\n popover.show();\n }\n\n this.onShown.emit(this);\n }\n\n hide() {\n if (!this.visible) {\n return;\n }\n\n this.visible = false;\n if (this.popover) {\n this.popover.destroy();\n }\n\n if (this.content instanceof PopOverContent) {\n (this.content as PopOverContent).hideFromPopover();\n }\n\n this.onHidden.emit(this);\n }\n\n getElement() {\n return this.viewContainerRef.element.nativeElement;\n }\n}\n","// NG2\nimport { NgModule } from '@angular/core';\nimport { PopOverDirective } from './PopOver';\n// APP\nimport { PopOverContent } from './PopOverContent';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n declarations: [PopOverContent, PopOverDirective],\n exports: [PopOverContent, PopOverDirective],\n imports: [\n CommonModule,\n ],\n})\nexport class NovoPopOverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -5,13 +5,21 @@ import { CommonModule } from '@angular/common';
5
5
 
6
6
  // NG2
7
7
  class Unless {
8
- constructor(templateRef, viewContainer, security) {
8
+ constructor(templateRef, viewContainer, security, destroyRef) {
9
9
  this.templateRef = templateRef;
10
10
  this.viewContainer = viewContainer;
11
11
  this.security = security;
12
+ this.destroyRef = destroyRef;
12
13
  this.permissions = '';
13
14
  this.isDisplayed = false;
14
- this.security.subscribe(this.check.bind(this));
15
+ const sub = this.security.subscribe(this.check.bind(this));
16
+ this.destroyRef.onDestroy(() => {
17
+ // If Security uses an old definition, subscribe will return void/undefined.
18
+ try {
19
+ sub?.unsubscribe();
20
+ }
21
+ catch { }
22
+ });
15
23
  }
16
24
  set bhUnless(value) {
17
25
  this.permissions = value || '';
@@ -41,7 +49,7 @@ class Unless {
41
49
  this.viewContainer.clear();
42
50
  }
43
51
  }
44
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: Unless, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i1.Security }], target: i0.ɵɵFactoryTarget.Directive }); }
52
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: Unless, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i1.Security }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Directive }); }
45
53
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: Unless, isStandalone: false, selector: "[bhUnless]", inputs: { bhUnless: "bhUnless" }, ngImport: i0 }); }
46
54
  }
47
55
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: Unless, decorators: [{
@@ -50,7 +58,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
50
58
  selector: '[bhUnless]',
51
59
  standalone: false,
52
60
  }]
53
- }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i1.Security }], propDecorators: { bhUnless: [{
61
+ }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i1.Security }, { type: i0.DestroyRef }], propDecorators: { bhUnless: [{
54
62
  type: Input
55
63
  }] } });
56
64
 
@@ -1 +1 @@
1
- {"version":3,"file":"novo-elements-elements-unless.mjs","sources":["../../../projects/novo-elements/src/elements/unless/Unless.ts","../../../projects/novo-elements/src/elements/unless/Unless.module.ts","../../../projects/novo-elements/src/elements/unless/novo-elements-elements-unless.ts"],"sourcesContent":["// NG2\nimport { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\n// App\nimport { Security } from 'novo-elements/services';\n\n@Directive({\n selector: '[bhUnless]',\n standalone: false,\n})\nexport class Unless {\n permissions: string = '';\n isDisplayed: boolean = false;\n\n constructor(public templateRef: TemplateRef<any>, public viewContainer: ViewContainerRef, public security: Security) {\n this.security.subscribe(this.check.bind(this));\n }\n\n @Input()\n set bhUnless(value: string) {\n this.permissions = value || '';\n this.check();\n }\n\n check(): void {\n let display: boolean = false;\n if (~this.permissions.indexOf('||')) {\n const ps: any = this.permissions.split('||');\n for (const p of ps) {\n if (this.security.has(p.trim())) {\n display = true;\n }\n }\n } else {\n display = this.permissions.split('&&').every((p) => this.security.has(p.trim()));\n }\n\n if (display) {\n if (!this.isDisplayed) {\n this.isDisplayed = true;\n this.viewContainer.createEmbeddedView(this.templateRef);\n }\n } else {\n this.isDisplayed = false;\n this.viewContainer.clear();\n }\n }\n}\n","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n// APP\nimport { Unless } from './Unless';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [Unless],\n exports: [Unless],\n})\nexport class UnlessModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"novo-elements-elements-unless.mjs","sources":["../../../projects/novo-elements/src/elements/unless/Unless.ts","../../../projects/novo-elements/src/elements/unless/Unless.module.ts","../../../projects/novo-elements/src/elements/unless/novo-elements-elements-unless.ts"],"sourcesContent":["// NG2\nimport { DestroyRef, Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\n// App\nimport { Security } from 'novo-elements/services';\n\n@Directive({\n selector: '[bhUnless]',\n standalone: false,\n})\nexport class Unless {\n permissions: string = '';\n isDisplayed: boolean = false;\n\n constructor(\n public templateRef: TemplateRef<any>,\n public viewContainer: ViewContainerRef,\n public security: Security,\n private destroyRef: DestroyRef) {\n const sub = this.security.subscribe(this.check.bind(this));\n this.destroyRef.onDestroy(() => {\n // If Security uses an old definition, subscribe will return void/undefined.\n try {\n sub?.unsubscribe();\n } catch {}\n });\n }\n\n @Input()\n set bhUnless(value: string) {\n this.permissions = value || '';\n this.check();\n }\n\n check(): void {\n let display: boolean = false;\n if (~this.permissions.indexOf('||')) {\n const ps: any = this.permissions.split('||');\n for (const p of ps) {\n if (this.security.has(p.trim())) {\n display = true;\n }\n }\n } else {\n display = this.permissions.split('&&').every((p) => this.security.has(p.trim()));\n }\n\n if (display) {\n if (!this.isDisplayed) {\n this.isDisplayed = true;\n this.viewContainer.createEmbeddedView(this.templateRef);\n }\n } else {\n this.isDisplayed = false;\n this.viewContainer.clear();\n }\n }\n}\n","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n// APP\nimport { Unless } from './Unless';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [Unless],\n exports: [Unless],\n})\nexport class UnlessModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -6,21 +6,21 @@ import { MaskedEnum, MaskedRange } from 'imask';
6
6
 
7
7
  // NG2
8
8
  class ComponentUtils {
9
- constructor(componentFactoryResolver) {
10
- this.componentFactoryResolver = componentFactoryResolver;
11
- }
12
9
  append(ComponentClass, location, providers, onTop) {
13
- const componentFactory = this.componentFactoryResolver.resolveComponentFactory(ComponentClass);
14
10
  const parent = location.injector;
15
11
  const index = onTop ? 0 : location.length;
16
- return location.createComponent(componentFactory, index, Injector.create({ providers, parent }));
12
+ const injector = Injector.create({ providers, parent });
13
+ return location.createComponent(ComponentClass, {
14
+ index,
15
+ injector,
16
+ });
17
17
  }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ComponentUtils, deps: [{ token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Injectable }); }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ComponentUtils, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
19
19
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ComponentUtils }); }
20
20
  }
21
21
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: ComponentUtils, decorators: [{
22
22
  type: Injectable
23
- }], ctorParameters: () => [{ type: i0.ComponentFactoryResolver }] });
23
+ }] });
24
24
 
25
25
  class CollectionEvent {
26
26
  static { this.REFRESH = 'Collection.REFRESH'; }
@@ -1149,7 +1149,7 @@ class Security {
1149
1149
  this.change.emit(this.credentials);
1150
1150
  }
1151
1151
  subscribe(fn) {
1152
- this.change.subscribe(fn);
1152
+ return this.change.subscribe(fn);
1153
1153
  }
1154
1154
  checkRoutes(routes, options) {
1155
1155
  const filtered = [];