{"version":3,"file":"usitsdasdesign-dds-ng-sticker.mjs","sources":["../../src/app/dds/sticker/sticker/sticker.component.ts","../../src/app/dds/sticker/directives/constants.ts","../../src/app/dds/sticker/services/sticker.service.ts","../../src/app/dds/sticker/directives/sticker.directive.ts","../../src/app/dds/sticker/sticker.module.ts","../../src/app/dds/sticker/usitsdasdesign-dds-ng-sticker.ts"],"sourcesContent":["\nimport { ChangeDetectionStrategy, Component, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport { DestroyCtor, DestroyMixin } from '@usitsdasdesign/dds-ng/core/common-behaviors';\nimport { Devices, DevicesClass, PopupClass } from '@usitsdasdesign/dds-ng/shared';\nimport { ResizeHandlerModule, ResizeHandlerService } from '@usitsdasdesign/dds-ng/shared/resize-handler';\nimport { takeUntil } from 'rxjs/operators';\n\nconst StickerBase: DestroyCtor = DestroyMixin();\n\n@Component({\n  selector: 'dds-sticker',\n  template: ` <ng-content></ng-content> `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    class: PopupClass.popup,\n    '[style.width]': 'isNumeric(width) ? width + \"px\" : width',\n    '[style.maxHeight]': 'isNumeric(maxHeight) ? maxHeight + \"px\" : maxHeight',\n  },\n  standalone: true,\n  imports: [ResizeHandlerModule],\n})\nexport class StickerComponent extends StickerBase implements OnInit {\n  // Input property for the width of the sticker\n  @Input() width: number | string | undefined;\n\n  // Input property for the maximum height of the sticker\n  @Input() maxHeight: number | string | undefined;\n\n  // Input property for the custom class of the sticker\n  @Input() class: string | undefined;\n\n  // Input property to determine if the sticker is responsive\n  @Input() isResponsive: boolean | undefined;\n\n  // Private property to store the current device\n  private _currentDevice: Devices;\n\n  // Getter for the current device\n  get currentDevice(): Devices {\n    return this._currentDevice;\n  }\n\n  // Setter for the current device, updates the device classes\n  set currentDevice(device: Devices) {\n    this._currentDevice = device;\n    this.removeDeviceClasses();\n    this.addCurrentDeviceClass(device);\n  }\n\n  constructor(public el: ElementRef, private renderer: Renderer2, private resizeHandlerService: ResizeHandlerService) {\n    super();\n  }\n\n  // Lifecycle hook that is called after data-bound properties are initialized\n  public ngOnInit(): void {\n    if (this.isResponsive) {\n      // Set the current device and subscribe to device changes\n      this.currentDevice = this.resizeHandlerService.getDevice();\n      this.resizeHandlerService.device$.pipe(takeUntil(this.destroy)).subscribe((device) => (this.currentDevice = device));\n    }\n\n    // Add custom class if provided\n    if (this.class) {\n      this.renderer.addClass(this.el.nativeElement, this.class);\n    }\n  }\n\n  // Check if the value is numeric\n  public isNumeric(val: any): boolean {\n    return !(val instanceof Array) && (val - parseFloat(val) + 1) >= 0;\n  }\n\n  // Add class for the current device\n  private addCurrentDeviceClass(device): void {\n    this.renderer.addClass(this.el.nativeElement, DevicesClass[device]);\n  }\n\n  // Remove all device classes\n  private removeDeviceClasses(): void {\n    for (const key in Devices) {\n      if (Devices[key]) this.renderer.removeClass(this.el.nativeElement, DevicesClass[key]);\n    }\n  }\n}\n","export const INDENT = 8;\nexport const SHIFT = 0;\nexport const STICKER_ELEMENT_COUNT = 0;\nexport const STICKER_IS_RESPONSIVE = true;\n","import { Injectable } from '@angular/core';\nimport { PopupService } from '@usitsdasdesign/dds-ng/core/popup';\n\n// @dynamic\n@Injectable({\n  providedIn: 'root'\n})\nexport class StickerService extends PopupService {}\n","\nimport {\n  AfterViewInit,\n  Directive,\n  ElementRef,\n  EventEmitter,\n  Inject,\n  Input,\n  NgZone,\n  OnChanges,\n  OnDestroy,\n  Output,\n  Renderer2,\n  SimpleChanges,\n  TemplateRef,\n  DOCUMENT\n} from '@angular/core';\nimport { Coordinates, InvokeType, PopupLocationConfig, addPosition, checkPosition } from '@usitsdasdesign/dds-ng/core/popup';\nimport { AdditionalClass, PopupClass, PositionState } from '@usitsdasdesign/dds-ng/shared';\nimport { DdsConfigService } from '@usitsdasdesign/dds-ng/shared/dds-config';\nimport { Subject, Subscription, fromEvent } from 'rxjs';\nimport { takeUntil, throttleTime } from 'rxjs/operators';\nimport { StickerService } from '../services/sticker.service';\nimport { StickerComponent } from '../sticker/sticker.component';\nimport { INDENT, SHIFT } from './constants';\n\n@Directive({\n  selector: '[ddsSticker]',\n  exportAs: 'dds-sticker',\n  standalone: true,\n})\nexport class StickerDirective implements AfterViewInit, OnDestroy, OnChanges {\n  // Input properties for the directive\n  @Input() ddsSticker: TemplateRef<unknown>;\n  @Input() stickerWidth: number | string;\n  @Input() stickerMaxHeight: number | string;\n  @Input() stickerClass: string; // deprecated\n  @Input() stickerCustomClass: string;\n  @Input() stickerIsOutsideClick: boolean;\n  @Input() stickerIsDisabled: boolean;\n  @Input() stickerIsDynamic = true;\n  @Input() stickerIsResponsive: boolean = this.ddsConfig.getConfig().isResponsive;\n  @Input() stickerPosition: PositionState | string = PositionState.bottom;\n  @Input() stickerIndent: number = INDENT;\n  @Input() stickerShift: number = SHIFT;\n  @Input() stickerEl: HTMLElement;\n  @Input() stickerClosingFocusEl = true;\n  @Input() stickerHasBackdrop = true;\n  @Input() stickerBackdropClass = '';\n  @Input() stickerFocusedEl: HTMLElement;\n\n  // Output events for when the sticker is shown or hidden\n  @Output() onShown: EventEmitter<void> = new EventEmitter();\n  @Output() onHidden: EventEmitter<void> = new EventEmitter();\n\n  // Internal state variables\n  public isActive = false;\n\n  // Private properties for managing the popup and event subscriptions\n  private popupEl: HTMLElement;\n  private resize = new Subscription();\n  private scroll = new Subscription();\n  private destroy = new Subject<void>();\n  private elClick: () => void;\n  private outsideCLick: () => void;\n  private currentEl: HTMLElement;\n  private timeoutId: ReturnType<typeof setTimeout>;\n\n  public constructor(\n    @Inject(DOCUMENT) public document,\n    public el: ElementRef<HTMLElement>,\n    public renderer: Renderer2,\n    public ngZone: NgZone,\n    private stickerService: StickerService,\n    private ddsConfig: DdsConfigService\n  ) { }\n\n  // Handle changes to input properties\n  public ngOnChanges(changes: SimpleChanges): void {\n    if (changes.stickerClass && !this.stickerCustomClass) {\n      this.stickerCustomClass = this.stickerClass;\n    }\n  }\n\n  // Initialize the directive after the view has been initialized\n  public ngAfterViewInit(): void {\n    // Listen for click events on the element\n    this.elClick = this.renderer.listen(this.el.nativeElement, 'click', (event) => this.show(event));\n    // Subscribe to the closedPopup observable to handle popup close events\n    this.stickerService.closedPopup.pipe(takeUntil(this.destroy)).subscribe((item) => {\n      if (item === this.popupEl) {\n        if (this.timeoutId) { clearTimeout(this.timeoutId); }\n        this.onHidden.emit();\n\n        if (this.stickerClosingFocusEl) {\n          this.timeoutId = setTimeout(() => {\n            this.stickerFocusedEl ? this.stickerFocusedEl?.focus() : this.currentEl?.focus();\n          });\n\n        }\n      }\n    });\n  }\n\n  // Cleanup when the directive is destroyed\n  public ngOnDestroy(): void {\n    if (this.elClick) {\n      this.elClick();\n    }\n  }\n\n  // Show the sticker popup\n  public show(e?: Event): void {\n    // IE fix\n    if (e) e.preventDefault();\n\n    if (!this.stickerIsDisabled) {\n      this.currentEl = this.stickerEl || this.el.nativeElement;\n      const stickerWidth = this.stickerWidth ? this.stickerWidth : this.currentEl?.getBoundingClientRect().width;\n\n      this.isActive = true;\n      this.renderer.removeClass(this.el.nativeElement, AdditionalClass.keyboardFocus);\n\n      this.popupEl = this.stickerService.open(\n        StickerComponent,\n        this.ddsSticker,\n        {\n          width: stickerWidth,\n          maxHeight: this.stickerMaxHeight,\n          class: this.stickerCustomClass,\n          isResponsive: this.stickerIsResponsive,\n        },\n        InvokeType.click,\n        this.stickerHasBackdrop,\n        this.stickerBackdropClass\n      );\n\n      if (!this.stickerIsOutsideClick) {\n        this.outsideCLick = this.renderer.listen(this.popupEl, 'click', (event) => this.hide(event));\n      }\n\n      this.checkCoords();\n\n      if (this.stickerIsDynamic) this.resizeAndScrollListeners();\n\n      this.onShown.emit();\n    }\n  }\n\n  // Hide the sticker popup\n  public hide(e?: Event): void {\n    this.isActive = false;\n    this.stickerService.close(e);\n    this.stickerFocusedEl ? this.stickerFocusedEl?.focus() : this.currentEl?.focus();\n\n    if (this.outsideCLick) {\n      this.outsideCLick();\n    }\n\n    if (this.resize && this.scroll) {\n      this.resize.unsubscribe();\n      this.scroll.unsubscribe();\n    }\n  }\n\n  // Update the position of the sticker popup\n  public updPosition(): void {\n    this.checkCoords();\n  }\n\n  // Check and update the coordinates of the sticker popup\n  private checkCoords = (): void => {\n    setTimeout(() => {\n      const popupLocationConfig: PopupLocationConfig = {\n        elRect: this.currentEl.getBoundingClientRect(),\n        popupRect: this.popupEl.getBoundingClientRect(),\n        indent: this.stickerIndent,\n        shift: this.stickerShift,\n        isDynamic: this.stickerIsDynamic,\n      };\n      const currentCoords: Coordinates = checkPosition(this.stickerPosition, popupLocationConfig);\n      addPosition(this.popupEl, currentCoords.popupCoords);\n      this.renderer.addClass(this.popupEl, PopupClass.popup_position);\n    });\n  };\n\n  // Add listeners for resize and scroll events\n  private resizeAndScrollListeners(): void {\n    this.ngZone.runOutsideAngular(() => {\n      this.resize = fromEvent(window, 'resize')\n        .pipe(throttleTime(30))\n        .subscribe((_) => this.checkCoords());\n\n      this.scroll = fromEvent(this.document, 'scroll')\n        .pipe(throttleTime(30))\n        .subscribe((_) => this.checkCoords());\n    });\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { StickerDirective } from './directives/sticker.directive';\nimport { StickerService } from './services/sticker.service';\nimport { StickerComponent } from './sticker/sticker.component';\n\n@NgModule({\n  declarations: [],\n  imports: [StickerDirective, StickerComponent],\n  exports: [StickerDirective],\n  providers: [StickerService],\n})\nexport class StickerModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.StickerService"],"mappings":"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"}