{"version":3,"file":"ipi-soft-ng-components-services.mjs","sources":["../../../../projects/ipi-soft/ng-components/services/src/user-agent.service.ts","../../../../projects/ipi-soft/ng-components/services/src/os.service.ts","../../../../projects/ipi-soft/ng-components/services/src/theme.service.ts","../../../../projects/ipi-soft/ng-components/services/src/scroll-block.service.ts","../../../../projects/ipi-soft/ng-components/services/src/overlay.service.ts","../../../../projects/ipi-soft/ng-components/services/src/loader/loader.component.ts","../../../../projects/ipi-soft/ng-components/services/src/loader/loader.component.html","../../../../projects/ipi-soft/ng-components/services/src/loader/loader.service.ts","../../../../projects/ipi-soft/ng-components/services/ipi-soft-ng-components-services.ts"],"sourcesContent":["import { Injectable, Inject, PLATFORM_ID } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class UserAgentService {\n\n  constructor(@Inject(PLATFORM_ID) private platformId: Object) {\n    this.init();\n  }\n\n  private userAgent: string | undefined;\n\n  public getUserAgent(): string | undefined {\n    return this.userAgent;\n  }\n\n  private init(): void {\n    if (isPlatformBrowser(this.platformId)) {\n      this.userAgent = navigator.userAgent;\n    } else {\n      this.userAgent = undefined;\n    }\n  }\n\n}\n","import { Injectable } from '@angular/core';\n\nimport { UserAgentService } from './user-agent.service';\n\nexport enum MobileOS {\n  iOS,\n  Android,\n  WindowsPhone,\n  Other,\n}\n\n@Injectable({\n  providedIn: 'root'\n})\n\nexport class OSService {\n\n  constructor(private userAgentService: UserAgentService) { }\n\n  public mobileOS = this.getMobileOS();\n\n  private getMobileOS(): MobileOS {\n    const userAgent = this.userAgentService.getUserAgent();\n\n    if (!userAgent) {\n      return MobileOS.Other;\n    }\n  \n    switch (true) {\n      case /windows phone/i.test(userAgent):\n        return MobileOS.WindowsPhone;\n      case /android/i.test(userAgent): \n        return MobileOS.Android;\n      case /iPad|iPhone|iPod/.test(userAgent): \n        return MobileOS.iOS;\n      default: \n        return MobileOS.Other;\n    }\n  }\n\n}\n","import { Injectable } from '@angular/core';\n\nexport enum Theme {\n    First,\n    Second,\n    Third\n}\n\n@Injectable({\n  providedIn: 'root',\n})\n\nexport class ThemeService {\n\n  private currentTheme = Theme.First;\n\n  public setTheme(theme: Theme): void {\n    this.currentTheme = theme;\n  }\n\n  public getTheme(): Theme {\n    return this.currentTheme;\n  }\n\n}\n","import { Injectable } from '@angular/core';\n\ninterface scrollBlockingStyles {\n  top: string,\n  height: string,\n  position: string,\n}\n\n@Injectable({\n  providedIn: 'root'\n})\n\nexport class ScrollBlockService {\n\n  private isActivated = false;\n\n  private previousStyles: scrollBlockingStyles = {\n      position: '',\n      top: '',\n      height: '',\n  }\n\n  public activate(): void {\n    if (this.isActivated) {\n      return;\n    }\n\n    this.isActivated = true;\n\n    this.previousStyles = this.getPreviousStyles();\n\n    const yOffset = window.scrollY;\n\n    document.body.style.position = 'fixed';\n    document.body.style.top = '-' + yOffset + 'px';\n    document.body.style.height = 'calc(100% + ' + yOffset + 'px)';\n  }\n\n  public deactivate(): void {\n    if (!this.isActivated) {\n      return;\n    }\n\n    this.isActivated = false;\n\n    const top = Math.abs(parseInt(document.body.style.top));\n\n    document.body.style.position = this.previousStyles.position;\n    document.body.style.top = this.previousStyles.top;\n    document.body.style.height = this.previousStyles.height;\n\n    window.scrollTo(0, top);\n  }\n\n  private getPreviousStyles(): scrollBlockingStyles {\n    return { \n        position: document.body.style.position,\n        top: document.body.style.top,\n        height: document.body.style.height\n    };\n  }\n\n}\n","import { Inject, Injectable, Injector } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\nimport { FocusTrap, FocusTrapFactory } from '@angular/cdk/a11y';\n\nimport { ScrollBlockService } from './scroll-block.service';\n\ninterface OverlayChildElement {\n  element: HTMLElement;\n  /* If atleast one element has the blockable property the overlay scrolling will be prevented */\n  blockable: boolean;\n}\n\n@Injectable({\n  providedIn: 'root'\n})\n\nexport class OverlayService {\n\n  constructor(\n    private injector: Injector,\n    private focusTrapFactory: FocusTrapFactory,\n    private scrollBlockService: ScrollBlockService,\n    @Inject(DOCUMENT) private document: Document\n  ) {}\n\n  private focusTrap!: FocusTrap;\n\n  private blockActivated = false;\n\n  private overlayElement!: HTMLElement | null;\n  private overlayChildren: OverlayChildElement[] = [];\n\n  public get overlay(): HTMLElement | null {\n    return this.overlayElement;\n  }\n\n  public appendToOverlay(content: HTMLElement, blockable = false): void {\n    if (!this.overlayElement) {\n      this.createOverlay();\n    }\n  \n    const overlayChild: OverlayChildElement = {\n      element: content,\n      blockable\n    };\n\n    this.overlayElement!.appendChild(overlayChild.element);\n    this.overlayChildren.push(overlayChild);\n\n    if (overlayChild.blockable && !this.blockActivated) {\n      this.scrollBlockService.activate();\n      this.blockActivated = true;\n    }\n  }\n\n  public removeFromOverlay(content: HTMLElement): void {\n    if (!this.overlayElement) {\n      return;\n    }\n\n    const componentIndex = this.overlayChildren.findIndex(comp => comp.element === content);\n\n    if (componentIndex > -1) {\n      this.overlayChildren.splice(componentIndex, 1);\n    }\n\n    if (content.parentNode === this.overlayElement) {\n      this.overlayElement.removeChild(content);\n    }\n\n    if (!this.overlayChildren.some(comp => comp.blockable) && this.blockActivated) {\n      this.blockActivated = false;\n\n      this.scrollBlockService.deactivate();\n    }\n\n    if (this.overlayElement.childElementCount === 0) {\n      this.removeOverlay(this.overlayElement);\n    }\n  }\n\n  private createOverlay(): void {\n    const overlayDiv = this.document.createElement('div');\n\n    overlayDiv.style.top = '0';\n    overlayDiv.style.left = '0';\n    overlayDiv.style.width = '100%';\n    overlayDiv.style.height = '100%';\n    overlayDiv.style.zIndex = '900';\n    overlayDiv.style.position = 'fixed';\n    overlayDiv.style.pointerEvents = 'none';\n\n    this.overlayElement = overlayDiv;\n    document.body.appendChild(overlayDiv);\n\n    this.focusTrap = this.focusTrapFactory.create(this.overlayElement);\n    this.focusTrap.focusInitialElementWhenReady();\n  }\n\n  private removeOverlay(overlayElement: HTMLElement): void {\n    this.focusTrap.destroy();\n  \n    overlayElement.remove();\n    this.overlayElement = null;\n  }\n\n}\n","import { Component, ElementRef, ViewChild } from '@angular/core';\n\n@Component({\n  selector: 'ipi-loader',\n  templateUrl: './loader.component.html',\n  styleUrls: ['./loader.component.css'],\n})\n\nexport class IpiLoaderComponent {\n\n}\n","<div class=\"backdrop\"></div>\n\n<div class=\"container\">\n    <div class=\"spinner\">\n        <span></span>\n        <span></span>\n        <span></span>\n        <span></span>\n        <span></span>\n        <span></span>\n    </div>\n</div>\n","import { ComponentRef, Injectable, ViewContainerRef } from '@angular/core';\n\nimport { OverlayService } from './../overlay.service';\n\nimport { IpiLoaderComponent } from './loader.component';\n\n@Injectable({\n  providedIn: 'root',\n})\n\nexport class LoaderService {\n\n  constructor(\n    private overlayService: OverlayService) { }\n\n  private viewContainerRef: ViewContainerRef | null = null;\n  private appContainerElement: HTMLDivElement | null = null;\n\n  private loaderRef: ComponentRef<IpiLoaderComponent> | null = null;\n\n  /**\n   * Call this method globally in order to set a more global ViewContainerRef\n   * @param viewContainerRef - the Host Container Ref where we want the Loader to be attached. i.e the App Component or Layout Component\n   * @param appContainerElement - An optional app container selector. When provided it will set opacity 0.4 to that container when Loader is shown. Example - '.app-container'\n   */\n  public init(viewContainerRef: ViewContainerRef, appContainerElement?: string) {\n    this.viewContainerRef = viewContainerRef;\n\n    if (appContainerElement) {\n      this.appContainerElement = document.querySelector(appContainerElement) as HTMLDivElement;\n    }\n  }\n\n  public show(): void {\n    if (this.viewContainerRef) {\n      if (this.loaderRef) {\n        return;\n      }\n\n      this.loaderRef = this.viewContainerRef.createComponent(IpiLoaderComponent);\n      this.setAppContainerOpacity('0.4');\n\n      this.overlayService.appendToOverlay(this.loaderRef.location.nativeElement, true);\n    }\n  }\n\n  public hide(): void {\n    if (this.loaderRef) {\n      this.loaderRef.destroy();\n      this.setAppContainerOpacity('1');\n\n      this.overlayService.removeFromOverlay(this.loaderRef.location.nativeElement);\n\n      this.loaderRef = null;\n    }\n  }\n\n  private setAppContainerOpacity(opacity: string): void {\n    if (this.appContainerElement) {\n      this.appContainerElement.style.opacity = opacity;\n    }\n  }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.UserAgentService","i1.OverlayService"],"mappings":"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"}