{"version":3,"file":"ng-nest-ui-time-ago.mjs","sources":["../../../../lib/ng-nest/ui/time-ago/time-ago.property.ts","../../../../lib/ng-nest/ui/time-ago/time-ago.pipe.ts","../../../../lib/ng-nest/ui/time-ago/time-ago.module.ts","../../../../lib/ng-nest/ui/time-ago/ng-nest-ui-time-ago.ts"],"sourcesContent":["/**\r\n * TimeAgo\r\n * @selector xTimeAgo\r\n * @decorator pipe\r\n */\r\nexport const XTimeAgoPrefix = 'xTimeAgo';\r\n","import { Pipe, PipeTransform, inject } from '@angular/core';\r\nimport { XToDate } from '@ng-nest/ui/core';\r\nimport { DatePipe } from '@angular/common';\r\nimport { XTimeAgoPrefix } from './time-ago.property';\r\nimport { XI18nService, zh_CN } from '@ng-nest/ui/i18n';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { map } from 'rxjs';\r\n\r\n@Pipe({ name: `${XTimeAgoPrefix}` })\r\nexport class XTimeAgoPipe extends DatePipe implements PipeTransform {\r\n  private i18n = inject(XI18nService);\r\n  private catchContent: any;\r\n\r\n  localeI18n = toSignal(this.i18n.localeChange.pipe(map((x) => x.timeAgo)), { initialValue: zh_CN.timeAgo });\r\n\r\n  override transform(input?: any): any {\r\n    if (!input) return '';\r\n    const date = XToDate(input);\r\n    if (isNaN(date.valueOf())) {\r\n      return input as string;\r\n    }\r\n    const content = this.getDiff(date);\r\n    if (this.catchContent !== content) {\r\n      this.catchContent = content;\r\n    }\r\n    return this.catchContent;\r\n  }\r\n\r\n  getDiff(date: Date): string {\r\n    const time = date.getTime();\r\n    const second = 1000;\r\n    const minute = 1000 * 60;\r\n    const hour = minute * 60;\r\n    const day = hour * 24;\r\n    const now = new Date();\r\n    const diffValue = now.getTime() - time;\r\n    if (diffValue < 0) {\r\n      return '';\r\n    }\r\n    const dayDiff = diffValue / day;\r\n    const hourDiff = diffValue / hour;\r\n    const minDiff = diffValue / minute;\r\n    const secondDiff = diffValue / second;\r\n    let result = '';\r\n    if (date.getFullYear() !== now.getFullYear()) {\r\n      result = super.transform(time, 'yyyy-MM-dd') as string;\r\n    } else if (dayDiff >= 1) {\r\n      result = super.transform(time, 'MM-dd HH:mm') as string;\r\n    } else if (hourDiff >= 1) {\r\n      result = `${Math.floor(hourDiff)}${this.localeI18n()?.hoursAgo}`;\r\n    } else if (minDiff >= 1) {\r\n      result = `${Math.floor(minDiff)}${this.localeI18n()?.minutesAgo}`;\r\n    } else if (secondDiff >= 1) {\r\n      result = `${Math.floor(secondDiff)}${this.localeI18n()?.secondsAgo}`;\r\n    } else result = this.localeI18n()?.just as string;\r\n    return result;\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { XTimeAgoPipe } from './time-ago.pipe';\r\n\r\n@NgModule({\r\n  exports: [XTimeAgoPipe],\r\n  imports: [XTimeAgoPipe]\r\n})\r\nexport class XTimeAgoModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}