UNPKG

ngx-date-fns-tz

Version:
1 lines 14.7 kB
{"version":3,"file":"ngx-date-fns-tz.mjs","sources":["../../../projects/lib/src/lib/services/date-fns-tz-configuration.service.ts","../../../projects/lib/src/lib/util/is-valid.ts","../../../projects/lib/src/lib/util/mock-change-detector-ref.ts","../../../projects/lib/src/lib/pipes/utc-to-zoned-time.pipe.ts","../../../projects/lib/src/lib/pipes/zoned-time-to-utc.pipe.ts","../../../projects/lib/src/lib/pipes/format-in-time-zone.pipe.ts","../../../projects/lib/src/lib/pipes/get-time-zone-offset.pipe.ts","../../../projects/lib/src/lib/pipes/utc-to-zoned-time-pure.pipe.ts","../../../projects/lib/src/lib/pipes/zoned-time-to-utc-pure.pipe.ts","../../../projects/lib/src/lib/pipes/format-in-time-zone-pure.pipe.ts","../../../projects/lib/src/lib/provider.ts","../../../projects/lib/src/ngx-date-fns-tz.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\nimport { enGB, Locale } from 'date-fns/locale';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DateFnsTzConfigurationService {\n _timezone = signal<string>(this.resolveBrowserTimeZone());\n _locale = signal<Locale>(enGB);\n _format = signal<string>('dd-MM-yyyy HH:mm:ss zzz');\n\n set timeZone(tz: string) {\n this._timezone.set(tz);\n }\n\n get timeZone(): string {\n return this._timezone();\n }\n\n set locale(locale: Locale) {\n this._locale.set(locale);\n }\n\n get locale(): Locale {\n return this._locale();\n }\n\n set format(fmt: string) {\n this._format.set(fmt);\n }\n\n get format(): string {\n return this._format();\n }\n\n resolveBrowserTimeZone(): string {\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n}\n","import { isValid } from 'date-fns';\n\nexport function isValidDate(date: any): boolean {\n return date != null && isValid(new Date(date));\n}\n","import { ChangeDetectorRef } from '@angular/core';\n\nexport class MockChangeDetectorRef implements ChangeDetectorRef {\n markForCheck(): void {}\n detach(): void {}\n detectChanges(): void {}\n checkNoChanges(): void {}\n reattach(): void {}\n}\n","import { ChangeDetectorRef, effect, inject, OnDestroy, Pipe, PipeTransform } from '@angular/core';\nimport { DateFnsTzConfigurationService } from '../services';\nimport { isValidDate } from '../util';\nimport { toZonedTime } from 'date-fns-tz';\n\n@Pipe({\n name: 'utcToZonedTime',\n standalone: true,\n pure: false\n})\nexport class UtcToZonedTimePipe implements PipeTransform, OnDestroy {\n private service = inject(DateFnsTzConfigurationService);\n private cdr = inject(ChangeDetectorRef);\n\n private cleanup = effect(() => {\n this.service.timeZone;\n this.cdr.markForCheck();\n });\n\n transform(\n date: Date | string | number,\n tz?: string | null,\n ): Date {\n if (!isValidDate(date)) return new Date(0);\n\n tz = tz ?? this.service.timeZone;\n\n return toZonedTime(date, tz);\n }\n\n ngOnDestroy(): void {\n this.cleanup.destroy();\n }\n}\n","import { ChangeDetectorRef, effect, inject, OnDestroy, Pipe, PipeTransform } from '@angular/core';\nimport { isValidDate } from '../util';\nimport { DateFnsTzConfigurationService } from '../services';\nimport { fromZonedTime } from 'date-fns-tz';\n\n@Pipe({\n name: 'dfnsZonedTimeToUtc',\n standalone: true,\n pure: false\n})\nexport class ZonedTimeToUtcPipe implements PipeTransform, OnDestroy {\n private service = inject(DateFnsTzConfigurationService);\n private cdr = inject(ChangeDetectorRef);\n\n private cleanup = effect(() => {\n this.service.timeZone;\n this.cdr.markForCheck();\n });\n\n transform(\n date: Date | string | number,\n tz?: string | null,\n ): Date {\n if (!isValidDate(date)) return new Date(0);\n\n tz = tz ?? this.service.timeZone;\n\n return fromZonedTime(date, tz);\n }\n\n ngOnDestroy(): void {\n this.cleanup.destroy();\n }\n}\n","import { ChangeDetectorRef, effect, inject, OnDestroy, Pipe, PipeTransform } from '@angular/core';\nimport { isValidDate } from '../util';\nimport { DateFnsTzConfigurationService } from '../services';\nimport { formatInTimeZone } from 'date-fns-tz';\n\n@Pipe({\n name: 'dfnsFormatInTimeZone',\n standalone: true,\n pure: false\n})\nexport class FormatInTimeZonePipe implements PipeTransform, OnDestroy {\n private service = inject(DateFnsTzConfigurationService);\n private cdr = inject(ChangeDetectorRef);\n\n private cleanup = effect(() => {\n this.service.timeZone;\n this.service.format;\n this.service.locale;\n this.cdr.markForCheck();\n });\n\n transform(\n date: Date | string | number,\n tz?: string | null,\n fmt?: string | null\n ): string {\n if (!isValidDate(date)) return '';\n\n tz = tz ?? this.service.timeZone;\n fmt = fmt ?? this.service.format;\n\n return formatInTimeZone(date, tz, fmt, {\n locale: this.service.locale\n });\n }\n\n ngOnDestroy(): void {\n this.cleanup.destroy();\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { getTimezoneOffset } from 'date-fns-tz';\nimport { DateFnsTzConfigurationService } from '../services';\n\n@Pipe({\n name: 'dfnsGetTimeZoneOffset',\n standalone: true,\n pure: true\n})\nexport class GetTimeZoneOffsetPipe implements PipeTransform {\n service = inject(DateFnsTzConfigurationService);\n\n transform(tz?: string, date?: Date): number {\n return getTimezoneOffset(tz ?? this.service.timeZone, date);\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { DateFnsTzConfigurationService } from '../services';\nimport { isValidDate } from '../util';\nimport { toZonedTime } from 'date-fns-tz';\n\n@Pipe({\n name: 'utcToZonedTimePure',\n standalone: true,\n pure: true\n})\nexport class UtcToZonedTimePurePipe implements PipeTransform {\n private service = inject(DateFnsTzConfigurationService);\n\n transform(\n date: Date | string | number,\n tz?: string | null\n ): Date {\n if (!isValidDate(date)) return new Date(0);\n\n tz = tz ?? this.service.timeZone;\n\n return toZonedTime(date, tz);\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { DateFnsTzConfigurationService } from '../services';\nimport { isValidDate } from '../util';\nimport { fromZonedTime } from 'date-fns-tz';\n\n@Pipe({\n name: 'dfnsZonedTimeToUtcPure',\n standalone: true,\n pure: true\n})\nexport class ZonedTimeToUtcPurePipe implements PipeTransform {\n private service = inject(DateFnsTzConfigurationService);\n\n transform(\n date: Date | string | number,\n tz?: string | null,\n ): Date {\n if (!isValidDate(date)) return new Date(0);\n\n tz = tz ?? this.service.timeZone;\n\n return fromZonedTime(date, tz);\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { formatInTimeZone } from 'date-fns-tz';\nimport { DateFnsTzConfigurationService } from '../services';\nimport { isValidDate } from '../util';\n\n@Pipe({\n name: 'dfnsFormatInTimeZonePure',\n standalone: true,\n pure: true\n})\nexport class FormatInTimeZonePurePipe implements PipeTransform {\n private service = inject(DateFnsTzConfigurationService);\n\n transform(\n date: Date | string | number,\n tz?: string | null,\n fmt?: string | null\n ): string {\n if (!isValidDate(date)) return '';\n\n tz = tz ?? this.service.timeZone;\n fmt = fmt ?? this.service.format;\n\n return formatInTimeZone(date, tz, fmt, {\n locale: this.service.locale\n });\n }\n}\n","import { EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { DateFnsTzConfigurationService } from '../lib/services/date-fns-tz-configuration.service';\n\nexport function provideDateFnsTz(): EnvironmentProviders {\n return makeEnvironmentProviders([\n DateFnsTzConfigurationService\n ]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}