UNPKG

@ipi-soft/ng-components

Version:

Custom Angular Components

1 lines 18.7 kB
{"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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"}