UNPKG

@foblex/platform

Version:

An Angular library providing a set of services for supporting server-side rendering (SSR) and other features.

1 lines 19.1 kB
{"version":3,"file":"foblex-platform.mjs","sources":["../../../projects/f-platform/src/lib/local-storage/browser-local-storage.service.ts","../../../projects/f-platform/src/lib/local-storage/server-local-storage.service.ts","../../../projects/f-platform/src/lib/local-storage/local-storage.service.ts","../../../projects/f-platform/src/lib/window/browser-window.service.ts","../../../projects/f-platform/src/lib/window/server-window.service.ts","../../../projects/f-platform/src/lib/window/window.service.ts","../../../projects/f-platform/src/lib/e-operation-system.ts","../../../projects/f-platform/src/lib/platform.service.ts","../../../projects/f-platform/src/lib/browser.service.ts","../../../projects/f-platform/src/foblex-platform.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { ILocalStorage } from './i-local-storage';\n\n@Injectable({ providedIn: 'root' })\nexport class BrowserLocalStorageService implements ILocalStorage {\n setItem(key: string, value: string): void {\n localStorage.setItem(key, value);\n }\n\n getItem(key: string): string | null {\n return localStorage.getItem(key);\n }\n\n removeItem(key: string): void {\n localStorage.removeItem(key);\n }\n\n clear(): void {\n localStorage.clear();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ILocalStorage } from './i-local-storage';\n\n@Injectable({ providedIn: 'root' })\nexport class ServerLocalStorageService implements ILocalStorage {\n\n private storage: { [ key: string ]: string } = {};\n\n setItem(key: string, value: string): void {\n this.storage[ key ] = value;\n }\n\n getItem(key: string): string | null {\n return this.storage[ key ] || null;\n }\n\n removeItem(key: string): void {\n delete this.storage[ key ];\n }\n\n clear(): void {\n this.storage = {};\n }\n}\n","import { inject, InjectionToken, PLATFORM_ID } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { BrowserLocalStorageService } from './browser-local-storage.service';\nimport { ServerLocalStorageService } from './server-local-storage.service';\nimport { ILocalStorage } from './i-local-storage';\n\nexport const F_LOCAL_STORAGE = new InjectionToken<ILocalStorage>('F_LOCAL_STORAGE', {\n providedIn: 'root',\n factory: () => {\n return isPlatformBrowser(inject(PLATFORM_ID))\n ? inject(BrowserLocalStorageService)\n : inject(ServerLocalStorageService);\n }\n});\n","import { Injectable } from '@angular/core';\nimport { IWindowService } from './i-window-service';\n\n@Injectable({ providedIn: 'root' })\nexport class BrowserWindowService implements IWindowService {\n\n public getComputedStyle(element: Element): CSSStyleDeclaration {\n return window.getComputedStyle(element);\n }\n\n public get innerWidth(): number {\n return window.innerWidth;\n }\n\n public get innerHeight(): number {\n return window.innerHeight;\n }\n\n public get pageXOffset(): number {\n return window.pageXOffset;\n }\n\n public get pageYOffset(): number {\n return window.pageYOffset;\n }\n\n public isMediaQuery(query: string): boolean {\n return window.matchMedia(query).matches;\n }\n\n public requestAnimationFrame(callback: FrameRequestCallback): number {\n return window.requestAnimationFrame(callback);\n }\n\n public get location(): Location {\n return window.location;\n }\n\n public open(url?: string, target?: string, features?: string): void {\n window.open(url, target, features);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IWindowService } from './i-window-service';\n\n@Injectable({ providedIn: 'root' })\nexport class ServerWindowService implements IWindowService {\n\n public getComputedStyle(element: Element): CSSStyleDeclaration {\n // @ts-ignore\n return new Proxy({\n getPropertyValue: (property: string) => {\n return '0';\n }\n }, {\n get: (target, prop) => {\n if (prop === 'getPropertyValue') {\n return target.getPropertyValue;\n }\n return '0';\n }\n });\n }\n\n public get innerWidth(): number {\n return 0;\n }\n\n public get innerHeight(): number {\n return 0;\n }\n\n public get pageXOffset(): number {\n return 0;\n }\n\n public get pageYOffset(): number {\n return 0;\n }\n\n public isMediaQuery(query: string): boolean {\n return false;\n }\n\n public requestAnimationFrame(callback: FrameRequestCallback): number {\n return setTimeout(callback, 0);\n }\n\n public get location(): { href: string, pathname: string, search: string, hash: string, origin: string } {\n return { href: '', pathname: '', search: '', hash: '', origin: '' };\n }\n\n public open(url?: string, target?: string, features?: string): void {\n // Do nothing\n }\n}\n","import { inject, InjectionToken, PLATFORM_ID } from '@angular/core';\nimport { IWindowService } from './i-window-service';\nimport { isPlatformBrowser } from '@angular/common';\nimport { BrowserWindowService } from './browser-window.service';\nimport { ServerWindowService } from './server-window.service';\n\nexport const F_WINDOW = new InjectionToken<IWindowService>('F_WINDOW', {\n providedIn: 'root',\n factory: () => {\n return isPlatformBrowser(inject(PLATFORM_ID))\n ? inject(BrowserWindowService)\n : inject(ServerWindowService);\n }\n});\n","export enum EOperationSystem {\n\n MAC_OS = \"macos\",\n\n IOS = \"ios\",\n\n WINDOWS = \"windows\",\n\n ANDROID = \"android\",\n\n LINUX = \"linux\",\n}\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { EOperationSystem } from './e-operation-system';\n\nlet hasV8BreakIterator: boolean;\n\ntry {\n hasV8BreakIterator = typeof Intl !== 'undefined' && (Intl as any).v8BreakIterator;\n} catch {\n hasV8BreakIterator = false;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class PlatformService {\n\n public isBrowser: boolean = false;\n\n public EDGE: boolean = this.isBrowser && /(edge)/i.test(navigator.userAgent);\n\n public TRIDENT: boolean = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent);\n\n public BLINK: boolean =\n this.isBrowser &&\n !!((window as any).chrome || hasV8BreakIterator) &&\n typeof CSS !== 'undefined' &&\n !this.EDGE &&\n !this.TRIDENT;\n\n public WEBKIT: boolean =\n this.isBrowser &&\n /AppleWebKit/i.test(navigator.userAgent) &&\n !this.BLINK &&\n !this.EDGE &&\n !this.TRIDENT;\n\n public IOS: boolean =\n this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) && !('MSStream' in window);\n\n public FIREFOX: boolean = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent);\n\n public ANDROID: boolean = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT;\n\n public SAFARI: boolean = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT;\n\n constructor(\n @Inject(PLATFORM_ID) private _platformId: Object\n ) {\n this.isBrowser = this._platformId\n ? isPlatformBrowser(this._platformId)\n : typeof document === 'object' && !!document\n }\n\n public getOS(): EOperationSystem | undefined {\n\n let userAgent = navigator.userAgent.toLowerCase(),\n macosPlatforms = /(macintosh|macintel|macppc|mac68k|macos)/i,\n windowsPlatforms = /(win32|win64|windows|wince)/i;\n\n let result: EOperationSystem | undefined;\n\n if (macosPlatforms.test(userAgent)) {\n result = EOperationSystem.MAC_OS;\n } else if (this.IOS) {\n result = EOperationSystem.IOS;\n } else if (windowsPlatforms.test(userAgent)) {\n result = EOperationSystem.WINDOWS;\n } else if (this.ANDROID) {\n result = EOperationSystem.ANDROID;\n } else if (!result && /linux/.test(userAgent)) {\n result = EOperationSystem.LINUX;\n }\n\n return result;\n }\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { F_WINDOW, IWindowService } from './window';\nimport { F_LOCAL_STORAGE, ILocalStorage } from './local-storage';\nimport { PlatformService } from './platform.service';\n\n@Injectable({ providedIn: 'root' })\nexport class BrowserService {\n\n constructor(\n @Inject(DOCUMENT) private injectedDocument: Document,\n @Inject(F_WINDOW) private windowService: IWindowService,\n @Inject(F_LOCAL_STORAGE) private localStorageService: ILocalStorage,\n private platformService: PlatformService\n ) {\n }\n\n public isBrowser(): boolean {\n return this.platformService.isBrowser;\n }\n\n public get window(): IWindowService {\n return this.windowService;\n }\n\n public get localStorage(): ILocalStorage {\n return this.localStorageService;\n }\n\n public get document(): Document {\n return this.injectedDocument;\n }\n\n public toPixels(value: string, clientWidth: number, clientHeight: number, fontSize: string): number {\n if (value.endsWith('px')) {\n return parseFloat(value);\n } else if (value.endsWith('%')) {\n const percentage = parseFloat(value) / 100;\n return Math.max(clientWidth, clientHeight) * percentage;\n } else if (value.endsWith('em')) {\n return parseFloat(value) * parseFloat(fontSize);\n } else if (value.endsWith('rem')) {\n return parseFloat(value) * parseFloat(getComputedStyle(this.document.documentElement).fontSize);\n } else if (value.endsWith('vh')) {\n const vh = this.window.innerHeight / 100;\n return parseFloat(value) * vh;\n } else if (value.endsWith('vw')) {\n const vw = this.window.innerWidth / 100;\n return parseFloat(value) * vw;\n }\n return parseFloat(value) || 0;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PlatformService"],"mappings":"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"}