@filip.mazev/common-parts 0.0.1 → 0.0.2

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.
@@ -102,10 +102,10 @@ class DeviceTypeService {
102
102
  isPortraitOrientation: () => this.isPortraitOrientation()
103
103
  };
104
104
  }
105
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DeviceTypeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
106
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DeviceTypeService, providedIn: 'root' });
105
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: DeviceTypeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
106
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: DeviceTypeService, providedIn: 'root' });
107
107
  }
108
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DeviceTypeService, decorators: [{
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: DeviceTypeService, decorators: [{
109
109
  type: Injectable,
110
110
  args: [{
111
111
  providedIn: 'root'
@@ -138,10 +138,10 @@ class WindowDimensionsService {
138
138
  getWindowDimensions$() {
139
139
  return this.windowDimensionsSubject.asObservable();
140
140
  }
141
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: WindowDimensionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
142
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: WindowDimensionsService, providedIn: 'root' });
141
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: WindowDimensionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
142
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: WindowDimensionsService, providedIn: 'root' });
143
143
  }
144
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: WindowDimensionsService, decorators: [{
144
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: WindowDimensionsService, decorators: [{
145
145
  type: Injectable,
146
146
  args: [{
147
147
  providedIn: 'root',
@@ -258,10 +258,10 @@ class ScrollLockService {
258
258
  event.preventDefault();
259
259
  event.stopPropagation();
260
260
  }
261
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ScrollLockService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
262
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ScrollLockService, providedIn: 'root' });
261
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: ScrollLockService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
262
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: ScrollLockService, providedIn: 'root' });
263
263
  }
264
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: ScrollLockService, decorators: [{
264
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: ScrollLockService, decorators: [{
265
265
  type: Injectable,
266
266
  args: [{
267
267
  providedIn: 'root'
@@ -291,10 +291,10 @@ class TextFormattingService {
291
291
  day: 'numeric',
292
292
  });
293
293
  }
294
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TextFormattingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
295
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TextFormattingService, providedIn: 'root' });
294
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TextFormattingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
295
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TextFormattingService, providedIn: 'root' });
296
296
  }
297
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TextFormattingService, decorators: [{
297
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: TextFormattingService, decorators: [{
298
298
  type: Injectable,
299
299
  args: [{
300
300
  providedIn: 'root'
@@ -313,10 +313,10 @@ class UiActionsService {
313
313
  document.body.removeChild(a);
314
314
  window.URL.revokeObjectURL(url);
315
315
  }
316
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: UiActionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
317
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: UiActionsService, providedIn: 'root' });
316
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: UiActionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
317
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: UiActionsService, providedIn: 'root' });
318
318
  }
319
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: UiActionsService, decorators: [{
319
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: UiActionsService, decorators: [{
320
320
  type: Injectable,
321
321
  args: [{
322
322
  providedIn: 'root'
@@ -1 +1 @@
1
- {"version":3,"file":"filip.mazev-common-parts.mjs","sources":["../../../projects/common-parts/src/lib/enums/desktop-os.enum.ts","../../../projects/common-parts/src/lib/enums/mobile-os.enum.ts","../../../projects/common-parts/src/lib/services/device-type.service.ts","../../../projects/common-parts/src/lib/services/window-dimension.service.ts","../../../projects/common-parts/src/lib/constants/scroll-lock.constants.ts","../../../projects/common-parts/src/lib/services/scroll-lock.service.ts","../../../projects/common-parts/src/lib/constants/ui-services-common.consants.ts","../../../projects/common-parts/src/lib/services/text-formatting.service.ts","../../../projects/common-parts/src/lib/services/ui-actions.service.ts","../../../projects/common-parts/src/lib/helpers/uui4.ts","../../../projects/common-parts/src/public-api.ts","../../../projects/common-parts/src/filip.mazev-common-parts.ts"],"sourcesContent":["export enum DesktopOS {\n Linux = 'linux',\n MacOS = 'mac_os',\n Unix = 'unix',\n Unknown = 'unknown',\n Windows = 'windows'\n}","export enum MobileOS {\n Android = 'android',\n iOS = 'ios',\n Unknown = 'unknown',\n WindowsPhone = 'Windows Phone'\n}","import { Injectable } from '@angular/core';\nimport { DesktopOS } from '../enums/desktop-os.enum';\nimport { MobileOS } from '../enums/mobile-os.enum';\nimport { DeviceState } from '../interfaces/device-state.interface';\nimport { DeviceOS, DeviceOrientationType } from '../types/device.types';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DeviceTypeService {\n private userAgent: string = navigator.userAgent || navigator.vendor || (window as any).opera || undefined;\n private isDesktopDevice: boolean = !this.isMobileDevice() && !this.isTabletDevice();\n\n private isMobileDevice(): boolean {\n const regexs = [/(Android)(.+)(Mobile)/i, /BlackBerry/i, /iPhone|iPod/i, /Opera Mini/i, /IEMobile/i];\n return regexs.some(b => this.userAgent.match(b) !== null);\n }\n\n private isTabletDevice(): boolean {\n const regex = /(ipad|tablet|(android(?!.*mobile))|(windows(?!.*phone)(.*touch))|kindle|playbook|silk|(puffin(?!.*(IP|AP|WP))))/;\n return regex.test(this.userAgent.toLowerCase());\n }\n\n private getMobileOS(): MobileOS | undefined {\n if (this.isMobileDevice()) {\n if (/windows phone/i.test(this.userAgent)) return MobileOS.WindowsPhone;\n else if (/android/i.test(this.userAgent)) return MobileOS.Android;\n else if (/iPad|iPhone|iPod/.test(this.userAgent) && !(window as any).MSStream) return MobileOS.iOS;\n\n return MobileOS.Unknown;\n } else return undefined;\n }\n\n private getDesktopOS(): DesktopOS | undefined {\n if (this.isDesktopDevice) {\n if (this.userAgent.indexOf('Win') !== -1) return DesktopOS.Windows;\n else if (this.userAgent.indexOf('Mac') !== -1) return DesktopOS.MacOS;\n else if (this.userAgent.indexOf('X11') !== -1) return DesktopOS.Unix;\n else if (this.userAgent.indexOf('Linux') !== -1) return DesktopOS.Linux;\n\n return DesktopOS.Unknown;\n } else return undefined;\n }\n\n private getDeviceOS(): DeviceOS | undefined {\n return this.getMobileOS() ?? this.getDesktopOS();\n }\n\n private supportedScreenOrientation = (screen?.orientation || {}).type ?? (screen as any).mozOrientation ?? (screen as any).msOrientation;\n private safariScreenOrientation: DeviceOrientationType = !screen?.orientation && matchMedia('(orientation: portrait)').matches ? 'portrait-primary' : 'landscape-primary';\n private initialScreenOrientation: DeviceOrientationType = this.supportedScreenOrientation ?? this.safariScreenOrientation ?? 'portrait-primary';\n private screenOrientation: DeviceOrientationType = this.initialScreenOrientation;\n constructor() {\n if (screen.orientation) {\n screen.orientation.addEventListener(\n 'change',\n (ev: Event) => (this.screenOrientation = (ev.target ?? ({} as any)).type as OrientationType)\n );\n }\n }\n\n public isLandscapeOrientation(): boolean {\n return ['landscape-primary', 'landscape-secondary'].includes(this.screenOrientation);\n }\n\n public isPortraitOrientation(): boolean {\n return ['portrait-primary', 'portrait-secondary'].includes(this.screenOrientation);\n }\n\n public getDeviceState(): DeviceState {\n const isDesktop = this.isDesktopDevice;\n const isMobile = this.isMobileDevice();\n const isTablet = this.isTabletDevice();\n const mobileOS: MobileOS | undefined = this.getMobileOS();\n const isAndroidDevice = this.getDeviceOS() === MobileOS.Android;\n const isAppleDevice = this.getDeviceOS() === MobileOS.iOS || this.getDeviceOS() === DesktopOS.MacOS;\n const isUnknownMobileDevice = this.getDeviceOS() === MobileOS.Unknown;\n const desktopOS: DesktopOS | undefined = this.getDesktopOS();\n const isWindowsDesktop = this.getDeviceOS() === DesktopOS.Windows;\n const isLinuxOrUnixDesktop = this.getDeviceOS() === DesktopOS.Linux || this.getDeviceOS() === DesktopOS.Unix;\n\n return {\n isDesktop,\n desktopOS,\n isWindowsDesktop,\n isLinuxOrUnixDesktop,\n isMobile,\n mobileOS,\n isAndroidDevice,\n isAppleDevice,\n isUnknownMobileDevice,\n isTablet,\n isLandscapeOrientation: () => this.isLandscapeOrientation(),\n isPortraitOrientation: () => this.isPortraitOrientation()\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { WindowDimensions } from '../interfaces/window-dimensions.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WindowDimensionsService {\n private windowDimensionsSubject = new BehaviorSubject<WindowDimensions>(\n this.getWindowDimensions()\n );\n constructor() {\n this.handleResize();\n window.addEventListener('resize', this.handleResize.bind(this));\n }\n\n public getWindowDimensions(): WindowDimensions {\n return {\n width: window.innerWidth,\n height: window.innerHeight,\n threshold_xs: 360,\n threshold_sm: 640,\n threshold_md: 768,\n threshold_lg: 1024,\n threshold_xl: 1280,\n threshold_2xl: 1536,\n threshold_3xl: 1920,\n threshold_4xl: 2560,\n };\n }\n\n private handleResize(): void {\n this.windowDimensionsSubject.next(this.getWindowDimensions());\n }\n\n public getWindowDimensions$(): Observable<WindowDimensions> {\n return this.windowDimensionsSubject.asObservable();\n }\n}\n","export const SCROLL_LOCK_INSTANCE_IDENTIFIER = 'scroll_lock_instance_';","import { Injectable, inject } from '@angular/core';\nimport { DeviceTypeService } from './device-type.service';\nimport { WindowDimensionsService } from './window-dimension.service';\nimport { IScrollLockConfig } from '../interfaces/scroll-lock-config.interface';\nimport { WindowDimensions } from '../interfaces/window-dimensions.interface';\nimport { SCROLL_LOCK_INSTANCE_IDENTIFIER } from '../constants/scroll-lock.constants';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ScrollLockService {\n private deviceTypeService = inject(DeviceTypeService);\n private windowDimensionSerivce = inject(WindowDimensionsService);\n\n private instanceId: string;\n\n private configurationInstances: Map<string, IScrollLockConfig> = new Map<string, IScrollLockConfig>();\n private windowDimensions: WindowDimensions = {} as WindowDimensions;\n\n constructor() {\n this.instanceId = SCROLL_LOCK_INSTANCE_IDENTIFIER + Math.random().toString(36).substring(2, 9);\n this.windowDimensionSerivce.getWindowDimensions$().subscribe((dimensions) => {\n this.windowDimensions = dimensions;\n });\n }\n\n public ngOnDestroy(): void {\n this.enableScroll();\n }\n\n public disableScroll(config: IScrollLockConfig): void {\n document.body.style.setProperty('overflow', 'hidden', 'important');\n\n const documentWidth = document.documentElement.clientWidth;\n const windowWidth = window.innerWidth;\n const scrollBarWidth = windowWidth - documentWidth;\n document.body.style.paddingRight = scrollBarWidth + 'px';\n document.body.style.setProperty('padding-right', scrollBarWidth + 'px', 'important');\n\n if (config.handleTouchInput !== false) { document.body.style.setProperty('touch-action', 'none', 'important'); }\n\n this.configurationInstances.set(this.instanceId, config);\n\n if (config.mainContainer !== undefined && config.mainContainer.parentElement !== null) {\n let currentNode = config.mainContainer.parentElement as HTMLElement | null;\n while (currentNode !== null) {\n currentNode.style.setProperty('overflow', 'hidden', 'important');\n\n if (config.handleTouchInput !== false) {\n currentNode.addEventListener('touchmove', (event) => this.handleTouchMove(event), { passive: false });\n currentNode.style.setProperty('touch-action', 'none', 'important');\n }\n\n currentNode = currentNode.parentElement;\n }\n }\n\n setTimeout(() => {\n if (config.handleTouchInput !== false) {\n document.body.addEventListener('touchmove', (event) => this.handleTouchMove(event), { passive: false });\n }\n\n if (config.handleExtremeOverflow !== false) {\n const options = { passive: false };\n\n window.addEventListener('wheel', this.preventDefault, options);\n window.addEventListener('mousewheel', this.preventDefault, options);\n window.addEventListener('scroll', this.preventDefault, options);\n window.addEventListener('DOMMouseScroll', this.preventDefault, options);\n }\n }, (config.animationDuration ?? 0) + 10);\n }\n\n public enableScroll(extreme_overflow?: boolean): void {\n document.body.style.removeProperty('overflow');\n document.body.style.removeProperty('padding-right');\n\n let currentConfiguration = this.configurationInstances.get(this.instanceId);\n\n if (currentConfiguration && currentConfiguration.handleTouchInput !== false) {\n document.body.removeEventListener('touchmove', this.handleTouchMove);\n document.body.style.removeProperty('touch-action');\n }\n\n if (currentConfiguration !== undefined && currentConfiguration.mainContainer !== undefined && currentConfiguration.mainContainer.parentElement !== null) {\n let currentNode = currentConfiguration.mainContainer.parentElement as HTMLElement | null;\n while (currentNode !== null) {\n currentNode.style.removeProperty('overflow');\n\n if (currentConfiguration.handleTouchInput !== false) {\n currentNode.removeEventListener('touchmove', this.preventDefault);\n currentNode.style.removeProperty('touch-action');\n }\n\n currentNode = currentNode.parentElement;\n }\n }\n\n this.configurationInstances.delete(this.instanceId);\n\n if (extreme_overflow !== false) {\n window.removeEventListener('wheel', this.preventDefault);\n window.removeEventListener('mousewheel', this.preventDefault);\n window.removeEventListener('scroll', this.preventDefault);\n window.removeEventListener('DOMMouseScroll', this.preventDefault);\n }\n }\n\n private handleTouchMove(event: Event): void {\n const targetNode = event.target as Node;\n const currentConfiguration = this.configurationInstances.get(this.instanceId);\n\n if (!this.isAllowedToScroll(targetNode) && (currentConfiguration === null || currentConfiguration?.handleTouchInput !== false)) {\n if (currentConfiguration === null || currentConfiguration?.mobileOnlyTouchPrevention !== true ||\n (currentConfiguration?.mobileOnlyTouchPrevention === true && ((!this.deviceTypeService.getDeviceState().isMobile || !this.deviceTypeService.getDeviceState().isTablet)\n && (this.windowDimensions.width < this.windowDimensions.threshold_sm)))) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n\n private isAllowedToScroll(targetNode: Node): boolean {\n const currentConfiguration = this.configurationInstances.get(this.instanceId);\n\n if (!currentConfiguration?.allowTouchInputOn || currentConfiguration.allowTouchInputOn.length === 0) { return true; }\n\n if (currentConfiguration.allowTouchInputOn.length === undefined) {\n return (currentConfiguration.allowTouchInputOn as unknown as Element).contains(targetNode);\n }\n\n for (const element of currentConfiguration.allowTouchInputOn) {\n if (element.contains(targetNode)) {\n return true;\n }\n }\n\n return false;\n }\n\n private preventDefault(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n }\n}\n","export const ITEM_COPY_DEFAULT_SUFFIX = \"Copy\";","import { Injectable } from \"@angular/core\";\nimport { ITEM_COPY_DEFAULT_SUFFIX } from \"../constants/ui-services-common.consants\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TextFormattingService {\n\n constructor() { }\n\n public generateNameCopy(originalName: string, existingNames: string[] | undefined = undefined, copySuffix: string = ITEM_COPY_DEFAULT_SUFFIX): string {\n const existingNamesToLower = existingNames?.map(item => item.toLowerCase()) ?? [];\n\n let newName = `${originalName} (Copy)`;\n let copyIndex = 2;\n\n while (existingNamesToLower.includes(newName.toLowerCase())) {\n newName = `${originalName} (${copySuffix} ${copyIndex++})`;\n }\n\n return newName;\n }\n\n public formattedDateString(date: Date | string | undefined | null): string | undefined {\n if (!date) return undefined;\n\n const dateObj = (date instanceof Date) ? date : new Date(date);\n return dateObj.toLocaleDateString(undefined, {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n });\n }\n}","import { Injectable } from \"@angular/core\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UiActionsService {\n\n public downloadFile(data: Blob, filename: string, mimeType: string): void {\n const blob = new Blob([data], { type: mimeType });\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = filename;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n window.URL.revokeObjectURL(url);\n }\n}","export function uuidv4() {\n return \"10000000-1000-4000-8000-100000000000\".replace(/[018]/g, (c) => (+c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (+c / 4)))).toString(16));\n}\n","/*\n * Public API Surface of common-parts\n */\n\nexport * from './lib/services/device-type.service';\nexport * from './lib/services/scroll-lock.service';\nexport * from './lib/services/text-formatting.service';\nexport * from './lib/services/ui-actions.service';\nexport * from './lib/services/window-dimension.service';\n\nexport * from './lib/constants/ui-services-common.consants';\n\nexport * from './lib/enums/desktop-os.enum';\nexport * from './lib/enums/mobile-os.enum';\n\nexport * from './lib/interfaces/device-state.interface';\nexport * from './lib/interfaces/scroll-lock-config.interface';\nexport * from './lib/interfaces/window-dimensions.interface';\n\nexport * from './lib/types/device.types';\n\nexport * from './lib/helpers/uui4';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filip.mazev-common-parts.mjs","sources":["../../../projects/common-parts/src/lib/enums/desktop-os.enum.ts","../../../projects/common-parts/src/lib/enums/mobile-os.enum.ts","../../../projects/common-parts/src/lib/services/device-type.service.ts","../../../projects/common-parts/src/lib/services/window-dimension.service.ts","../../../projects/common-parts/src/lib/constants/scroll-lock.constants.ts","../../../projects/common-parts/src/lib/services/scroll-lock.service.ts","../../../projects/common-parts/src/lib/constants/ui-services-common.consants.ts","../../../projects/common-parts/src/lib/services/text-formatting.service.ts","../../../projects/common-parts/src/lib/services/ui-actions.service.ts","../../../projects/common-parts/src/lib/helpers/uui4.ts","../../../projects/common-parts/src/public-api.ts","../../../projects/common-parts/src/filip.mazev-common-parts.ts"],"sourcesContent":["export enum DesktopOS {\n Linux = 'linux',\n MacOS = 'mac_os',\n Unix = 'unix',\n Unknown = 'unknown',\n Windows = 'windows'\n}","export enum MobileOS {\n Android = 'android',\n iOS = 'ios',\n Unknown = 'unknown',\n WindowsPhone = 'Windows Phone'\n}","import { Injectable } from '@angular/core';\nimport { DesktopOS } from '../enums/desktop-os.enum';\nimport { MobileOS } from '../enums/mobile-os.enum';\nimport { DeviceState } from '../interfaces/device-state.interface';\nimport { DeviceOS, DeviceOrientationType } from '../types/device.types';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DeviceTypeService {\n private userAgent: string = navigator.userAgent || navigator.vendor || (window as any).opera || undefined;\n private isDesktopDevice: boolean = !this.isMobileDevice() && !this.isTabletDevice();\n\n private isMobileDevice(): boolean {\n const regexs = [/(Android)(.+)(Mobile)/i, /BlackBerry/i, /iPhone|iPod/i, /Opera Mini/i, /IEMobile/i];\n return regexs.some(b => this.userAgent.match(b) !== null);\n }\n\n private isTabletDevice(): boolean {\n const regex = /(ipad|tablet|(android(?!.*mobile))|(windows(?!.*phone)(.*touch))|kindle|playbook|silk|(puffin(?!.*(IP|AP|WP))))/;\n return regex.test(this.userAgent.toLowerCase());\n }\n\n private getMobileOS(): MobileOS | undefined {\n if (this.isMobileDevice()) {\n if (/windows phone/i.test(this.userAgent)) return MobileOS.WindowsPhone;\n else if (/android/i.test(this.userAgent)) return MobileOS.Android;\n else if (/iPad|iPhone|iPod/.test(this.userAgent) && !(window as any).MSStream) return MobileOS.iOS;\n\n return MobileOS.Unknown;\n } else return undefined;\n }\n\n private getDesktopOS(): DesktopOS | undefined {\n if (this.isDesktopDevice) {\n if (this.userAgent.indexOf('Win') !== -1) return DesktopOS.Windows;\n else if (this.userAgent.indexOf('Mac') !== -1) return DesktopOS.MacOS;\n else if (this.userAgent.indexOf('X11') !== -1) return DesktopOS.Unix;\n else if (this.userAgent.indexOf('Linux') !== -1) return DesktopOS.Linux;\n\n return DesktopOS.Unknown;\n } else return undefined;\n }\n\n private getDeviceOS(): DeviceOS | undefined {\n return this.getMobileOS() ?? this.getDesktopOS();\n }\n\n private supportedScreenOrientation = (screen?.orientation || {}).type ?? (screen as any).mozOrientation ?? (screen as any).msOrientation;\n private safariScreenOrientation: DeviceOrientationType = !screen?.orientation && matchMedia('(orientation: portrait)').matches ? 'portrait-primary' : 'landscape-primary';\n private initialScreenOrientation: DeviceOrientationType = this.supportedScreenOrientation ?? this.safariScreenOrientation ?? 'portrait-primary';\n private screenOrientation: DeviceOrientationType = this.initialScreenOrientation;\n constructor() {\n if (screen.orientation) {\n screen.orientation.addEventListener(\n 'change',\n (ev: Event) => (this.screenOrientation = (ev.target ?? ({} as any)).type as OrientationType)\n );\n }\n }\n\n public isLandscapeOrientation(): boolean {\n return ['landscape-primary', 'landscape-secondary'].includes(this.screenOrientation);\n }\n\n public isPortraitOrientation(): boolean {\n return ['portrait-primary', 'portrait-secondary'].includes(this.screenOrientation);\n }\n\n public getDeviceState(): DeviceState {\n const isDesktop = this.isDesktopDevice;\n const isMobile = this.isMobileDevice();\n const isTablet = this.isTabletDevice();\n const mobileOS: MobileOS | undefined = this.getMobileOS();\n const isAndroidDevice = this.getDeviceOS() === MobileOS.Android;\n const isAppleDevice = this.getDeviceOS() === MobileOS.iOS || this.getDeviceOS() === DesktopOS.MacOS;\n const isUnknownMobileDevice = this.getDeviceOS() === MobileOS.Unknown;\n const desktopOS: DesktopOS | undefined = this.getDesktopOS();\n const isWindowsDesktop = this.getDeviceOS() === DesktopOS.Windows;\n const isLinuxOrUnixDesktop = this.getDeviceOS() === DesktopOS.Linux || this.getDeviceOS() === DesktopOS.Unix;\n\n return {\n isDesktop,\n desktopOS,\n isWindowsDesktop,\n isLinuxOrUnixDesktop,\n isMobile,\n mobileOS,\n isAndroidDevice,\n isAppleDevice,\n isUnknownMobileDevice,\n isTablet,\n isLandscapeOrientation: () => this.isLandscapeOrientation(),\n isPortraitOrientation: () => this.isPortraitOrientation()\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { WindowDimensions } from '../interfaces/window-dimensions.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WindowDimensionsService {\n private windowDimensionsSubject = new BehaviorSubject<WindowDimensions>(\n this.getWindowDimensions()\n );\n constructor() {\n this.handleResize();\n window.addEventListener('resize', this.handleResize.bind(this));\n }\n\n public getWindowDimensions(): WindowDimensions {\n return {\n width: window.innerWidth,\n height: window.innerHeight,\n threshold_xs: 360,\n threshold_sm: 640,\n threshold_md: 768,\n threshold_lg: 1024,\n threshold_xl: 1280,\n threshold_2xl: 1536,\n threshold_3xl: 1920,\n threshold_4xl: 2560,\n };\n }\n\n private handleResize(): void {\n this.windowDimensionsSubject.next(this.getWindowDimensions());\n }\n\n public getWindowDimensions$(): Observable<WindowDimensions> {\n return this.windowDimensionsSubject.asObservable();\n }\n}\n","export const SCROLL_LOCK_INSTANCE_IDENTIFIER = 'scroll_lock_instance_';","import { Injectable, inject } from '@angular/core';\nimport { DeviceTypeService } from './device-type.service';\nimport { WindowDimensionsService } from './window-dimension.service';\nimport { IScrollLockConfig } from '../interfaces/scroll-lock-config.interface';\nimport { WindowDimensions } from '../interfaces/window-dimensions.interface';\nimport { SCROLL_LOCK_INSTANCE_IDENTIFIER } from '../constants/scroll-lock.constants';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ScrollLockService {\n private deviceTypeService = inject(DeviceTypeService);\n private windowDimensionSerivce = inject(WindowDimensionsService);\n\n private instanceId: string;\n\n private configurationInstances: Map<string, IScrollLockConfig> = new Map<string, IScrollLockConfig>();\n private windowDimensions: WindowDimensions = {} as WindowDimensions;\n\n constructor() {\n this.instanceId = SCROLL_LOCK_INSTANCE_IDENTIFIER + Math.random().toString(36).substring(2, 9);\n this.windowDimensionSerivce.getWindowDimensions$().subscribe((dimensions) => {\n this.windowDimensions = dimensions;\n });\n }\n\n public ngOnDestroy(): void {\n this.enableScroll();\n }\n\n public disableScroll(config: IScrollLockConfig): void {\n document.body.style.setProperty('overflow', 'hidden', 'important');\n\n const documentWidth = document.documentElement.clientWidth;\n const windowWidth = window.innerWidth;\n const scrollBarWidth = windowWidth - documentWidth;\n document.body.style.paddingRight = scrollBarWidth + 'px';\n document.body.style.setProperty('padding-right', scrollBarWidth + 'px', 'important');\n\n if (config.handleTouchInput !== false) { document.body.style.setProperty('touch-action', 'none', 'important'); }\n\n this.configurationInstances.set(this.instanceId, config);\n\n if (config.mainContainer !== undefined && config.mainContainer.parentElement !== null) {\n let currentNode = config.mainContainer.parentElement as HTMLElement | null;\n while (currentNode !== null) {\n currentNode.style.setProperty('overflow', 'hidden', 'important');\n\n if (config.handleTouchInput !== false) {\n currentNode.addEventListener('touchmove', (event) => this.handleTouchMove(event), { passive: false });\n currentNode.style.setProperty('touch-action', 'none', 'important');\n }\n\n currentNode = currentNode.parentElement;\n }\n }\n\n setTimeout(() => {\n if (config.handleTouchInput !== false) {\n document.body.addEventListener('touchmove', (event) => this.handleTouchMove(event), { passive: false });\n }\n\n if (config.handleExtremeOverflow !== false) {\n const options = { passive: false };\n\n window.addEventListener('wheel', this.preventDefault, options);\n window.addEventListener('mousewheel', this.preventDefault, options);\n window.addEventListener('scroll', this.preventDefault, options);\n window.addEventListener('DOMMouseScroll', this.preventDefault, options);\n }\n }, (config.animationDuration ?? 0) + 10);\n }\n\n public enableScroll(extreme_overflow?: boolean): void {\n document.body.style.removeProperty('overflow');\n document.body.style.removeProperty('padding-right');\n\n let currentConfiguration = this.configurationInstances.get(this.instanceId);\n\n if (currentConfiguration && currentConfiguration.handleTouchInput !== false) {\n document.body.removeEventListener('touchmove', this.handleTouchMove);\n document.body.style.removeProperty('touch-action');\n }\n\n if (currentConfiguration !== undefined && currentConfiguration.mainContainer !== undefined && currentConfiguration.mainContainer.parentElement !== null) {\n let currentNode = currentConfiguration.mainContainer.parentElement as HTMLElement | null;\n while (currentNode !== null) {\n currentNode.style.removeProperty('overflow');\n\n if (currentConfiguration.handleTouchInput !== false) {\n currentNode.removeEventListener('touchmove', this.preventDefault);\n currentNode.style.removeProperty('touch-action');\n }\n\n currentNode = currentNode.parentElement;\n }\n }\n\n this.configurationInstances.delete(this.instanceId);\n\n if (extreme_overflow !== false) {\n window.removeEventListener('wheel', this.preventDefault);\n window.removeEventListener('mousewheel', this.preventDefault);\n window.removeEventListener('scroll', this.preventDefault);\n window.removeEventListener('DOMMouseScroll', this.preventDefault);\n }\n }\n\n private handleTouchMove(event: Event): void {\n const targetNode = event.target as Node;\n const currentConfiguration = this.configurationInstances.get(this.instanceId);\n\n if (!this.isAllowedToScroll(targetNode) && (currentConfiguration === null || currentConfiguration?.handleTouchInput !== false)) {\n if (currentConfiguration === null || currentConfiguration?.mobileOnlyTouchPrevention !== true ||\n (currentConfiguration?.mobileOnlyTouchPrevention === true && ((!this.deviceTypeService.getDeviceState().isMobile || !this.deviceTypeService.getDeviceState().isTablet)\n && (this.windowDimensions.width < this.windowDimensions.threshold_sm)))) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n\n private isAllowedToScroll(targetNode: Node): boolean {\n const currentConfiguration = this.configurationInstances.get(this.instanceId);\n\n if (!currentConfiguration?.allowTouchInputOn || currentConfiguration.allowTouchInputOn.length === 0) { return true; }\n\n if (currentConfiguration.allowTouchInputOn.length === undefined) {\n return (currentConfiguration.allowTouchInputOn as unknown as Element).contains(targetNode);\n }\n\n for (const element of currentConfiguration.allowTouchInputOn) {\n if (element.contains(targetNode)) {\n return true;\n }\n }\n\n return false;\n }\n\n private preventDefault(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n }\n}\n","export const ITEM_COPY_DEFAULT_SUFFIX = \"Copy\";","import { Injectable } from \"@angular/core\";\nimport { ITEM_COPY_DEFAULT_SUFFIX } from \"../constants/ui-services-common.consants\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TextFormattingService {\n\n constructor() { }\n\n public generateNameCopy(originalName: string, existingNames: string[] | undefined = undefined, copySuffix: string = ITEM_COPY_DEFAULT_SUFFIX): string {\n const existingNamesToLower = existingNames?.map(item => item.toLowerCase()) ?? [];\n\n let newName = `${originalName} (Copy)`;\n let copyIndex = 2;\n\n while (existingNamesToLower.includes(newName.toLowerCase())) {\n newName = `${originalName} (${copySuffix} ${copyIndex++})`;\n }\n\n return newName;\n }\n\n public formattedDateString(date: Date | string | undefined | null): string | undefined {\n if (!date) return undefined;\n\n const dateObj = (date instanceof Date) ? date : new Date(date);\n return dateObj.toLocaleDateString(undefined, {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n });\n }\n}","import { Injectable } from \"@angular/core\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UiActionsService {\n\n public downloadFile(data: Blob, filename: string, mimeType: string): void {\n const blob = new Blob([data], { type: mimeType });\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = filename;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n window.URL.revokeObjectURL(url);\n }\n}","export function uuidv4() {\n return \"10000000-1000-4000-8000-100000000000\".replace(/[018]/g, (c) => (+c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (+c / 4)))).toString(16));\n}\n","/*\n * Public API Surface of common-parts\n */\n\nexport * from './lib/services/device-type.service';\nexport * from './lib/services/scroll-lock.service';\nexport * from './lib/services/text-formatting.service';\nexport * from './lib/services/ui-actions.service';\nexport * from './lib/services/window-dimension.service';\n\nexport * from './lib/constants/ui-services-common.consants';\n\nexport * from './lib/enums/desktop-os.enum';\nexport * from './lib/enums/mobile-os.enum';\n\nexport * from './lib/interfaces/device-state.interface';\nexport * from './lib/interfaces/scroll-lock-config.interface';\nexport * from './lib/interfaces/window-dimensions.interface';\n\nexport * from './lib/types/device.types';\n\nexport * from './lib/helpers/uui4';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@filip.mazev/common-parts",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^21.1.1",
6
6
  "@angular/core": "^21.1.1"
@@ -10,13 +10,13 @@
10
10
  },
11
11
  "sideEffects": false,
12
12
  "module": "fesm2022/filip.mazev-common-parts.mjs",
13
- "typings": "index.d.ts",
13
+ "typings": "types/filip.mazev-common-parts.d.ts",
14
14
  "exports": {
15
15
  "./package.json": {
16
16
  "default": "./package.json"
17
17
  },
18
18
  ".": {
19
- "types": "./index.d.ts",
19
+ "types": "./types/filip.mazev-common-parts.d.ts",
20
20
  "default": "./fesm2022/filip.mazev-common-parts.mjs"
21
21
  }
22
22
  }
@@ -0,0 +1,127 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+
4
+ declare enum DesktopOS {
5
+ Linux = "linux",
6
+ MacOS = "mac_os",
7
+ Unix = "unix",
8
+ Unknown = "unknown",
9
+ Windows = "windows"
10
+ }
11
+
12
+ declare enum MobileOS {
13
+ Android = "android",
14
+ iOS = "ios",
15
+ Unknown = "unknown",
16
+ WindowsPhone = "Windows Phone"
17
+ }
18
+
19
+ interface DeviceState {
20
+ isDesktop: boolean;
21
+ desktopOS: DesktopOS | undefined;
22
+ isWindowsDesktop: boolean;
23
+ isLinuxOrUnixDesktop: boolean;
24
+ isMobile: boolean;
25
+ mobileOS: MobileOS | undefined;
26
+ isAndroidDevice: boolean;
27
+ isAppleDevice: boolean;
28
+ isUnknownMobileDevice: boolean;
29
+ isTablet: boolean;
30
+ isLandscapeOrientation: () => boolean;
31
+ isPortraitOrientation: () => boolean;
32
+ }
33
+
34
+ declare class DeviceTypeService {
35
+ private userAgent;
36
+ private isDesktopDevice;
37
+ private isMobileDevice;
38
+ private isTabletDevice;
39
+ private getMobileOS;
40
+ private getDesktopOS;
41
+ private getDeviceOS;
42
+ private supportedScreenOrientation;
43
+ private safariScreenOrientation;
44
+ private initialScreenOrientation;
45
+ private screenOrientation;
46
+ constructor();
47
+ isLandscapeOrientation(): boolean;
48
+ isPortraitOrientation(): boolean;
49
+ getDeviceState(): DeviceState;
50
+ static ɵfac: i0.ɵɵFactoryDeclaration<DeviceTypeService, never>;
51
+ static ɵprov: i0.ɵɵInjectableDeclaration<DeviceTypeService>;
52
+ }
53
+
54
+ interface IScrollLockConfig {
55
+ allowTouchInputOn?: Element[];
56
+ mainContainer?: HTMLElement;
57
+ handleExtremeOverflow?: boolean;
58
+ animationDuration?: number;
59
+ handleTouchInput?: boolean;
60
+ mobileOnlyTouchPrevention?: boolean;
61
+ }
62
+
63
+ declare class ScrollLockService {
64
+ private deviceTypeService;
65
+ private windowDimensionSerivce;
66
+ private instanceId;
67
+ private configurationInstances;
68
+ private windowDimensions;
69
+ constructor();
70
+ ngOnDestroy(): void;
71
+ disableScroll(config: IScrollLockConfig): void;
72
+ enableScroll(extreme_overflow?: boolean): void;
73
+ private handleTouchMove;
74
+ private isAllowedToScroll;
75
+ private preventDefault;
76
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScrollLockService, never>;
77
+ static ɵprov: i0.ɵɵInjectableDeclaration<ScrollLockService>;
78
+ }
79
+
80
+ declare class TextFormattingService {
81
+ constructor();
82
+ generateNameCopy(originalName: string, existingNames?: string[] | undefined, copySuffix?: string): string;
83
+ formattedDateString(date: Date | string | undefined | null): string | undefined;
84
+ static ɵfac: i0.ɵɵFactoryDeclaration<TextFormattingService, never>;
85
+ static ɵprov: i0.ɵɵInjectableDeclaration<TextFormattingService>;
86
+ }
87
+
88
+ declare class UiActionsService {
89
+ downloadFile(data: Blob, filename: string, mimeType: string): void;
90
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiActionsService, never>;
91
+ static ɵprov: i0.ɵɵInjectableDeclaration<UiActionsService>;
92
+ }
93
+
94
+ interface WindowDimensions {
95
+ [x: string]: any;
96
+ width: number;
97
+ height: number;
98
+ threshold_xs: number;
99
+ threshold_sm: number;
100
+ threshold_md: number;
101
+ threshold_lg: number;
102
+ threshold_xl: number;
103
+ threshold_2xl: number;
104
+ threshold_3xl: number;
105
+ threshold_4xl: number;
106
+ }
107
+
108
+ declare class WindowDimensionsService {
109
+ private windowDimensionsSubject;
110
+ constructor();
111
+ getWindowDimensions(): WindowDimensions;
112
+ private handleResize;
113
+ getWindowDimensions$(): Observable<WindowDimensions>;
114
+ static ɵfac: i0.ɵɵFactoryDeclaration<WindowDimensionsService, never>;
115
+ static ɵprov: i0.ɵɵInjectableDeclaration<WindowDimensionsService>;
116
+ }
117
+
118
+ declare const ITEM_COPY_DEFAULT_SUFFIX = "Copy";
119
+
120
+ type DeviceTheme = "light" | "dark";
121
+ type DeviceOS = DesktopOS | MobileOS;
122
+ type DeviceOrientationType = 'portrait-primary' | 'landscape-primary' | 'portrait-secondary' | 'landscape-secondary';
123
+
124
+ declare function uuidv4(): string;
125
+
126
+ export { DesktopOS, DeviceTypeService, ITEM_COPY_DEFAULT_SUFFIX, MobileOS, ScrollLockService, TextFormattingService, UiActionsService, WindowDimensionsService, uuidv4 };
127
+ export type { DeviceOS, DeviceOrientationType, DeviceState, DeviceTheme, IScrollLockConfig, WindowDimensions };
package/index.d.ts DELETED
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@filip.mazev/common-parts" />
5
- export * from './public-api';
@@ -1 +0,0 @@
1
- export declare const SCROLL_LOCK_INSTANCE_IDENTIFIER = "scroll_lock_instance_";
@@ -1 +0,0 @@
1
- export declare const ITEM_COPY_DEFAULT_SUFFIX = "Copy";
@@ -1,7 +0,0 @@
1
- export declare enum DesktopOS {
2
- Linux = "linux",
3
- MacOS = "mac_os",
4
- Unix = "unix",
5
- Unknown = "unknown",
6
- Windows = "windows"
7
- }
@@ -1,6 +0,0 @@
1
- export declare enum MobileOS {
2
- Android = "android",
3
- iOS = "ios",
4
- Unknown = "unknown",
5
- WindowsPhone = "Windows Phone"
6
- }
@@ -1 +0,0 @@
1
- export declare function uuidv4(): string;
@@ -1,16 +0,0 @@
1
- import { DesktopOS } from "../enums/desktop-os.enum";
2
- import { MobileOS } from "../enums/mobile-os.enum";
3
- export interface DeviceState {
4
- isDesktop: boolean;
5
- desktopOS: DesktopOS | undefined;
6
- isWindowsDesktop: boolean;
7
- isLinuxOrUnixDesktop: boolean;
8
- isMobile: boolean;
9
- mobileOS: MobileOS | undefined;
10
- isAndroidDevice: boolean;
11
- isAppleDevice: boolean;
12
- isUnknownMobileDevice: boolean;
13
- isTablet: boolean;
14
- isLandscapeOrientation: () => boolean;
15
- isPortraitOrientation: () => boolean;
16
- }
@@ -1,8 +0,0 @@
1
- export interface IScrollLockConfig {
2
- allowTouchInputOn?: Element[];
3
- mainContainer?: HTMLElement;
4
- handleExtremeOverflow?: boolean;
5
- animationDuration?: number;
6
- handleTouchInput?: boolean;
7
- mobileOnlyTouchPrevention?: boolean;
8
- }
@@ -1,13 +0,0 @@
1
- export interface WindowDimensions {
2
- [x: string]: any;
3
- width: number;
4
- height: number;
5
- threshold_xs: number;
6
- threshold_sm: number;
7
- threshold_md: number;
8
- threshold_lg: number;
9
- threshold_xl: number;
10
- threshold_2xl: number;
11
- threshold_3xl: number;
12
- threshold_4xl: number;
13
- }
@@ -1,21 +0,0 @@
1
- import { DeviceState } from '../interfaces/device-state.interface';
2
- import * as i0 from "@angular/core";
3
- export declare class DeviceTypeService {
4
- private userAgent;
5
- private isDesktopDevice;
6
- private isMobileDevice;
7
- private isTabletDevice;
8
- private getMobileOS;
9
- private getDesktopOS;
10
- private getDeviceOS;
11
- private supportedScreenOrientation;
12
- private safariScreenOrientation;
13
- private initialScreenOrientation;
14
- private screenOrientation;
15
- constructor();
16
- isLandscapeOrientation(): boolean;
17
- isPortraitOrientation(): boolean;
18
- getDeviceState(): DeviceState;
19
- static ɵfac: i0.ɵɵFactoryDeclaration<DeviceTypeService, never>;
20
- static ɵprov: i0.ɵɵInjectableDeclaration<DeviceTypeService>;
21
- }
@@ -1,18 +0,0 @@
1
- import { IScrollLockConfig } from '../interfaces/scroll-lock-config.interface';
2
- import * as i0 from "@angular/core";
3
- export declare class ScrollLockService {
4
- private deviceTypeService;
5
- private windowDimensionSerivce;
6
- private instanceId;
7
- private configurationInstances;
8
- private windowDimensions;
9
- constructor();
10
- ngOnDestroy(): void;
11
- disableScroll(config: IScrollLockConfig): void;
12
- enableScroll(extreme_overflow?: boolean): void;
13
- private handleTouchMove;
14
- private isAllowedToScroll;
15
- private preventDefault;
16
- static ɵfac: i0.ɵɵFactoryDeclaration<ScrollLockService, never>;
17
- static ɵprov: i0.ɵɵInjectableDeclaration<ScrollLockService>;
18
- }
@@ -1,8 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- export declare class TextFormattingService {
3
- constructor();
4
- generateNameCopy(originalName: string, existingNames?: string[] | undefined, copySuffix?: string): string;
5
- formattedDateString(date: Date | string | undefined | null): string | undefined;
6
- static ɵfac: i0.ɵɵFactoryDeclaration<TextFormattingService, never>;
7
- static ɵprov: i0.ɵɵInjectableDeclaration<TextFormattingService>;
8
- }
@@ -1,6 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- export declare class UiActionsService {
3
- downloadFile(data: Blob, filename: string, mimeType: string): void;
4
- static ɵfac: i0.ɵɵFactoryDeclaration<UiActionsService, never>;
5
- static ɵprov: i0.ɵɵInjectableDeclaration<UiActionsService>;
6
- }
@@ -1,12 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import { WindowDimensions } from '../interfaces/window-dimensions.interface';
3
- import * as i0 from "@angular/core";
4
- export declare class WindowDimensionsService {
5
- private windowDimensionsSubject;
6
- constructor();
7
- getWindowDimensions(): WindowDimensions;
8
- private handleResize;
9
- getWindowDimensions$(): Observable<WindowDimensions>;
10
- static ɵfac: i0.ɵɵFactoryDeclaration<WindowDimensionsService, never>;
11
- static ɵprov: i0.ɵɵInjectableDeclaration<WindowDimensionsService>;
12
- }
@@ -1,5 +0,0 @@
1
- import { DesktopOS } from "../enums/desktop-os.enum";
2
- import { MobileOS } from "../enums/mobile-os.enum";
3
- export type DeviceTheme = "light" | "dark";
4
- export type DeviceOS = DesktopOS | MobileOS;
5
- export type DeviceOrientationType = 'portrait-primary' | 'landscape-primary' | 'portrait-secondary' | 'landscape-secondary';
package/public-api.d.ts DELETED
@@ -1,13 +0,0 @@
1
- export * from './lib/services/device-type.service';
2
- export * from './lib/services/scroll-lock.service';
3
- export * from './lib/services/text-formatting.service';
4
- export * from './lib/services/ui-actions.service';
5
- export * from './lib/services/window-dimension.service';
6
- export * from './lib/constants/ui-services-common.consants';
7
- export * from './lib/enums/desktop-os.enum';
8
- export * from './lib/enums/mobile-os.enum';
9
- export * from './lib/interfaces/device-state.interface';
10
- export * from './lib/interfaces/scroll-lock-config.interface';
11
- export * from './lib/interfaces/window-dimensions.interface';
12
- export * from './lib/types/device.types';
13
- export * from './lib/helpers/uui4';